[서평] 에이다, 당신이군요. 최초의 프로그래머 – 컴퓨터 탄생을 둘러싼 기이하고 놀라운 이야기

에이다, 당신이군요. 최초의 프로그래머10점
시드니 파두아 지음, 홍승효 옮김/곰출판

과거에 구글 두들[1]에서 에이다 러브레이스를 기념하는 걸 보고 처음 알게 된 사람인데-_- 최초의 프로그래머라고 한다. 왜 최초의 프로그래머인지 나무위키[2]에도 대략적인 설명이 있다.

처음에는 제목만 보고 일전에 읽은 Henrik Rehr의 책[3]이나 Antonio Altarriba의 책[4]처럼 논픽션 만화책인줄 알았다. 즉, 에이다 러브레이스의 일생을 다루거나 컴퓨터의 탄생을 다루는 책인 줄 알았는데, 기만적인 제목-_-과는 달리 그런 내용이 절대 아니다. 빅토리아 시대의 깨알같은 문화와 배경 잡지식을 포함하고 있긴 하지만, 대부분 저자의 상상을 토대로 한 이야기들을 만화적 구성으로 엮은 것이다. 다만 저자가 조사하여 찾아낸 매우 다양한 당대의 자료를 만나볼 수 있고, 빅토리아 시대의 배경을 여러모로 감안한 저자의 개그가 난무하고 있으니 무척 재미있게 읽을 수 있다. 아마존 customer reviews를 보니 Catnip for nerdy geeks and/or geeky nerds 라고 평한 사람[5]이 있던데 딱 정답이다. ㅋㅋㅋ 지금 검색해보니 이 책의 위키피디아 항목도 있는 걸 보면 나름 유명한 만화책인 듯? 저자인 Sydney Padua의 위키피디아 항목도 있다.

근데 이 책은 절반정도만(?) 만화책이라 말할 수 있는데, 만화책이라 하기에는 주석이 엄청나게 많다-_- 분량의 절반이 주석이라 할 수 있을 정도로 주석이 많아서 이걸 만화책이라 부르기 뭣하다-_- 나는 재미있게 봤지만, 좀 geeky하지 않으면 흥미를 느끼기는 어려울 듯하다.

p149에 필립스 곡선으로 유명한 그 필립스 선생이 만든 물 컴퓨터에 대한 이야기가 잠시 나오는데, 이에 대한 배경은 일전에 팀 하포드 선생의 책[6] 앞부분에 잠시 나온다.

뭐 여하간 스팀펑크 sf를 좋아하거나, 일전에 본 김명호 화백의 만화책[7,8]을 좋아하는 사람이라면, 이 책을 좋아할 가능성이 높을 것 같다. ㅎㅎ

책에 등장하는 배비지가 설계한 차분기관을 당대 기술을 감안하여 재연하는 영상[9]을 봤는데, 열라 무식해보여도-_- 이론적으로는 실작동을 하는 모양이다. 빅토리아 시대 당대에는 로그 계산도 상당히 노동력을 동원하는 큰 일이었던 만큼, 이 연구를 빌미로 정부예산을 무척 말아먹은 모양이지만-_- 어쨌든 배비지가 완전 엉터리는 아니었던 모양. ㅋ 재생시간 2분 39초.

 


[1] https://plus.google.com/+googlekorea/posts/YGkyxvwusri
[2] 에이다 러브레이스 백작부인 in 나무위키
[3] 내 백과사전 [서평] 가브릴로 프린치프- 세기를 뒤흔든 청년 2014년 7월 18일
[4] 내 백과사전 [서평] 어느 아나키스트의 고백 2013년 7월 14일
[5] https://www.amazon.com/gp/customer-reviews/R1K2D6K1EORZP3/ref=cm_cr_dp_d_rvw_ttl?ie=UTF8&ASIN=0307908275
[6] 내 백과사전 [서평] 당신이 경제학자라면- 고장 난 세상에 필요한 15가지 질문 2015년 1월 4일
[7] 내 백과사전 [서평] 김명호의 생물학 공방 – 그래픽 노블로 떠나는 매혹과 신비의 생물 대탐험 2016년 12월 24일
[8] 내 백과사전 [서평] 김명호의 과학 뉴스 – 과학의 최전선을 누비는 최첨단 그래픽 노블 2017년 6월 29일
[9] https://www.youtube.com/watch?v=r7OFT2RkCW4

Advertisements

재부팅시 디스크의 문자 할당이 사라지는 현상

과거에 시게이트 HDD를 3개 가지고 있었는데, 세 개 모두 얼마 쓰지도 못하고 매우 유사한 증상(끽끽 소리 내면서 디스크가 맛이 감)으로 날려먹어서 시게이트에 매우 안 좋은 인상을 가지고 있다-_- 반면에 웨스턴 디지털은 2개째 무탈하게 잘 쓰고 있어서 언제나 하드디스크는 웨스턴 디지털이다. ㅋ

얼마전에 웨스턴 디지털 1T 용량의 하드디스크를 장착했는데, windows 10의 ‘내 pc – 관리 – 디스크 관리’에 정상적으로 다 인식 되는데, 재부팅만 하면 항상 디스크의 문자 할당이 사라져서, 부팅 할때 마다 드라이브 문자 할당을 해야하는 기괴한 현상이 일어난다. 하나도 안 쓴 새거가 왜 이래????

