전체 글 256

Compound Interest

교수님께서 읽어보라고 공유를 해주셨던 글에서 인상 깊었던 글귀. “Knowledge and productivity are like compound interest.” 지식, 생산성은 복리 같다는 말이다. 내가 무엇에 대해서 잘 알게 된다면, 더 효율적으로 일할 수 있게 되고, 더 많은 일을 할 수 있게 된다는 점. 그렇게 되면 더 많은 기회가 주어지기도 하고. (거기다가 요즘에는 scalability를 기본적으로 깔고 들어가야 한다.) 다시 드는 생각은 무엇이냐면, 어떤 지식들은 당시에는 중요할지 몰라도 시간이 가면 갈수록 휘발되기도 한다는 점(꽤나 빠르다!). 아마도 더 중요한 것은 어느 지식의 interest rate가 높은지 핵심을 파악하는 능력이라고 볼 수 있겠다. 세부 지식을 습득하면서 길을 트..

일상 & 단상 2020.01.11

Ponzi Scheme

폰지 사기에 대한 정의는 다음과 같다. 투자 사기 수법의 하나로 실제 아무런 이윤 창출 없이 투자자들이 투자한 돈을 이용해 투자자들에게 수익을 지급하는 방식이다. 폰지 사기는 대부분 신규 투자자들을 끌어들이기 위해 보통의 정상적인 투자가 보장할 수 없는 고수익을 단기간에 매우 안정적으로 보장해준다고 광고한다. 소위 폰지 사기와 암호 화폐를 동일시하는데, 나는 이러한 비교가 잘못되었다 생각한다. 가격이 하락하면 폰지 사기고, 가격이 상승하면 세상을 바꿀 최고의 기술일까? 대상 자체는 바뀐 것이 없는데, 대상에 대한 주관적인 평가가 달라졌을 뿐이다. 폰지 사기를 구성하는 가장 큰 요건은 1) 불투명하고 지속 불가능한 사업 구조, 2) 확정적인 고수익 약속이다. 암호 화폐의 교환 가치는 0은 아니지만, 내재 ..

일상 & 단상 2020.01.11

[C++] GCC에서 미리 컴파일된 헤더(Precompiled Header)

미리 컴파일된 헤더 (Precompiled Header) C++에서 #include 의 의미는 파일의 내용을 그대로 가져와서, 하나의 컴파일 유닛(오브젝트 파일) 빌드할 때 포함한다는 의미다. 그런데 C++의 헤더 파일의 양이 상당하므로 하나의 오브젝트 파일을 만드는데도 비용이 많이 든다. 미리 컴파일된 헤더(Precompiled header)는 자주 사용되지만 거의 바뀌지 않는 표준 라이브러리 헤더 등을 말 그대로 미리 컴파일하여 매번 반복적으로 컴파일하는 허튼짓(...)을 피하기 위한 기능이다. 헤더 지옥 구경하기 gcc에서 -E 옵션을 사용하면 전처리가 끝난 후 컴파일하게 되는 코드를 stdout으로 출력한다. -E Stop after the preprocessing stage; do not run..

프로그래밍 2020.01.11

파일 효율적으로 정리하기

“분류”는 정말 비용이 많이 드는 작업이다. 처음부터 스케일을 크게 잡고 분류하면, 결국은 개별 분류에 해당하는 문서들이 얼마 없는 상황도 생긴다. 여러 번 분류 기준이 달라지고 작업 위치가 달라지면 새로 분류하는 데 시간을 많이 쏟게 된다. 또 문서는 하나의 주제에 해당하는 것만 아니라 애매하게 여러 가지 주제에 걸쳐있는 경우도 허다하다.' 그런데 그렇게 시간과 노력을 통해서 열심히 분류를 하면 다시 보게 되는지? 트리 형태로 만들어놓게 되면 여러 번 과정을 거쳐 자료를 얻어야 하는데, 정말 필요하면 찾아서 보지만, 다시 복습(?)을 하는 경우는 드물다. 요즘에는 아예 yyyymmdd 식으로 디렉토리가 많이 생기더라도 depth를 최대 1-2로 제한하려고 하는데, (그리고 수정이 필요하면 다시 rece..

