<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[PYTHON GURU]]></title><description><![CDATA[PYTHON GURU]]></description><link>http://blog.kdog.kr/</link><generator>Ghost 0.7</generator><lastBuildDate>Tue, 03 May 2016 21:49:41 GMT</lastBuildDate><atom:link href="http://blog.kdog.kr/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[JWT 진짜로 써 보려고 하는 사람들에게]]></title><description><![CDATA[<ul>
<li>JWT 는 결국 그냥 Token 이다.
<ul><li>"너가 딱 한번만 너인걸 증명하면, 내가 너한테 이거 줄테니까, 담부턴 이거 들고와. 그럼 누가 들고오든지 너가 들고 온걸로 쳐줄께."</li>
<li>CLIENT 든 SERVER 든 내용을 알 수 있는 readable access token</li></ul></li>
<li>header, payload, signature 의 합. payload 에 넣고 싶은걸 다 넣을 수 있다. 만,</li></ul>]]></description><link>http://blog.kdog.kr/jwt-workaround-real-shit/</link><guid isPermaLink="false">f6821cd5-909e-45aa-b052-90e2e25d09f8</guid><dc:creator><![CDATA[김태웅/kdog]]></dc:creator><pubDate>Sun, 30 Aug 2015 13:01:36 GMT</pubDate><content:encoded><![CDATA[<ul>
<li>JWT 는 결국 그냥 Token 이다.
<ul><li>"너가 딱 한번만 너인걸 증명하면, 내가 너한테 이거 줄테니까, 담부턴 이거 들고와. 그럼 누가 들고오든지 너가 들고 온걸로 쳐줄께."</li>
<li>CLIENT 든 SERVER 든 내용을 알 수 있는 readable access token</li></ul></li>
<li>header, payload, signature 의 합. payload 에 넣고 싶은걸 다 넣을 수 있다. 만, 쉽게 길어질 수 있으므로 가능한 KEY 도 짧게, VALUE 도 짧게. iat, exp, aud, sub 등등 짧은 이름에는 다 이유가 있다.</li>
<li>javascript client 측에서 유용한 점이 많음. base64 로 디코딩 하면, payload 에 뭐가 들었는지 알 수 있으니까.</li>
<li>좋은게 좋은거긴 한데
<ul><li>당연하겠지만, HTTPS 는 필수. username / password 조합이나 client id/secret 이 compromise 되면 문제가 심각함. 코튼은 expiry 짧게 주면 되니까 좀 나음.</li>
<li>토큰만 보고 모든걸 예측할 수 있으면 좋지 않음.(공격자 입장에서 좋음)</li>
<li>노출된 토큰이 { user_id: XXXX, role: admin } 라면, 해당 토큰은 재사용을 할 수 없더라도, 많은 것을 알 수 있음.</li>
<li>{ uid: 1, r: 1 } 으로 만들고 각각 내용물 조회용 API 를 제공하는게 더 나은 디자인이 아닐까(아님 말어)</li></ul></li>
<li>쓰다 보면
<ul><li>AUD 별로 SECRET 을 관리하면 좋겠지만...</li>
<li>매우 당연하게도, SECRET 을 바꿔버리면 발급 나간 토큰을 한방에 전부 REVOKE 시킬 수 있다.</li>
<li>토큰을 BLACKLIST 시키려면 다음을 참고 <a href="https://auth0.com/blog/2015/03/10/blacklist-json-web-token-api-keys/">https://auth0.com/blog/2015/03/10/blacklist-json-web-token-api-keys/</a></li></ul></li>
</ul>]]></content:encoded></item><item><title><![CDATA[내가 블랙베리를 사용하는 방법 v2]]></title><description><![CDATA[<p>앞뒤 빼고 간결하게, 정리함. 맥프레15와 아이폰6+, 블랙베리P'9983 을 주력으로 사용.</p>

<ul>
<li>태스크, 일정 관리 - 리멤버를 이용, 오피스365 계정을 따서 태스크 및 이메일/연락처 연동. 아이폰/아이패드/맥북과 바로 싱크 됨. duedate 를 설정해 두면, 기본 캘린더 앱에서 일정 확인 가능.</li>
<li>노트 - 리멤버+에버노트를 이용, 노트를 작성해서 넣음. 포맷팅은 안드로이드용</li></ul>]]></description><link>http://blog.kdog.kr/how-i-use-bb-v2/</link><guid isPermaLink="false">923aadf7-a95a-4e8b-bee1-d096768175c9</guid><dc:creator><![CDATA[김태웅/kdog]]></dc:creator><pubDate>Sat, 03 Jan 2015 22:44:00 GMT</pubDate><content:encoded><![CDATA[<p>앞뒤 빼고 간결하게, 정리함. 맥프레15와 아이폰6+, 블랙베리P'9983 을 주력으로 사용.</p>