고장인가 싶기도 했는데, 일단 검색해보니 본인과 유사한 증상을 가진 사람[1,2,3]이 있는 걸 보면, 하드웨어의 문제는 아닌 것 같았다. 참고로, 마이크로소프트 커뮤니티에 답변으로 나오는 해결책의 절대다수는 아무짝에도 도움되지 않으므로 웬만하면 시키는 대로 따라하지 말길 권유한다-_-

콘솔창에 diskpart를 실행해서 list volume이라 해보면 새 하드디스크에 ‘숨김’이라는 특성이 달려 있었다. 아하, 숨김 때문에 매번 보이지 않는 거구만. 디스크에 이런 특성을 달 수 있는 줄 처음 알았다. 야동-_-을 저장할 필요 있는 사람에게 유용할 듯 ㅋㅋㅋㅋ

어떤 사람은 diskpart에서 automount enable이라 치면 해결된다고 하는 사람[4]이 있던데, 내 경우는 전혀 해결되지 않았다. 또, diskpart에 디스크 선택 후 attributes volume clear hidden 이라 치면 해결된다고 하는 사람도 있던데, 내 경우에는 이것을 치니 에러가 뜨면서 시스템 로그를 확인해 보라고 한다. 아놔…. 참고로 attributes volume set hidden 이라 하면 숨김 특성이 붙는다. 다른 특성은 다 붙었다 떨어졌다 정상 작동하는데, 오직 ‘숨김’ 특성만 에러난다. 와 돌겠다.

보니까 본인과 정확히 똑같은 증상을 가진 사람[5]이 있었다. 이 사람은 윈도우 cd로 부팅해서 파티션을 삭제하고 파티션을 다시 만들어서 문제를 해결한 모양인데, 본인은 cd나 부팅 usb가 없었다-_-

‘숨김’ 특성을 없애보려고 파티션을 지웠다 만들었다가, 포맷을 했다가, 검색을 수없이 하고, 안전모드로도 부팅해보고, 메인보드 설정도 하나하나 확인하고, 생 난리를 치며 이틀에 걸쳐 수 시간 넘게 삽질했는데, 고생한 게 아까워서 걍 글 써본다.

결국 diskpart에서 select disk (디스크 숫자)로 디스크를 선택한 후 clean을 치면, 파티션과 디스크 특성이 완전 제거되는데, 이후에 ‘숨김’ 특성이 사라졌다. 그래서 해결!!!!!

젠장 이렇게 간단한 걸 아무도 모르고 있다니-_-

참고로 clean 명령은 라즈비안이 깔린 sd 카드의 파티션을 제거할 때[6]도 쓰는 명령이다. ‘내 pc – 관리 – 디스크 관리’의 WYSIWYG으로는 clean 명령과 동일한 작업을 하는 것은 불가능한 듯 하다.

 


2017.12.31
extreme tech Who Makes the Most Reliable Hard Drives? February 1, 2017 at 8:11 am

 


[1] 재부팅시 HDD 인식관련 in answers.microsoft.com
[2] 하드 드라이브의 문자 경로가 할당되지 않습니다. in answers.microsoft.com
[3] 외장하드 인식은 되는데 드라이브가 안생깁니다 in ppomppu.co.kr
[4] 외장하드 연결시 자동으로 드라이브 문자가 할당 되지 않을때 해결하는 방법 by housegod
[5] Problem clear hidden volume in diskpart in social.technet.microsoft.com
[6] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일

GIF를 읽는 법

이미지 형식 중의 하나인 GIF 포맷은 1987년에 최초에 제안되었다고 한다. 월드 와이드 웹 그 자체의 역사보다 오래된 GIF는 현대까지도 움짤 등에 매우 유용하게-_- 활용되고 있다. ㅋ

이 GIF를 ‘기프’라고 읽을지 ‘지프’라고 읽을 지 대논쟁-_-이 있었던 것 같은데, 나는 처음 알았다. ㅋㅋㅋ 본인은 여태까지 이걸 ‘지-아이-에프’ 라고 읽어왔는데, 나처럼 읽는 사람은 별로 없는 듯-_- 초 문화 충격이다-_-

뭐 거의 예송논쟁 급의 주제지만, stack overflow에서 이걸 설문조사를 한 모양이다. 이걸 바탕으로 이코노미스트[1]지에서 국가별로 어찌 읽는지 분류하는 씨잘데기 없는 지도를 만들었다-_-

지도를 보는 방법은 (hard g 사람수/soft g 사람수)의 값을 색칠해 놓았다. 이 값이 1이면 두 발음을 하는 사람수가 같다.

/dʒɪf/의 /dʒ/ 발음을 soft g라고 하고 /ɡɪf/의 /ɡ/ 발음을 hard g라고 하는 모양인데, 위키피디아 항목도 있다. 위키피디아 링크를 보니 soft g인 /dʒ/ 발음은 Voiced postalveolar affricate(유성 후치경 파찰음???)이라고 부르는 모양이고, hard g인 /ɡ/ 발음은 Voiced velar stop(유성 연구개 파열음??)이라 부르는 것 같다. 뭐 본인은 음운론에 일자 무식이므로 넘어갑시다.

