tag:blogger.com,1999:blog-47871892749390910092024-02-21T03:55:36.807+09:00헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤헤Unknownnoreply@blogger.comBlogger273125tag:blogger.com,1999:blog-4787189274939091009.post-31214910983194845132013-01-31T17:12:00.003+09:002013-01-31T17:44:11.884+09:00Asana<a href="https://app.asana.com/">https://asana.com/</a><br />
<br />
웹기반 프로젝트 툴<br />
괜찮아 보이네.<br />
<a href="http://blog.asana.com/2012/04/premium-workspaces-for-asana/">30명까진 무료</a><br />
<br />
잠깐 구경을 해보니까.. 나한테는 redmine + trello 조합이 더 나을듯 하네.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-30947489032345355262013-01-31T16:54:00.002+09:002013-01-31T16:54:26.973+09:00MS 도 git 지원<a href="http://blogs.msdn.com/b/bharry/archive/2013/01/30/git-init-vs.aspx">http://blogs.msdn.com/b/bharry/archive/2013/01/30/git-init-vs.aspx</a><br />
<br />
저바닥에선 안놀지만 git 을 쓰자고 주장하기가 더 쉬워지겠네.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-85868630205694862162013-01-30T22:20:00.000+09:002013-01-30T22:20:12.218+09:00gist 통해서 코드 올려봄음. 꼭 html 모드로 전환해서 넣어야 하나? html 모드에서 gist 코드 넣고 글쓰기 모드로 전환하면 안보이는 문제가 있음.<br />
<br />
<br />
<script src="https://gist.github.com/1b5fab88d6c78e5adc6e.js"></script>
불편하네.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-67382206628187271652013-01-30T12:57:00.003+09:002013-01-30T12:57:32.990+09:00코딩할땐 방해하면 안됨<a href="http://blog.ninlabs.com/2013/01/programmer-interrupted/">http://blog.ninlabs.com/2013/01/programmer-interrupted/</a><br />
<br />
현실은 시궁창Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-73483165518739143062012-10-06T13:36:00.000+09:002012-10-06T13:36:14.989+09:00more, less 뒤에 most 가 있었네most 란 페이저도 있네.<div>
잠깐보니 less 보다 괜찮은 녀석인듯.</div>
<div>
하지만 아직도 손에 익은 more 를 주로 쓰기 때문에 굳이 갈아탈일은 없겠지</div>
<div>
기억이나 해두자.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-28848314854821407152012-10-05T17:11:00.001+09:002012-10-05T17:11:35.586+09:00scrypt<a href="http://en.wikipedia.org/wiki/Scrypt">http://en.wikipedia.org/wiki/Scrypt</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-10238504663749261292012-10-04T15:35:00.004+09:002012-10-04T15:35:27.237+09:00grep 은 왜 grep 인가<a href="http://geekblog.oneandoneis2.org/index.php/2012/09/30/to-understand-the-command-line">http://geekblog.oneandoneis2.org/index.php/2012/09/30/to-understand-the-command-line</a><br />
<a href="http://www.reddit.com/r/programming/comments/10s51v/to_understand_the_command_line_you_must_first/">http://www.reddit.com/r/programming/comments/10s51v/to_understand_the_command_line_you_must_first/</a><br />
<br />
우왕. 잼나는 글이다.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-70513680755514267312012-09-14T01:17:00.002+09:002012-09-14T01:17:32.018+09:00콘솔기반 복식 가계부 ledger<a href="http://ledger-cli.org/">http://ledger-cli.org/</a>
<br />
<br />
이런게 있었네. 한동안 네이버 가계부를 쓰다가 웹기반인게 불편해서 중단하고 <a href="http://www.gnucash.org/">GnuCash</a> 를 잠깐 쓰다가 흐지부지 포기한적이 있었는데.. ledger 라놈을 한번 써봐야겠다.<br />
<br />
ledger 를 쓰려면 3.0 버전을 써야 한글 문제가 덜한데 windows 용 3.0 바이너리가 배포되지 않는다.. 이건 <a href="http://hledger.org/">hledger</a> 를 쓰면 해결. 단 hledger 도 바이너리 배포는 구버전만 하니까 직접 빌드했다. cabal 로 깔끔하게 빌드가능. 사실상 집에선 잘 안쓰고 회사 linux 기반에서 ledger 3.0 으로 쓰는게 주가될듯.<br />
<br />
정리하자면..<br />
저널 편집은 emacs 로<br />
사무실 리눅스 환경에서는 ledger 또는 hledger vty<br />
집 윈도 환경에서는 잘 안쓸것 같은데.. 필요한경우 hledger<br />
<br />
ledger 와 hledger 를 같이 쓰는 형태가 될 예정이라.. 호환성에 주의하자. <a href="http://comments.gmane.org/gmane.comp.finance.ledger.general/2218">D 로 default commodity 지정하는게 좀 다르더라</a>. 그외에도 쓰다보면 걸리는게 있겠지.<br />
<br />
이제 막 쓰기 시작했고 일부 소비만 정리할거라 ledger 에 대한 평가는 먼 훗날에 다시.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-56550427768932346482012-09-13T16:05:00.002+09:002012-09-13T16:05:19.345+09:00Programmers' Day<a href="https://en.wikipedia.org/wiki/Programmers'_Day">https://en.wikipedia.org/wiki/Programmers'_Day</a><br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-73475188111719610582012-09-07T18:38:00.000+09:002012-09-07T18:38:09.548+09:00Reddit’s database has only two tables<a href="http://www.reddit.com/r/programming/comments/z9sm8/reddits_database_has_only_two_tables/">http://www.reddit.com/r/programming/comments/z9sm8/reddits_database_has_only_two_tables/</a><br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-9960913754422142352012-08-03T20:18:00.000+09:002012-08-03T20:45:19.960+09:00python 에서 namedtuple 이나 __slots__ 를 썼을때 얼마나 메모리 절약하나new style class 에 대한 문서를 읽을때 __slots__ 로 메모리를 절약할수 있다고 하길래 가능하면 이걸 쓰고 있었는데 얼마나 효과가 있나 돌려봤다. 사정상 요즘 자주 쓰는 namedtuple 도 같이 비교해봤음.<br />
<br />
테스트 환경<br />
<br />
<br />
<pre><span style="color: red; font-weight: bold;">/tmp/x $ </span>uname -a
Linux nude 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
<span style="color: red; font-weight: bold;">/tmp/x $ </span>python -V
Python 2.7.3
<span style="color: red; font-weight: bold;">/tmp/x $ </span></pre>
<br />
<br />
소스<br />
<br />
<br />
<pre><span style="color: firebrick;"># </span><span style="color: firebrick;">-*- coding: utf-8 -*-
</span><span style="color: #a020f0;">import</span> sys
<span style="color: #a020f0;">import</span> os
<span style="color: #a020f0;">import</span> subprocess
<span style="color: #a020f0;">import</span> collections
<span style="color: #a020f0;">def</span> <span style="color: blue;">mem</span>():
p = subprocess.Popen([<span style="color: #8b2252;">"ps"</span>, <span style="color: #8b2252;">"-p"</span>, <span style="color: darkslateblue;">str</span>(os.getpid()), <span style="color: #8b2252;">"-o"</span>, <span style="color: #8b2252;">"rss"</span>], <span style="background-color: white;">stdout</span>=subprocess.PIPE, <span style="background-color: white;">stderr</span>=subprocess.PIPE)
<span style="color: darkslateblue;">print</span> <span style="color: #8b2252;">"rss:"</span>, (p.stdout.read().split(<span style="color: #8b2252;">"\n"</span>)[1])
<span style="color: #a020f0;">class</span> <span style="color: forestgreen;">OldStyleClass</span>:
<span style="color: #a020f0;">def</span> <span style="color: blue;">__init__</span>(<span style="color: #a020f0;">self</span>,a,b,c,d,e,f):
<span style="color: #a020f0;">self</span>.a,<span style="color: #a020f0;">self</span>.b,<span style="color: #a020f0;">self</span>.c,<span style="color: #a020f0;">self</span>.d,<span style="color: #a020f0;">self</span>.e,<span style="color: #a020f0;">self</span>.f = a,b,c,d,e,f
<span style="background-color: white;">NamedTuple</span> = collections.namedtuple(<span style="color: #8b2252;">"NamedTuple"</span>, <span style="color: #8b2252;">"a b c d e f"</span>)
<span style="color: #a020f0;">class</span> <span style="color: forestgreen;">NewStyleClassWithSlots</span>(object):
<span style="background-color: white;">__slots__</span> = <span style="color: #8b2252;">"a b c d e f"</span>.split()
<span style="color: #a020f0;">def</span> <span style="color: blue;">__init__</span>(<span style="color: #a020f0;">self</span>,a,b,c,d,e,f):
<span style="color: #a020f0;">self</span>.a,<span style="color: #a020f0;">self</span>.b,<span style="color: #a020f0;">self</span>.c,<span style="color: #a020f0;">self</span>.d,<span style="color: #a020f0;">self</span>.e,<span style="color: #a020f0;">self</span>.f = a,b,c,d,e,f
<span style="color: #a020f0;">class</span> <span style="color: forestgreen;">NewStyleClass</span>(object):
<span style="color: #a020f0;">def</span> <span style="color: blue;">__init__</span>(<span style="color: #a020f0;">self</span>,a,b,c,d,e,f):
<span style="color: #a020f0;">self</span>.a,<span style="color: #a020f0;">self</span>.b,<span style="color: #a020f0;">self</span>.c,<span style="color: #a020f0;">self</span>.d,<span style="color: #a020f0;">self</span>.e,<span style="color: #a020f0;">self</span>.f = a,b,c,d,e,f
<span style="color: #a020f0;">def</span> <span style="color: blue;">test</span>(cnt,<span style="color: #a020f0;">cls</span>):
<span style="color: darkslateblue;">print</span> <span style="color: #a020f0;">cls</span>
t = <span style="color: darkslateblue;">eval</span>(<span style="color: #a020f0;">cls</span>)
l = [t(i,i,i,i,i,i) <span style="color: #a020f0;">for</span> i <span style="color: #a020f0;">in</span> <span style="color: darkslateblue;">xrange</span>(cnt)]
mem()
<span style="color: #a020f0;">if</span> <span style="color: darkslateblue;">__name__</span> == <span style="color: #8b2252;">"__main__"</span>:
test(<span style="color: darkslateblue;">int</span>(sys.argv[1]), sys.argv[2])</pre>
<br />
<br />
결과<br />
<br />
<pre><span style="color: red; font-weight: bold;">/tmp/x $ </span>time python a.py 1000000 OldStyleClass
OldStyleClass
rss: 1157332
<span style="font-weight: bold;">1.984 secs
</span><span style="color: red; font-weight: bold;">/tmp/x $ </span>time python a.py 1000000 NamedTuple
NamedTuple
rss: 150764
<span style="font-weight: bold;">1.139 secs
</span><span style="color: red; font-weight: bold;">/tmp/x $ </span>time python a.py 1000000 NewStyleClassWithSlots
NewStyleClassWithSlots
rss: 134424
<span style="font-weight: bold;">1.217 secs
</span><span style="color: red; font-weight: bold;">/tmp/x $ </span>time python a.py 1000000 NewStyleClass
NewStyleClass
rss: 1149272
<span style="font-weight: bold;">2.083 secs
</span><span style="color: red; font-weight: bold;">/tmp/x $ </span></pre>
<pre><span style="color: red;"><b>
</b></span></pre>
<br />
추가, 걍 tuple<br />
<br />
<br />
<pre><span style="color: red; font-weight: bold;">/tmp/x $ </span>time python a.py 1000000 "lambda *x: x"
lambda *x: x
rss: 144848
<span style="font-weight: bold;">0.343 secs</span></pre>
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-20965500731692999492012-08-01T12:40:00.002+09:002012-08-01T12:40:58.215+09:00Latency Numbers Every Programmer Should Know<a href="http://www.reddit.com/r/programming/comments/x7tsj/latency_numbers_every_programmer_should_know/">http://www.reddit.com/r/programming/comments/x7tsj/latency_numbers_every_programmer_should_know/</a><br />
<a href="http://architects.dzone.com/articles/every-programmer-should-know">http://architects.dzone.com/articles/every-programmer-should-know</a><br />
<a href="https://gist.github.com/2843375">https://gist.github.com/2843375</a><br />
<a href="https://gist.github.com/2841832">https://gist.github.com/2841832</a><br />
...<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-46036171841012905562012-07-25T00:49:00.000+09:002012-07-25T00:49:01.529+09:00firefox 버리고 chrome 으로firefox 가 언제부턴가 업그레이드때마다 손이 가더니 이번에 14.0.1 에서 xmark 가 엉망으로 돌길래 그냥 chrome 으로 갈아탐... 파폭정말 오래썼는데 좀 아쉽다. 그리고 <a href="http://blog.mozilla.org/nnethercote/2012/07/19/firefox-15-plugs-the-add-on-leaks/">파폭 15 에서는 애드온에서 메모리 새는거 잡아줄거란 말</a>이 있길래 더 아쉬움.<br />
<br />
어쨌건 크롬으로 갈아타고 나니까..<br />
<br />
<ol>
<li><span style="background-color: white;">기본 폰트 바꾸는게 짱난다. custom.css 편집까지 해야 했음.</span></li>
<li><span style="background-color: white;">애드온이 파폭에비에 많이 구림.</span></li>
<li><span style="background-color: white;">리눅스에서 정상적으로 돌아가는 마우스 제스쳐를 아직 못찾음.. 이게 제일 치명적. 스무스제스쳐라고 리눅스 지원하는 놈이 있었던 모양인데 malware 판정맞고 내려간 상황. 수정된 유저패치버전이 있긴 한데 깔아보진 않았음.</span></li>
<li><span style="background-color: white;">속도는 매우 빠름. 특히 뜨는 속도. 파폭은 프로세스 뜨는게 버그 수준으로 느리던데.. 물론 애드온 문제였겠지만.</span></li>
<li>구글계정으로 북마크 등이 싱크되는건 정말 편함. foxmark 시절 잘쓰던 xmark 가 요즘 자꾸 말썽이던데 크롬으로 바꾸고 제일 만족한 부분</li>
</ol>
<div>
<br /></div>
<div>
그런데 제스쳐의 허접함이 너무 걸려서 좀 고민되네. 자주 쓰던 이미지 바로 다운받기, 링크들 한번에 열기, 한번에 저장하기 등등 죄다 아직 설정 못한 상태.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-50553428825313314912012-07-04T14:43:00.000+09:002012-07-04T14:43:15.028+09:00Gow (Gnu On Windows) is the lightweight alternative to Cygwin.<a href="https://github.com/bmatzelle/gow/wiki/">https://github.com/bmatzelle/gow/wiki/</a><br />
<br />
아<br />
좋아보인다.<br />
다음번에 윈도머신 세팅할일 있으면 gnuwin 말고 이거 한번 떠올려보자.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-90980332247759860922012-04-09T17:56:00.003+09:002012-04-09T17:56:45.759+09:00Go: Severe memory problems on 32bit systems<a href="http://www.reddit.com/r/programming/comments/rvwj0/go_severe_memory_problems_on_32bit_systems/">http://www.reddit.com/r/programming/comments/rvwj0/go_severe_memory_problems_on_32bit_systems/</a><br />
<br />
흠.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-38829878071830232592012-02-16T20:48:00.001+09:002012-02-16T20:48:53.331+09:00Youporn.com is now a 100% Redis Site<a href="https://groups.google.com/group/redis-db/browse_thread/thread/77841c595d29f983">https://groups.google.com/group/redis-db/browse_thread/thread/77841c595d29f983</a><br />
<br />
redis!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-54619287598502840282012-02-15T13:31:00.002+09:002012-02-15T13:32:59.237+09:00mercurial phases<a href="http://mercurial.selenic.com/wiki/Phases">http://mercurial.selenic.com/wiki/Phases</a><br />
<br />
이전에 쓴 <a href="http://yoonkn.blogspot.com/2012/01/mercurial-push.html">nudge alias</a> 보단 이게 더 쓰기 좋은듯.<br />
이거 응용한 local branch 류 확장도 곧 나오지 않을까?<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-82020263356963260702012-02-14T14:59:00.004+09:002012-02-14T14:59:36.184+09:00Git performance results on a large repository<a href="http://thread.gmane.org/gmane.comp.version-control.git/189776">http://thread.gmane.org/gmane.comp.version-control.git/189776</a><br />
<br />
페이스북 리파지토리 쩐다.<br />
난 아마 저런규모 소스트리를 볼날이 없겠지....Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-75760574517045933992012-01-26T15:26:00.000+09:002012-01-26T15:26:02.799+09:00mercurial 현재 브랜치만 push 하기<a href="http://hgtip.com/tips/advanced/2009-09-28-nudge-a-gentler-push/">http://hgtip.com/tips/advanced/2009-09-28-nudge-a-gentler-push/</a><br />
<br />우왕. git 부럽지않네. mercurial 관련 최고의 팁인듯.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-88384634683487348802012-01-11T18:16:00.002+09:002012-01-11T18:16:30.991+09:00flash 게임 어떻게 돈버나<a href="http://www.reddit.com/r/gamedev/comments/o16aw/if_one_would_program_a_small_but_popular_flash/">http://www.reddit.com/r/gamedev/comments/o16aw/if_one_would_program_a_small_but_popular_flash/</a><br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-210947520981861802011-11-12T14:18:00.001+09:002011-11-12T14:18:46.726+09:00메일 계정 털렸는지 알아보는 사이트<a href="https://www.pwnedlist.com/">https://www.pwnedlist.com/</a><br />이런게 있네.<br /><br /><a href="http://www.reddit.com/r/AskReddit/comments/m8uuc/reddit_i_just_came_across_a_list_of_about_47k/">http://www.reddit.com/r/AskReddit/comments/m8uuc/reddit_i_just_came_across_a_list_of_about_47k/</a><br />
에서 알게됐음<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-27788589401416748752011-11-04T21:13:00.003+09:002011-11-04T21:13:36.902+09:00에버큐브<a href="http://evercu.be/">http://evercu.be/</a><br />
<br />
아..<br />
좋아보인다.<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-85813075453657303242011-11-03T15:53:00.001+09:002011-11-03T15:53:30.435+09:00Mercurial 2.0 has added largefiles extension (older r. are downloaded on demand)<a href="http://news.ycombinator.com/item?id=3185982">Mercurial 2.0 has added largefiles extension (older r. are downloaded on demand) </a><br />
<a href="http://mercurial.selenic.com/wiki/LargefilesExtension">LargefilesExtension</a><br />
<br />
현재 hg 만족하면서 쓰고 있는데 덩치큰 리소스 파일들 처리가 좀 애매하다.<br />저링크 기억해두고 후에 도입을 검토해봐야 할듯.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-29166154840248578792011-11-03T14:19:00.004+09:002011-11-03T14:19:52.876+09:00tumblr<a href="http://yoonkn.tumblr.com/">http://yoonkn.tumblr.com</a><br />
<br />
우왕굿.<br />
깔끔한데?<br />블로거보다 맘에 드는데?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4787189274939091009.post-56609341042188171762011-11-02T16:02:00.000+09:002011-11-02T16:04:45.382+09:00occur-edit-mode<br />
Occur Edit mode applies edits made in *Occur* buffers to the original buffers. <br />
<br />
<br />
emacs NEWS 를 읽다보니 이런게 생겼네.<br />
occur 자주 쓰는데 이기능 종종 쓸것같다.Unknownnoreply@blogger.com0