이코노미스트지의 합성생물학 특집기사

1년에 4회 나오는 이코노미스트지의 Technology Quarterly가 이번 주에 나왔는데, 합성생물학 특집기사[1,2]가 실려있다. 기사가 초 길어서 좀 어지러운데-_- 상당히 흥미진진한 내용이 많으니 일독을 권함. 내가 잘 모르는 분야다 보니까 몰랐던 내용들이 엄청 많이 나온다. 과거와 현재의 연구 흐름과 관련 산업동향까지 포괄적으로 소개하고 있어 흥미롭다.

iGEM이라든지 Hachimoji DNA 같은 건 다 처음 듣는 이야기다. 특히 탄소 대신 실리콘(!)으로 된 enzyme을 directed evolution 시키는 이야기는 초 놀랍네. 신박하구만.

합성생물학 하니 예전에 봤던 DNA 컴퓨터[3] 이야기가 생각나는데, Travelling salesman problem을 DNA로 해결하는 건 초 신박하다. 얼마전에 ieee spectrum에서 nature논문[4]을 소개하는 기사[5]를 봤는데, 이쪽분야도 나름 발전하고 있는 모양.

여하간 일독을 권함. 초 신기하네. ㅋㅋㅋㅋ 일전에 Big economic ideas 특집 기사[6,7]처럼 한 번씩 재밌는 기사를 때려주니까 이코노미스트지를 끊을 수가 없네. ㅎㅎㅎ

.


[1] 이코노미스트 The promise and perils of synthetic biology Apr 4th 2019
[2] 이코노미스트 The engineering of living organisms could soon start changing everything Apr 4th 2019
[3] 내 백과사전 DNA 컴퓨터 2012년 3월 21일
[4] Damien Woods, et al. “Diverse and robust molecular algorithms using reprogrammable DNA self-assembly” Nature volume 567, pages 366–372 (2019) https://doi.org/10.1038/s41586-019-1014-9
[5] ieee spectrum DNA Computer Shows Programmable Chemical Machines Are Possible 22 Mar 2019 | 13:43 GMT
[6] 내 백과사전 이코노미스트지의 Big economic ideas 시리즈 2016년 8월 1일
[7] 내 백과사전 이코노미스트지의 Big economic ideas 시리즈 두 번째 2017년 8월 7일

비둘기 인터넷 프로토콜 : 대량 데이터 전송에서 RFC 1149의 유효성

컴퓨터 공학자들이 인터넷에 적용할 새로운 아이디어를 제안하는 목록인 RFC에서는, 해마다 만우절에 개그성 제안을 제시한다. 위키피디아의 April Fools’ Day Request for Comments 항목에 전체 목록이 있으니 참고 바란다.

개중에 1990년 만우절에 제시된 RFC 1149[1]가 유명한데, 새를 활용하여 데이터를 전송하는 인터넷 프로토콜의 방법을 제시한 아이디어다. 이걸 보고 2001년에 Bergen시의 리눅스 사용자 그룹에서 실제 실험을 시행했다고 한다. 위키피디아의 IP over Avian Carriers 항목에 따르면 당시 9개 패킷 중 5개가 손실되었고 평균 핑값은 5222806.6ms 였다고 한다. ㅎㅎㅎ

ieee spectrum의 만우절 기사[2]를 보니, sd카드의 집적도가 올라갔기 때문에, 대용량 전송이 필요할 시에는 여전히 전서구 인터넷 프로토콜이 통상적인 인터넷보다 속도가 빠르다고 한다. 올해 초에 샌디스크에서 테라바이트 sd카드가 출시된 모양[3]인데, sd 카드의 무게라면 비둘기가 서너개 정도는 무리없이 전송가능하지 않을까. 아마 몇 테라바이트급 이상의 대용량 데이터를 근거리에 전송할 경우, 비둘기가 월등히 빠르지 않을까 싶다. ㅎㅎㅎ

얼마전에 중국에서 비둘기 매니아들의 속도 경쟁 격화로 인해, 최고 가격의 비둘기가 125만 유로(!)에 달한다는 기사[4]를 봤는데, 속도 빠른 전서구는 엄청나게 비싸구만. 어느 분야든 매니아의 세계는 오묘하다. ㅎㅎㅎ 여하간 추가비용을 고려하지 않는다면-_- 근거리 대용량 데이터 전송으로 비둘기를 사용하는 것도 가능한 한 가지 옵션이 아닐까 싶다. ㅋㅋ