언어적 차이도 있는데, 이코노미스트지의 설명[1]에 따르면 스페인어와 핀란드어에서는 soft g가 거의 없다고 한다. 반면 아랍어의 대부분 방언에서는 hard g가 없다고 한다. 뭐 이코노미스트지[1]는 stack overflow는 대표성이 떨어지니 보정하자는 이야기가 나오지만, 내가 보기에는 중세 신학자들이 했다는 핀 머리에서 춤출 수 있는 천사수 급의 논쟁이다. ㅋㅋ 꼴리는 대로 읽으면 그만 아닌가 ㅋ

 


[1] 이코노미스트 How do you pronounce “GIF”? Jun 29th 2017

이지수 소장의 슈퍼컴퓨터 이야기

IT 조선에 ‘이지수 소장의 슈퍼컴퓨터 이야기’라는 기고글이 연재[1~51]되고 있던데, 기사가 흩어져 있어서 최대한 많이 모아 놓아 보았다. 심심하면 볼만함-_- 2017년 2월까지 연재된 걸로 봐서 이제 연재는 중단된 건가.

이지수 선생은 KISTI 국가슈퍼컴퓨팅연구소[52]에 소속되어 있다고 한다.

 


[1] IT 조선 슈퍼컴과 슈퍼카 2013.07.25 17:44:22
[2] IT 조선 세계 1위 슈퍼컴퓨터 ‘은하2호’ 속을 들여다보니… 2013.08.02 15:16:54
[3] IT 조선 슈퍼컴퓨터는 어떻게 더위를 이기나? 2013.08.08 14:30:47
[4] IT 조선 미 국가안보국은 어떤 슈퍼컴을 사용하고 있을까? 2013.08.15 06:59:49
[5] IT 조선 인간의 뇌를 컴퓨터로 재현할 수 있을까? 2013.08.22
[6] IT 조선 감자칩, 샴푸, 냉장고의 공통점은? 2013.08.29 12:41:01
[7] IT 조선 중국은 진정한 슈퍼컴 강국인가? 2013.09.05 11:18:00
[8] IT 조선 상용 양자 컴퓨터를 둘러싼 진위 논쟁 2013.09.26 14:38:59
[9] IT 조선 엑사플롭스급 슈퍼컴퓨터란 무엇인가? 2013.10.03 09:04:06
[10] IT 조선 슈퍼컴퓨터의 보조 두뇌, 가속기 2013.10.11 11:54:54
[11] IT 조선 슈퍼컴이 인간을 대체할 수 있을까? 2013.10.23 18:07:25
[12] IT 조선 왜 멀쩡한 슈퍼컴을 폐기할까? 2013.11.07 14:08:46
[13] IT 조선 월스트리트와 슈퍼컴퓨터 2013.11.14 19:14:05
[14] IT 조선 슈퍼컴퓨터 ‘톱500’은 어떻게 결정될까? 2013.11.27 16:25:21
[15] IT 조선 슈퍼컴은 스포츠와 관계가 있을까? 2013.12.14 09:52:07
[16] IT 조선 자연분만 vs 제왕절개, 슈퍼컴으로 결정 2014.01.06 14:14:42
[17] IT 조선 하나의 소프트웨어를 45년간 쓰고 있다고? 2014.02.02 10:40:16
[18] IT 조선 자동차 설계 혁신의 숨은 주역 – 슈퍼컴퓨터 2014.02.16 08:06:11
[19] IT 조선 미시 소립자의 세계에서 우주의 끝까지 2014.03.01 12:16:00
[20] IT 조선 슈퍼컴퓨터와 고성능컴퓨터의 차이는? 2014.03.21 17:12:53
[21] IT 조선 슈퍼컴퓨터로 공공정책을 수립한다 2014.04.12 08:58:36
[22] IT 조선 재난 예방과 대응에 슈퍼컴퓨터를 활용한다 2014.05.03 08:58:35
[23] IT 조선 세계에서 가장 아름다운 슈퍼컴 센터는? 2014.07.07 12:09:25
[24] IT 조선 바보야, 제일 중요한 것은 사람이야 2014.08.07 18:29:28
[25] IT 조선 슈퍼컴퓨터로 에너지문제를 해결한다 2014.08.23 18:53:55
[26] IT 조선 기성(棋聖)이 되고 싶은 슈퍼컴퓨터 2014.09.14 00:30:55
[27] IT 조선 영화사에 슈퍼컴이 있는 이유는? 2014.12.29 16:37:41
[28] IT 조선 슈퍼컴퓨터로 살펴본 동물의 세계 2015.01.12 12:41:00
[29] IT 조선 CPU는 데이터에 목마르다 2015.01.26 15:32:30
[30] IT 조선 빅데이터가 슈퍼컴을 만나면? 2015.02.23 09:31:48
[31] IT 조선 항공기 개발의 필수품, 슈퍼컴퓨터 2015.03.09 16:15:25
[32] IT 조선 슈퍼컴으로 재난재해 대비한다 2015.03.20 12:04:19
[33] IT 조선 믿음직한 환경 지킴이, ‘슈퍼컴퓨터’ 2015.04.06 16:20:01
[34] IT 조선 여러분의 일자리, 안녕들 하십니까① 2015.04.23 16:59:49
[35] IT 조선 여러분의 일자리, 안녕들 하십니까② 2015.05.09 00:09:13
[36] IT 조선 여러분의 일자리, 안녕들 하십니까③ 2015.05.30 07:53:10
[37] IT 조선 ‘미국 vs 중국’, 슈퍼컴퓨터 전쟁 2015.06.22 15:08:08
[38] IT 조선 빅데이터로 살펴본 조직의 성공조건 2015.07.16 00:04:50
[39] IT 조선 심장을 지키는 ‘슈퍼컴퓨터’ 2015.07.27 18:51:53
[40] IT 조선 국방의 숨은 공로자 2015.08.18 10:31:27
[41] IT 조선 인간보다 매서운 눈을 가진 컴퓨터의 비밀 2015.09.02 17:51:31
[42] IT 조선 슈퍼컴으로 완성되는 정부 정책 2015.09.22 09:41:23
[43] IT 조선 슈퍼컴으로 알아보는 인류의 조상 2015.10.24 00:39:18
[44] IT 조선 핵무기 개발과 슈퍼컴퓨터 2015.11.14 10:10:35
[45] IT 조선 데이터의 움직임에 주목하라① 2015.12.16 00:00:00
[46] IT 조선 데이터의 움직임에 주목하라② 2016.01.03 18:38:03
[47] IT 조선 슈퍼컴, 수학 난제를 해결한다 2016.02.15 10:44:59
[48] IT 조선 NASA는 어떻게 로켓을 개발할까 2016.03.24 14:37:23
[49] IT 조선 슈퍼컴퓨터 최대의 적은 ‘우주선(cosmic ray)’ 2016.05.06 00:09:18
[50] IT 조선 달아오르는 엑사급 슈퍼컴 개발 경쟁①…중국의 진격 2017.01.31 18:11:26
[51] IT 조선 달아오르는 엑사급 슈퍼컴 개발 경쟁②…미국과 일본의 추격 2017.02.04 07:00:00
[52] http://www.nisn.re.kr/