<ul>
<li>태스크, 일정 관리 - 리멤버를 이용, 오피스365 계정을 따서 태스크 및 이메일/연락처 연동. 아이폰/아이패드/맥북과 바로 싱크 됨. duedate 를 설정해 두면, 기본 캘린더 앱에서 일정 확인 가능.</li>
<li>노트 - 리멤버+에버노트를 이용, 노트를 작성해서 넣음. 포맷팅은 안드로이드용 에버노트를 이용.</li>
<li>pocket - ReadItNow! 를 이용, 아이폰/맥과 연동. 웹페이지를 보다가 share 에서 바로 저장할 수 있음.</li>
<li>twitter - 공식 앱과 blaq 를 동시 사용</li>
<li>해외에 나갈 때 - taki 앱 사용. 070번호를 따서, 핸드폰 착신을 070번호로 걸고 나감. 현지에서 데이터 전용 유심을 구매, taki 에서 수-발신할 수 있음. 기본 전화/문자는 현지 paid usim 번호로 사용. 팁) skypasstel 사업자는 발신번호 스푸핑(CID) 기능이 있음. 즉, 국내에서 내 핸드폰으로 전화를 거는 것 처럼 속일 수 있음.</li>
<li>podcast - bPod 이용. xml URL 은 요령껏 잘 따야 됨.</li>
<li>rss reader - gNewsReader + feedly 사용.</li>
<li>BeBuzz - 노티를 입맛에 맞게 수정.</li>
<li>Dropbox - connect to dropbox, 항시 싱크 걸어야 하는 폴더는 pin 을 꽂아 둠</li>
<li>instagram - iGrann Pro 사용</li>
<li>PPT 만들기 - Blackberry Express 사용. 급하게 날림으로 발표자료 만들 때.</li>
<li>사진/링크 아이폰 연동 - pushbullet 사용(블랙베리 용은 blackbullet)</li>
<li>기타
<ul><li>word substitution 에서 포맷팅을 입력해 두면, 단축키로 불러와 사용할 수 있음. ld(날짜 %d %D) lt(시간 %t %T) 등을 메일용으로 몇가지 조합해서 사용 중. mpt -> %d @모닝페이지 #morningpage 같은 식</li>
<li>리멤버 단축키(10.3) - 새 노트 D 새 태스크 T</li>
<li>기본 캘린더 - 설정 > 계정설정 에서 기본 달력을 지정할 수 있음. 새 이벤트를 추가할 때 기본달력이 선택됨. week view 혹은 day view 에서, 아무데나 클릭하면 + 가 생기는데, 이걸 드래그해서 놓은 후 다시 클릭하면, 새 이벤트를 바로 추가할 수 있음.</li></ul></li>
</ul>]]></content:encoded></item><item><title><![CDATA[macosx 10.10(yosemite) + blackberry blend fails ?]]></title><description><![CDATA[<p>try run "/Library/Application\ Support/BlackBerry/PeerManager" from terminal, before you launch BlackBerry Blend.</p>

<p><img src="https://pbs.twimg.com/media/B00fQ0RCEAIxHNG.png:large"></p>]]></description><link>http://blog.kdog.kr/macosx-10-10yosemite-blackberry-blend-fails/</link><guid isPermaLink="false">32a68222-46c2-41f6-90b9-e3883f346d17</guid><dc:creator><![CDATA[김태웅/kdog]]></dc:creator><pubDate>Sat, 25 Oct 2014 20:49:19 GMT</pubDate><content:encoded><![CDATA[<p>try run "/Library/Application\ Support/BlackBerry/PeerManager" from terminal, before you launch BlackBerry Blend.</p>