.


2019.4.2
ieee spectrum Consider the Pigeon, a Surprisingly Capable Technology 29 Mar 2019 | 19:00 GMT

.


[1] David Waitzman (1 April 1990). Standard for the transmission of IP datagrams on Avian Carriers. IETF. doi:10.17487/RFC1149
[2] ieee spectrum Pigeon-Based ‘Feathernet’ Still Wings-Down Fastest Way to Transfer Massive Amounts of Data 1 Apr 2019 | 13:30 GMT
[3] 테크크런치 The world’s first 1-terabyte SDXC card is here 3 months ago
[4] 가디언 ‘Lewis Hamilton of pigeons’ sold for world record €1.25m Mon 18 Mar 2019 12.24 GMT

수학 수업시간 중에 노트필기를 LaTeX으로 하는 것이 가능한가?

일전에 MS워드와 LaTeX의 문서생산성을 비교한 연구[1,2]가 갑자기 생각나는데, LaTeX으로 수학 문서를 작성하는 것이 모양은 좋긴 하지만, 빠르게 내용이 지나가는 수업시간 도중에, 내용을 이해해가면서 LaTeX으로 노트필기를 하기에는 아무래도 도저히 무리가 있는게 아닌가 싶은 생각이 든다.

근데 해커뉴스[3]에서 수학 수업의 노트필기를 LaTeX으로 한다는 사람의 이야기[4]가 나와 있다. 헐… 이게 가능해?

이 사람의 주장[4]에 따르면, 칠판에 수식을 쓰는 속도와 거의 비슷하게(!) 수식을 작성할 수 있고, 칠판에 그림을 그리는 속도와 거의 비슷하게(!!) 그림을 그려 넣을 수 있다고 한다. 이게 어째 가능하지????

보니까 온갖 단축키와 기믹을 총동원해서 문서를 만드는 모양인데, 대단하긴 하지만 내공이 너무 높아서 어지간해서는 도저히 따라할 수 있을 법해 보이지 않는다-_- 해커뉴스[3] 사람들도 걍 손으로 써라는 의견이 있구만. ㅎㅎㅎ

이미 손으로 쓰는 계산기[5] 같은 것도 나온지 오래 됐는데, 손으로 쓰면 그것을 LaTeX화 해주는 소프트웨어 구현도 아마 불가능하지는 않을 듯 하다. 다만 수요가 없어서 문제일 듯.

언젠가 아이패드와 애플펜슬로 수학 노트필기 하려는 사람을 본 기억이 나는데, 그냥 종이로 하면 될 거를 왜 이리 컴퓨터로 하려는지 모르겠네-_- 깔삼한 노트정리를 갖고 싶으면, 일단 수업시간에 손으로 대충 쓰고 그걸 컴퓨터로 옮기면, 복습도 되고 여러모로 좋을 듯 하다. 물론 사람마다 다르겠지만, 내가 보기에는 역시 수학 필기에는 종이와 연필이 최고다-_-

아니면 원뿔곡선 저항운동[6]을 해서-_- 칠판을 거부하는 방법도….-_- ㅋㅋㅋㅋㅋ

.


[1] Markus Knauff, Jelica Nejasmic, “An efficiency comparison of document preparation systems used in academic research and development.”, J. PLoS ONE 9, e115069 (2014) doi:10.1371/journal.pone.0115069
[2] 내 백과사전 MS 워드와 LaTeX의 문서생산성 비교 2015년 1월 6일
[3] How I’m able to take notes in mathematics lectures using LaTeX and Vim (hacker news)
[4] How I’m able to take notes in mathematics lectures using LaTeX and Vim (castel.dev)
[5] 내 백과사전 손으로 쓰는 계산기 2011년 5월 16일
[6] 내 백과사전 원뿔 곡선 저항운동 2017년 5월 30일

일반적인 투자법을 200년 이상의 장기데이터에 적용하기