라즈베리 파이로 RAID 0 만들어서 토렌트 머신 만들기

방에 오래된 짜투리 sd 카드들이랑 짜투리 저장장치틀이 몇 개 있는데, 용량이 애매~~~해서 어디 가져다 쓰기가 뭣하다.ㅋㅋ 이거 전부 한데 업쳐서 단일 대용량 장치로 만들어서, 토렌트 머신을 돌리고 samba 서버를 설치하면, 밤에 잘 때 다 받아 놨다가 스트리밍으로 누워서 보면 좀 편하겠구나 싶어서-_- 시도해 봤다. 라즈베리 파이니까 전기 요금도 별로 안 들 것 같은데, 같은 생각을 하는 사람이 원체 많은 건지-_- 검색하면 엄청 나온다. 걍 기록차원에서 포스팅함.

일단 라즈베리 파이는 설치는 다 됐다 치자. 어차피 서버니까 비디오 메모리 할당은 조금만 해 두면 좋다. 다음 작업들은 모두 관리자 권한(sudo)로 해야 한다.

일단 가지고 있는 저장장치는 라즈베리파이 os가 설치된 4G짜리 sd카드 외에, 16G, 64G, 128G용량의 sd카드 3개가 있고, 아주 구형 mp3플레이어에서 분리한 ZIF타입의 하드디스크 20G짜리 1개가 있다. 이걸 usb에 몽땅 달고
fdisk -l
이라 치면 연결된 디스크 목록이 나온다. 그 다음은 어느 친절한 사이트[1]를 통째로 따라함-_-
mdadm 설치 후 (apt-get install mdadm)

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdc1 /dev/sde1 /dev/sdf1

라고 치니까 간단히 합쳐졌다. 초 쉽네-_-

참고로, RAID 0은 연결된 디스크들 중에 하나라도 고장나면 전체 데이터를 못 쓴다고 한다. 중요한 파일은 저장하지 말자.

포맷하고 (mkfs.ext4 /dev/md0) (시간 살짝 걸림)
마운팅 포인트 만들고 (mkdir /home/pi/raid)
권한 주고 (chmod 777 raid)
/etc/fstab에 다음 한 줄을 추가하고

/dev/md0     /home/pi/raid    ext4    defaults   1   2

마운팅 하면 (mount -a)

200기가 바이트의 디스크가 생겼다. ㅋㅋ 경로 같은 건 각자 수정하시라.

samba서버 설치하는 법은 다른 블로그[2]를 보고 따라했음. 그 다음 transmission 데몬을 설치하면 되는데, 이건 뭐 설명하는 사이트가 하도 많아서 생략. ㅋ

마지막으로
service transmission-daemon status
라고 치니까 무슨 UDP failed to set receive buffer 이런 에러 메세지가 뜨던데, 어느 사이트[3]에서 해결법이 나와 있었다.
/etc/sysctl.conf 파일을 열어서 맨 마지막에 다음 두 줄을 추가한다
net.core.rmem_max = 16777216
net.core.wmem_max = 4194304

