9월 중순의 어느 날, 어떤 친절한 분께서 내가 올해 단 한 번도 블로그 포스트를 쓴 적이 없다는 사실을 알려주셨다. 한국에도, 인류에도 굵직굵직한 사건들이 있었던만큼이나 내 개인사에도 꽤 큰 변화와 사건을 겪었던 한 해여서 글 쓸 시간이 부족했다고 한다면, 지나친 자기 합리화일까? 1

2016년이 저물기까지 이제 고작 몇 시간 남았지만, 단 하나의 포스트라도 발행하기 위해 서둘러 데이터를 모으고 기억을 더듬어보았다.

  1. 올해의 사건들
    1. 1-3월: 넘버웍스
    2. 4-6월: 졸업
    3. 7-8월: 태국
    4. 9-12월: 취직
  2. My year in data
    1. Local activities
    2. Online activities
    3. Offline activities
  3. 올해의 Things
    1. 올해의 책: “Algorithms to Live By”
    2. 올해의 음악: “Chopin Polonaise in A flat major Op.53 (played by Sungjin Cho)”
    3. 올해의 영화: None
    4. 올해의 장난감: “애플펜슬”
    5. 올해의 기타등등
  4. 2017년은?

올해의 사건들

나의 2016년은 4개의 phase로 나뉘어 있었다. 넘버웍스와 함께했던 1-3월, 졸업 준비를 위해 달린 4-6월, 몸과 마음에게 포상을 내린 7-8월, 그리고 취직 후 회사에 있었던 9-12월.

1-3월: 넘버웍스

넘버웍스는 SKT 출신의 데이터 엔지니어 4명이 차린 데이터 스타트업이다. 어려운 개념도 누구나 쉽게 이해할 수 있게 해설해주는 대단한 능력을 가진 (내 마음 속) 슈퍼스타 하용호 선배가 있는 곳이기도 하고, 매력적인 채용공고를 내는 것으로 유명한 회사이기도 하다. 원래는 어떻게든 2월에 졸업을 하려고 용을 쓰다가, 능력자들이 있는 곳에 가면 다방면으로 많이 배울 수 있을거라는 생각에 미련없이 다음 학기로 졸업을 미뤘다.

넘버웍스와 함께 있던 이 시기에 나는 cloud computing과 Apache Spark 사용 등 데이터 엔지니어링에 대한 노하우를 익히거나, 스타트업이 돌아가는 방식에 대해 많이 배우기도 했지만, 가장 크게 남은 것은 사람이다. 보스로서의 롤모델, 언젠가 같이 사업을 하고 싶다고 생각되는 존경할만한 동료, 뛰어난 멘토를 단 3개월만에 얻었다면 그야말로 엄청난 수확 아닌가? 지금도 넘버웍스 사람들과는 따뜻한 가족적 애착을 가지며 꾸준한 만남을 이어가고 있다. 개인적으로는, 박사과정으로 있던 기간 전체를 통틀어 가장 행복했던 때였다고 생각한다.

그 외에도 이 시기에는 AIKorea 밋업 참여, R 패키지인 MCMCpack 디버깅, 친구 지은킴의 브라이덜 샤워, 헬스장 등록 그리고 줌바 시작(!), R과의 속초 나들이, 어느덧 십년지기 친구가 된 Yinyee의 한국 방문, 뽀모도로 사용 시작 2 등이 있었고, 사회적으로는 넷플릭스의 한국 진출이 있었다. 3

4-6월: 졸업

마음 같아서는 넘버웍스에 계속 있고 싶었으나, 2011년에 시작한 일, 즉 박사과정을 마무리짓기 위해 학교에 다시 돌아가야 했다. 마침 12월에 제출했던 논문의 리뷰가 와서 수정을 해야했고, 디펜스도 치뤄야했다.

디펜스 준비는 생각보다 힘들었다. 어수선한 낮을 피하고 조금이라도 주차를 수월하게 하려고 나는 서울이 아니라 Reykjavik의 시간대에 맞춰 생활을 했고, 실험 결과가 뜻대로 나오지 않아 자신감은 바닥을 찍기 일쑤였고, 서울의 공기가 너무 좋지 않아서 꽤 오랜 기간 기침을 했다. 4 그나마 기쁨이 되어준 시간은, 월/수 저녁마다 낙성대의 헬스장에 가서 줌바를 할 때였다.

새벽까지 실험을 하곤 하던 연구실, 나의 자리

하지만 좌절의 시기도 지나고 어느 순간 “에고 나도 모르겠다 어떻게든 되겠지 일단 조금이라도 더 달려보자”라는 생각을 하게 되었고, 어찌어찌해서 디펜스를 성공적으로 마무리할 수 있었다! 디펜스가 끝나고 약 일주일 후 논문의 최종본이 완성되던 순간, 함께 동고동락 했던 내 15인치 맥북프로는 장렬히 전사했다. 나의 졸업은, 하다못해 나의 실험 장비부터 시작해서 주변의 모두가 도와주었다. 참 많은 분들께 많은 빚을 졌다.

디펜스를 마침과 동시에, 그 동안 친구들과 번역한 책도 출판되었다. 밑바닥부터 시작하는 데이터 과학은 데이터과학에 사용되는 기본 알고리즘 몇 가지를 라이브러리의 도움 없이 파이썬의 기본 문법만을 이용해서 구현해보는 책이다. 데이터과학의 기본기를 다지고 싶은 분들께 추천드리고 싶다.

그 외에도 이 시기에는 팀포퐁의 주역 주희 언니가 출산을 하고, 중학교 때부터 서로 많은 의지를 해온 L군이 결혼을 했다. 텐서플로우 코리아의 운영진이 되었고, 2009년부터 함께 해온 애마 조나단5을 현중이에게 넘겨줬다.

7-8월: 태국

디펜스가 끝나고 나서는 긴장이 풀려서인지 육체적으로 고생을 많이 했다. 친구 K양은 디펜스 끝나고 못 잤던 잠을 자기 위해 4일을 내리 잤다고 하던데, 나는 잠을 자는 법을 잊었는지 1시간 이상을 자기가 어려웠다. 잠을 못자서 지하주차장에서 정신줄 놓고 주차하다가 후미를 벽에 박아서 견적 150만원이 나오기도 해서, 컨디션이 안 좋을 때는 운전을 절대하면 안된다는 교훈을 얻기도 했다.

7월 중순에 약 60만원을 들여 서울-푸켓-방콕-오사카-서울 등 네 개 도시를 39일에 걸쳐 경유하는 비행기표를 티켓팅 했고, 에어비앤비에서 한 달 간 머물 숙소를 구했다. 그 후 대학원 시절 함께 미팅하러 다닌 (ㅋㅋ) 망구스와 부산 여행을 가고, 존경하는 최성철 교수님 & 김성훈 교수님과 제주도에서 바다수영 경주를 했다. 티켓팅한지 정확히 일주일 후에 푸켓 행 비행기를 탔고, 이 때부터 지난 10년을 정리하는 시간을 가졌다. 몇 년 전 발리에 갔을 때 너무 습해서 습할 것을 걱정했는데, 푸켓은 우기임에도 불구하고 하나도 안 습하고 하나도 안 더웠다. 음식도 싸고 맛있고 마사지도 해줘, 와이파이 빵빵해! 천국이었다.