해커뉴스[1]를 보니 블룸버그의 기사[2]에 대해 화제가 되고 있었다. 블룸버그의 기사는 Guido Baltussen, et al.의 연구[3] 결과를 설명하는 내용인데, 논문은 SSRN에서 받을 수 있다. 근데 원체 지식이 없으니 원문을 봐도 잘 이해는 안 되던데-_- 여하간 나는 이렇게 이해를 했다. ㅋ

일반적으로 잘 알려진 프리미엄 팩터들을 214년간의 주가지수, 채권, 외환, 원자재 변동에 적용하면 실제로 얼마나 효과가 있는지 확인해 본 듯 한데, 이만큼의 장기 백데이터를 활용한 사례는 과거에도 별로 없는 듯해 보인다. 뭐 논문의 큰 뼈대는, 하늘아래 새로운 거 없고 이전에 학술적으로 알려진 결과와 큰 차이가 없다는 이야기 같다.

블룸버그 기사[2]를 보니 시장 비효율성도 드러나는 모양이던데, 설령 효율적 시장가설이 맞다해도, 그 비효율성이 제거되려면 이 정도 장기가 필요하다는 의미일지도 모른다. 아니 근데 내가 내용을 맞게 이해한 건지도 잘 모르겠다. ㅋ 케인즈 대사부께서 장기적으로 우리는 모두 죽는다(In the long run we are all dead)고 했는데[4], 인생을 오버하는 기간에 효율성이 구현되는게 얼마나 의미있을지 모르겠다. ㅎㅎㅎ 번 돈은 살아서 써야지-_-

예전에 효율적 시장가설이 참이라는 명제와 P = NP는 서로 동치라는 괴이한 주장[5]을 본 기억이 나는데, 경제학계의 최대 떡밥과 전산수학계의 최대 떡밥을 서로 엮는 엄청난-_- 주장이라서 꽤 재미있다. ㅎㅎ 본인이 그 주장[5]을 대충 보니 거의 썰-_- 수준의 논의 같아 보이던데, 시장데이터를 몽땅 처리하여 반영하는게 NP문제니까 시장이 효율적이 되려면 P = NP와 동치라는 이야기 같다. 이 주장이 맞다면 상당수의 전산수학자들은 P ≠ NP라고 믿고 있다고 들었는데, 아마 시장도 비효율적이라고 봐야할 듯 하다. ㅎㅎ

.


[1] Crunching 200 years of stock, bond, currency and commodity data (hacker news)
[2] 블룸버그 Eternal Market Patience Offers Eternal Rewards 2019년 2월 7일 오후 2:01 GMT+9
[3] Baltussen, Guido and Swinkels, Laurens and van Vliet, Pim, Global Factor Premiums (January 31, 2019). Available at SSRN: https://ssrn.com/abstract=3325720
[4] John Maynard Keynes (wikiquote.org)
[5] Philip Maymin, “Markets are efficient if and only if P = NP”, arXiv:1002.2284 [q-fin.GN]

세상에서 가장 어려운 Captcha


Captcha : 사각형들 중에서 파이프가 아닌 것들을 선택하시오.

Steven Landsburg 선생의 블로그[1]를 보니 이런 개그가 있길래 나도 함 따라 해 봤음. ㅋ

.


2018.12.21

유튜브 영상[2]을 보니 smbc의 로봇임을 증명하는 개그[3]가 생각나는구만. ㅋ

.


2019.1.1
웃겼다. ㅎㅎㅎ
https://www.smbc-comics.com/comic/p-bot

.


[1] This is not a blog post (thebigquestions.com)
[2] Robot beats “I am not a Robot” Captcha (youtube 30초)
[3] http://www.smbc-comics.com/?id=2999

3D 프로그래밍에서 사원수 제거?

몰랐는데 3D 그래픽 프로그래밍에서 Quaternion이 상당히 많이 쓰인다고 한다. 헐. 이런 쓸데없어 보이는 게 실용적 용도가 있으리라고는 꿈에도 몰랐네-_-

아시다시피 Quaternion은 복소수를 확장한 수집합인데, 공간상의 회전을 구현할 때 3D 게임그래픽 엔진에 널리 쓰이는 것 같다. 아마 3D 그래픽 프로그래머들은 많이 배우시는 듯.