예전에 라즈베리 파이로 삽질[4]한게 하도 많으니까 대충 봐도 다 이해 되는구만-_- 여하간 모든 장비를 구석탱이에 몰아 넣고 선 정리하면 완성! ㅎㅎㅎ 자유 소프트웨어가 좋긴 좋다. ㅋㅋㅋ 자유 소프트웨어 만세!!

 


2017.10.18
samba서비스는 디폴트로 쓰기 권한이 막혀 있다. 쓰기 권한을 얻으려면 /etc/samba/smb.conf 파일을 열어 [homes]항목 아래의 read only = yes 를 no로 바꿔주고 create mask = 0775, directory mask = 0775로 바꿔주고 서비스를 재시작 (service smbd restart) 하면 파일을 쓸 수 있다.
transmission의 web ui에 아이디와 비번으로 접속하기 번거로울 때는 /etc/transmission-daemon/settings.json 파일을 열어 “rpc-authentication-required”의 값을 false로 바꾸면 된다.

 


2017.10.22
아무 생각없이 라즈베리 파이를 확 껐다가 16G sd카드 하나가 맛이 가는 바람에 완전 생고생했다-_- 남은 다른 디스크들은 재마운트가 안 되는데 해결 방법은, 레이드 디바이스 정지 (mdadm –stop /dev/md0) 후 수퍼블럭을 제거 (mdadm –zero-superblock /dev/sda) 하면 됨.

 


[1] How to set up software RAID for Raspberry Pi in Funnyvale
[2] 라즈베리파이(Raspberry Pi) 삼바(Samba) 서버 만들기 (라즈비안 파일서버 설치방법) by 빌노트
[3] TRANSMISSION UTP AND UDP BUFFER OPTIMIZATIONS in Falks Blog
[4] 내 백과사전 Raspberry Pi 2를 구입하다 2015년 3월 14일

수학 교사를 위한 자바스크립트 트릭들

국내 수학교사/강사의 절대다수는 한/글을 워드 프로세서로 사용하고 있다고 추정한다. 여태 살면서 한/글 이외의 워드 프로세서를 사용하여 수학문제를 편집하는 수학 선생을 본 적이 없다-_- 혹시 있으면 댓글 함 달아 주시면 매우 감사하겠습니다. ㅋㅋㅋ

한/글에는 스크립트 기능이 있는데, 이게 자바스크립트랑 엄청 유사해서 자바스크립트의 트릭들이 다 적용된다. 이거 잘 쓰면 되게 편리한데, 지금까지 살아오면서 본인이 편리하다고 생각되지만 잘 모를법한 트릭들을 기록해 둔다. ㅋ

1. replace, RegExp 함수 대신 split, join 함수 쓰기

ㅌ=4ㅅ 라고 입력하면 x=4t 라고 짜잔! 하고 변환하고 싶은데 다음과 같은 루프를 쓰면 왠지 될 것 같다-_-

var k_list =['ㅁ','ㅠ','ㅊ','ㅇ','ㄷ','ㄹ','ㅎ','ㅗ','ㅑ','ㅓ','ㅏ','ㅣ',
'ㅡ','ㅜ','ㅐ','ㅔ','ㅂ','ㄱ','ㄴ','ㅅ','ㅕ','ㅍ','ㅈ','ㅌ','ㅛ','ㅋ',
'ㄲ','ㄸ','ㅃ','ㅆ','ㅉ','ㅖ','ㅒ'],
e_list =['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x','y','z',
'R','E','Q','T','W','P','O'];

for(i=0;i<k_list2.length;i++)
{
	text=text.replace(RegExp(k_list[i], "g"), e_list[i]);
}

근데 ‘xy’라고 치면 ‘툐’가 되어버리므로 이래서는 곤란하다. k_list 목록에 ‘툐’ 같은 걸 추가하면 될 것 같은데, 이게 또 초성이 없는 조합들이 안 먹힌다. 예를 들어 ‘over’라고 치면 ‘ㅐㅍㄷㄱ’인데, 한/글은 초성이 없는 한글문자를 지원하므로 깨지게 된다. 이 경우 RegExp 함수의 문제 같은데, replace 함수 대신에 split, join을 사용하여 치환하는 트릭[1]을 사용하면 ‘ㅐㅍㄷㄱ’이 ‘over’로 깔끔하게 변형된다.

text=text.split(k_list[i]).join(e_list[i]);

2. Byte order mark 제거

위와 같은 트릭을 쓰려면 처음에 텍스트를 유니코드로 받아야 하는데, 한/글 스크립트 팁이라면서 인터넷에 널리 퍼져 있는 다음과 같은 코드는 작동하지 않는다.

text = GetTextFile("TEXT", "saveblock")

저 TEXT 부분을 UNICODE로 바꾸면 된다. 이 경우 텍스트 앞쪽에 Byte order mark가 첨가되어 텍스트 앞부분의 더미를 아무리 치환하려고 해도 제거가 되지 않는데, 이걸 몰라서 원인을 찾느라 열라게 삽질했다-_- 다음과 같이 코드를 사용하면 된다.

text = GetTextFile("UNICODE", "saveblock")
text=text.replace(/^\uFEFF(1\.  )?/, '');

3. indexOf의 정규식 사용