나는 여기서 음악도 안 듣고 영화도 안 보고 책도 안 읽고 논문도 안 쓰고 실험도 안 하고 그저 벽에 붙은 도마뱀 가족만 보고, 자다가 밥 먹고 쓸데없는 글 쓰다가 메신저로 종일 사람들과 수다만 떠는듯.

사실 여행 장소를 푸켓으로 정한 이유는 간단했다. 디지털 노마드를 위한 웹사이트에 들어가서 인터넷 잘되고(good internet) 안전하고(safe) 공기 좋고(clean air) 여성 친화적인 곳(female friendly)을 찍었더니 코사무이가 1등으로 나왔다. 그런데 코사무이는 한국, 일본과 연결되는 직항이 없으니 근처의 푸켓으로 선회했던 것이다.

여행 장소를 고르는 것을 도와준 nomadlist.com

이 시기, 푸켓에서 나는 수 주의 고민 끝에 졸업 후의 진로를 정했고, 원격으로 집을 구해서 원격으로 인테리어도 했다. PADI Advanced Open Water 스쿠버 다이빙 자격증을 따고, Hash에 처음 참가해보고, 포켓몬도 열심히 잡았다. 푸켓 이후에 3일 간 방문했던 방콕은 나와 너무도 맞지 않았지만, 그곳에서 갔던 인도 분자요리 음식점 Gaggan은 훌륭했고, 약 일주일 간 머물렀던 오사카와 교토에서는 다베로그를 열심히 뒤지며 친구가 추천해준 책을 읽었다.

그러고는 한국에 돌아왔다. 돌아오는 비행기에서 후다닥 졸업생 답사를 작성했고, 새까맣게 탄 채로 졸업 사진을 찍었다.

9-12월: 취직

예전에도 몇몇 회사를 다녀보기는 했지만, 풀타임의 고정적인 직업으로는 사실상 첫 회사를 구하는 것과 다름이 없었다. 진로를 결정하던 시간은 무엇보다 나의 가치관에 대해 고민해볼 수 있는 귀중한 시간이었고, 나는 결과적으로 네이버 랩스의 기계번역 팀을 나의 “첫 직장”으로 선택하게 되어, 지금은 통번역앱 파파고 (구글플레이, 앱스토어) 를 만들고 있다. (우리 팀에서 OCR, 기계번역 개발을 함께하실 인재를 찾고 있어요!)

귀엽고 능력있는 파파고

모두가 직장이란 괴로운 곳이니 금세 질릴거라고들 하던데, 오자마자 약간 어수선했던 분위기를 넘기고 나니 지금은 무척 즐겁게 생활하고 있다. 아직은 꼬꼬마지만, 앞으로가 꽤 기대된다.

그 외에도 10월에는 나를 지난 1년간 즐겁게 해주던 줌바 강사 자격증을 땄고, 차를 팔았다. 국가적으로 큰 이벤트가 있었던 11월 12일에는 장보러 가던 중 교통사고가 나서 한 동안 허리 때문에 고생하기도 했고, 애플 앱스토어 계정이 중국의 누군가에 의해 털리기도 했다. 그리고 12월 들어서 파파고는 사내 과제발표회에서 좋은 성과를 거두었고 (발표는 내가 했다!), 앱스토어 1위를 며칠째 굳건히 지키고 있다.

My year in data

Quantified self에 관심이 많아서 데이터를 열심히 쌓아오기는 했으나, 한 번도 데이터를 열어본 적도 없었다. 올해는 연말을 맞이한 기념으로! 간단히 집계라도 해봐야겠다는 생각이 들었다. 올해가 얼마 남지 않았기에 화려한 시각화를 할 시간은 없으니, 간단한 커맨드라인 툴을 몇 가지를 이용하기로 한다. 6

  • data_hacks: 막대그래프나 히스토그램을 그림 7
  • csvkit: CSV 파싱에 사용 8
  • jq: JSON 파싱에 사용
  • grep, sed, awk, … 등 전통적인 커맨드라인 툴 9

사용한 데이터 파일은 다음과 같이 acquire했다. 10

  • diigo.csv: 북마킹 사이트. 여기에서 다운받을 수 있다.
  • facebook/html/timeline.htm: 여기에서 Download a copy of your Facebook data. 링크 클릭.
  • goodreads.csv: 독서 로깅 사이트. 여기에서 Export Library 버튼 클릭.
  • google/Takeout/Searches/2016-*.json: 여기에서 다운로드.
  • imdb.csv: 내 영화 평점 페이지에서 Export this list 링크 클릭.
  • lastfm.csv: 누군가 만들어준 좋은 사이트에서 계정명 입력.
  • momento.txt: 나의 소셜 미디어 피드를 모아주는 앱. 앱에서 직접 export.
  • moves/csv/full/summary.csv: 여기 또는 앱에서 직접 export.
  • rescuetime.csv: 컴퓨터 사용 로깅 툴. API 키를 발급 받아 다음 url의 APIKEY 대신 입력하면 해당 기간에 쌓인 데이터를 csv 형태로 받을 수 있다.

      https://www.rescuetime.com/anapi/data?rtapi_key=APIKEY&perspective=interval&format=csv&resolution_time=hour&restrict_kind=activity&restrict_begin=2016-01-01&restrict_end=2016-12-31
    

Local activities

올해 5월부터 RescueTime (프리미엄 $36/year, 50% 할인가)을 사용했는데11, 이 앱을 사용하면 컴퓨터로 어떤 작업을 얼마나 했는지 알 수 있다.

$ cat rescuetime.csv | head -n 3 | csvlook
|                Date | Time Spent (seconds) | Number of People | Activity     | Category                  | Productivity |
| ------------------- | -------------------- | ---------------- | ------------ | ------------------------- | ------------ |
| 2016-05-01 00:00:00 |                1,631 |             True | facebook.com | General Social Networking |           -2 |
| 2016-05-01 00:00:00 |                  509 |             True | kakaotalk    | Instant Message           |            2 |

나는 5월 어느 날부터 총 4,944,815초간 컴퓨터를 사용했고, 태국에 있던 8월에 컴퓨터 사용 시간이 가장 적었다.

$ csvcut -c 1,2 rescuetime.csv | sed 's/-[0-9]*T[0-9:]*//; s/,/ /' | tail -n +2 | bar_chart.py -A
# each ∎ represents a count of 10947. total 4944815
2016-05 [526640] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-06 [695003] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-07 [648595] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-08 [308345] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-09 [461830] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-10 [799097] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-11 [725727] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-12 [779578] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