<p><img src="https://pbs.twimg.com/media/B00fQ0RCEAIxHNG.png:large"></p>]]></content:encoded></item><item><title><![CDATA[갑상선 암 이야기.]]></title><description><![CDATA[<h2 id="">걸렸다</h2>

<ul>
<li>항상 몸에 여러가지 실험을 했으므로, 뭐가 문제가 생겨도 생기지 싶었다. </li>
<li>LA 씹빠빠룰라 건강클럽 루트에서 입수한 알파 리포익산하고 단백질 파우더를 무지하게 섭취하고 있던 2013년 말. 물을 넘길 때 뭔가 목에 이상한 느낌을 받기 시작했고, 몸도 찌뿌드하게 붓는 것 같고, 체온도 낮고. 무엇보다 예전보다 적은 양을 먹는데 살이 5키로 가량 불어서,</li></ul>]]></description><link>http://blog.kdog.kr/how-i-found-my-thyroid-cancer/</link><guid isPermaLink="false">61bfba05-4bd3-4194-89a4-68adac293f4a</guid><dc:creator><![CDATA[김태웅/kdog]]></dc:creator><pubDate>Mon, 21 Apr 2014 17:36:19 GMT</pubDate><content:encoded><![CDATA[<h2 id="">걸렸다</h2>

<ul>
<li>항상 몸에 여러가지 실험을 했으므로, 뭐가 문제가 생겨도 생기지 싶었다. </li>
<li>LA 씹빠빠룰라 건강클럽 루트에서 입수한 알파 리포익산하고 단백질 파우더를 무지하게 섭취하고 있던 2013년 말. 물을 넘길 때 뭔가 목에 이상한 느낌을 받기 시작했고, 몸도 찌뿌드하게 붓는 것 같고, 체온도 낮고. 무엇보다 예전보다 적은 양을 먹는데 살이 5키로 가량 불어서, 순환계가 망가진게 아닌가... 몇가지 의심을 했다. </li>
<li>점심시간 쯤 해서 사무실 건너편 내과에 가서 초음파를 봤는데, 좌측 갑상선에 1인치 전후의 혹이 보이네. </li>
<li>당일 조직검사(세침이 아닌 총생검)를 할 수 있는 곳을 수소문, 갑상선암 치료를 받은 지인들과 의사쌤들에게 추천을 받았고, 집에서 가까운 목동 모 외과에 감.</li>
<li>결과가 나오기 까지는 몇일 걸렸는데, 세포를 이대 목동병원에 보내 검사의뢰를 하는 방식으로 운영되더라고. 갑상선을 쎄게 건드려서 그런지 몇일동안 몸이 상당히 안좋았음.</li>
<li>검사 결과 보는 날 아침, 택시에서 전화를 했는데 결과가 안좋다는 간호사쌤 얘기를 들음.</li>
<li>암이 아니면 정말 착하게 살리라 다짐하며 엘리베이터에서 내렸는데...</li>
<li>잭팟. 갑상선암 2기 당첨. 1인치가 조금 넘는데, 근막에 매우 근접해 있어 더 커질 경우, 조직을 뚫고 임파선에 전이될 위험이 매우 높다는 의견. 전절제 긴급 수술 권장.</li>
</ul>