일상 & 단상 2020.01.11

[OCaml] 삽입 정렬(Insertion Sort)

let rec insert lst x = match lst with | [] -> [x] | h::t -> if h < x then h::(insert t x) else x::lst;; let insertion_sort lst = List.fold_left insert [] lst;; let v = insertion_sort [5; 3; 2; 4; 1];; 기본적으로 insert라는 함수는 정렬이 된 lst에 x를 끼워 넣는 역할을 한다. 빈 list에 대해서는 당연히 x 하나만 가지고 있는 singleton list [x]을 리턴하면 된다. 그렇지 않은 경우에는 x가 제일 작으면 제일 앞에 배치하면 되고, 그렇지 않은 경우에는 tail list에 대해서 재귀적으로 적용하면 x를 끼워 넣을 수 있는 위치..

프로그래밍 2020.01.11

[Linux] xrdp에서 xfce4 사용하기

Ubuntu Linux에 원격 접속을 하기 위해 xrdp를 설치하면 gnome desktop이 띄워진다. 그러나 다소 무겁기 때문에 가벼운 xfce4 desktop을 사용해보려고 한다. xrdp & xfce4를 설치한 후, ~/.xsession (파일이 없으면 생성)에 startxfce4를 추가한다. xrdp를 설치하고 난 다음에 xrdp user를 ssl-cert group에 추가하는 명령어다. (패키지에서 자동으로 안해주나...) sudo adduser xrdp ssl-cert ~/.xsession startxfce4 과거 문서에서는 startxfce4 대신에 xfce4-session을 추가하였는데, 큰 차이는 없는 것 같다. /etc/xrdp/startwm.sh 파일은 굳이 편집하지 않는다. exe..

컴퓨터 일반 2020.01.11

15 years ago...

예전에 15년 전에 phpschool에 질문을 올렸엇다. 대우에 대해서 고민했던 이유는 아마도 IT 버블을 거치면서 단기 개발자들이 양성되면서 프로그래머의 가치가 폭락했기 때문이 아니었나 싶다. 여기 자바 하나요~ 당시 가지고 있던 컴퓨터로는 VC++를 돌리기가 매우 버거웠던 기억이 난다. 그래도 PC를 75MHz에서 500 MHz로 바꾸고 나서는 30분 넘게 빌드하고 그런 일은 없어지긴 했지만… VB를 고수했던 이유는 컴파일에 대한 부담감이 없어서였고, 나름대로 Intellisense 기능이 좋아서 특별한 문서 없이도 개발을 할 수 있었던 것 같다. VC++의 경우에는 헤더 지옥도 지옥이지만, 2005년까지는 거의 안정화되지 않았다고 본다. 특히 2003은 극악이었다. 그때와 비교하면 지금의 개발 환경..

일상 & 단상 2020.01.11

Trust, but verify

2018 남북정상회담에서 눈여겨볼 수 있었던 점은 평양 시민 15만 명에 대한 대통령 연설(혹은 감사 인사). 그리고 매스게임에서 볼 수 있었던 메시지들이었다. 일부 선전선동이 담긴 내용은 어쩔 수 없지만 어떤 부분에 대해서는 상당히 전향적이라는 느낌도 들었다. 긍정적 기대감이 생기는 것은 사실이나 과거에도 여러 번 소위 뒤통수를 맞았던 기억이 있다. 전혀 성격이 다른 두 체제가 융합될 수 있을지에 대한 근본적인 의구심도 있다. 가장 중요한 비핵화 문제가 해결되고 공동 번영의 길로 나갔으면 하는 바람은 있다. Доверяй, но проверяй. (글 옮김; 2018년 9월 19일)

일상 & 단상 2020.01.11