해커뉴스[1]에서 3D엔진에서 사원수를 제거하자는 취지의 글[2]이 올라와 있던데, 이미 3D 그래픽 프로그래머들 사이에서 나름 논란적인 주제[3]인 것 같다. 사실 복소수도 현실과의 거리감이 있는 수라는 느낌이 드는데, 복소수를 확장한 number system의 괴이한 operation을 공부해서 프로그래밍하는 것에 거부감을 느끼는 것도 무리는 아닐 듯 하다. ㅎ

글[2]을 대충 봤는데, bivector를 써서 수학적으로 사원수를 회피하는 방법을 구현하는 것 같다. bivector는 처음 봤네. ㅎㅎㅎ 유명한 개념은 아닌 듯 하다.

사이트[2] 주인이 유튜브 영상[4]도 만들었으니, 그 정성은 인정해줄만 하다. ㅎㅎ 개인적으로는 지식을 학습할 때 영상을 보는 건 핵심을 알기가 답답해서, 글로 읽는 것을 더 선호함.

근데 bivector를 공부할 정도면 그냥 quaternian을 공부해도 무리는 없지 않을까 싶다-_- 어차피 수학적 난해함에 거부감이 있어 quaternian을 거부하면, bivector의 vector calculus도 거부감은 똑같을 것 같다. ㅎㅎㅎ

.


[1] Let’s remove Quaternions from every 3D Engine (hacker news)
[2] Let’s remove Quaternions from every 3D Engine (marctenbosch.com)
[3] Do We Really Need Quaternions? (gamedev.net)
[4] Let’s remove Quaternions from every 3D Engine (Intro to Rotors from Geometric Algebra) (youtube 15분 27초)

세익스피어 작품 전체를 하나의 이미지로 압축하기

해커뉴스[1]에서 신박한 글을 봐서 포스팅해봄. ㅋㅋㅋ

트위터에 어떤 사람이 1.93MB 크기의 이미지 파일 하나를 올렸는데[2], 그 이미지 바이너리를 zip형식으로 압축을 풀면(unzip shakespeare.zip), 64,512바이트 크기로 쪼개진 rar 분할압축파일 31개가 된다. 이것의 압축을 다시 풀면 (unrar e shakespeare.part001.rar) 6.7MB 크기의 html 파일 하나가 되는데, 이것에 세익스피어 전체 작품이 텍스트로 들어있다고 한다. 헉!!

근데 윈도우즈의 반디집[3]으로는 잘 안되는 것 같은데, 다른 압축 프로그램은 확인해보지 않았다. 라즈비안에서 unzip, unrar 커맨드로 압축을 푸니까 잘 된다.

신박한 점은 데이터를 최종적으로 압축한 파일의 이미지가 다시 세익스피어의 초상화가 된다는 부분인데, 무슨 트릭을 쓴 건지 모르겠지만 대단하구만. 게다가, sns에 이미지를 올리면 sns서버에서 자체적으로 이미지 재처리를 하는 것이 보통인데, 트위터는 작은 이미지는 전혀 재처리를 하지 않는 듯 하다.

일전에 불법 소수[4] 이야기도 했지만, 동일한 정수값으로 데이터를 전달하는 다양한 트릭에 대해 생각하게 만든다.

여하간 완전 신박하구만. 세상은 넓고 재주있는 사람은 많다 ㅎㅎㅎㅎ

.


2018.10.31
해커뉴스 댓글[1]을 보니 러시아에서 раржпег 이라는 이름으로 이미 잘 알려진 트릭인 듯 하다. 물론 раржпег는 rarjpeg를 키릴문자로 직접 바꾼 말이다. ㅋ 역시나 하늘 아래 새로운 생각은 별로 없다. ㅋㅋ 어느 사이트[5]에 예시 이미지 파일들을 소개하고 있다. 이미지들을 rar 확장자로 저장하여 압축을 풀면 다른파일이 된다. 본인의 초 짧은-_- 러시아어 실력으로 картинка с сюрпризом는 이미지 속의 놀라움이라는 뜻인 듯.

.


2019.1.19
JPG 파일에 다른 파일 심기 (udaqueness.blog)

.


[1] JPEG image of Shakespeare which is also a zip file containing his complete works (hacker news)
[2] https://mobile.twitter.com/David3141593/status/1057042085029822464
[3] Windows용 반디집 (kr.bandisoft.com)
[4] 내 백과사전 불법 소수 illegal prime number 2013년 10월 18일
[5] Rarjpeg — картинка с сюрпризом (netlore.ru)