<h2 id="">어뜩하지;;</h2>

<ul>
<li>애초에 갑상선암은 수술 안해도 된다 라는 언론의 메세지를 많이 접했으나, 결절의 크기가 커서 그냥 수술하기로 함.</li>
<li>유두암 방치시 위험요소 - </li>
<li>가족-지인 중에 갑상선암 진단 후 수술하신 분들에게, 의사들에게 조언을 구함. 병원과 교수를 추천 받고, 수술 후기와 부작용 나타난 경우 등을 검색.
<ul><li>중요한 두가지 팩터: 성대, 부갑상선</li>
<li>성대는 까딱 잘못하면 평생 장애인</li>
<li>부갑상선은 4개 정도가 있는데, 이것도 평생 장애인, 대표적 증상으로는 손발 저림</li></ul></li>
</ul>

<h2 id="">병원과 교수를 고름</h2>

<ul>
<li>판단기준
<ul><li>평생 다녀야 되니 - 집에서 가까운가?</li>
<li>급여/비급여 비중 - 중증 들어가면 보험공단에서 대부분 돈이 나온다</li>
<li>수술 횟수 - 당연히 많이 하면 여러가지 케이스를 겪었을 테니</li>
<li>까페나 커뮤니티에서 후유증이나 안좋은 후기 보이면 감점</li>
<li>최종 3군데 정도로 압축되었으나, 구로고대에서 하기로 결정. 교수님의 와이프가 10년 뒤에 재발해서 개고생 했대서 낙찰.</li></ul></li>
</ul>

<h2 id="">수술하기 전 준비</h2>

<ul>
<li>암보험/보험공단 지원여부/전체 수술비-입원비 체크
<ul><li>2000년경 가입한 암보험이 3개 정도 - 일반암으로 분류되어 쏠쏠</li>
<li>2013년 가입한 종신보험 - 소액암 분류</li>
<li>보험공단 - 중증 등록시 진료비, 이미 암 당첨이기 때문에 100%</li>
<li>전체 비용 - 병원 수납에도 물어보고 수술한 사람들 데이터가 있어서 적당히 계산기 두들겨봄</li></ul></li>
<li>갑상선암 까페 열심히 눈팅</li>
<li>간수치가 애매하게 높게 나와서 여러번 검사하고 조금 고생함. 비만에 따른 지방간 판정, 수술 속행.</li>
<li>초음파 잘 봐주는 내과에서 결과지 프린트해서 들고감. 고대병원 복부 초음파는 20만원. 동네 내과는 6만원. 보는 김에 췌장이랑 전립선도 봐달라고 졸랐더니, 다 봐줌.</li>
</ul>

<h2 id="">수술</h2>

<ul>
<li>첫날 신관 63병동 암병실 입원</li>
<li>둘째날
<ul><li>아침 첫 타임에 수술. 10시쯤 갑자기 수술하러 갑시다, 하길래 잠시만요, 하고 억지로 ㄸ 싸고 옴. 전신마취 중 수술대에서 ㄸ 싸지를까봐.</li>
<li>수술실 들어갔는데, 반절제인지 전절제인지 아무도 모르는 분위기. 전절제라고 얘기하고 수술실 입장.</li>
<li>드레싱 및 셋팅하는 동안에 잘못되면 어쩌나~ 하는 생각에 잠시 움찔할 뻔 했지만, 어차피 내가 걱정한다고 뭐 달라지는건 없으므로 심호흡하고 있는데 회복실에서 마스크 끼고 있음.</li>
<li>30분 정도 마취 깨고 병실로 감.</li>
<li>성대 대미지 없음. 목소리 아주 잘나옴.</li>
<li>일어날 때, 수술부위만 쑤시고 별로 불편한 것 없음. 칼슘수치에 손등에 끼고 있던 해파리 빼달라고 함.</li>
<li>3팀 병문안</li></ul></li>
<li>셋째날
<ul><li>피검사, 칼슘 수치 정상. 부갑상선을 잘 살렸는지 판단하는 중요 지표이므로 주의깊게 봄.</li>
<li>몸은 멀쩡해져서 날아다님. 와이프는 집에 감.</li>
<li>6-7팀 병문안</li></ul></li>
<li>넷째날
<ul><li>피검사, 칼슘 수치 정상.</li>
<li>퇴원</li></ul></li>
</ul>