자바스크립트의 indexOf에는 정규식이 안 통하는데, search에는 통한다. 근데 search에는 특정 위치부터 검색을 시작하는 옵션이 없다. stack overflow에 누군가 아주 훌륭한 함수[2]를 올려두었으니 그대로 카피해 쓸 수 있다.

function regexIndexOf(text, re, i) {
    var indexInSuffix = text.slice(i).search(re);
    return indexInSuffix < 0 ? indexInSuffix : indexInSuffix + i;
}

4. 반올림 처리

대부분의 프로그래밍 언어에서 이진수의 특성 때문에 0.1 + 0.2를 하면 0.3이 안 나오는데, 심지어 웹사이트[3]도 있고, 이를 이용한 smbc의 개그[4]도 있다. ㅋㅋ

이런 특성이 자동 보기[5]를 만들때 곤란한 경우가 있는데, 어느 웹사이트[6]에 있는 다음과 같은 코드를 쓰면 된다.

function roundXL(n, digits) {
	if (digits >= 0) return parseFloat(n.toFixed(digits));		// 소수부 반올림

	digits = Math.pow(10, digits);					// 정수부 반올림
	var t = Math.round(n * digits) / digits;

	return parseFloat(t.toFixed(0));
}

5. 특정 문자의 대문자

수학문제에 확률변수 X라든가 선분 AB 같은 것들은 대부분 대문자를 쓰고 있는데, 자동으로 대문자로 뿅 변하면 무척 편리하다. ㅋㅋ 문자열의 특정 부분만 대문자로 바꾸는 트릭은 stack overflow[7]에 있다. 다음과 같이 pos에서 pos2 사이를 대문자로 만들 수 있다.

text = text.substring(0,pos) + text.substring(pos,pos2).toUpperCase() + text.substring(pos2);

6. right 자동 넣기

수식에 left … right를 많이 쓰는데 은근 치기 귀찮다. right가 없을 때만 right를 자동으로 넣는 정규식

text = text.replace(/left\s*(((?!right)[^\}])*)([\}\)\]])?$/,'left$1 right$3');

7. 이미지 사이즈 절대 크기

클립보드의 이미지를 스크립트로 붙여 넣을 때, 항상 사이즈를 50%로 하고싶으면

HAction.Run("Paste");
FindCtrl();
HAction.GetDefault("ShapeObjDialog", HParameterSet.HShapeObject.HSet);
with (HParameterSet.HShapeObject)
{
	Height = Height*0.5;
	Width = Width*0.5;
}
HAction.Execute("ShapeObjDialog", HParameterSet.HShapeObject.HSet);

라고 하면 될 것 같지만 안된다-_- 왜냐하면 붙여 넣는 순간에 한/글이 이미지 사이즈를 조정하여 원본 크기가 아니라 편집용지 크기에 맞춰 붙여 넣어 주기 때문이다. 이걸 해결 못해서 매번 손으로 삽질했는데-_- 다음과 같이 변경하면 된다.

	Height = ShapeDrawImageAttr.OriginalSizeY*0.5;
	Width = ShapeDrawImageAttr.OriginalSizeX*0.5;

8. 한/글의 미주 버그

커서가 미주 안에 편집 상태에 있을 때, 미주를 생성하는 스크립트 HAction.Run(“InsertEndnote”) 를 실행하면 에러가 나면서 한/글이 비정상 종료가 된다. 문서를 날려먹는 멘붕을 몇 번 겪은 끝에-_- 다음과 같은 트릭을 쓰면 방지가 가능하다는 걸 알았다.

if ( HAction.Run("InsertEndnote") )
{
//커서가 미주 밖
} else
{
//커서가 미주 안
}

 


[1] [javascript|자바스크립트] 특정 문자 모두 바꾸기 (replaceAll) 쉽게 사용하기 in 젠트의 프로그래밍 세상
[2] Is there a version of JavaScript’s String.indexOf() that allows for regular expressions? in stackoverflow
[3] http://0.30000000000000004.com/
[4] http://www.smbc-comics.com/?id=2999
[5] 내 백과사전 아래 한글 수식 관련 매크로 스크립트 2015년 8월 19일
[6] [자바스크립트] 실수로 반올림, 소수점 자릿수 지정, Round To Float, JavaScript in mwultong Blog
[7] How do I make the first letter of a string uppercase in JavaScript? in stackoverflow

Microsoft Station Q : 마이크로소프트의 양자컴퓨터 연구랩

2년전에 이코노미스트지 기사[1]에서 필즈상 수상자인 Michael Freedman 선생이 마이크로소프트의 지원을 받아 양자컴퓨터를 연구하고 있다는 소식을 들은 적이 있다. 이 소식이 어찌됐나 까먹어가던 차에, 마침 정보통신기술진흥센터에서 발간하는 주간기술동향 기사[2]를 보니, 흥미롭게도 마이크로소프트가 타사에 비해 어떤 기술적 우위를 점하고 있는 듯한 소식이 들린다. 헐, 진짠가?

몰랐는데, Freedman 선생이 설립한 랩 이름이 Microsoft Station Q라고 한다. Station Q의 홈페이지의 소개[3]에 따르면, Freedman 선생이 연구를 나름 오래전부터 생각해오고 있었는 듯.