컴퓨터를 사용하면서 주로 어떤 작업을 했을까? Category를 기준으로 빈도를 뽑아봤다.

$ csvcut -c 2,5 rescuetime.csv | sed 's/,/ /' | tail -n +2 | bar_chart.py -avrp -l 20
# each ∎ represents a count of 24457. total 4944815
                Systems Operations [1124979] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (22.75%)
                     Uncategorized [478736] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (9.68%)
                   Instant Message [437887] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (8.86%)
         General Social Networking [404389] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (8.18%)
      General Software Development [338240] ∎∎∎∎∎∎∎∎∎∎∎∎∎ (6.84%)
                             Email [313121] ∎∎∎∎∎∎∎∎∎∎∎∎ (6.33%)
           Professional Networking [291506] ∎∎∎∎∎∎∎∎∎∎∎ (5.90%)
                            Search [205358] ∎∎∎∎∎∎∎∎ (4.15%)
                 General Utilities [129091] ∎∎∎∎∎ (2.61%)
            General News & Opinion [114753] ∎∎∎∎ (2.32%)
                             Video [109229] ∎∎∎∎ (2.21%)
                      Presentation [104857] ∎∎∎∎ (2.12%)
                          Browsers [ 99340] ∎∎∎∎ (2.01%)
                 Design & Planning [ 93210] ∎∎∎ (1.89%)
      General Reference & Learning [ 79305] ∎∎∎ (1.60%)
          Data Modeling & Analysis [ 74543] ∎∎∎ (1.51%)
                         Calendars [ 68191] ∎∎ (1.38%)
                  General Business [ 60699] ∎∎ (1.23%)
          Engineering & Technology [ 57673] ∎∎ (1.17%)
                  General Shopping [ 57642] ∎∎ (1.17%)

응? Systems Operation이라는게 대체 뭐길래 이렇게 빈도가 높지?!

$ cat rescuetime.csv | grep Systems | head
2016-05-01T00:00:00,1,1,SecurityAgent,Systems Operations,2
2016-05-01T01:00:00,306,1,Terminal,Systems Operations,2
2016-05-01T02:00:00,48,1,Terminal,Systems Operations,2
2016-05-01T20:00:00,6,1,Terminal,Systems Operations,2
2016-05-01T21:00:00,2,1,Terminal,Systems Operations,2
2016-05-01T22:00:00,9,1,Terminal,Systems Operations,2
2016-05-01T23:00:00,4,1,Terminal,Systems Operations,2
2016-05-02T01:00:00,10,1,Terminal,Systems Operations,2
2016-05-02T12:00:00,135,1,Terminal,Systems Operations,2
2016-05-02T13:00:00,99,1,Terminal,Systems Operations,2

$ cat rescuetime.csv | grep Uncategorized | head
2016-05-01T00:00:00,4,1,slownews.kr,Uncategorized,0
2016-05-01T00:00:00,4,1,matt-welsh.blogspot.kr,Uncategorized,0
2016-05-01T00:00:00,1,1,nlpers.blogspot.kr,Uncategorized,0
2016-05-01T01:00:00,795,1,***.**.**.186:8000,Uncategorized,0
2016-05-01T01:00:00,36,1,wikidiff.com,Uncategorized,0
2016-05-01T01:00:00,1,1,matt-welsh.blogspot.kr,Uncategorized,0
2016-05-01T02:00:00,147,1,***.**.**.186:8000,Uncategorized,0
2016-05-01T19:00:00,28,1,data-8.appspot.com,Uncategorized,0
2016-05-01T19:00:00,16,1,***.**.**.186:8000,Uncategorized,0
2016-05-01T19:00:00,3,1,ric.co.jp,Uncategorized,0

하하. 알고보니까 터미널이었다. Uncategorized는 말 그대로 분류되지 않은 각종 웹사이트들이었다. 이쯤되니 터미널을 사용하고 있던 시간에 대해 좀 더 들여다보고 싶어졌다. 일단 월별로 사용량을 뽑아봤다.

$ cat rescuetime.csv | grep Terminal | csvcut -c 1,2 | sed 's/-[0-9]*T[0-9:]*//; s/,/ /' | tail -n +2 | bar_chart.py -A
# each ∎ represents a count of 4276. total 1099255
2016-05 [ 50298] ∎∎∎∎∎∎∎∎∎∎∎
2016-06 [150071] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-07 [ 14274] ∎∎∎
2016-08 [    10]
2016-09 [134475] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-10 [257665] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-11 [180361] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-12 [312101] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

논문 작업을 하던 5, 6월에 비해, 취직을 한 후 10-12월에 프로그래밍 시간이 확 늘었다. 태국에 있던 8월은… 하하. 일을 하나도 안했다니. 내 자신이 대견하게 느껴진 순간이었다.

그렇다면 터미널을 사용했던 시간대는 어떻게 될까? 주로 10시부터 18시까지 열심히 일했다. 그리고 흠, 밤샜던 날은 내 생각만큼 그리 많지 않았다는 것을 알게 되었다.

# 다음은 누적 시간이 아니라 단순 빈도이다.
$ cat rescuetime.csv | grep Terminal | csvcut -c 1,2 | cut -d 'T' -f 2 | cut -d ':' -f 1 | bar_chart.py
# each ∎ represents a count of 2. total 1400
00 [    53] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
01 [    37] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
02 [    31] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
03 [    18] ∎∎∎∎∎∎∎∎∎
04 [     9] ∎∎∎∎
05 [    13] ∎∎∎∎∎∎
06 [    14] ∎∎∎∎∎∎∎
07 [    12] ∎∎∎∎∎∎
08 [    28] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
09 [    48] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
10 [    70] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
11 [    84] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
12 [    74] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
13 [    88] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
14 [    92] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [   103] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [   101] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [   101] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [    93] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [    71] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
20 [    68] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [    63] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
22 [    63] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
23 [    66] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

한편, 좋은 데이터 분석가는 drill down을 해서 trivial하지 않은 패턴도 찾을 수 있어야 한다는 평소에 철학에 따라, 논문을 한창 쓰던 6월의 데이터만 뽑아보았다.

$ cat rescuetime.csv | grep 2016-06 | grep Terminal | csvcut -c 1,2 | cut -d 'T' -f 2 | cut -d ':' -f 1 | bar_chart.py
# each ∎ represents a count of 1. total 269
00 [    11] ∎∎∎∎∎∎∎∎∎∎∎
01 [    10] ∎∎∎∎∎∎∎∎∎∎
02 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
03 [    11] ∎∎∎∎∎∎∎∎∎∎∎
04 [     7] ∎∎∎∎∎∎∎
05 [    10] ∎∎∎∎∎∎∎∎∎∎
06 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
07 [     9] ∎∎∎∎∎∎∎∎∎
08 [    11] ∎∎∎∎∎∎∎∎∎∎∎
09 [     7] ∎∎∎∎∎∎∎
10 [     9] ∎∎∎∎∎∎∎∎∎
11 [    10] ∎∎∎∎∎∎∎∎∎∎
12 [     8] ∎∎∎∎∎∎∎∎
13 [    11] ∎∎∎∎∎∎∎∎∎∎∎
14 [    13] ∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
19 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
20 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
22 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
23 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎

맙소사…… 6월은 그야말로 밤낮이 없는 생활이었다! (이러니 몸이 그 고생을 하지…) 12월만 뽑아보니 내가 바람직하다고 생각하는 형태의 아름다운 그래프가 나왔다. 역시 회사란 좋은 곳이라는 생각을 하며 감격했다.

$ cat rescuetime.csv | grep 2016-12 | grep Terminal | csvcut -c 1,2 | cut -d 'T' -f 2 | cut -d ':' -f 1 | bar_chart.py
# each ∎ represents a count of 1. total 277
00 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
01 [     6] ∎∎∎∎∎∎
02 [     3] ∎∎∎
03 [     1] ∎
08 [     1] ∎
09 [     5] ∎∎∎∎∎
10 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
11 [    19] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
12 [    17] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
13 [    18] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
14 [    22] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [    25] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [    22] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [    22] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [    22] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [    18] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
20 [    13] ∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [    16] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
22 [    12] ∎∎∎∎∎∎∎∎∎∎∎∎
23 [    11] ∎∎∎∎∎∎∎∎∎∎∎

사용 프로그램/웹사이트 빈도를 뽑아봐도 재밌는 결과를 얻을 수 있다. 여기서는 웹사이트를 제외하고 내가 사용한 프로그램만 뽑아봤다. (중간의 localhost는 노이즈.ㅎㅎ)

$ csvcut -c 2,4 rescuetime.csv | grep -v '.*\..*' | tail -n +2 | sed 's/,/ /' | bar_chart.py -avr -l 20
# each ∎ represents a count of 24991. total 2495991
                            Terminal [1099561] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
                               Gmail [197265] ∎∎∎∎∎∎∎
                                line [149113] ∎∎∎∎∎
                               slack [118028] ∎∎∎∎
                           works one [ 67718] ∎∎
                              Finder [ 64759] ∎∎
                           kakaotalk [ 63601] ∎∎
                              newtab [ 59474] ∎∎
                              iterm2 [ 51264] ∎∎
                microsoft powerpoint [ 50716] ∎∎
                      localhost:4000 [ 48183] ∎
                             Keynote [ 37378] ∎
                 Google Spreadsheets [ 34719] ∎
                       Google Chrome [ 34430] ∎
                              iTunes [ 28353] ∎
                    mendeley desktop [ 28108] ∎
                                skim [ 24422]
                         acrobat pro [ 21409]
                         loginwindow [ 19086]
     freechat for facebook messenger [ 17606]

또, diigo(Standard Premium $40/year)는 웹페이지 북마킹 로그를 기록해주고, 나중에 편리하게 검색할 수 있게 도와주는 서비스이다. 나는 올해 diigo를 통해 총 3,395개의 웹페이지를 북마킹했다.

$ csvgrep -c "created_at" -r "2016-*" diigo.csv | wc -l
    3395

재밌게도 태국에 있던 8월에 북마킹을 가장 활발하게 했다고 데이터는 말하는데, 사실 이 데이터는 오해의 여지가 있다. diigo premium 기능 중 Twitter favorite을 자동으로 diigo로 발행하게 하는 기능을 저 시기에 켰을 뿐이다.

$ csvgrep -c "created_at" -r "2016-*" diigo.csv | csvcut -c "created_at" | tail -n +2 | cut -c 1-7 | bar_chart.py
# each ∎ represents a count of 6. total 1323
2016-01 [    69] ∎∎∎∎∎∎∎∎∎∎∎
2016-02 [    28] ∎∎∎∎
2016-03 [    39] ∎∎∎∎∎∎
2016-04 [    51] ∎∎∎∎∎∎∎∎
2016-05 [   103] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-06 [   160] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-07 [    93] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-08 [   388] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-09 [    99] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-10 [    89] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-11 [   155] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-12 [    49] ∎∎∎∎∎∎∎∎

그 기능을 오후 3시에 켰나보다. ㅋㅋ

$ csvgrep -c "created_at" -r "2016-*" diigo.csv | csvcut -c "created_at" | cut -c 12-14 | awk -F ':' '{ans = ($1 + 9) % 24; print ans}' | bar_chart.py -n
# each ∎ represents a count of 5. total 1324
 0 [    53] ∎∎∎∎∎∎∎∎∎∎
 1 [    19] ∎∎∎
 2 [    35] ∎∎∎∎∎∎∎
 3 [     9] ∎
 4 [    10] ∎∎
 5 [     5] ∎
 6 [     9] ∎
 7 [     5] ∎
 8 [    17] ∎∎∎
 9 [    23] ∎∎∎∎
10 [    58] ∎∎∎∎∎∎∎∎∎∎∎
11 [    37] ∎∎∎∎∎∎∎
12 [    51] ∎∎∎∎∎∎∎∎∎∎
13 [    56] ∎∎∎∎∎∎∎∎∎∎∎
14 [    62] ∎∎∎∎∎∎∎∎∎∎∎∎
15 [   340] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [   143] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [    58] ∎∎∎∎∎∎∎∎∎∎∎
18 [    65] ∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [    58] ∎∎∎∎∎∎∎∎∎∎∎
20 [    45] ∎∎∎∎∎∎∎∎∎
21 [    43] ∎∎∎∎∎∎∎∎
22 [    45] ∎∎∎∎∎∎∎∎∎
23 [    78] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

diigo에 북마킹할 때는 페이지의 태그를 자동 혹은 수동으로 달 수 있는데, 올해 내가 북마킹한 페이지의 태그의 빈도를 집계해보면 다음과 같다.

$ csvgrep -c "created_at" -r "2016-*" diigo.csv | csvcut -c "tags" | grep -v "no_tag" | sed 's/"//g' | awk '{print tolower($0)}' | sed $'s/,/\\n/g' | bar_chart.py -vr | head
# each ∎ represents a count of 6. total 911
                    twitter [   308] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
                     pocket [    78] ∎∎∎∎∎∎∎∎∎∎∎∎∎
                     github [    66] ∎∎∎∎∎∎∎∎∎∎∎
                    s****** [    19] ∎∎∎
            quantified self [     9] ∎
                     nlproc [     8] ∎
                      naver [     7] ∎
                      zumba [     6] ∎
                   language [     5]

생각보다 깃헙이 많이 북마킹 되어 있어서 놀랐다.