<h3 id="">동위원소 치료</h3>

<ul>
<li>일정은 수술 후 2개월 뒤</li>
<li>2주간 신지없이 테트로닌, 2주간 저요오드식(이라고 쓰고 거의 무요오드식 이라 읽음)</li>
<li>준비는 별거 없었고, 입원 퇴원도 별거 없었음.</li>
<li>방사선이 어느정도 방출되는지 몰라 가족과 떨어져 지냄. 넓은 집에 일주일간 나 혼자 있었음.</li>
<li>일주일 뒤 방사선 측정하고 병원 가서도 측정하고, 괜찮다 싶어 절차적으로 후속 조치를 취함.</li>
<li>측정치에 대한 가이드는 다음 글 참고 <a href="http://seoul-navi.com/index.php?control=bbs&amp;md=view&amp;bo_table=online_qna&amp;wr_id=1738&amp;page=4&amp;mg=sub06&amp;p_id=060101&amp;sca=">외부링크</a></li>
</ul>]]></content:encoded></item><item><title><![CDATA[Welcome to Ghost]]></title><description><![CDATA[<p>Logfile 을 discodb 로 변환.</p>

<p>오래 전, 모 ISP에 모 정부기관에서 해킹에 사용된 ip를 추적하겠다는 공문이 내려왔다.
당초 취지는 그러했으나, 아마 지금은 허위사실 유포자들을 색출해 내는 데 쓸 거다.</p>

<p>어쨌든, 처음에 만들 때는 log 를 쌓는 용도로 만들었으나, 애초에 광범위한 조회 request 를 gunzip -c XXX |grep YYY.YYY.YYY.</p>]]></description><link>http://blog.kdog.kr/welcome-to-ghost/</link><guid isPermaLink="false">dc79b6ea-7d15-4e03-b088-ab89aa22bff4</guid><category><![CDATA[Getting Started]]></category><dc:creator><![CDATA[김태웅/kdog]]></dc:creator><pubDate>Mon, 25 Nov 2013 17:32:27 GMT</pubDate><content:encoded><![CDATA[<p>Logfile 을 discodb 로 변환.</p>

<p>오래 전, 모 ISP에 모 정부기관에서 해킹에 사용된 ip를 추적하겠다는 공문이 내려왔다.
당초 취지는 그러했으나, 아마 지금은 허위사실 유포자들을 색출해 내는 데 쓸 거다.</p>

<p>어쨌든, 처음에 만들 때는 log 를 쌓는 용도로 만들었으나, 애초에 광범위한 조회 request 를 gunzip -c XXX |grep YYY.YYY.YYY.YYY 식으로 읽어대는 건 무리가 있었다.</p>

<p>입력 예</p>

<p>ip 123.123.123.123 를 2014년 8월 동안 한달동안 1회 라도 썼던 MAC 을 전부 조회</p>

<p>아마, 1시간 단위로 gzip-ed logfile 에 전부 grep 을 걸어버리는 순간, 스토리지가 뻗기 직전까지 괴로워 하게 될 텐데, 이게 한번에 수십개씩 요청이 들어왔다. 해당 스토리지는 search 만 하는 것이 아니라, 실시간 로그도 처리하고 있었으므로, 로그 시스템 전체가 장애에 빠지는 경우가 가끔 있었다. </p>

<p>그래서 이걸 어떻게 한담?</p>