에이다 러브레이스의 최초의 프로그램을 파이썬으로 구현하기

주요 메이저 프로그래밍 언어 중에서 오직 파이썬만이 상승세를 타고있다는 이코노미스트지의 기사[1]를 봤는데, 파이썬이 진짜 인기가 높긴 높은 것 같다. 뭘 했다하면 다 파이썬이다. ㅋ

에이다 러브레이스는 최초의 프로그래머로서 널리 알려져 있는 사람인데, 그녀에 대한 소소한 트리비아는 Sydney Padua[2]에 잘 나와있으니 참고 바란다. ㅎ Wolfram 선생이 와이어드지에 기고한 기사[3]에 전반적인 설명이 잘 돼 있다. 근데 글이 넘 길어서 영어 울렁증이 있으니 힘들다-_- 그녀가 기여한 업적이 과장되어 있다는 논란도 좀 있는 듯.

저번달에 그녀가 작성한 알고리즘이 담긴 책이 Moore Allen & Innocent 옥션하우스에서 95000파운드에 낙찰됐다[4]고 하는데, 아마 이 숫자는 해머 프라이스인듯 하고, 실제 지불가격은 114,000 파운드라고 한다.[5] 일반적으로 옥션에서 물건이 거래되면 해머 프라이스에서 바이어 프리미엄으로 10~30%를 더 지불한다. 초 비싸네 ㅋㅋ

그런데 그녀가 작성한 그 최초의 ‘프로그램’은 무엇을 하는 계산인가? 계산 절차를 작성한 노트가 여러 장이 있는 모양인데, 그 중에 note G에 있는 베르누이 수를 계산하는 절차가 최초의 프로그램으로 인정되는 것 같다. 근데 어떤 절차로 베르누이 수를 계산하는 건지 원본 노트를 암만 봐도 이해가 전혀 안 되던데, 이 절차를 파이썬으로 구현한 사람이 알고리즘을 설명한 글[6]을 봤다. 역시나 또 파이썬인가. ㅋ

다음 점화식을 활용해서 순차적으로 구하는 것 같다.

\displaystyle B_n = \frac{1}{n+1}\sum_{k=0}^{n-1}\binom{n+1}{k}B_k

참고로 Note G에 네 번째 계산 절차에서 v5 / v4는 오타라고 한다. 정확히는 v4 / v5가 되어야 하는데, 이걸 두고 해커뉴스[7] 사람들 중에는 최초의 버그라고 말하는 이도 있는 듯. ㅋ 최초의 ‘버그’는 패널 F의 70번 릴레이[8] 아닌가? ㅋ

.


[1] 이코노미스트 Python has brought computer programming to a vast new audience Jul 19th 2018
[2] 내 백과사전 [서평] 에이다, 당신이군요. 최초의 프로그래머 – 컴퓨터 탄생을 둘러싼 기이하고 놀라운 이야기 2018년 1월 15일
[3] 와이어드 UNTANGLING THE TALE OF ADA LOVELACE 12.22.1512:00 AM
[4] 엔가젯 Ada Lovelace manuscript and algorithm fetch $125,000 at auction 07.25.18
[5] Rare book by world’s first computer programmer sells for £95,000 (mailchi.mp)
[6] Running the first program (Enigmatic Code)
[7] What Did Ada Lovelace’s Program Actually Do? (hacker news)
[8] 내 백과사전 1947년 9월 9일, 최초의 버그가 발견되다 2013년 9월 10일

그래프 이론으로 외환시장에서 수익 내기?

해커 뉴스[1]에서 흥미로운 글[2]을 봤는데, 분량은 꽤 길지만 대단히 재미있으니 일독을 권한다. 이 블로거 뭐하는 사람인지 궁금하네. ㅋㅋ

원래 글[2]은 그래프 이론을 응용하여 문제를 해결하는 세 가지 이야기를 하고 있는데, 첫 번째 이야기가 외환시장에서 아비트리지 수익을 내는 법이고, 두 번째 이야기가 강화 학습에 관한 내용이고, 마지막이 컴퓨터 그래픽스에서 path tracingray tracing을 구현하는 법이다. 근데, 관련 지식이 없어서 첫 번째 이야기만 빼고 무슨 말인지 잘 모르겠음-_-