$ csvgrep -c "created_at" -r "2016-*" diigo.csv | csvcut -c "url" | cut -d'/' -f3 | cut -d':' -f1 | sed 's/www.//' | bar_chart.py -vrp -l 20
# each ∎ represents a count of 2. total 1324
                          github.com [    82] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (6.19%)
                         twitter.com [    30] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (2.27%)
                    en.wikipedia.org [    24] ∎∎∎∎∎∎∎∎∎∎∎∎ (1.81%)
                      news.naver.com [    23] ∎∎∎∎∎∎∎∎∎∎∎ (1.74%)
                   stackoverflow.com [    20] ∎∎∎∎∎∎∎∎∎∎ (1.51%)
                                t.co [    18] ∎∎∎∎∎∎∎∎∎ (1.36%)
                        facebook.com [    18] ∎∎∎∎∎∎∎∎∎ (1.36%)
                           arxiv.org [    17] ∎∎∎∎∎∎∎∎ (1.28%)
                      blog.naver.com [    14] ∎∎∎∎∎∎∎ (1.06%)
                     gist.github.com [    13] ∎∎∎∎∎∎ (0.98%)
                         youtube.com [    12] ∎∎∎∎∎∎ (0.91%)
                           quora.com [    11] ∎∎∎∎∎ (0.83%)
                        brunch.co.kr [    11] ∎∎∎∎∎ (0.83%)
                         nytimes.com [    11] ∎∎∎∎∎ (0.83%)
                          medium.com [    11] ∎∎∎∎∎ (0.83%)
                  newspeppermint.com [    10] ∎∎∎∎∎ (0.76%)
                       37signals.com [    10] ∎∎∎∎∎ (0.76%)
                  m.signalvnoise.com [    10] ∎∎∎∎∎ (0.76%)
                      biz.chosun.com [     8] ∎∎∎∎ (0.60%)
                           namu.wiki [     8] ∎∎∎∎ (0.60%)

Online activities

Momento 앱(프리미엄 $3.99/year)은 내가 사용하는 각종 소셜 미디어 피드들을 모아주는 앱이다. 모멘토에서 데이터를 export하면 다음과 같은 형태의 텍스트파일이 생긴다.

$ head -n 20 momento.txt
24 December 2016
================

Activity Summary
Walking: 22 meters · 16 steps · 39secs · 1 calories
Feed: Moves (App)

23 December 2016
================

11:03 AM
Feed: Moves (App)
At: NAVER Green Factory (37.35938269183, 127.10492276417)

12:16 PM
Feed: Swarm (Lucy Park)
URL: Optional("https://foursquare.com/checkin/585c9723349355744eaa60fe")
At: StoveOn: 성남시 분당구 정자일로 55, 두산위브상가, Seongnam-si, Gyeonggi-do, South Korea (37.3567967964811, 127.105420551965)

1:08 PM

일단 모멘토 데이터에 있는 피드를 빈도별로 집계해보았다. 나는 페이스북을 비공개 모드로 놓고 일기장으로 사용한다. 그 사실을 반영한듯, 페이스북에 무려 1,462개의 피드가 있다고 나왔다.

$ cat momento.txt | grep  "Feed: " | sed 's/ (.*//; s/Feed: //' | bar_chart.py -vr
# each ∎ represents a count of 21. total 3279
 Facebook [  1462] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
    Moves [   911] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
    Swarm [   769] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  Twitter [    97] ∎∎∎∎
Goodreads [    20]
 Web Feed [    17]
     Uber [     2]
  YouTube [     1]

확실히 예전에 비해 트위터 사용량은 크게 줄었다. 트위터에는 1년 간 97개의 트윗을 올렸는데, 심지어 그 중 32건은 리트윗이다.

$ cat momento.txt | grep "^RT" | wc -l
      32

페이스북 사용에 대해서 조금 더 관찰해보고 싶어졌다. Momento로는 페이스북 파싱이 쉽지 않아서, 차라리 페이스북에서 직접 받은 데이터를 이용해보기로 했다.

$ egrep -o '<div class="meta">.*?UTC.*?</div>' facebook/html/timeline.htm | grep '.*2016.*' |  perl -pe 's|<div class="meta">(.*) at (.*) UTC.*</div>||' | { while read line ; do date -j -f "%A, %B %d, %Y" +"%Y-%m" "$line" ; done } | bar_chart.py
# each ∎ represents a count of 4. total 1176
2016-01 [    57] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-02 [    43] ∎∎∎∎∎∎∎∎∎∎
2016-03 [    36] ∎∎∎∎∎∎∎∎∎
2016-04 [    61] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-05 [   125] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-06 [   260] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-07 [   181] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-08 [   118] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-09 [    90] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-10 [    76] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-11 [    63] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
2016-12 [    66] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

디펜스를 보았던 6월에 포스팅 수가 폭발했다.ㅋㅋㅋ 시간대는 제법 다양하게 분포되어 있었다.

$ egrep -o '<div class="meta">.*?UTC.*?</div>' facebook/html/timeline.htm | grep '.*2016.*' | perl -pe 's|<div class="meta">.* at (.*) UTC.*</div>||' | awk -F ':' '{if ($2 ~ /pm/) { print$1+12 } else { print $1 }}' | bar_chart.py -n
# each ∎ represents a count of 2. total 1176
 1 [    53] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 2 [    40] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 3 [    15] ∎∎∎∎∎∎∎
 4 [    22] ∎∎∎∎∎∎∎∎∎∎∎
 5 [    25] ∎∎∎∎∎∎∎∎∎∎∎∎
 6 [    23] ∎∎∎∎∎∎∎∎∎∎∎
 7 [    24] ∎∎∎∎∎∎∎∎∎∎∎∎
 8 [    34] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 9 [    54] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
10 [    60] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
11 [    50] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
12 [    92] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
13 [    48] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
14 [    37] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [    48] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [    72] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [    67] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [    64] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [    50] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
20 [    47] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [    56] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
22 [    72] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
23 [    74] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
24 [    49] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

구글은 이메일, 검색어 등 나에 대한 재미있는 데이터를 아주 많이 가지고 있고, 나 또한 나의 데이터를 아주 편리하게 이용할 수 있게 도와준다. 올해 나는 구글을 통해 총 15,733번, 하루 평균 43번의 검색을 했다.

$ cat google/Takeout/Searches/2016-*.json | jq '.event[].query.query_text' | wc -l
   15733

그 중에서 검색어의 unigram만 뽑아보면 다음과 같다. 이 결과만 보면, 2016년은 파이썬과 함께했던 한 해인듯 하다.