Freedman 선생은 토폴로지 쪽에 업적이 있는 사람이라고 알고 있는데, 마이크로소프트에서 연구하고 있는게 바로 topological quantum computer라고 한다. 뭐 본인은 topological quantum computer와 그냥 quantum computer가 뭐가 다른지도 모르겠다-_- 뭔가 토폴로지의 백그라운드가 사용되는 듯. ㅋ 이코노미스트지[1]에 anyon 등등의 나름 자세한 설명이 있으나 뭔 말인지 모르니 넘어갑시다.

주간기술동향의 기사[2]에서는 궁극적인 응용의 범위만 설명하고 있을 뿐, 어떤 측면에서 기술수준이 앞서있는지에 대한 단서는 별로 없어서 실망이다. 다만 설명들이 너무 좋은 이야기들만 늘어놔서 모두 신뢰하기 어려울 정도다. Too good to be true. 나름 재미있으니 일독을 권한다. 뭐 여하간 구글과 나사에서 D-wave의 양자 컴퓨터를 산다고 설치더니만[4] 마이크로소프트가 한 발 앞서는 듯 한 느낌을 준다.

여하튼 마이크로소프트가 기술적으로 앞서고 있는게 사실이라면, 대단하구만 Freedman 선생!! 필즈상이 미래에 업적을 이룰 사람에게 주는 격려상이라는 취지로 볼 때, 매우 수상자격이 있다고 생각한다. Cédric Villani씨는 필즈상 수상 이후에 공부는 안 하고 마크롱 팀에 들어가서 정치하려는 것과 대조되는 듯-_- 얼마전에 69% 득표로 국회의원에 당선된 듯 하다.[5,6]

뭐 여하간 미래는 어찌될지 모를 일이지만, 어쩌면 컴퓨터 자체가 여태까지의 실리콘 베이스에서 전혀 다른 구조로 변하는 혁신의 시초가 될 지도 모를 일이니 좀 더 관심있게 관찰해 볼 일인 것 같다.

 


2017.6.27
Quantum Computing: A beginner’s notes and overview of IBM’s Quantum Experience in IBM blog

 


2017.9.26
지디넷 MS, 양자컴퓨터용 프로그래밍 언어 만들었다 2017.09.26.12:05

 


[1] 이코노미스트 A little bit, better Jun 20th 2015
[2] 주간기술동향 1796호(2017.05.17 발행) MS의 양자 컴퓨터 개발, 양자 알고리즘 연구에서 타사에 우위 (pdf)
[3] https://stationq.microsoft.com/about-stationq/
[4] 내 백과사전 양자 컴퓨터가 실용화 될까? 2013년 5월 18일
[5] https://plus.google.com/+TerenceTao27/posts/cSQAfZCUyNV
[6] http://www.villani2017.eu/

엔비디아 GTX 1080 Ti 8개로 패스워드 뚫기

해쉬함수의 역방향 매칭을 찾는 툴 가운데 Hashcat[1]이 가장 유명한 것 같다. 패스워드 크랙 관련 글 중에서 이 툴이 언급되지 않는 게시물이 거의 없는 듯 하다. ㅋ

본인이 알기로, 일반인들이 구할 수 있는 엔비디아 제품군 가운데 가장 강력한 그래픽카드가 GTX 1080 ti인 걸로 알고 있는데, 다나와 최저가 검색을 해보니 판매자에 따라 다르지만 대략 80만~100만원 정도의 가격인 것 같다. 해커뉴스[2]를 보니 어떤 사람이 이걸 8개 동시에 달아서 Hashcat을 이용하여 해쉬함수의 역방향 매칭을 찾는 시험을 해 본 모양[3]이다. 헐-_-

비디오 카드 8개를 꼽을 수 있는 메인보드가 뭘까 궁금했는데, 글[3]에 나온 바로는 Supermicro 4028GR TR Red라고 씌여 있다. 검색해 보니 Super Micro Computer 사의 제품인데, 주로 서버용 제품을 만드는 회사인 듯. 스펙[4]에 PCI-E 3.0 16배 슬롯이 8개라고 나와 있다. 가격이 대략 천만 원 안쪽인 것 같다.

벤치마크 글[3]을 보니 md5 기준으로 초당 2572억번 해쉬할 수 있다고 한다. 흥미로운 부분은 해커뉴스[2]의 어느 사람의 댓글에 자기가 2010년 12월에 md5를 331억번 해쉬할 수 있는 시스템을 구성한 적 있다[5]고 하는데, 이 능력은 현재 GTX 1080 ti 한 개의 파워와 비슷하다. 대략 6.5년이 지나는 동안 해쉬량이 대략 2572/331 = 7.77배 증가했으므로, 근사적으로 2년에 2배 정도 증가한 셈이 된다. 병렬 컴퓨팅 파워는 아직도 무어의 법칙이 적용되는 것 같다. ㅎ

예전에 해커뉴스[6]에서 구글 n-gram[7]의 빈도분석과 패스워드 사전을 활용하여 hashcat으로 12자 이상의 패스워드를 뚫는 시범[8]을 본 적이 있는데, 이런 콤보전략과 병렬 파워를 동원하면 어지간한 길이의 패스워드는 거의 뚫릴 것 같다. 역방향 매칭을 피하기 위한 password salt는 거의 필수가 아닐까 싶다.