여하간 첫 번째 이야기 만으로도 충분히 재미있으니 볼만하다. ㅎㅎㅎ

전산 수학의 중요한 부분 중 하나인 그래프 이론은 개론 정도만 배운 적이 있는데, 어렸을 때, ramsey problem에서 R(4, 6)의 값을 구해보려고 나름 용을 쓰던게 생각나는 구만 ㅋㅋㅋㅋ 일전에 R(5, 5) 이야기[3]를 한 적이 있다.

weighted graph에서 최단거리를 찾는 방법 중에 Bellman–Ford algorithm이 있는 모양인데, 이 알고리즘은 Dijkstra’s algorithm보다 속도는 좀 느리지만, edge weight가 음수인 경우도 처리할 수 있는 장점이 있다. Dijkstra 꺼는 음수가 처리 안되는 듯 하다. 사실 pseudo-code를 봐도 Bellman–Ford 알고리즘이 잘 이해가 안 되던데-_- 어느 친절한 블로거의 설명[4]을 보니 이해가 된다. 이 자리를 빌어 감사함. ㅎㅎ

외환시장은 세계에서 가장 큰 시장이라고 하는데, 블로그의 글[2]에 따르면 일일 거래금액이 5 trillion USD나 된다고 한다. 거래 규모가 방대하므로 미미한 비율의 수익률도 매우 큰 돈이 될 수 있다.

각 통화 (USD, JPY, BTC 등등)을 그래프의 노드라고 보았을 때, 각 통화의 교환비율(즉 환율)의 로그값을 weight로 갖는 그래프를 생각해볼 수 있다. 즉, 두 통화 A, B에 대해 log B/A를 directed weight로 갖는다. 이 경우 그래프를 순환하여 weight의 합이 0이 넘거나 모자라는 path를 찾는 경우가 바로 arbitrage trade의 기회가 될 수 있는 것이다. 왜냐하면 weight의 합산은

\displaystyle \log \frac{B}{A} + \log \frac{C}{B} + \cdots + \log \frac{A}{Z} = \log \frac{A}{A}

이 되고, 이 값이 0이 되어야 완전히 효율적인 시장이 된다. 이 값이 0이 아니라면 그 경로를 따라 외환을 환전하면 (음수면 역방향) 최총적으로 본래의 통화로 돌아왔을 때, 돈이 벌리는 것이다. ㅋㅋㅋ 원래 알고리즘이 합산을 하는 거라 로그를 썼지만, 실제로 구현할 때는 그냥 곱셈으로 1과 비교하는 게 편리할 듯 하다.

근데 모든 노드에 대해 거의 실시간으로 Bellman–Ford algorithm으로 계산하여 루트를 찾아야 하는데, 얼마나 효과적일지는 모르겠다. 뭐, 매우 미미한 비율이라도 시장이 원체 크고 환전 이후에는 제자리로 돌아오기 때문에, 짧은 기간동안 레버리지를 크게 하면 버는 돈이 상당히 될 듯 하기도 하다. LTCM의 초창기 높은 수익도 미미한 아비트리지 수익률을 큰 레버리지로 올렸기 때문에 가능했으니. ㅋ

아니면 거래 속도를 더 중시한다면 외환시장대신 cryptocurrency 사이의 교환비율에 Bellman–Ford algorithm을 적용해도 가능할 듯 하다. 다양한 종류의 cryptocurrency를 취급하는 거래소 내에서 충분히 연산속도가 빠른 머신을 이용하면 아비트리지 수익이 나올 듯 하다. 다만 거래수수료가 문제일 듯. 이쪽은 한국인들이 워낙 호구[5]라서 시장이 불균형일 때가 더 많으니, 적용이 더 수월할 듯 하다. ㅎㅎ

.


[1] Dijkstra’s in Disguise (hacker news)
[2] Dijkstra’s in Disguise (blog.evjang.com)
[3] 내 백과사전 R(5,5)의 upper bound가 하나 줄어들다 2017년 3월 30일
[4] 벨만-포드 알고리즘 (ratsgo.github.io)
[5] 내 백과사전 비트코인 국내가격과 국제가격의 엄청난 차이 2017년 5월 27일