$ cat google/Takeout/Searches/2016-*.json | jq '.event[].query.query_text' | sed 's/"//g' | tr " " "\n" | bar_chart.py -vpr -l 20
# each ∎ represents a count of 18. total 51906
                                            to [   532] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (1.02%)
                                        python [   454] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.87%)
                                           not [   287] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.55%)
                                           mac [   286] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.55%)
                                            in [   266] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.51%)
                                            of [   258] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.50%)
                                           the [   239] ∎∎∎∎∎∎∎∎∎∎∎∎∎ (0.46%)
                                         spark [   231] ∎∎∎∎∎∎∎∎∎∎∎∎ (0.45%)
                                           for [   222] ∎∎∎∎∎∎∎∎∎∎∎∎ (0.43%)
                                       jupyter [   207] ∎∎∎∎∎∎∎∎∎∎∎ (0.40%)
                                           and [   188] ∎∎∎∎∎∎∎∎∎∎ (0.36%)
                                        pandas [   174] ∎∎∎∎∎∎∎∎∎ (0.34%)
                                            is [   170] ∎∎∎∎∎∎∎∎∎ (0.33%)
                                         flask [   167] ∎∎∎∎∎∎∎∎∎ (0.32%)
                                             a [   165] ∎∎∎∎∎∎∎∎∎ (0.32%)
                                            -> [   160] ∎∎∎∎∎∎∎∎ (0.31%)
                                          ipad [   156] ∎∎∎∎∎∎∎∎ (0.30%)
                                          file [   155] ∎∎∎∎∎∎∎∎ (0.30%)
                                          with [   148] ∎∎∎∎∎∎∎∎ (0.29%)
                                       install [   139] ∎∎∎∎∎∎∎ (0.27%)

Offline activities

나는 Swarm(구 Foursquare)을 여전히 사용하는, 세상에 많지 않는 사람 중 한 명이다. Momento 앱이 Swarm의 데이터도 가져가기 때문에, 내가 올해는 어떤 곳에 많이 방문했는지 쉽게 확인해볼 수 있었다. 12

$ cat momento.txt | grep -A 2 Swarm | grep At | cut -d ":" -f 2 | bar_chart.py -vr -l 20
# each ∎ represents a count of 2. total 769
                               FITNESS FM 낙성대점 [    41] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
                               서울대학교 공대폭포 [    23] ∎∎∎∎∎∎∎∎∎∎∎
           NAVER Green Factory (네이버 그린팩토리) [    17] ∎∎∎∎∎∎∎∎
                                     Bayview Lodge [    12] ∎∎∎∎∎∎
                        Tesco Lotus (เทสโก้ โลตัส) [    11] ∎∎∎∎∎
                       COSTCO WHOLESALE (코스트코) [     9] ∎∎∎∎
                            카페 몽실 Cafe Mongsil [     9] ∎∎∎∎
                                      이진내과의원 [     8] ∎∎∎∎
                                          꼬박꼬박 [     8] ∎∎∎∎
                             메리츠타워 아워홈식당 [     7] ∎∎∎
                                        TOZ (토즈) [     7] ∎∎∎
                                 본플러스 분당병원 [     6] ∎∎∎
                                 Cookie Restaurant [     6] ∎∎∎
               보라매병원 / Boramae Medical Center [     6] ∎∎∎
                    Jean Boulangerie (쟝 블랑제리) [     6] ∎∎∎
                                      혼자 노는 양 [     5] ∎∎
                                    emart (이마트) [     5] ∎∎
                                      [email protected] [     5] ∎∎
                                        아라쭈꾸미 [     5] ∎∎
                               서울대학교 학생회관 [     5] ∎

위 목록에 있는 Bayview Lodge는 푸켓에 있을 때 한 달 간 머물렀던 숙소이다. 도심과 약간 떨어진 Chalong에 위치해 있고, 귀여운 골든 리트리버가 두 마리가 살고 있으며 아주 끝내주는 뷰를 자랑한다. 혹시 푸켓을 일주일 이상 방문하게 되는 사람이 있다면 적극적으로 추천할 수 있을 것 같다. 또, 카페 몽실은 논문 쓰는 동안 자주 갔던 아주 포근한 북카페였는데, 아쉽게도 올해 8월에 문을 닫았다.

다음은 체크인 시간이다. 12시에 체크인이 잔뜩 몰려있는 것을 보니, 체크인 시간이 제대로 기록되지 않고 default값으로 fallback한게 아닌가 의심이 된다. 데이터를 열어서 확인해봐야할 것 같다.

$ cat momento.txt | grep -B 1 Swarm | grep "AM\|PM" | awk -F ':' '{if ($2 ~ /PM/) { print $1+12 } else { print $1 }}' | bar_chart.py -n
# each ∎ represents a count of 1. total 637
 1 [     6] ∎∎∎∎∎∎
 2 [     1] ∎
 3 [     3] ∎∎∎
 4 [     1] ∎
 5 [     4] ∎∎∎∎
 6 [     2] ∎∎
 7 [     5] ∎∎∎∎∎
 8 [    14] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 9 [     9] ∎∎∎∎∎∎∎∎∎
10 [    17] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
11 [    29] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
12 [     9] ∎∎∎∎∎∎∎∎∎
13 [    60] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
14 [    41] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [    29] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [    34] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [    48] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [    65] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [    60] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
20 [    52] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [    38] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
22 [    27] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
23 [     9] ∎∎∎∎∎∎∎∎∎
24 [    74] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

Momento에는 Moves 앱의 데이터도 들어가 있어서, 내가 매일 얼마나 걸었는지 확인할 수 있다. 13 14 다음은 step 수 기준의 히스토그램이다. 나는 평균적으로 매일 약 4,600 걸음을 걸었는데, 내년에는 조금 더 걸을 수 있도록 해봐야겠다. 제일 많이 걸은 날은 약 26,000 걸음을 걸었다. 난 그 날을 정확히 기억한다. 교토에서 미숙이와 한밤중에 한참을 걸으며 수다 떨던, 바로 그 날이다.

$ cat momento.txt | grep Walking | cut -d '·' -f 2 | sed 's/,//g; s/steps//' | histogram.py
# NumSamples = 168; Min = 0.00; Max = 26117.00
# Mean = 4608.869048; Variance = 11118671.899518; SD = 3334.467259; Median 4317.500000
# each ∎ represents a count of 1
    0.0000 -  2611.7000 [    44]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 2611.7000 -  5223.4000 [    64]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 5223.4000 -  7835.1000 [    44]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 7835.1000 - 10446.8000 [     7]: ∎∎∎∎∎∎∎
10446.8000 - 13058.5000 [     5]: ∎∎∎∎∎
13058.5000 - 15670.2000 [     2]: ∎∎
15670.2000 - 18281.9000 [     1]: ∎
18281.9000 - 20893.6000 [     0]:
20893.6000 - 23505.3000 [     0]:
23505.3000 - 26117.0000 [     1]: ∎

올해의 Things

올해의 책: “Algorithms to Live By”

올해는 책을 많이 읽지는 못했다. 읽기 시작한 책은 총 20권, 끝낸 책이 총 13권이다.