얼마전에 인터넷 호스팅업체 나야나가 랜섬웨어 제작범과 협상중이라는 기사[9]를 봤는데, 13억에 최종협상한 것[10]같다. 패스워드 크래킹 글[3]을 쓴 사람과 비슷한 시스템을 구성하는데 아마 2천만원 안쪽의 비용이 들 것 같은데, 나야나 사건[11]만 봐도 데이터 가치가 수 억이 넘는 경우는 허다할 듯 하다. 데이터의 가치가 수 천만 원 이상의 자료를 보호하는 데는 매우매우 강력한 패스워드와 더불어 추가적인 보호장치가 필요하지 않을까 싶다.

 


[1] https://hashcat.net/hashcat/
[2] https://news.ycombinator.com/item?id=14549710
[3] Password Cracking with 8x NVIDIA GTX 1080 Ti GPUs By Patrick Kennedy
[4] https://www.supermicro.com/products/system/4u/4028/sys-4028gr-tr.cfm
[5] https://news.ycombinator.com/item?id=2003888
[6] https://news.ycombinator.com/item?id=13400630
[7] 내 백과사전 거대한 코퍼스로 놀기 2010년 12월 22일
[8] Cracking 12 Character & Above Passwords in Netmux blog
[9] 지디넷 인터넷나야나 “랜섬웨어 해커와 협상 중” 2017.06.12.19:40
[10] 뉴스1 [단독]랜섬웨어에 당한 나야나, 해커와 13억원에 최종 합의 2017-06-14 17:07
[11] 인터넷나야나 랜섬웨어 감염 사태 in 나무위키

인텔 옵테인 : 3D 크로스포인트의 상용화

이번 달 이코노미 인사이트지에 3D 크로스포인트에 대한 기사[1]가 무척 흥미진진했다. 본인은 이런 기술의 이름을 처음 들었는데, DRAM과 SSD를 대체할 생각으로 개발중인 저장매체 기술인 듯 하다. xpoint는 기존의 DRAM이나 낸드플래시와는 구현원리 자체가 다른 듯 한데, 언제나 그렇듯이 기술적으로 본인은 전혀 아는 바가 없으니 자세한 건 묻지 마시라 ㅋㅋ 기사[1]에 따르면 현재 SSD보다 2.5배~77배나 빠른 비휘발성 메모리라고 한다. 반면에 단가는 D램의 경우 10달러/GB인데, xpoint는 4달러/GB라서 D램을 대체할 가능성까지 바라보는 모양. 어쩌면 향후 기술발전에 따라 집적도와 단가가 이보다 더 개선될 여지가 있을 수도 있다.

근데 주목해야 할 부분은 “비휘발성”이라 할 수 있을 것 같다. 정말로 DRAM을 비휘발성 메모리로 대체한다면, 컴퓨터를 탁 껐다가 켜면 끄기 직전의 상태로 돌아가는 것이 가능할 텐데, 이거 굉장한 혁신이 아닌가!! 컴퓨터를 부팅해서 업무가 가능하도록 다시 세팅하기까지 걸리는 여러가지 삽질을 감안한다면, 컴퓨터를 활용하는 업무의 생산성에서 비약적인 개선이 될 수도 있지 않을까 싶은 상상이 들었다.

근데 얼마전에 3D 크로스포인트를 상용화한 인텔의 제품 옵테인 메모리가 출시된 듯 한데, 아난드텍의 기사[2,3]를 보니 DRAM을 대체하기는 글렀다 싶어서, 앞에 했던 공상에서 김이 좀 빠진다-_- 게다가 딱히 ssd보다 성능이 많이 우월해 보이지도 않는 듯….

아직 오래되지 않은 기술이므로 집적도와 단가가 나아질지도 모른다. 그러면 어쩌면 낸드 플래시와 DRAM의 강자인 삼전의 지위가 무너질지도 모르지만, 아직은 소설같은 시나리오 같다. ㅋㅋ 때 마침 오늘 읽은 이코노미스트지 기사[4]에 도시바가 망하는-_- 이야기가 나오면서 낸드 플래시 시장점유율 그래프가 나오던데, 이번 글의 주제와 관련없는 기사지만 대충 첨부해봄-_-

근데 옵테인 저거 함 사서 써보고 싶긴 하다-_- 다다음달에 데스크탑 하나 맞춰볼까 하는데, 그 때쯤 되면 구할 수 있으려나-_-

 


2017.10.28
아난드텍 The Intel Optane SSD 900P 280GB Review October 27, 2017 9:30 AM EST

 


2017.11.16
아난드텍 Intel To Launch 3D XPoint DIMMs in 2H 2018 November 14, 2017 6:20 PM EST

 


[1] 이코노미인사이트 인텔·마이크론의 차세대 메모리 야심 2017년 05월 01일 (월)
[2] 아난드텍 The Intel Optane Memory (SSD) Preview: 32GB of Kaby Lake Caching April 24, 2017 12:00 PM EST
[3] 아난드텍 TechInsights Publishes Preliminary Analysis of 3D XPoint Memory May 27, 2017 8:01 AM EST
[4] 이코노미스트 Embattled Toshiba tries to sell its flash-memory unit May 18th 2017