<p>discodb(<a href="http://discodb.readthedocs.org">http://discodb.readthedocs.org</a>) 라는게 있는데, 홈피에 보면 discodb – An efficient, immutable, persistent mapping object 와. immutable 이래. 이런거 쓸 데가 있나? 근데 로그파일은 immutable 이잖아. 사실 단순한 kv-database 인데, 파이썬 dictionary 랑 매우 비슷하고, 속도가 엄청나게 빠르다. 또, 내부적으로 허프만 코딩을 이용해 압축을 하는데, key-value 를 적절히 구성하면 gzip 수준으로 용량을 줄일 수도 있다.</p>

<p>자 그럼 비교를 한번 해볼까.</p>

<p>우선 기존 방식의 검색(프라이버시를 위해 <em>표 처리)
 find ./ |grep 2014-04-01-12.gz |xargs gunzip -c |grep -v "<strong>=|" |grep "</strong></em><em>*</em>**xx" </p>

<p>...... 눈물이 난다. 참고로 내 맥북프로(seq r/w 가 1GB/s 가 넘음) 에서는 12초가 걸렸다. 1시간 분량 검색했는데...</p>

<p>이 로그들을 discodb 로 변환해서 검색하면?</p>

<p>time python search_ddb.py --by-mac=<strong><em>*</em><em>*</em></strong>xx <br>
2014-04-01-00 [('02:41', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:41', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-01 [('02:41', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-02 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-03 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-04 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-05 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:41', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:41', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-06 [('17:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-07 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-08 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('17:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-09 [('17:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-10 [('02:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:41', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-11 [('17:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-12 [('17:42', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:42', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-13 [('17:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:43', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-14 [('17:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:43', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-15 [('02:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:43', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-16 [('17:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('47:43', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-17 [('02:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:43', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-18 [('02:44', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:44', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-19 [('02:44', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('32:44', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-20 [('02:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('17:43', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('25:14', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('55:14', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-21 [('25:14', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('55:14', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-22 [('25:15', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('55:15', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
2014-04-01-23 [('25:15', 'MACMACMACMAC', 'IP.IP.IP.IP'), ('55:15', 'MACMACMACMAC', 'IP.IP.IP.IP')] <br>
0.01s user 0.01s system 90% cpu 0.025 total</p>

<p>헐? 하루치를 검색했는데, "0.025초"
물론 pipe 와 몇개의 unix command 만으로 검색할 수 있는 건 좋지만... 속도가 너무 심하게 차이난다. 단순 비교를 하자면, grep 으로는 12 * 24 즉 대략 5분이 걸리게 되는데, 0.025 초... ㄷㄷㄷ</p>

<p>gzip 해서 하루에 2.2GB, discodb 로 변환한 파일은... 2.4GB</p>

<table>  
<thead>  
<tr>  
<th>  
분류
</th>  
<th>  
storage  
</th>  
<th>  
검색시간
</th>  
<th>  
용량
</th>  
</tr>  
</thead>  
<tr>  
<td>  
logfile  
</td>  
<td>  
gzip + fs  
</td>  
<td>  
약 300 s
</td>  
<td>  
2.2GB  
</td>  
</tr>  
<tr>  
<td>  
discodb digest  
</td>  
<td>  
discodb + fs  
</td>  
<td>  
0.025 s  
</td>  
<td>  
2.4GB  
</td>  
</tr>  
</table>

<p>블로그가 이제 자체적으로 OS X 매버릭스의 푸시 알림을 지원합니다.
블로그가 이제 자체적으로 OS X 매버릭스의 푸시 알림을 지원합니다.
어제 오늘 블로그에 들어오신 분들은 이미 눈치채셨겠지만, 백투더맥 블로그가 이제 OS X 매버릭스의 푸시 알림 서비스를 자체적으로 지원합니다. 얼마전에도 'Pronto Push'라는 외부 업체를 통해 같은 기능을 구현한 적이 있는데, 며칠 제대로 써보지도 못..
86 comment <br>
백투더맥 블로그 운영을 위한 후원금을 받습니다.
백투더맥 블로그 운영을 위한 후원금을 받습니다.
안녕하세요. 블로그지기 ONE™입니다. 맥과 관련된 소식과 정보를 엄선해서 전해드리자는 취지로 블로그를 운영한지 1년 6개월이라는 시간이 지났습니다. 누가 시킨 것도 아니고 그저 미쳐서 한 것인데, 그동안 정말 많은 분들로부터 과분한 관심과 사랑을..</p>

<p>You're in! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. Go ahead and edit this post to get going and learn how it all works!</p>

<pre><code class="language-clike">int charArrayToInt32Array(char * clearText, unsigned int * int32result) {  
  int i = 0, j = 0, total = 0;
  int dec[4] = {24, 16, 8, 0};
  unsigned int returnedInteger = 0;

  for (i=0; clearText[i]; i+=4) {
    returnedInteger = 0;
    for (j=0; j &lt;= 3 ; j++) {
      returnedInteger |= (unsigned int) (clearText[i+j] &lt;&lt; dec[j]) ;
    }

    int32result[total] = returnedInteger;
    total++;
  }
  return total;
}
</code></pre>

<h2 id="gettingstarted">Getting Started</h2>

<p>Writing in markdown is really easy. In the left hand panel of Ghost, you simply write as you normally would. Where appropriate, you can use <em>formatting</em> shortcuts to style your content. For example, a list:</p>

<ul>
<li>Item number one</li>
<li>Item number two
<ul><li>A nested item</li></ul></li>
<li>A final item</li>
</ul>

<p>or with numbers!</p>

<ol>
<li>Remember to buy some milk  </li>
<li>Drink the milk  </li>
<li>Tweet that I remembered to buy the milk, and drank it</li>
</ol>

<h3 id="links">Links</h3>

<p>Want to link to a source? No problem. If you paste in url, like <a href="http://ghost.org">http://ghost.org</a> - it'll automatically be linked up. But if you want to customise your anchor text, you can do that too! Here's a link to <a href="http://ghost.org">the Ghost website</a>. Neat.</p>

<h3 id="whataboutimages">What about Images?</h3>

<p>Images work too! Already know the URL of the image you want to include in your article? Simply paste it in like this to make it show up:</p>

<p><img src="http://tryghost.org/ghost.png" alt="The Ghost Logo"></p>

<p>Not sure which image you want to use yet? That's ok too. Leave yourself a descriptive placeholder and keep writing. Come back later and drag and drop the image in to upload:</p>

<h3 id="quoting">Quoting</h3>

<p>Sometimes a link isn't enough, you want to quote someone on what they've said. It was probably very wisdomous. Is wisdomous a word? Find out in a future release when we introduce spellcheck! For now - it's definitely a word.</p>

<blockquote>
  <p>Wisdomous - it's definitely a word.</p>
</blockquote>

<h3 id="workingwithcode">Working with Code</h3>

<p>Got a streak of geek? We've got you covered there, too. You can write inline <code>&lt;code&gt;</code> blocks really easily with back ticks. Want to show off something more comprehensive? 4 spaces of indentation gets you there.</p>

<pre><code>.awesome-thing {
    display: block;
    width: 100%;
}
</code></pre>

<h3 id="readyforabreak">Ready for a Break?</h3>

<p>Throw 3 or more dashes down on any new line and you've got yourself a fancy new divider. Aw yeah.</p>

<hr>

<h3 id="advancedusage">Advanced Usage</h3>

<p>There's one fantastic secret about Markdown. If you want, you can  write plain old HTML and it'll still work! Very flexible.</p>

<p><input type="text" placeholder="I'm an input field!"></p>

<p>That should be enough to get you started. Have fun - and let us know what you think :)</p>]]></content:encoded></item></channel></rss>