$ csvcut -c "Title,My Rating,Date Read" goodreads.csv | csvgrep -c "Date Read" -r "2016-*" | csvsort -r -c "Date Read" | csvlook
| Title                                                                                     | My Rating |  Date Read |
| ----------------------------------------------------------------------------------------- | --------- | ---------- |
| The Conquest of Happiness                                                                 |         4 | 2016-12-16 |
| 만화로 배우는 프레젠테이션: 그림 속에 숨겨진 제안의 기술 20                               |         3 | 2016-11-23 |
| Heads Up Philosophy                                                                       |         2 | 2016-10-24 |
| 음식의 언어: 세상에서 가장 맛있는 인문학                                                  |         4 | 2016-10-24 |
| Algorithms to Live By: The Computer Science of Human Decisions                            |         5 | 2016-08-18 |
| The Harvard Medical School Guide to a Good Night's Sleep (Harvard Medical School Guides)  |         5 | 2016-07-03 |
| 익숙한 새벽 세시                                                                          |         3 | 2016-06-15 |
| Stretching Anatomy: Your Illustrated Guide to Improving Flexibility and Muscular Strength |         3 | 2016-05-23 |
| Data Science from Scratch: First Principles with Python                                   |         5 | 2016-05-22 |
| Probabilistic Programming & Bayesian Methods for Hackers                                  |         3 | 2016-03-03 |
| 삶의 한가운데                                                                             |         5 | 2016-01-29 |
| 요리는 화학이다                                                                           |         2 | 2016-01-21 |
| 하노버에서 온 음악편지                                                                    |         4 | 2016-01-18 |

그 중에서 가장 즐겁고 재미있게 읽은 책은 Algorithms to Live By로, 무려 Tom Griffiths가 공동저자이다. 너무 즐겁게 읽어서 주변의 소중한 두어명에게도 선물해줬다.

책에 준 평점 분포는 다음과 같다. 책을 많이 읽지는 않았지만, 좋은 책을 많이 알게 된 것 같아 기쁘다.

$ csvgrep -c "Date Read" -r "2016-*" goodreads.csv | csvcut -c "My Rating" | tail -n +2 | bar_chart.py -n
# each ∎ represents a count of 1. total 13
2 [     2] ∎∎
3 [     4] ∎∎∎∎
4 [     3] ∎∎∎
5 [     4] ∎∎∎∎

올해의 음악: “Chopin Polonaise in A flat major Op.53 (played by Sungjin Cho)”

(로깅이 제대로 되는지 조금 의심스러운) Last.fm에 따르면 나는 올해 음악을 8,982번 들었다. 하루에 평균적으로 24곡을 들었다는 말인데, 내 예상보다는 훨씬 적은 수이다. 생각해보면 요즘 음악을 많이 안듣기는 했다.

$ csvgrep -c 4 -r ".*2016.*" lastfm.csv  | wc -l
    8982

음악은 주로 디펜스가 있던 6월에 많이 들었다.

$ csvcut -c 4 lastfm.csv | grep ".*2016.*" | cut -d " " -f 2 | bar_chart.py -vr
# each ∎ represents a count of 38. total 8980
Jun [  2926] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Nov [  1329] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Apr [  1125] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Dec [   855] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Oct [   732] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Mar [   708] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
Feb [   507] ∎∎∎∎∎∎∎∎∎∎∎∎∎
Jan [   437] ∎∎∎∎∎∎∎∎∎∎∎
May [   336] ∎∎∎∎∎∎∎∎
Jul [    17]
Aug [     8]

당연히 낮에 음악을 많이 들었겠지만, 분포를 보면 새벽에도 음악을 꽤 많이 들었다. 역시 새벽은 작업 환경이 좋은가보다.

$ csvcut -c 4 lastfm.csv | grep ".*2016.*" | cut -d " " -f 4 | awk -F ':' '{ print ($1 + 9) % 24; }' | bar_chart.py -n
# each ∎ represents a count of 8. total 8981
 0 [   303] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 1 [   444] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 2 [   374] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 3 [   269] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 4 [   260] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 5 [   210] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 6 [   171] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 7 [   294] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 8 [   231] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 9 [   237] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
10 [   262] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
11 [   318] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
12 [   257] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
13 [   498] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
14 [   402] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
15 [   520] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
16 [   542] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
17 [   576] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
18 [   566] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
19 [   491] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
20 [   486] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
21 [   475] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
22 [   411] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
23 [   384] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎

올해의 키워드를 꼽으라고 한다면, “줌바”도 아마 포함될 것이다. 가장 많이 들은 음악 1위는 줌바 노래이다. 그 다음에 따라오는 곡들은, 평소에 무한반복하면서 듣는 곡들이다. 매년 꽤 크게 양상이 달라지는 것 같다. 순위권에도 못들었지만, 올해의 음악은 좋은 노동요가 되어준 조성진 님이 연주한 쇼팽의 폴로네즈 A 플랫 장조 Op.53로 하고 싶다.

$ csvgrep -c 4 -r ".*2016.*" lastfm.csv | csvcut -c 3 | bar_chart.py -vrp -l 10
# each ∎ represents a count of 13. total 8982
                                 Love Me Like You [   378] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (4.21%)
           Symphonic Etudes Op. 13 - Variation II [   349] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (3.89%)
                                 Pure Imagination [   123] ∎∎∎∎∎∎∎∎∎ (1.37%)
                                        넌 행복해 [   116] ∎∎∎∎∎∎∎∎ (1.29%)
                                Be Still My Heart [   107] ∎∎∎∎∎∎∎∎ (1.19%)
                                       Inevitable [   102] ∎∎∎∎∎∎∎ (1.14%)
                                            父_子 [   102] ∎∎∎∎∎∎∎ (1.14%)
Chopin : 24 Pre`ludes Op.28 - In C Major (쇼팽 :  [    93] ∎∎∎∎∎∎∎ (1.04%)
                  Burnitup! (feat. Missy Elliott) [    89] ∎∎∎∎∎∎ (0.99%)
                 Esta Noche Quiero Más - Merengue [    62] ∎∎∎∎ (0.69%)

최빈도 음악가를 뽑아보면, 곡과는 조금 다른 느낌이다. 앨범 단위로 듣는 음악의 아티스트들이 주로 포진해있다.

$ csvgrep -c 4 -r ".*2016.*" lastfm.csv | csvcut -c 1 | bar_chart.py -vrp -l 10
# each ∎ represents a count of 21. total 8982
                                    Evgeny Kissin [   608] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (6.77%)
                                     Ivan Moravec [   389] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (4.33%)
                                           박주원 [   386] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (4.30%)
                                       Little Mix [   378] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ (4.21%)
                                            ZUMBA [   267] ∎∎∎∎∎∎∎∎∎∎∎∎ (2.97%)
                                           조성진 [   263] ∎∎∎∎∎∎∎∎∎∎∎∎ (2.93%)
                                           주걸륜 [   241] ∎∎∎∎∎∎∎∎∎∎∎ (2.68%)
                                Arthur Rubinstein [   240] ∎∎∎∎∎∎∎∎∎∎∎ (2.67%)
                               Sviatoslav Richter [   228] ∎∎∎∎∎∎∎∎∎∎ (2.54%)
                                           김동률 [   215] ∎∎∎∎∎∎∎∎∎∎ (2.39%)

올해의 영화: None

영화는 크리스마스 때까지 총 66편을 봤다. (아래에는 67이라고 나오는데, 파일이 헤더를 포함하고 있어서 총 66편이다.)

$ wc -l imdb.csv
      67 imdb.csv

본 영화의 수보다 더 관심이 가는 것은 평점 분포이다. 스스로 5.5점을 기준으로 좋고 나쁨을 평가해서 “진정한 리커트 스케일”을 사용해보려고 했는데, 분포가 제법 그럴듯하게 나와서 뿌듯하다.

$ csvcut -c "You rated" imdb.csv | tail -n +2 | bar_chart.py -n
# each ∎ represents a count of 1. total 66
 1 [     3] ∎∎∎
 2 [     7] ∎∎∎∎∎∎∎
 3 [     7] ∎∎∎∎∎∎∎
 4 [     4] ∎∎∎∎
 5 [     4] ∎∎∎∎
 6 [    13] ∎∎∎∎∎∎∎∎∎∎∎∎∎
 7 [     8] ∎∎∎∎∎∎∎∎
 8 [     9] ∎∎∎∎∎∎∎∎∎
 9 [     7] ∎∎∎∎∎∎∎
10 [     4] ∎∎∎∎

10점짜리 영화가 4편이나 되지만, 사실 다 예전에 봤던 영화를 다시 본 것들이어서 아쉽게도 올해의 영화는 딱히 없다고 해야할 것 같다.

올해의 장난감: “애플펜슬”

올해도 재미있는 장난감을 많이 샀는데, 그 중에서 가장 유용하게 사용하고 있는 것은 5월에 구매한 애플펜슬이다. (아이패드는 거들 뿐…) 애플펜슬 덕분에 많은 자료를 전산화할 수 있었고, 책장도 무척 가벼워졌다. PDF Expert ($9.99) 덕분에 논문 annotation도 꽤 편리하게 하고 있다.

유용한 페블 타임 라운드. 페블은 (아쉽게도) 최근 Fitbit에 인수되었다.

그 외에도 5월에는 페블 타임 라운드 ($149), 샤오미 미에어 2 ($133)와, 여차저차해서 결과적으로 환불하게 된 23andme ($149/kit) 3세트를 구매했다. 7월에는 고프로내러티브 2.0 ($199), 11월에는 Spire ($199.95/2 kits)를 구매하고, 1년 전쯤(?) 구매한 루모스 자전거 헬멧 ($114)이 드디어 도착했다. 12월에는 대우 DEH-C450 에어미스트 가습기 (45,000원), Black and Decker CS1820T (195,000원)과, 아직 도착하지 않은 Sense with Voice ($149)를 구매했다.

난 샤넬백이 필요없으니까. ㅋㅋ

올해의 기타등등

  • 올해의 맥OS 앱: Dwellclick ($10.99)
  • 올해의 편의점 도시락: GS25 별미밥상 닭가슴살 도시락 (3,800원)
  • 올해의 행복했던 순간: 4월 29일, 동물원, 첫 봄 나들이
  • 올해의 카페: 카페 몽실
  • 올해의 맥주: Ayinger Celebrator
  • 올해의 온라인 쇼핑몰: 쿠팡 (쿠팡페이, 정기배송 최고!)
  • 올해의 잘한 짓: 연구노트 작성하기
  • 올해의 소비: Amazon Drive ($59.99/year)

2017년은?

  1. 알고리즘 공부를 해서 기본기를 다져야겠다.
  2. 중고서점에 CD, 책을 다 팔고, 자료를 최대한 전산화 해야겠다.
  3. 많이 걷고, 꾸준한 코어 운동을 해야겠다. 플랭크!
  4. 사실 2016년의 다짐은 “다른 사람에게 부탁 잘하기”였는데, 결과적으로 잘 지키지는 못했다. 다시 2017년의 다짐으로 defer해야겠다.
  5. 데이터를 통해 보는 나의 일년, 재밌었다. 내년에는 Spire (긴장상태), Sense (수면), 브로콜리 (expenses)를 통해 좀 더 데이터를 잘 쌓아보고 싶다. 내년도 올해와 같이 phase가 명확히 나뉜다면, phase별 비교를 해보는 것도 재밌을 것이다.

데이터에서 잘 드러나지는 않았지만, 개인적으로 올해는 심리적인 안정기였다. 이제 제법 평정을 찾았으니, 2017년에는 주변 사람들의 행복을 더욱 챙기는 한 해로 만들어야겠다는 생각을 해본다. 2017년의 키워드는, 다시 한 번 “사람”이다.

  1. 심지어 2015년 말에는 회고글을 써놓고도 출판할 시간이 없을 정도로 정신이 없었다!

  2. 맥용 뽀모도로 클라언트로는 Focus App ($19.99) 추천.

  3. OITNB을 보며 Laura Prepon의 당찬 모습에 반해 덕질도 좀 하고…

  4. 이 때문에 5월 말쯤 Mi Air 2(약 $120)를 사기도 했는데, 4월 초에 진작 샀으면 더 도움이 되지 않았을까 싶기도 한다. 기침은 결국 8월 말까지 이어졌다.

  5. 조나단은 Yamaha Vino 50cc 스쿠터로, 교내에서 발이 되어주었다.

  6. 분석을 Mac OSX에서 진행했기 때문에, 몇몇 명령은 리눅스와 약간 상이하다.

  7. bit.ly의 data_hacks를 forking해서 CJK formatting, line number option 추가, float support 등의 기능을 추가했다. 이 도구는 @shurain 덕분에 알게 되었으며, CJK formatting 역시 그의 contribution이다. 이 도구를 알게 되기 전까지 나는 개인적으로 lucy’s utils라는 뜻을 가진 도구 모음인 “lutils”를 만들어 쓰고 있었는데, 아… 이게 piping을 지원해주니 훨씬 편하다. ㅋㅋㅋ

  8. csvkit은 data_hacks와 마찬가지로 CJK formatting 문제가 있다. Dependency인 agate를 CJK formatting이 지원되는 버젼으로 설치해서 사용하면 한글도 이쁘게 정렬시켜서 출력할 수 있다.

  9. cf. http://datascienceatthecommandline.com/

  10. 1Password, Apple Health 데이터는 시간 부족으로 이번에는 활용하지 못했다.

  11. 그 전까지는 Desktime을 썼다.

  12. 개인적인 습관상 학교, 집, 직장에는 체크인하지 않는다.

  13. Moves는 7월부터 사용했기 때문에 올해 상반기의 데이터가 없는 것이 아쉽다.

  14. Moves 앱을 이용한 시각화 중에는 혜식님의 것을 가장 좋아한다.