<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
	<channel>
		<title>Jong10 in Wonderland</title>
		<link>http://jong10.com/</link>
		<description>이상한 나라의 종텐</description>
		<language>ko</language>
		<pubDate>Tue, 03 Jan 2012 00:14:40 +0900</pubDate>
		<generator>Tistory 1.1 (http://www.tistory.com/)</generator>
		<managingEditor>종텐</managingEditor>
		<image>
		<title>Jong10 in Wonderland</title>
		<url><![CDATA[http://cfile6.uf.tistory.com/image/15100E534D1F5D48393B09]]></url>
		<link>http://jong10.com/</link>
		<description>이상한 나라의 종텐</description>
		</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/jong10" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jong10" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
			<title>Ctags, Cscope for Android</title>
			<link>http://jong10.com/507</link>
			<description>&lt;p&gt;오늘, &lt;a href="https://plus.google.com/s/%23gdhk"&gt;Google Developer Hackaton Korea&lt;/a&gt;에 참여하면서, 안드로이드 태블릿을 위한 코드뷰어를 만들기 위해서, ctags와 cscope를 Android NDK에서 빌드되게끔 포팅했다. 코드뷰어는 다 못만들어서 틈틈히 만들 예정이고, 포팅한 ctags와 cscope를 github에 올렸다.&lt;/p&gt;
&lt;ul style="list-style-type: disc; "&gt;
&lt;li&gt;&lt;a href="http://github.com/jong10/ctags-android"&gt;Ctags for Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/jong10/cscope-android"&gt;Cscope for Android&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ctags는 원래 GPLv2 라서, GPLv2로 할 수 밖에 없었고.. Cscope는 원래는 BSD였는데 포팅하면서 필요한 몇몇 파일을 glibc에서 가져왔더니 GPLv2 가 되어버렸다. 아놔. 결국 둘 다 내가 싫어하는 라이센스 GPLv2가 되었다. 안드로이드에서 ctags, cscope 같은 파일을 직접 실행할 일은 거의 없으나, 뭐 올려두면 누군가는 도움이 될까 싶어서 올린다. Cscope같은 경우는 ncurses를 포팅할 수가 없어서, ncurses를 사용하는 부분은 동작하지 않게 했다. 즉, 인덱스 생성 등도 되고, 커맨드라인에서 옵션으로 검색하는 것도 정상적으로 되지만, ncurses가 필요한 GUI틱한 화면은 동작하지 않는다.&lt;/p&gt;
&lt;p&gt;참고로, 루팅한 폰/태블릿에서는 adb shell 연결하고 chmod로 실행권한만 주면, adb shell에서 바로 실행해볼 수 있고, 루팅하지 않은 폰/태블릿에서는 /data/data/자기앱/ 안에 복사하고 권한조정을 해야 한다. 근데, &lt;strike&gt;오늘 해커톤에서 해본바로는 Java의 File.setExecutable 로는 권한이 변경되지 않고, 뭔가 다른 방법을 해보려다가 시간이 다 되서 망했다.&lt;/strike&gt; 나중에 해보니 잘 된다. File.setExecutable 문제가 아니었다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>cscope</category>
			<category>ctags</category>
			<category>GPL</category>
			<category>해커톤</category>
			<author>종텐</author>
			<guid>http://jong10.com/507</guid>
			<comments>http://jong10.com/507#entry507comment</comments>
			<pubDate>Sat, 03 Dec 2011 23:19:49 +0900</pubDate>
		</item>
		<item>
			<title>Build Xv6 on Mac OS X Lion</title>
			<link>http://jong10.com/506</link>
			<description>&lt;p&gt;故 Dennis Ritchie와 Ken Thompson이 약 40년전에 PDP-11에서 C언어와 UNIX를 만들었다. PDP-11용 UNIX는 version 6의 코드가 남아있는데, Go언어 개발 등에 참여하고 있는 Russ Cox를 비롯한 옛날 벨연구소의 Plan9 프로젝트 일당이 MIT에서 운영체제 수업을 위해서 UNIX version 6 를 x86으로 포팅한 것이 &lt;a href="http://pdos.csail.mit.edu/6.828/2011/xv6.html"&gt;Xv6&lt;/a&gt;라는 프로젝트이다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Xv6 - &lt;a href="http://pdos.csail.mit.edu/6.828/2011/xv6.html"&gt;http://pdos.csail.mit.edu/6.828/2011/xv6.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Xv6 Toolchain - &lt;a href="http://pdos.csail.mit.edu/6.828/2011/tools.html"&gt;http://pdos.csail.mit.edu/6.828/2011/tools.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;간단히 말하면 x86용 운영체제 커널이고, 약 8천라인의 매우 짧은, 학습용의 운영체제 커널이다. 하지만, 다른 학습용 커널과 달리, 이것은 최초의 UNIX를 re-implementation한 거이라는 데에 의의가 있다. 아무튼, Xv6는 Linux에서는 매우 쉽게 빌드(make만 하면 된다)가 되고, Windows에서는 Cygwin을 끼얹으면 매우 불편하지만 대충 빌드가 되는 모양인데, Mac OS X의 gcc는 기본적으로 ELF 포맷이 아니기 때문에 약간의 빌드환경을 위한 크로스컴파일을 위한 gcc 자체를 빌드하는 과정이 필요하다.&lt;/p&gt;
&lt;p&gt;웹사이트에는 이렇게저렇게 20줄 정도만 입력하면 빌드환경을 구축할 수 있다고 하는데, 직접 해보니 잘 안되었다. 수정한 빌드 과정을 여기에 기록한다. 아래처럼 하면 빌드할 수 있다. wget과 Homebrew가 설치되어 있다고 가정한다. wget이 없다면 brew install wget 으로 설치한다. Homebrew의 설치는 &lt;a href="https://github.com/mxcl/homebrew/wiki/installation"&gt;이쪽&lt;/a&gt;을 참조한다.&lt;/p&gt;
&lt;p&gt;1. 일단, gawk, gmp, mpfr, mpc, glib 가 필요하다. gawk, gmp와 mpfr은 brew로 설치하면 되는데, mpc는 brew로 설치하면 동명이인의 다른 패키지이다. brew는 설치되었다고 가정한다. MacPort를 사용하더라도 큰 차이는 없으리라 생각된다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;brew install gawk gmp mpfr glib&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;혹시, glib의 소스 다운로드가 매우 오래걸리고 진행이 안된다면, brew edit glib 를 실행해서, ftp:// 부분을 http:// 로 바꿔보면, 매우 빠르게 다운로드가 될 것이다.&lt;/p&gt;
&lt;p&gt;2. mpc를 수동으로 설치한다. 컴파일 에러가 나는 부분을 sed -ie로 수정한다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar xvfz mpc-0.8.1.tar.gz
cd mpc-0.8.1
sed -ie 's/GMP_RNDA/MPFR_RNDA/g' src/acos.c
./configure --prefix=/usr/local/mpc-0.8.1
make
sudo make install&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;3. binutils, gcc-4.5.1, gdb-6.8a의 소스를 받아서 빌드 한다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;wget http://ftpmirror.gnu.org/binutils/binutils-2.21.1.tar.bz2
wget http://ftpmirror.gnu.org/gcc/gcc-4.5.1/gcc-core-4.5.1.tar.bz2
wget http://ftpmirror.gnu.org/gdb/gdb-6.8a.tar.gz
tar xvfz binutils-2.21.1.tar.bz2
tar xvfz gcc-core-4.5.1.tar.bz2
tar xvfz gdb-6.8a.tar.gz
cd binutils-2.21.1
./configure --target=i386-jos-elf --disable-nls
make
sudo make install
cd ../gcc-4.5.1
mkdir build
cd build
../configure --target=i386-jos-elf --disable-nls --without-headers \
              --with-newlib --disable-threads --disable-shared \
              --disable-libmudflap --disable-libssp \
              --with-mpc=/usr/local/mpc-0.8.1
make
sudo make install
cd ../gdb-6.8
./configure --target=i386-jos-elf --program-prefix=i386-jos-elf- \
              --disable-werror
make
sudo make install
cd ..&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;참고로, Linux는 여기까지의 과정이 필요없다. -_-&lt;/p&gt;
&lt;p&gt;4. 패치된 qemu를 설치한다. qemu를 이미 다른 곳에서 쓰는 경우는, configure 할때 --prefix 로 프리픽스를 건다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;git clone http://pdos.csail.mit.edu/6.828/qemu.git -b 6.828-0.15
cd qemu
./configure --disable-kvm --disable-sdl --target-list="i386-softmmu x86_64-softmmu"
make
sudo make install&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;5. Xv6 의 소스를 받아서 빌드하고, 실행한다. 지금도 개발중일 수 있는데, xv6-rev6 버전으로 빌드하겠다. 리눅스는 make 할때 TOOLPREFIX 옵션이 필요 없다.&lt;/p&gt;
&lt;blockquote&gt;&lt;pre&gt;git clone git://pdos.csail.mit.edu/xv6/xv6.git
cd xv6
git checkout -b xv6-rev6 xv6-rev6
make TOOLPREFIX=i386-jos-elf-
make qemu&lt;/pre&gt;&lt;/blockquote&gt;
&lt;p&gt;qemu를 통해서, 빌드한 Xv6의 이미지가 부팅된 것을 볼 수 있다. 즐거운 커널 해킹 되시길!&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<author>종텐</author>
			<guid>http://jong10.com/506</guid>
			<comments>http://jong10.com/506#entry506comment</comments>
			<pubDate>Fri, 18 Nov 2011 02:40:39 +0900</pubDate>
		</item>
		<item>
			<title>GitLab 설정시 팁</title>
			<link>http://jong10.com/505</link>
			<description>&lt;p&gt;개인 서버의 private한 소스 저장소를 &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; + &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; + &lt;a href="http://www.wsgi.org/"&gt;WSGI&lt;/a&gt; + &lt;a href="http://httpd.apache.org/docs/2.2/"&gt;Apache 2.2&lt;/a&gt; 를 메인으로 써오다가, Git과 Ruby 기반의 &lt;a href="http://gitlabhq.com/"&gt;GitLab&lt;/a&gt; + &lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt; + &lt;a href="http://nginx.org/"&gt;Nginx&lt;/a&gt; 로 마이그레이션 했다. GitLab은 Gitosis 기반의 git 저장소의 웹프론트엔드인데, 웹에서 적당한 액세스 관리를 할 수 있다는 것이 장점이다. GitHub의 오픈소스 클론을 표방하고 있고, 매달 릴리즈를 하는 등의&amp;nbsp;(아직 초창기라 그렇겠지만)&amp;nbsp;버전업 속도가 빠른 편인듯 하다. Rails3 로 만들어져 있어서, ruby 1.9.2-p290 이 필요하다.&lt;/p&gt;
&lt;p&gt;그동안 Apache만 써오다가,&amp;nbsp;&lt;a href="http://deepblue.springnote.com/pages/346034"&gt;퍼포먼스 소문을 많이 들어왔던 Nginx&lt;/a&gt;를 처음 써봤는데, 사실 개인 서버라서 퍼포먼스 같은건 잘 모르겠고 설정은 매우 간편했다. Apache2에서 Rails 서비스를 붙일때 굉장히 헤멨던 것을 생각하면 매우 간단했다. 다만, 모듈이 없고, Passenger랑 같이 빌드해야 한다는 점이 좀 충격이었다.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://beginrescueend.com/"&gt;rvm&lt;/a&gt;도 처음 써봤는데, 1.9.2와 1.8대의 루비가 동시에 설치되는걸 어찌 해야 하나 했는데, rvm으로 하면 지금 실행할 루비 버전과 패키지들을 포함한 환경을 선택할 수 있다. 특히, .rvmrc 가 포함된 폴더에 cd로 이동만 하더라도 ruby를 실행할때 버전이 바뀌는 것이 좀 짱이었다. python에도 virtualenv가 비슷한 것이라고 하는 것 같은데, 자세히는 모르겠다. 다만, rvm을 root로 실행하면 /usr/local 에 설치되는데, 어떤 사이드이펙트가 있을지 몰라서, rails를 돌리는 계정에만 rvm으로 ruty 1.9.2와 passenger를 설치했다.&lt;/p&gt;
&lt;p&gt;일단, 우분투 기준으로 아래 문서들을 참조하면 매우 쉽게 할 수 있다.&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;Rails3 을 위한, RVM, Ruby 1.9.2, Passenger, Nginx 설치&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.blog.bridgeutopiaweb.com/post/install-rvm-passenger-nginx-and-rails-3-on-ubuntu-lucid-lynx/"&gt;Install RVM, Passenger, Nginx and Rails 3 on Ubuntu Lucid Lynx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://thekindofme.wordpress.com/2010/10/24/rails-3-on-ubuntu-10-10-with-rvm-passenger-and-nginx/"&gt;Rails 3 on Ubuntu 10.10 with RVM, Passenger and Nginx&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Gitosis, GitLab 설치&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/gitlabhq/gitlabhq/blob/master/README.rdoc"&gt;https://github.com/gitlabhq/gitlabhq/blob/master/README.rdoc&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;p&gt;다만, gitosis 관련해서 약간의 삽질을 했는데, gitosis는&amp;nbsp;원래는&amp;nbsp;gitosis-admin.git 라는 저장소의 gitosis.conf 파일에서 유저 액세스 컨트롤을 한다. 하지만, GitLab을 사용하면 이를 웹에서 가능하게 해주는데, 예전에 gitosis를 사용할 때 처럼, 내 계정의 SSH키로 gitosis-admin.git 을 초기화 했다가 한참 헤맸다.&lt;/p&gt;
&lt;p&gt;반드시, rails3 을 돌리는 계정의 ssh키를 gitosis에 초기화 해줘야 하는데, 그래서 난 rails3 을 돌리는 계정과, gitosis에 초기화 하는 ssh키와, 내 계정의 ssh키를 모두 같은 키로 썼더니, 프로젝트를 만든 후에 push가 안되고 ssh키를 등록하면 push는 되지만 프로젝트 생성이 안되는 일을 겪었다.&lt;/p&gt;
&lt;p&gt;종합하면,&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;&lt;li&gt;rails3을 돌리는 계정의 rsa키&lt;/li&gt;
&lt;li&gt;gitosis를 초기화 할 때 사용하는 rsa키&lt;/li&gt;
&lt;li&gt;웹에서 사용할 관리자 계정의 이메일과 연결되는, clone/push에도 사용할 사용자 계정의 rsa키&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;1번과 2번은 반드시 같아야 하고, 3번은 1,2번과 달라야 한다. 이것을 모두 같게 하면, 문제가 발생한다.&lt;/u&gt;&lt;/b&gt; 이 한 문장을 쓰기 위해 이 글을 썼다. Gitosis를 사용해보지 않았다면, 이유를 영원히 몰랐을 것 같다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;
&lt;p&gt;p.s. 블로그에 글을 쓸때마다 티스토리 웹에디터가 구려서 마크업을 직접 수정하는데, 마크다운이 지원되는 환경으로 옮기고 싶다. ㅠㅠ&lt;/p&gt;</description>
			<category>프로젝트관리</category>
			<category>git</category>
			<category>github</category>
			<category>GitLab</category>
			<category>gitosis</category>
			<category>rails3</category>
			<category>Ruby</category>
			<category>RVM</category>
			<author>종텐</author>
			<guid>http://jong10.com/505</guid>
			<comments>http://jong10.com/505#entry505comment</comments>
			<pubDate>Sun, 13 Nov 2011 00:48:34 +0900</pubDate>
		</item>
		<item>
			<title>gollum-auth를 HTTP Athentication 적용</title>
			<link>http://jong10.com/504</link>
			<description>&lt;p&gt;몇일 전에 올렸던, &lt;a href="https://github.com/jong10/gollum-auth"&gt;gollum-auth&lt;/a&gt;의 인증 방법을 HTTP Basic Athentication 으로 변경했다. &lt;a href="https://github.com/jong10/gollum-auth/blob/master/lib/gollum/auth.rb"&gt;lib/gollum/auth.rb&lt;/a&gt; 파일에 유저ID와 md5가 적용된 패스워드만 적어주면 HTTP 인증이 적용 된다.&lt;/p&gt;

&lt;p&gt;&lt;pre class="ruby" name="code"&gt;require 'digest/md5'

module Gollum
  class Auth
    def login(username, password)
      [
        # You can generate md5 password from
        # ['name', 'md5 hashed password'],
        ['username', '4ef62f3ef91bfc8b0474b1bf81c5f4cb'], # YOUR_PASSWORD
        ['sample', '5e8ff9bf55ba3508199d22e984129be6'],
        # append username and md5ed password here..
      ].include?([username, Digest::MD5.hexdigest(password)])
    end
  end
end&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;md5 다이제스트는 쉘에서 아래와 같이 실행해서 생성할 수 있다.&lt;br /&gt;
&lt;span style="font-size: 9pt; "&gt;$ echo '패스워드' | ruby -e "require 'digest/md5'; puts Digest::MD5.hexdigest(STDIN.read.chomp)"&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>git</category>
			<category>gollum</category>
			<category>MD5</category>
			<category>Ruby</category>
			<category>Sinatra</category>
			<category>Wiki</category>
			<author>종텐</author>
			<guid>http://jong10.com/504</guid>
			<comments>http://jong10.com/504#entry504comment</comments>
			<pubDate>Sat, 06 Aug 2011 16:08:27 +0900</pubDate>
		</item>
		<item>
			<title>gollum-auth</title>
			<link>http://jong10.com/503</link>
			<description>&lt;p&gt;&lt;a href="http://github.com/"&gt;Github&lt;/a&gt;에서 만든 &lt;a href="https://github.com/github/gollum"&gt;gollum&lt;/a&gt;이라는 위키위키 엔진이 있다. Github에서 사용하는 위키엔진이고, 굉장히 이쁘고, 심플하고, Markdown도 reST도 지원하고, Git 위에서 돌아가고 모두 참 훌륭하다. 다만, 웹에서 수정을 하면, 해당 계정의 .gitconfig 에 커밋한 사람의 이름이 의존적이 되는데, 멀티유저로 사용하기엔 참 애매하다. 쉽게 말하면, 1인용이다.&lt;/p&gt;

&lt;p&gt;나는 3~4명이서 사용할 위키 엔진이 필요했는데, 다른건 다 안 이쁘고, 골룸은 이뻤다. (골룸이 이쁘다니...)&amp;nbsp;결국, 두어시간 삽질을 해서 반쪽짜리 authentication를 붙였다. &lt;a href="https://github.com/jong10/gollum-auth/"&gt;gollum-auth&lt;/a&gt; 라는 프로젝트로 fork를 했고, &lt;a href="https://github.com/jong10/gollum-auth/commit/764f75b74a146ce86373425ac3d0915a603dea85"&gt;변경한 부분&lt;/a&gt;은 많지 않다. 페이지에 접속할 때에 로그인을 필요로 하고, 아이디만 입력하면 로그인 된다. 아이디는 &lt;a href="https://github.com/jong10/gollum-auth/blob/master/lib/gollum/auth.rb"&gt;lib/gollum/auth.rb&lt;/a&gt; 파일에 써놓으면 된다. 패스워드 따위 묻지 않지만, 필요한 사람은 적당히 수정해서 사용하면 될 것 같다. 난 필요 없다. &lt;a href="http://www.sinatrarb.com/"&gt;sinatra 웹 프레임워크&lt;/a&gt;는 처음 다뤄봤는데, 심플하고 괜찮은 것 같다. get post 로 시작하는 EDSL틱한 부분도 마음에 들었는데, ruby라서 가능한 듯 싶다.&lt;/p&gt;

&lt;p&gt;&lt;pre class="ruby" name="code"&gt;module Gollum
  class Auth
    def login(userid)
      [
        'userid1',
        'userid2',
      ].include?(userid)
    end
  end
end&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;멍청한 인증방법이지만, 딱 내가 필요한 정도라서 그 밖의 기능을 추가하진 않을 듯 싶다. 나는 단지, 누가 해당 페이지를 수정했는지 알고 싶었을 뿐이다.&lt;/p&gt;

&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<author>종텐</author>
			<guid>http://jong10.com/503</guid>
			<comments>http://jong10.com/503#entry503comment</comments>
			<pubDate>Fri, 05 Aug 2011 01:32:55 +0900</pubDate>
		</item>
		<item>
			<title>Sphinx 사소한 팁 몇가지</title>
			<link>http://jong10.com/502</link>
			<description>&lt;p&gt;요 몇일간, 모 사이트에 Full-Text 검색을 붙이려고 &lt;a href="http://sphinxsearch.com/"&gt;Sphinx&lt;/a&gt;를 만지며 놀았다. 처음엔 &lt;a href="http://lucene.apache.org/"&gt;Lucene&lt;/a&gt;을 고려했으나, 해당 사이트의 서버사이드는 Java 기반이 아닌 PHP였고, 내 서버도 아닌데 단지 검색 때문에 JVM을 띄우는 것은 왠지 죄책감이 느껴졌다. 결정적으로, Sphinx를 붙이는 것은 Lucene을 붙이는 것 보단, 훨씬 손이 덜 갈 것으로 판단했다.&lt;/p&gt;
&lt;p&gt;Sphinx를 처음 써보거나, 도입을 고려하는 사람을 위해서 몇 가지 말을 해보자면,&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;Lucene을 적용하는 것 보단 훨씬 간단하다. 특히, PHP, Ruby, Python의 경우 좋을듯.&lt;/li&gt;
&lt;li&gt;백엔드가 DB인 경우(특히 MySQL)에도 매우 간단하다. 코드 한 줄 필요 없고 최소한의 설정으로 바로 인덱싱 및 검색이 가능하다.&lt;/li&gt;
&lt;li&gt;백엔드가 DB가 아닌 경우는 &lt;a href="http://sphinxsearch.com/docs/2.0.1/xmlpipe2.html"&gt;xmlpipe2 driver&lt;/a&gt;만 만들어주면 된다.&lt;/li&gt;
&lt;li&gt;Lucene처럼 동작을 어느정도 이해할 필요가 전혀 없다.&lt;/li&gt;
&lt;li&gt;한글 및 &lt;a href="http://ko.wikipedia.org/wiki/CJK"&gt;CJK&lt;/a&gt; 검색은 기본적으론 되진 않지만, &lt;a href="http://sphinxsearch.com/wiki/doku.php?id=charset_tables#cjk_ngram_characters"&gt;CJK ngram characters&lt;/a&gt;를 설정하면 된다.&lt;/li&gt;
&lt;li&gt;CJK 경우는 형태소 분석기가 내장되어 있지 않다.&lt;/li&gt;
&lt;li&gt;ngram의 길이는 옵션으로 줄 수 있지만, 1 밖에 안 된다. 2 이상이면 assert 에서 죽는다고 한다. -_-;;&lt;/li&gt;
&lt;li&gt;ngram으로 하면, 한글이 한 글자씩 분리되서 검색이 된다. "종텐"을 검색하는 경우에, "텐종"은 물론, "종어쩌구저쩌구텐"이라던가, "텐어쩌구 저쩌구 종"도 검색된다. -_-;; 문서의 길이가 긴 경우에는, 한글 형태소 분석기를 구현하거나, Lucene에 CJK 형태소 분석기를 달아서 쓰는 편이 나을 수 있다.&lt;/li&gt;
&lt;li&gt;0.9.9 가 마지막 stable release 이지만, 없는 기능도 좀 있고, 버그도 있으니깐, 최신 버전을 빌드해서 쓰는걸 권장한다.&lt;/li&gt;
&lt;li&gt;field 내용이 결과에 포함되지 않는 점이 xmlpipe2로 사용하는 경우는 꽤 불편한데, 1.10-beta 이상부턴 이를 지원한다.&lt;/li&gt;
&lt;li&gt;1.10-beta는 SetLimits 함수에 심각한 버그가 있다. 2.0.1-beta 이상을 빌드해서 사용할 것.&lt;/li&gt;
&lt;li&gt;document id 를 64비트 정수로 하려면, ./configure --enable-id64 로 빌드해야 한다. 실행했을 때에 id64가 써있으면 64비트로 빌드된 것이고, 그렇지 않다면 64비트 시스템이라 하더라도 32비트로 빌드된 것이다.&lt;/li&gt;
&lt;li&gt;언어에 상관 없이, &lt;a href="http://www.ibm.com/developerworks/kr/library/os-php-sphinxsearch/"&gt;PHP로 커스텀 검색 엔진 구현하기 (한글)&lt;/a&gt;를 한번 읽어보면 좋다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>Lucene</category>
			<category>sphinx</category>
			<category>sphinxsearch</category>
			<author>종텐</author>
			<guid>http://jong10.com/502</guid>
			<comments>http://jong10.com/502#entry502comment</comments>
			<pubDate>Tue, 28 Jun 2011 19:52:09 +0900</pubDate>
		</item>
		<item>
			<title>DTrace, SystemTap, Instruments</title>
			<link>http://jong10.com/501</link>
			<description>&lt;p&gt;리눅스 커널 TCP/IP 레이어를 프로파일링할 괜찮은 방법이 없는지 물어봤다가, sanxiyn님에게 &lt;a href="http://en.wikipedia.org/wiki/DTrace" target="_self" title="[http://en.wikipedia.org/wiki/DTrace]로 이동합니다."&gt;DTrace&lt;/a&gt;에 대한 얘길 들었다.&amp;nbsp;DTrace는 솔라리스에서 사용하는 외계 기술이다. 최소한의 준비로 커널을 트레이싱할 수 있는 커널 모듈(?)인데, 대충 훓어본 바로는 어느 함수가 몇번이나 호출되었는지와, 함수 호출 그래프, 심지어 파라미터로 넘기는 데이터까지도 트레이싱할 수 있는 것 같다. 더 놀라운건, 부하가 거의 걸리지 않는다고 한다.&lt;/p&gt;
&lt;p&gt;솔라리스에 있다는 점이 굉장히 아쉬웠는데, 리눅스로 일부가 포팅된 &lt;a href="http://sources.redhat.com/systemtap/"&gt;SystemTap&lt;/a&gt;이라는 것이 있다. 여러가지 사정으로 직접 테스트를 해보진 못했지만, 일단은 페도라 계열이나 우분투 계열에서 간단히(?) 사용이 가능한 것 같다. 다만, 커널을 트레이싱 하려면 커널 컴파일을 다시 하거나, 디버그 심볼이 들어간 빌드된 커널 이미지를 받아야 한다. 우분투의 경우는 &lt;a href="http://sourceware.org/systemtap/wiki/SystemtapOnUbuntu"&gt;SystemTapOnUbuntu 링크&lt;/a&gt;를 참조하면 된다.&lt;/p&gt;
&lt;p&gt;더 놀라운것은, DTrace를 애플이 Mac OS X 10.5 이상에 포팅했는데, 짱 쿨한 GUI를 통해서 이용할 수 있다. Xcode에 포함된 Instruments가 그것인데, &lt;a href="http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/"&gt;Instruments User Guide&lt;/a&gt;를 참조하면 된다. 물론, 이 쪽에서는 커널 내부를 볼 수 있는 것 같진 않고, 애플리케이션 디버깅을 위한 용도로 판단된다. 대신, 아이폰 시뮬레이터를 통해서, iOS 앱도 프로파일링 할 수 있는 것 같다! 내 자취방에는 리눅스 머신도 없고 솔라리스도 없어서, 맥북에서 Instruments만 실행 해봤는데, 아래 사진들은 구글 크롬을 걸고 트레이싱을 한 모습이다. 살아있는 객체의 목록과 주소, 생성된 시각, CallTree 등을 볼 수 있는데, 이것들은 기본적인 기능들이고, DTrace의 스크립트를 이용하면, 꽤 상세하게 원하는 부분을 캐치할 수 있는 것 같다.&lt;/p&gt;

&lt;div class="imageblock triple" style="text-align: center"&gt;&lt;table cellspacing="5" cellpadding="0" border="0" style="margin: 0 auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://cfile28.uf.tistory.com/image/181255334DC01E412B70F6" alt="" height="199" width="196"/&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="http://cfile9.uf.tistory.com/image/201255334DC01E422C757E" alt="" height="179" width="196"/&gt;&lt;/td&gt;&lt;td&gt;&lt;img src="http://cfile27.uf.tistory.com/image/131255334DC01E442D1922" alt="" height="179" width="196"/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sun 관련 블로그(이젠 오라클 관련 블로그가 아닌지 싶지만)에 &lt;a href="http://blog.sdnkorea.com/blog/146"&gt;DTrace에 대한 강좌&lt;/a&gt;가 하나 있는데, 나중에 시간이 나면 한번 봐야겠다. 난 졸립고 일찍 일어나서 출근도 해야 되니깐, 글은 그만 쓰고 자야겠다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<author>종텐</author>
			<guid>http://jong10.com/501</guid>
			<comments>http://jong10.com/501#entry501comment</comments>
			<pubDate>Wed, 04 May 2011 00:14:54 +0900</pubDate>
		</item>
		<item>
			<title>간단한 구현을 작성하는 것과 제대로 된 구현을 읽는 것</title>
			<link>http://jong10.com/500</link>
			<description>&lt;p&gt;프로그래머들의 (책, 문서, 논문 등을 제외하면) 특정 분야에 대한 개인적인 공부는 크게 두가지 방법이 있는 것 같다. 첫 번째는 작고 간단한 구현을 작성해 보는 것이고, 두 번째는 제대로 되어있는 구현을 읽는 것이다. 예를 들어서, OS 커널을 공부한다면, 작고 간단한 커널을 만들어보는 것과, 리눅스 커널의 코드를 분석하는 것이 있을 수 있겠다. 물론, 궁극적으로는 제대로 되어있고 커다란 구현을 작성하면 좋겠지만, 처음부터 잘 할 수는 없지 않은가? (처음부터 잘 하는 &lt;a href="http://en.wikipedia.org/wiki/Jamie_Zawinski"&gt;Jamie Zawinski&lt;/a&gt; 같은 괴물도 세상에 있긴 하다.)&lt;/p&gt;
&lt;p&gt;책을 많이 읽는다고 좋은 소프트웨어를 만드는 것도 아니고, Accelerated C++의 마지막 페이지에는 "여러분이 읽을 거리를 찾을 때, 명심해야 할 사실은 책장의 책들이 여러분을 더 나은 프로그래머로 만들어 주지는 않는다는 것입니다. 극단적으로 표현하자면, 여러분의 프로그래밍 능력을 향상시키는 유일한 방법은 직접 프로그램을 작성해 보는 것입니다. 프로그래밍을 즐기세요!"라는 말도 나온다. 초급자일때 이런 문장이 뇌리에 박혀서 그런지, 아니면 내가 성격이 매우 급해서 그런지 모르겠지만, 난 대체적으로 첫 번째 방법만을 하면서 살았다.&lt;/p&gt;
&lt;p&gt;OS도 잘 모르면서 리누스 토발즈처럼 21살에 운영체제를 만들어야 한다면서 조잡한 커널을 만들다가 망했고, 네트워크도 잘 모르면서 RTOS에 프로토콜을 올리다가 망했고, HTTP 스펙도 웹프레임워크도 잘 모르면서 웹프레임워크 만드는 오픈소스 프로젝트에 낑겼다가 몇 줄 짜지도 못했고, Key/Value DB도 모르면서 조잡하게 흉내만 내다가 망했고, 컴파일러도 잘 모르면서 조잡한 프로그래밍 언어 구현을 만들었는데 망했고, 등등. 말만 들으면 뭔가 다 대단한 것 같지만, 사실은 그냥 다 장난감 수준이다.&lt;/p&gt;
&lt;p&gt;결과물이 완성되지 않았거나 쓸만하지 않은 정도를 망했다의 기준으로 삼는다면, 앞에서 언급한 것들은 다 망했다는 것이 공통점이다. 나 스스로는 이것저것 배운 것 같긴 한데, 좀 한계가 많이 느껴진다. 이렇게 해서는 절대로 평~생 "제대로 된 커다란 구현"을 만들기는 굉장히 어렵단 생각이 든다. 물론, 첫 번째 방법이 두 번째 방법보다 갖는 장점도 많다. 책이나 문서, 논문을 통해서 보는 것 보다는 좀 더 정확하게 몸으로 체득할 수 있다는 점이지만, 비교적 시간도 많이 들고 시간에 비해 레벨업이 별로 안되고, 혼자서 바퀴를 재발명하는 일이 많기 때문에 수십년 전의 기술에 머무르는 수준이 전부인 것 같다. 적당한 밸런스를 유지할 필요가 있다. 그래서, 2~3년 정도는 책이든 문서든 논문이든 (특히) 코드든, 쓰는 것 보다는 읽는 것에 좀 치중하고 싶다.&lt;/p&gt;
&lt;p&gt;반대로, 읽는 것에 치중했던 사람이라면, 작은 구현을 작성해 보는 것을 추천한다. 딱히 내가 타인에게 조언을 할 수 있을만한 입장은 아니지만, 재밌는 경험이 되리라 생각한다. 뭐 결국은, read와 write는 양쪽 다 어느정도씩 필요한게 아닐까?&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<author>종텐</author>
			<guid>http://jong10.com/500</guid>
			<comments>http://jong10.com/500#entry500comment</comments>
			<pubDate>Fri, 22 Apr 2011 01:17:53 +0900</pubDate>
		</item>
		<item>
			<title>독립했다.</title>
			<link>http://jong10.com/499</link>
			<description>&lt;p&gt;독립했다. 작은 원룸에 사는 대출러가 되었다. 혼자 밥을 차려 먹는 것은 생각보다 좀 더 쓸쓸했는데, 어차피 대부분 회사에서 먹게 될 것이라는게 불행인지 다행인지 모르겠다. 음악을 틀어놓으면 그나마 좀 덜 적적하다. 건물에 인터넷TV 선도 들어오는데, 구형 TV에 연결이 안되서 24인치 LCD 모니터에 꼽고 (소리 없이) 화면만 봤다. -_-; 구입한 침대는 아직 배달이 되지 않았고, 책상은 안사려고 했는데 생각보다 불편해서 작은걸 하나 사야겠다. 이것저것 생활용품을 샀더니 돈이 엄청 깨졌다. &lt;b&gt;산다는 것은 참으로 돈이 많이 드는 일이다.&lt;/b&gt; 가스비가 얼마나 나올진 모르겠지만, 다행히 난방은 잘 된다. 이사 오기 전의 집은, 안방은 덥고 내 방은 추웠는데. 냉장고가 배가 고픈지 계속 꼬르륵 소리가 나는데, 냉장고 안쪽의 유의사항을 보니깐 냉매가 흐르는 거라면서 정상이라고 써있었다. 그래도 주말엔 자주 서울 집에 갈 생각인데, 아무튼, 독립했다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐&lt;/p&gt;</description>
			<category>나른한일상</category>
			<author>종텐</author>
			<guid>http://jong10.com/499</guid>
			<comments>http://jong10.com/499#entry499comment</comments>
			<pubDate>Sun, 27 Mar 2011 23:21:00 +0900</pubDate>
		</item>
		<item>
			<title>졸업을 했다</title>
			<link>http://jong10.com/497</link>
			<description>&lt;p&gt;드디어 졸업을 했다. 중간에 학교를 한번 옮기긴 했지만, 처음에 02학번이었던 것을 생각해보면 참으로 오래 다녔다. 3학년으로 편입학을 했던 2008년에 "&lt;b&gt;졸업 전에 이걸 해봤으면 좋겠다&lt;/b&gt;"라고 생각한 다섯 가지 항목이 있었는데,&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;연애&lt;/li&gt;
&lt;li&gt;프로그래밍 알바&lt;/li&gt;
&lt;li&gt;프로그래밍 잡지에 강좌 연재&lt;/li&gt;
&lt;li&gt;프로그래밍 책을 쓰는 것&lt;/li&gt;
&lt;li&gt;외국 유명 오픈소스 프로젝트의 소스커미터가 되는 것&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;...이었다. 졸업을 한 지금 시점에 결산을 하자면,&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;&lt;s&gt;연애&lt;/s&gt; - 지금, 연애중이다.&lt;/li&gt;
&lt;li&gt;&lt;s&gt;알바&lt;/s&gt; - 프리랜서의 삶을 1년 조금 넘게 경험해봤다.&lt;/li&gt;
&lt;li&gt;&lt;s&gt;잡지에 연재&lt;/s&gt; - 월간 마이크로소프트웨어에 연재를 했다.&lt;/li&gt;
&lt;li&gt;&lt;s&gt;책을 쓰는 것&lt;/s&gt; - 안드로이드 프로그래밍 책을 썼다.&lt;/li&gt;
&lt;li&gt;소스커미터 - 이건 아직 못 해봄.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;다섯 가지 중에서 네 가지를 이뤘다. 중간에 휴학을 1년 했고 아쉬운 것도 있지만, 나름 괜찮은 3년이었다고 할 수 있으려나? &lt;a href="http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8952209249" target="_self" title="[http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8952209249]로 이동합니다."&gt;마지막 강의&lt;/a&gt;의 랜디 포시 교수님의 말씀이 맞는 것 같다. &lt;b&gt;소망하면 이루어진다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 졸업한 종텐.&lt;/p&gt;</description>
			<category>영혼의목소리</category>
			<category>대졸</category>
			<category>졸업</category>
			<author>종텐</author>
			<guid>http://jong10.com/497</guid>
			<comments>http://jong10.com/497#entry497comment</comments>
			<pubDate>Sun, 20 Feb 2011 14:27:46 +0900</pubDate>
		</item>
		<item>
			<title>책 썼다! 안드로이드 프로그래밍</title>
			<link>http://jong10.com/496</link>
			<description>&lt;p&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile24.uf.tistory.com/image/183DE14D4D5D559B2FA4D9" alt="" filemime="image/jpeg" filename="android.jpg" height="400" width="292"/&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;책 썼다! 제목은 &lt;b&gt;제대로 된 안드로이드 앱 개발을 위한 안드로이드 프로그래밍&lt;/b&gt;이고, 안드로이드 프로그래밍 입문서라고 할 수 있다. Yes24에서 예약판매를 하다가 23일에 출간되었다.&lt;/p&gt;
&lt;ul style="list-style-type: square; "&gt;&lt;li&gt;YES24 :&amp;nbsp;&lt;a href="http://www.yes24.com/24/goods/4661327" target="_self" title="[http://www.yes24.com/24/goods/4661327]로 이동합니다."&gt;http://www.yes24.com/24/goods/4661327&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;알라딘 :&amp;nbsp;&lt;a href="http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=899491403X" target="_self" title="[http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=899491403X]로 이동합니다."&gt;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=899491403X&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&amp;lt;추천사&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;우선 이 책을 손에 쥔 것을 축하한다. 오랫동안 자바를 다뤄왔다는 자신감에 안드로이드 개발을 만만하게 보고 앱 개발을 시작하여, 수많은 버그들을 만들어 고생한 기억이 아직도 생생하다. 그때 이 책을 미리 가지고 있었다면 어땠을까 생각해본다. 이 책은 감히 안드로이드 개발의 모든 것을 제공하려고 들지 않는다. 꼭 알아야할 것, 공부해 둘 가치가 있는 내용들을 친절하게 설명하고, 실용적인 내용을 제공하여 읽는 재미를 더해준다. 책을 읽어 내려가며, 여기서 얻은 내용으로 그저 무엇을 '할 수 있다'가 아니라 제대로 개발하는 법을 알려주려는 저자들의 노력을 느낄 수 있다.&lt;br /&gt;
- &lt;b&gt;황장호&lt;/b&gt; (MSN 톡 앱개발자)&lt;/p&gt;
&lt;p&gt;이 책은 최신 안드로이드 버전인 진저브레드A(ndroid v2.3)를 바탕으로 알기 쉬운 예제와 도해 설명을 포함하고 있다. 특히 안드로이드를 배우기 위해서는 기본적인 UI 컴포넌트에 대한 이해가 필수적인데, 주요한 UI 컴포넌트에 대한 설명이 잘 되어 있고 예제 중심이어서 활용하기 편하게 되어 있다. 따라서 이 책은 안드로이드를 배우기에 참 좋은 책이라고 생각된다. 앞으로 이 책을 시작으로 안드로이드에 대한 이해를 높여 스마트 폰 세계에 사용자들에게 사랑받는 앱을 개발할 수 있기를 기대한다. 마지막으로 여러분의 숨어있는 Zygote를 깨워 자신만의 멋진 Android를 탄생시키길 기대한다.&lt;br /&gt;
- &lt;b&gt;장선진&lt;/b&gt; (소프트웨어인라이프 대표이사)&lt;/p&gt;
&lt;p&gt;Android는 더 이상 스마튼폰의 OS가 아닌, 수많은 디바이스에 사용되는 범용OS가 되어 버렸다. 냉장고, 세탁기, 청소기 심지어 SmartPad까지 Android의 위세는 대단하다고 볼 수 있다. 이런 인기에 많은 분들이 Android 서적 구입을 고려하고 있을 것이다. 만약, 여러분이 새로운 플랫폼을 처음 접할 때 세세한 설정 이슈 때문에 골치 아프기 싫다거나 초급자들이 단계별로 쉽게 따라 할 수 있는 서적이 필요하다면, 이 책은 안드로이드를 처음 시작하는 분들에게 좋은 벗이 될 것이다.&lt;br /&gt;
- &lt;b&gt;손영수&lt;/b&gt; (삼성전자 DMC 연구소)&lt;/p&gt;
&lt;p&gt;마지막으로, 저자들이 나름 열심히 썼으니, 안드로이드 개발을 처음 공부하는 사람들에게 조금이라도 도움이 되었으면 좋겠다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 기쁜 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>안드로이드</category>
			<category>책썼다</category>
			<author>종텐</author>
			<guid>http://jong10.com/496</guid>
			<comments>http://jong10.com/496#entry496comment</comments>
			<pubDate>Fri, 18 Feb 2011 01:59:58 +0900</pubDate>
		</item>
		<item>
			<title>notification의 홍수</title>
			<link>http://jong10.com/495</link>
			<description>&lt;p&gt;핸드폰이 울린다. 트위터에서 누가 날 언급했다는 알림이다. 핸드폰이 울린다. 페이스북에서 누가 친구 신청을 했다. 핸드폰이 울린다. 3천만원까지 대출이 가능하다는 문자다. 핸드폰이 울린다. 진행중인 프로젝트와 관련된 이메일이다. 핸드폰이 울린다. 카카오톡으로 누가 메세지를 보냈다. 핸드폰이 울린다. 미투데이에서 누가 친구 신청을 했다고 알림이 왔다. 핸드폰이 울린다. 학교에서 방학중에 무슨 회사에서 인턴 모집한다는 문자가 왔다. 핸드폰이 울린다. 학교에서 무슨 회사에 채용추천 한다는 문자가 왔다. 핸드폰이 울린다. SKT에서 스마트폰으로 바꿔준다는 전화가 왔다. 핸드폰이 울린다. 무슨 서비스에서 리뉴얼 했다고 이메일이 왔다. 핸드폰이 울린다. 플리커에서 누가 날 folllow했다고 이메일이 왔다. 핸드폰이 울린다. 핸드폰에 설치된 무슨 앱에서 업그레이드 하라는 공지가 왔다. 핸드폰이 울린다. Google Talk에서 누가 말을 걸었다. 핸드폰이 울린다. 페이스북. 핸드폰. 트위터. 핸드폰. 미투데이. 핸드폰. 핸드폰. 핸드폰, 핸드, 핸드, 핸... !@#$!&amp;*%!&lt;/p&gt;
&lt;p&gt;우리는 빌어먹을 notification의 홍수 속에서 살고 있다. 서비스 프로바이더들은 사용자가 무언가를 실시간으로 알아야만 한다고 착각하거나, 싫어하는 것을 알면서도 끊임없이 괴롭힌다. 사용자들은 아주아주 가끔 유용한 일부 때문에, 특정 서비스의 알림 옵션을 끄지 못하는 경우도 많다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>나른한일상</category>
			<category>Notification</category>
			<category>스마트폰</category>
			<category>아이폰</category>
			<category>안드로이드</category>
			<category>알림</category>
			<category>핸드폰</category>
			<author>종텐</author>
			<guid>http://jong10.com/495</guid>
			<comments>http://jong10.com/495#entry495comment</comments>
			<pubDate>Thu, 13 Jan 2011 21:14:30 +0900</pubDate>
		</item>
		<item>
			<title>Treetop에서의 공백 처리</title>
			<link>http://jong10.com/494</link>
			<description>&lt;p&gt;예전에 이 블로그에도 올렸던, &lt;a href="http://jong10.com/429"&gt;Ruby로 15분간 Scheme 인터프리터 만들기&lt;/a&gt;를 따라하면서 &lt;a href="http://treetop.rubyforge.org/"&gt;Treetop&lt;/a&gt;을 조금씩 써보고 있다. 이 영상을 찍은 아저씨가 만들고 있는 &lt;a href="https://github.com/jcoglan/heist"&gt;Heist&lt;/a&gt;라는 Scheme 인터프리터 구현이 있긴 한데, 이 쪽은 코드가 너무 길어서 보기 힘들더라. 여튼, lex/yacc 만 쓰다가 Treetop 을 써보니, 이는 Lexical Analysis와 Syntax Analysis가 구분되어 있지 않은 PEG(&lt;a href="http://en.wikipedia.org/wiki/Parsing_expression_grammar"&gt;Parsing Expression Grammars&lt;/a&gt;)라는 방식인데, 뭔가 미묘하게 좋은 것 같으면서도, 반대로 불편한 점도 있어서 헤메고 있다.&lt;/p&gt;
&lt;p&gt;Treetop은 &lt;a href="http://en.wikipedia.org/wiki/LR_parser"&gt;LR Parsing&lt;/a&gt;이 아니고 &lt;a href="http://pdos.csail.mit.edu/~baford/packrat/"&gt;Packrat Parsing&lt;/a&gt;이라서 뭔가 메모리도 조금 먹고, 속도도 빠르고 그렇다는데, 난 Packrat Parsing의 내부 구현을 아는건 아니라서 잘 모르겠다. PEG와 Packrat 파싱이 무슨 관계인지도 잘 모르겠다. 아무튼, Treetop은 PEG이면서 Packrat Parsing인데, 사용하는 입장에서 보자면, Treetop은 토크나이징과 파싱이 합쳐진 느낌이다. 이건 아마 PEG의 특성인 것 같은데, 코드를 보면 이해가 빠르다, 아래는 Scheme 인터프리터를 구현하는 Treetop 문법이다.&lt;/p&gt;
&lt;pre class="ruby" name="code"&gt;grammar Lisp
  rule program
    cell* &amp;lt;program&amp;gt;
  end
  
  rule cell
    space* (list / atom) space* &amp;lt;Cell&amp;gt;
  end

  rule list
    '(' cell+ ')' &amp;lt;List&amp;gt;
  end

  rule atom
    datum / identifier
  end

  rule datum
    boolean / integer
  end

  rule boolean
    ('#t' / '#f') &amp;lt;Boolean&amp;gt;
  end
  
  rule integer
    ('0' / [1-9] [0-9]*) &amp;lt;Integer&amp;gt;
  end

  rule identifier
    (!delimiter .)+ &amp;lt;Identifier&amp;gt;
  end

  rule space
    [\s\n\r\t]
  end
  
  rule paren
    [\\(\)\[\]]
  end
  
  rule delimiter
    paren / space
  end
end
&lt;/pre&gt;
&lt;p&gt;각 패턴 옆에 실행할 Ruby 코드를 직접 써도 되고, 꺽쇠 괄호로 감싼 경우는 해당 이름의 클래스/모듈에서 처리를 하게 된다. Ruby랑도 적당히 잘 어울려서 쓸만한 것 같은데, 딱 하나 불만은 공백 처리이다. 이 코드에선 cell 논터미널에서 space 를 통해서 공백 문자를 consume하는데, 이 코드의 입력은 비교적 파싱이 간단한 Lisp계열이므로 나름 괜찮은데, delimiter가 공백과 괄호만 있는게 아닌 경우는 문법을 쓰기가 상당히 복잡해지는 것 같다. 설마, 대안이 없을까 싶긴 한데, 열심히 구글링을 해 보았으나 딱히 방법을 찾지 못했고, 다들 공백 자체도 문법에 포함시켜서 직접 처리하더라. 아무래도, Treetop의 문제라기 보다는, PEG 자체의 특성 때문이 아닌가 싶기도 한데, 심증 뿐이다. 결론은 &lt;b&gt;Treetop에서 CFG(&lt;a href="http://en.wikipedia.org/wiki/Context-free_grammar"&gt;Context Free Grammar&lt;/a&gt;)처럼 구현하려면, 공백 처리 때문에 힘들다!&lt;/b&gt; 정도. 방법이 없나 이거..&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>CFG</category>
			<category>PEG</category>
			<category>Ruby</category>
			<category>Treetop</category>
			<category>공백</category>
			<author>종텐</author>
			<guid>http://jong10.com/494</guid>
			<comments>http://jong10.com/494#entry494comment</comments>
			<pubDate>Sat, 01 Jan 2011 05:23:19 +0900</pubDate>
		</item>
		<item>
			<title>writing은 어렵다</title>
			<link>http://jong10.com/493</link>
			<description>&lt;p&gt;writing은 어렵다. 블로깅을 오래 해왔음에도 불구하고, 글을 쓰는 것은 언제나 어렵다. 코딩을 몇년간 해왔음에도 불구하고, 코드를 쓰는 것도 여전히 어렵다. 글을 &lt;b&gt;&lt;u&gt;쓰는 것&lt;/u&gt;&lt;/b&gt;과 코드를 &lt;b&gt;&lt;u&gt;쓰는 것&lt;/u&gt;&lt;/b&gt;은 비슷하다. 아마도, 이 두가지는 같은 능력이 필요한 것 같다.&lt;/p&gt;
&lt;p&gt;-- 세상에 쉬운게 하나도 없다고 생각하는 졸린 종텐.&lt;/p&gt;</description>
			<category>영혼의목소리</category>
			<author>종텐</author>
			<guid>http://jong10.com/493</guid>
			<comments>http://jong10.com/493#entry493comment</comments>
			<pubDate>Fri, 03 Dec 2010 03:27:04 +0900</pubDate>
		</item>
		<item>
			<title>지금 당장 Indexed DB 를 테스트 해보려면?</title>
			<link>http://jong10.com/492</link>
			<description>&lt;p&gt;HTML5 에 포함될 예정이던 &lt;a href="http://dev.w3.org/html5/webdatabase/"&gt;Web SQL Database&lt;/a&gt;가 몇일 전에 표준 제정이 중지되었다. Web SQL Database는 웹브라우저에서 사용할 수 있는 클라이언트 사이드 RDMBS인데, 이를 대체할 HTML5 의 대세는, &lt;a href="http://www.w3.org/TR/IndexedDB/"&gt;Indexed Database API&lt;/a&gt; (줄여서 Indexed DB) 이다.&lt;/p&gt;
&lt;p&gt;다만, 현재 시점에서, 구글 크롬, 사파리, 오페라, 아이폰, 안드로이드, 심지어 바다OS 조차도, Web SQL Database 는 지원하고 있지만, Indexed DB 는 지원하지 않고 있다. 오직, Firefox 만이 4.0 에서 지원할 예정(Firefox4 Beta6 에서도 지원되지 않는다. 한두달 내에 업데이트가 될 것 같다.)이라고 언급하고 있다.&lt;/p&gt;
&lt;p&gt;이러한 상황 속에서, &lt;u&gt;나는 &lt;b&gt;지금 당장&lt;/b&gt;, 죽었다가 깨어나도 Indexed DB 를 코딩해야 하고, 테스트 해봐야 한다&lt;/u&gt;면 좀 난감한데(사실, 내가 어제 그랬다. -_-;), 괜찮은 대안이 있다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;indexeddb&amp;nbsp;&lt;/b&gt;- &lt;a href="http://code.google.com/p/indexeddb/"&gt;http://code.google.com/p/indexeddb/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Indexed DB 구현을 만드는 오픈소스 프로젝트다. 좀 아쉬운 점은, 현재는 Windows 플랫폼 + Firefox 조합만 가능하다. Firebug 로 열어서, 콘솔창에 열심히 두드려보면 잘 된다. JSAPI를 이용하는 것 같고, IE에서도 왠지 된다고 하는 것 같은데, 난 IE는 잘 안되더라.&lt;/p&gt;
&lt;p&gt;Windows 에서, 저 사이트에서 받은 MSI 인스톨러를 설치하고, &lt;a href="http://people.fas.harvard.edu/~bhaynes/IndexedDatabaseAPI/Samples/FireBug/FireBugSample.html"&gt;FireBug Sample Environment&lt;/a&gt; 라는 페이지의 소스코드를 참고해서, 페이지의 head 태그에 아래 내용을 써주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#C84205"&gt;&lt;b&gt;&amp;lt;object id="db" type="application/x-indexeddatabase" width="1" height="1"&amp;gt;&amp;lt;/object&amp;gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;이 한줄만 써주면, 파이어폭스에서 document.db.indexedDB 로 접근해서 &lt;b&gt;지금 당장&lt;/b&gt; Indexed DB를 사용할 수 있다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>html5</category>
			<category>indexed db</category>
			<category>indexeddb</category>
			<category>w3c</category>
			<category>web sql database</category>
			<author>종텐</author>
			<guid>http://jong10.com/492</guid>
			<comments>http://jong10.com/492#entry492comment</comments>
			<pubDate>Sun, 07 Nov 2010 21:27:40 +0900</pubDate>
		</item>
		<item>
			<title>code2pdf.sh - 소스코드를 이쁘게 pdf로 만들기</title>
			<link>http://jong10.com/491</link>
			<description>&lt;p&gt;Mac OS X에서 리포트를 쓰다가, 소스코드를 출력해야 하는 상황이 생겼다. 처음에는 MacVim에서 출력을 해보았으나 줄번호가 나오지 않아서, 이리저리 알아보다가 7줄짜리 스크립트를 만들었다.&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;&lt;b&gt;code2pdf.sh&lt;/b&gt; : &lt;a href="http://gist.github.com/638506" target="_blank" title="[http://gist.github.com/638506]로 이동합니다."&gt;http://gist.github.com/638506&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;요 페이지에 있는 코드를 다운받고, 쉘에서 아래와 같이 입력한다.&amp;nbsp;&lt;/font&gt;&lt;span class="Apple-style-span" style="font-family: 굴림; color: rgb(51, 51, 51); "&gt;파일이름은 여러개가 올 수 있고, 다른 폴더에 있는 것을 쓰더라도, 현재 폴더에 pdf 파일이 생긴다.&lt;/span&gt;&lt;/p&gt;
&lt;meta charset="utf-8"&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="굴림"&gt;&lt;b&gt;&lt;font class="Apple-style-span" color="#333333"&gt;$ &lt;/font&gt;&lt;font class="Apple-style-span" color="#E31600"&gt;./code2pdf.sh 파일이름&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;요렇게 하면, 아래와 같은 식으로 pdf 파일이 만들어진다. enscript 가 없는 명령어라고 나오면, 각각의 플랫폼에 맞게 PostScript 를 설치해야 한다.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile8.uf.tistory.com/image/144044344CC0462714EB4C" alt="" filemime="image/jpeg" filename="code2pdf.png" height="613" width="491"/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;참고:&amp;nbsp;&lt;a href="http://kr.blog.yahoo.com/jhrogue/1358670.html" target="_blank" title="[http://kr.blog.yahoo.com/jhrogue/1358670.html]로 이동합니다."&gt;http://kr.blog.yahoo.com/jhrogue/1358670.html&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333" face="굴림"&gt;-- 이상한 나라의 종텐.&lt;/font&gt;&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>code</category>
			<category>PDF</category>
			<author>종텐</author>
			<guid>http://jong10.com/491</guid>
			<comments>http://jong10.com/491#entry491comment</comments>
			<pubDate>Thu, 21 Oct 2010 22:58:10 +0900</pubDate>
		</item>
		<item>
			<title>멍청한 자동화된 i18n의 사례</title>
			<link>http://jong10.com/490</link>
			<description>&lt;p style="color: rgb(51, 51, 51); "&gt;요즘은 많은 어플리케이션이 국제화(i18n)가 지원이 된다. 각종 메시지나 메뉴들이 각종 언어에 맞춰서 표시가 된다. 오늘은 Mac OS X 에 Canon의 프린터 드라이버를 깔다가 다음과 같은 황당한 화면을 만났다.&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile4.uf.tistory.com/image/145CEF2E4CBF227803EEDD" alt="" filemime="image/jpeg" filename="canon-fuck.png" height="443" width="600"/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;이 화면이다. "계속"이나 "취소"를 누르라는데, 아무리 눈을 크게 뜨고 찾아봐도, "계속"이나 "취소"는 보이지 않는다. 저 윈도우 안에 있는 모든 픽셀을 다 눌러본 것 같은데 -_-;; 당연히 아무것도 바뀌지 않는다. 드라이버 설치 프로그램을 잘못 받았나 싶어서, 다양한 국가의, 다양한 버전의, 다양한 드라이버를 다운받아봤지만 소용 없었다.&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;그러다가, 영문판 설치 매뉴얼에서, 아래와 같은 그림을 발견했다.&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile5.uf.tistory.com/image/207E9C244CBF2323608CF4" alt="" filemime="image/jpeg" filename="canon-fuck2.png" height="475" width="418"/&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;메시지가 영어에서 한글로 바뀌면서, 메시지가 짤린 것은 물론이고, 버튼도 가려졌다. &lt;b&gt;설치 프로그램인데, 도저히 설치를 할 수가 없어! -_-;;&lt;/b&gt; 아놔 뭐 이런 병신같은 경우가.. ㄷㄷㄷ&lt;/p&gt;
&lt;p&gt;&lt;font class="Apple-style-span" color="#333333"&gt;요즘은 안드로이드처럼, 글자만 여러개 넣어놓으면 i18n을 쉽게 적용할 수 있는 플랫폼이 많은데, &lt;/font&gt;&lt;b&gt;&lt;font class="Apple-style-span" color="#E31600"&gt;자동화된 i18n을 모두 맹신하진 말자.&lt;/font&gt;&lt;/b&gt;&lt;font class="Apple-style-span" color="#333333"&gt; 최소한, 각 언어별로 한번쯤은 실행을 해서, 눈으로 확인하자. 테스트 인력이 부족하다면, 차라리 English만 제공을 하던가!&lt;/font&gt;&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;&lt;meta charset="utf-8"&gt;(화면에 보이지 않는 "계속" 버튼을 누르기 위해선 TAB 키를 한번 눌러서 포커스를 옆으로 옮기고, 엔터키를 입력해서 클릭을 했다. 참고로, 저 프로그램은 Cannon CAPT Installer 이다. Installer VISE라는 제품을 이용해서 설치 프로그램을 만들었던데, 그렇다고 캐논이 용서가 되는건 절대로 아니다.)&lt;/p&gt;
&lt;p style="color: rgb(51, 51, 51); "&gt;-- 짜증난 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>i18n</category>
			<category>병신</category>
			<category>캐논</category>
			<author>종텐</author>
			<guid>http://jong10.com/490</guid>
			<comments>http://jong10.com/490#entry490comment</comments>
			<pubDate>Thu, 21 Oct 2010 02:25:17 +0900</pubDate>
		</item>
		<item>
			<title>똑똑한 사람</title>
			<link>http://jong10.com/489</link>
			<description>&lt;p&gt;몇일 전에, Paul Graham 아저씨의 &lt;a href="http://www.paulgraham.com/yahoo.html" target="_blank" title="[http://www.paulgraham.com/yahoo.html]로 이동합니다."&gt;What Happend To Yahoo&lt;/a&gt; (야후는 무슨 일이 일어났는가?) 라는 글을 읽었다. 해커와 화가를 읽을 때에도 그랬는데, 이 아저씨는, 글에 약간 자뻑이 섞여있지만 대체적으로 맞는 얘길 아주 많이 하는데, 읽고 난 후에 기분은 별로 좋지 않다.&lt;/p&gt;
&lt;p&gt;야후의 실례를 들어서 설명하는데, 이 아저씨가 말하고자 하는 것은,&lt;/p&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;지금 돈이 많이 벌리는것에 신경쓰다가, 기술을 등한시 하면 망한다.&lt;/li&gt;
&lt;li&gt;bad programmer 를 고용하면, 결국 회사가 망한다. 안 뽑느니만 못함. 그럼 망함.&lt;/li&gt;
&lt;li&gt;&lt;meta charset="utf-8"&gt;bad programmer 가 한두명 들어오기 시작하면, 똑똑한 사람들이 회사를 나간다. 그럼 망함.&lt;/li&gt;
&lt;li&gt;smartest 한 사람을 뽑아야 한다. (smart 정도가 아님) 안그럼 망함.&lt;/li&gt;
&lt;li&gt;훌륭한 프로그래머들은 hacker-centric 문화가 있는 회사에 간다.&lt;/li&gt;
&lt;li&gt;&lt;meta charset="utf-8"&gt;간혹, hacker-centric한 회사에 가지 않는 훌륭한 프로그래머는, 돈을 엄청 많이 주거나, 자기가 하고 싶었던 domain 이기 때문이다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
뭐, 이런 얘기들이다. 한 문장으로 요약하자면, "&lt;b&gt;기술 기반의 IT회사는, 프로그래머의 퀄리티가 킹왕짱 중요함. 안 그러면 다 망함ㅋ&lt;/b&gt;" 정도가 되겠다. Joel Spolsky도 bad programmer를 고용하지 않는 것에 대해서, Joel on Software에서 비슷한 얘길 한 바가 있는데, 뛰어난 사람을 뽑는 것 보다 더 중요한 것은 B급을 절대로 뽑지 않는 것이라 했었다. 면접 볼때, 면접자가 말하는게 좀 특이해서 S급인지 B급인지 긴가민가 하면, 절대로 뽑지 말라고 했다. S급을 놓치는 것 보다는, B급이 들어오는게 훨씬 더 큰 손실이라고. (주변 사람들이 B급이 벌려놓은 것을 수습하느라 일을 못해서..)&lt;/p&gt;
&lt;p&gt;다른 얘긴데, 구글은 항상 A급 이상을 뽑기로 유명하다. 면접을 6개월에 걸쳐서 10번 넘게 본 사람들도 있고, 다들 코딩도 잘하면서 학력도 은근 높기도 하고, 다른 회사들에 비해서 박사도 좀 많다고 한다. 회사가 대체적으로 어느 정도 규모로 성장하면, A급만 뽑다가도, 자기 친구들이나 후배들을 추천하다보니, A급이 B급 인재를 데려오고, B급이 C급을 데려오고 그러면서 A, B, C급이 섞이게 되는데, 구글의 경우는, "구글 창업자인 Larry Page와 Sergey Brin이 공부 못하는 사람은 싫어한다"는 말이 있을 정도로, 퀄리티에 집착한다. 뭐, 결과적으론, 아직 잘 나가고 있다.&lt;/p&gt;
&lt;meta charset="utf-8"&gt;&lt;p&gt;그럼, 여기서, 어느정도가 &lt;b&gt;뛰어난 프로그래머&lt;/b&gt;인가 하느냐면, Paul Graham의 말에 따르면, Microsoft는 예전에 뛰어난 개발자가 많았는데 요즘은 그렇지 않다고 표현하고 -_-;; 뛰어난 개발자가 많은 회사는 Google, Facebook 정도만 언급 한다. 아놔. 기준치가 너무 높잖아.&amp;nbsp;그래, 뭐.. 이 사람들 말이 논리적으로는 맞다고 생각하고 있긴 하고, 내가 구글이나 페이스북이라도, 필터링을 엄격하게 해서 사람을 뽑을 것 같기야 하지만, 내 자신은 똑똑한 사람이 아니라서 기분이 좀 그렇다.&amp;nbsp;특히, Paul Graham의 글이 공격적(?)인 편인데, &lt;b&gt;&lt;u&gt;똑똑하고 뛰어난 프로그래머가 아니면 다 망한다&lt;/u&gt;&lt;/b&gt;는 뉘앙스가 좀 있어서, -_-;; 이 아저씨의 글을 읽으면 읽을수록, &lt;b&gt;&lt;u&gt;"넌 아마 안될꺼야"&lt;/u&gt;&lt;/b&gt;하는 느낌을 많이 받게 된다. 나만 그런가?...(...)&lt;/p&gt;
&lt;p&gt;-- 안 똑똑하고 영어도 못 하는 종텐.&lt;/p&gt;</description>
			<category>영혼의목소리</category>
			<author>종텐</author>
			<guid>http://jong10.com/489</guid>
			<comments>http://jong10.com/489#entry489comment</comments>
			<pubDate>Sun, 17 Oct 2010 03:18:28 +0900</pubDate>
		</item>
		<item>
			<title>킨들에서 가로로 된 강의자료 보기</title>
			<link>http://jong10.com/488</link>
			<description>&lt;p&gt;킨들(3세대)에서 가로로 된 강의자료(pdf)를 보려면, 꽤 만족스럽지 않다. 몇가지 문제가 있는데,&amp;nbsp;킨들 안에서 가로로 회전을 하면 A4 용지랑 킨들의 화면 비율이 달라서, PDF에서의 한 페이지가 킨들의 화면을 조금 넘어간다. 그래서, 한 페이지의 90% 정도가 첫 페이지에 나오고, 두번째 페이지엔 10% 정도만 나온다. -_-;; 킨들에는 fit-to-screen 으로 비율을 조정하는 방법이 있는데, 이 옵션은 &lt;strong&gt;가로에 맞춰져서 나오지, 세로에 맞워져서 나오진 않는다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;뭔가 방법이 없을까 하다가, 다양한 PDF 생성기를 설치해보고, 별 짓을 다 해봤으나, (1) 한글이 안되거나, (2) 해당 프로그램으로 PDF를 회전 하면 그림이나 그래프가 깨지거나, (3) 페이지가 결국 넘어가거나.. 으악! 킨들 실망이야! 라고 생각하다가, Python 으로 간단히 반시계로 회전하는 코드를 짰다. 그래프나 그림, 한글도 안 깨진다. 아래 주소에 코드를 올려놨다.&lt;/p&gt;
&lt;p&gt;Rotate a pdf to landscape for Kindle : &lt;a href="http://gist.github.com/612853" target="_blank" title="[http://gist.github.com/612853]로 이동합니다."&gt;http://gist.github.com/612853&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;회전된 상태인데도, 글자 검색도 잘 된다. 아 이제, 강의자료를 킨들에 다 넣을 수 있으니.. 공부만 하면 되는건가?...&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>kindle</category>
			<category>PDF</category>
			<category>가로</category>
			<category>강의자료</category>
			<category>킨들</category>
			<author>종텐</author>
			<guid>http://jong10.com/488</guid>
			<comments>http://jong10.com/488#entry488comment</comments>
			<pubDate>Wed, 06 Oct 2010 14:10:42 +0900</pubDate>
		</item>
		<item>
			<title>아마존 킨들의 당위성</title>
			<link>http://jong10.com/487</link>
			<description>내 방에는 책을 꼽을 데가 없다. 내가 책이 많기 때문은 아니고, 책꽂이가 몇개 없기 때문이다. 하지만, 내 방은 너무 작아서, 책꽂이를 더 살 수가 없다. 그래서..&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;ol style="list-style-type: decimal; "&gt;
&lt;li&gt;책을 사려면, 책을 꼽을 수 있어야 하고,&lt;/li&gt;
&lt;li&gt;책을 꼽으려면 책꽂이를 사야하고,&lt;/li&gt;
&lt;li&gt;책꽂이를 사려면 집을 사야 한다.&lt;/li&gt;
&lt;li&gt;집을 사려면, 돈을 많이 벌어야 하고,&lt;/li&gt;
&lt;li&gt;돈을 많이 벌려면 공부를 해야 한다.&lt;/li&gt;
&lt;li&gt;공부를 하려면 책을 사야 하는데..&lt;/li&gt;
&lt;li&gt;(1번으로..)&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
뭐, 그런 고뇌를 오랫동안 가지고 있었는데, 결론을 말하자면,&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile9.uf.tistory.com/image/196E291E4CA9DC9A4F95A1" alt="" filemime="image/jpeg" filename="kindle3.jpg" height="480" width="360"/&gt;&lt;/div&gt;&lt;span id="tx_marker"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;font class="Apple-style-span" color="#E31600"&gt;기술이 나를 구원하도다!! ＼(-o-)/&lt;br /&gt;
&lt;/font&gt;&lt;/b&gt;&lt;font class="Apple-style-span" color="#8E8E8E"&gt;&lt;/font&gt;아마존 킨들을 질렀다..&lt;br /&gt;
집을 사지 않아도, 책을 살 수 있어! 굉장해! ...(...)&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;
&lt;/div&gt;</description>
			<category>나른한일상</category>
			<author>종텐</author>
			<guid>http://jong10.com/487</guid>
			<comments>http://jong10.com/487#entry487comment</comments>
			<pubDate>Mon, 04 Oct 2010 23:07:02 +0900</pubDate>
		</item>
		<item>
			<title>아마도, 슬럼프</title>
			<link>http://jong10.com/486</link>
			<description>&lt;p&gt;아마추어같은 단어이지만, 슬럼프다. 할 일을 잔뜩 쌓아놓고 끝나가는 연휴를 맞이하여 생긴 순간적인 기분은 아니다. 코딩이 잘 되지 않던 것이야 뭐, 하루 이틀이 아니고, 해야할 것은 참 많은데, 뭔가 에너지가 고갈된듯. 연휴가 1년 내내 지속되더라도, 1년간 아무것도 하지 않고 지낼 수 있을 것만 같다. 한두살 먹은 어린애도 아니고, 여기다가 감정을 배설해봤자 뭐가 달라지겠냐만은.. 아~ 기운 없어.&lt;/p&gt;
&lt;p&gt;-- 아무것도 하기 싫은 종텐.&lt;/p&gt;</description>
			<category>나른한일상</category>
			<author>종텐</author>
			<guid>http://jong10.com/486</guid>
			<comments>http://jong10.com/486#entry486comment</comments>
			<pubDate>Sat, 25 Sep 2010 20:32:59 +0900</pubDate>
		</item>
		<item>
			<title>아는 것과 경험한다는 것은 차이가 있어</title>
			<link>http://jong10.com/485</link>
			<description>&lt;p&gt;모 학교 모 과목중에 모 강사의 강의중에 좀 충격적인 내용이 있었다. 취업준비에 대한 내용이었는데, 경험에 대한 부분을 어떻게 쓰느냐에 대한 것이다. 그 강사 왈,&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;"어차피 모든 것을 다 경험하긴 힘들잖아요? 예를 들어서, 핸드폰 판매하는 사람의 일을 경험해보려면, 한달정도 일을 해보는 것도 있지만, 옆에서 하루 종일 지켜보면서, 자기라면 어떻게 하면 더 잘 될지, 그런 것을 고민해보는 간접적인 경험으로도 충분히 느낌을 얻을 수 있잖아요? 그런식으로 다양한 경험을 많이 쌓아서, 그 중에 적합한 것을 이력서에 쓰세요. 하지만, 하루라고 쓸 순 없잖아요? 2~3달 정도로 쓰는거죠."&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;난, 순간, 벙~ 쪘다. 이건 그냥, 과장하는 정도가 아니고 아예 뻥치는거잖아? 이렇게 많은 사람들이 듣는 수업에서, 강사가 저런 말을 지껄이다니! 그리고, 강사가 말했다.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;"근데, 그렇게 쓰면 사기꾼이잖아요? 입사하고나서, 그런 경험이 있는줄 알았는데, 없으면 곤란하잖아요? 합격하고 나면 경험을 하세요. 입사 전에 3개월 정도 해보는거죠."&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;... 난 저게 뭐가 다르다는건지 잘 모르겠다. 입사지원을 하는 순간, 면접을 보는 순간에, 그 경험이 거짓이라는 것은 전혀 변하지 않잖아? 저게 무슨 병신같은 논리인지 모르겠다. 안 그래도, 구라를 치는 사람들이 많이 있을텐데, 강사가 저딴 말을 비법인양 지껄이다니. -_- 취업시장(?) 뿐 아니라, 이 땅에는 구라를 치는 인간들이 너무 많다. 다들 부풀리는 법을 군대에서 배워오나보다. 아무도, 아무것도, 곧이곧대로 믿을 수 없다. 제발 뻥 좀 치지 마라. 조금만 까보면 다 나온다.&lt;/p&gt;
&lt;p&gt;반대로, 다른 사람의 경험에 대해서 너무 쉽게 말하는 인간들도 참 많다. 정말 토할만큼 많다. 누구에겐 굉장히 힘겨웠던 경험일 수도 있는데, 그건 아무것도 아니라는 식으로 말하는 인간들. 심지어, 경험한 적이 없음에도. 그거 누구나 하는거라고, 쉬운거라고, 다른 사람의 노력이나 가치를 폄하한다. 역겹다. 말은 누구나 할 수 있다.&lt;/p&gt;
&lt;p&gt;영화 매트릭스에서, 같이 오라클을 찾아가는 장면에서, 모피어스가 네오에게 이렇게 말한다. &lt;strong&gt;"아는 것과 경험한다는 것은 차이가 있어."&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐&lt;/p&gt;</description>
			<category>영혼의목소리</category>
			<category>경험</category>
			<category>아는것</category>
			<author>종텐</author>
			<guid>http://jong10.com/485</guid>
			<comments>http://jong10.com/485#entry485comment</comments>
			<pubDate>Fri, 10 Sep 2010 05:22:45 +0900</pubDate>
		</item>
		<item>
			<title>복학했다</title>
			<link>http://jong10.com/484</link>
			<description>&lt;p&gt;블로그에 글을 너무 오랫동안 올리지 않은 것 같아서.. 오랜만에 근황이라도 기록.&lt;/p&gt;
&lt;p&gt;마지막 학기를 위해서 복학을 했고, &lt;b&gt;&lt;u&gt;토익점수 때문에 졸업을 못할까봐 불안에 떨고 있으며&lt;/u&gt;&lt;/b&gt;, 몇달간 진행하던 안드로이드 알바가 파경으로 치닫아서 손을 떼게 되었고, html5, javascript 가 관련된 과제를 조금씩 하고 있고, 어쩌다보니 짧은 글을 쓰고 있으며, 학교에서는 무려 17학점씩이나 듣는데, 컴파일러 프로젝트, 아이폰 프로젝트, 안드로이드 프로젝트가 사악하게 웃으면서 날 기다리고 있다. 전공은 3과목 뿐이 안듣는데, 어째서 프로젝트가 3개인지는 잘 모르겠지만... (2개인줄 알았는데, 갑자기, 예상치 못했던 하나가 추가됐다.). 뭐 아무튼. 4글자 정도로 요약하자면, &lt;b&gt;복학했다&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;-- 토익이 걱정되는 종텐.&lt;/p&gt;</description>
			<category>나른한일상</category>
			<category>복학</category>
			<author>종텐</author>
			<guid>http://jong10.com/484</guid>
			<comments>http://jong10.com/484#entry484comment</comments>
			<pubDate>Fri, 10 Sep 2010 04:54:03 +0900</pubDate>
		</item>
		<item>
			<title>Android Custom Dialog</title>
			<link>http://jong10.com/483</link>
			<description>&lt;p&gt;안드로이드에서 커스텀 다이얼로그를 만들 때에는, 일반적으로 Activity를 많이 사용한다. Google이 제공하는ApiDemos에 그런 예제가 있기도 하고, 대부분의 책들에도 그렇게 설명이 되어있다. 하지만, 손 쉽게 OnClickListener 를 붙이고, 타이틀을 붙이고 할 수 있는 Dialog에 비해서, Activity로 팝업창을 만들게 되면, 상당히 불편하다. 잘 알려져있진 않은데, Dialog 를 완전히 customize 할 수 있는 방법이 없는 것은 아니다.&lt;/p&gt;
&lt;ul style="list-style-type: square; "&gt;
&lt;li&gt;&lt;a href="http://www.androidpeople.com/android-custom-dialog-example/"&gt;http://www.androidpeople.com/android-custom-dialog-example/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.androgames.net/10/custom-android-dialog/"&gt;http://blog.androgames.net/10/custom-android-dialog/&lt;/a&gt; ★★★★★&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;첫번째 링크 처럼 Dialog를 상속해서 customized dialog 를 만들거나, (두번째 링크 처럼) AlertDialog.Builder 까지 만들어버리면 된다. So Cool~&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>Android</category>
			<category>customize</category>
			<category>dialog</category>
			<category>안드로이드</category>
			<author>종텐</author>
			<guid>http://jong10.com/483</guid>
			<comments>http://jong10.com/483#entry483comment</comments>
			<pubDate>Sun, 25 Jul 2010 00:08:20 +0900</pubDate>
		</item>
		<item>
			<title>땅콩 프로그래밍 언어</title>
			<link>http://jong10.com/482</link>
			<description>&lt;p&gt;지난 약 3달간, &lt;a href="http://jweb.kr/" target="_self"&gt;Jweb&lt;/a&gt;과 2명이서 틈틈히(?) 프로그래밍 언어를 만들었습니다. 아직 공개하긴 많이 부족한 상태이고, 틈틈히 업데이트를 할 생각이긴 하지만, 몇 달간은 손을 전혀 못 댈 것 같아서 일단은 GitHub에 저장소를 만들었습니다. 사실, 현재 버전은 ad-hoc 코드가 많이 섞여 있어서, 좀 지저분 하고, 완성된 버전이라기 보다는 만들어가는 중이라고 보시는 편이 나을 듯 합니다.&lt;/p&gt;
&lt;p&gt;메모리 문제도 좀 있고, 에러가 나는 부분도 많이 있지만, 3달간 2명이서 풀타임도 아니고 틈틈히 만든 것 치고는, 이것저것 상당히 많은 기능을 붙인 것 같습니다. 기본적인 컨셉은 C/C++과 섞어서 사용할 수 있는 Dynamic Typing, Prototype-based OOP 언어이고, 정수, 실수, 문자열, 변수, 함수, 클래스, 오버라이딩, 연산자재정의, 상속, 람다, 리스트, 해쉬 등을 부분적으로 지원합니다. 안전성에는 &lt;s&gt;조금&lt;/s&gt;아주많이 문제가 있습니다만..;;&lt;/p&gt;
&lt;p&gt;코드는 아래 사이트에서 다운받으실 수 있고, 윈도우용 바이너리는 현재 제공하지 않고 있는데, MinGW로 빌드하면 문제 없이 컴파일 됩니다.&lt;/p&gt;
&lt;p&gt;저장소 : &lt;a href="http://github.com/peanut-lang/peanut"&gt;http://github.com/peanut-lang/peanut&lt;/a&gt;&lt;br /&gt;
예제코드 : &lt;a href="http://github.com/peanut-lang/peanut/blob/master/example.pn"&gt;예제1&lt;/a&gt;, &lt;a href="http://github.com/peanut-lang/peanut/blob/master/example2.pn"&gt;예제2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;사실은, 시연을 위해서 (로보코드와 비슷하게 생긴) 아이폰용 예제와 안드로이드용 예제도 만들었는데, 그 부분은 공개하긴 좀 문제가 있어서, 언어 엔진 부분만 올려놨습니다. 예제 코드에 C언어에 embedding 하는 것과, 반대로 peanut에서 C언어 코드를 사용하는 부분도 저장소에 있으면 좋긴 하겠는데, (시연용 예제엔 있는데), 나~중에 추가할 예정입니다. 요즘은 너무 바빠서.. ㅠㅠ&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐&lt;/p&gt;
&lt;p&gt;p.s. &lt;b&gt;땅콩&lt;/b&gt;은&amp;nbsp;&lt;a href="http://jong10.com/373"&gt;제가 기르던 강아지&lt;/a&gt;&amp;nbsp;이름입니다.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<author>종텐</author>
			<guid>http://jong10.com/482</guid>
			<comments>http://jong10.com/482#entry482comment</comments>
			<pubDate>Fri, 16 Jul 2010 10:40:06 +0900</pubDate>
		</item>
		<item>
			<title>ndk-gdb</title>
			<link>http://jong10.com/480</link>
			<description>&lt;p&gt;Android NDK r4 에는 ndk-gdb 가 포함 되었다. ndk-build 로 빌드한 C/C++ 코드를 gdb로 까볼 수 있는 녀석이다. 주의 사항이 몇가지 있는데, {NDK}/docs/NDK-GDB.TXT 에 대부분 설명 되어있고, 당황했던 점으로는,&lt;/p&gt;
&lt;ul style="list-style-type: square; "&gt;&lt;li&gt;디바이스가 Android 2.2 Froyo 이상이어야 한다. ㅠㅠ (에뮬로 되긴 하지만..)&lt;/li&gt;
&lt;li&gt;Mac OS X 스노우 레오파드에서, armeabi가 아니고 ameabi 라는 얼토당토 않은 에러가 나는데, &lt;a href="http://smartctl.com/trac/attachment/ticket/11/004-macosx-sed.patch" target="_blank" title="[http://smartctl.com/trac/attachment/ticket/11/004-macosx-sed.patch]로 이동합니다."&gt;이렇게 처리&lt;/a&gt;하면 된다.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;디버깅 고고싱=3=3&lt;/p&gt;
&lt;p&gt;-- 버그를 찾아 헤메이는 종텐.&lt;/p&gt;</description>
			<category>프로그래밍</category>
			<category>Android</category>
			<category>gdb</category>
			<category>NDK</category>
			<category>디버깅</category>
			<category>안드로이드</category>
			<author>종텐</author>
			<guid>http://jong10.com/480</guid>
			<comments>http://jong10.com/480#entry480comment</comments>
			<pubDate>Sun, 11 Jul 2010 11:04:29 +0900</pubDate>
		</item>
		<item>
			<title>윈도우용 터미널 CMDK</title>
			<link>http://jong10.com/479</link>
			<description>&lt;p&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://cfile10.uf.tistory.com/image/154297034C337A871FFB85" alt="" filemime="image/jpeg" filename="cmdk_.png" height="456" width="540"/&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;나는 윈도우에서 cmd.exe 창을 &lt;b&gt;많이&lt;/b&gt; 사용하는 편인데, 자주 사용하는 grep, sed, ls, gawk, wc 등이 없어서 UnxUtils를 사용하고 있다. 명령어 부족은 UnxUtils, cygwin, mSys 같은 대안들이 있지만, cmd.exe 의 가로 길이가 조정도 안되는 조악한 터미널은 항상 불만이었다.&lt;/p&gt;
&lt;p&gt;그러던 중에, kldp.org에서 &lt;a href="http://kldp.org/node/115941#comment-531410" target="_blank" title="[http://kldp.org/node/115941#comment-531410]로 이동합니다."&gt;cmdk라는 대체 터미널&lt;/a&gt;을 발견. 우와 이거 좋잖아! (위 스크린샷은, Bitstream Vera Sans Mono + 맑은고딕 폰트로 적용한 화면이다). Mac OS X 의 iTerm처럼, CTRL+V 로 붙여넣기가 된다! 배경도 반투명해서, 매뉴얼을 뒤에 띄워놓고 타이핑 할 수도 있다! 가로로 사이즈가 늘어났다 줄어들었다도 된다!&lt;/p&gt;
&lt;p&gt;다운로드는 아래 링크들 중 하나에서 받을 수 있다.&lt;/p&gt;
&lt;ul style="list-style-type: square; "&gt;
&lt;li&gt;&lt;a href="http://blog.naver.com/munhoney/40109915791"&gt;http://blog.naver.com/munhoney/40109915791&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.naver.com/munhoney/40109915791"&gt;&lt;/a&gt;&lt;a href="http://kldp.org/node/115941#comment-531410"&gt;http://kldp.org/node/115941#comment-531410&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
아 죽인다. 내가 딱 원하던만큼의 기능이다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;
&lt;p&gt;p.s. 아, 다 좋은데, CTRL+C 가 copy라서, break가 안걸리는게 좀 아쉽다. 물론, CTRL+BREAK가 있긴 하다.&lt;/p&gt;</description>
			<category>잡다한정보</category>
			<author>종텐</author>
			<guid>http://jong10.com/479</guid>
			<comments>http://jong10.com/479#entry479comment</comments>
			<pubDate>Wed, 07 Jul 2010 03:45:28 +0900</pubDate>
		</item>
		<item>
			<title>비동기 커뮤니케이션과 동기적 커뮤니케이션</title>
			<link>http://jong10.com/477</link>
			<description>&lt;p&gt;프로젝트를 진행하면, 여러가지 방법을 통해서 팀원 또는 고객과 연락을 하게 된다. 이 때에, 이메일보다 전화나 메신저를 많이 사용하는 사람들이 있는데, 난 이게 정말 싫다. 나는 계속 사경을 헤메다가 조금전부터 힙겹게 집중해서 코딩을 하고 있을 수도 있고, 가족과 함께 있을 수도 있고, 여자친구와 함께 시간을 보내는 중일 수도 있고, 휴식을 취하는 중일 수도 있고, 멍 때리고 미드를 보던 중일수도 있고, 잠을 자는 중일 수도 있다.&lt;/p&gt;
&lt;p&gt;이메일이나 IRC&lt;sup class="footnote"&gt;&lt;a id="footnote_link_477_1" href="#footnote_477_1" onmouseover="tistoryFootnote.show(this, 477, 1)" onmouseout="tistoryFootnote.hide(477, 1)" style="color: #f9650d; font-family: Verdana, Sans-serif"&gt;&lt;span style="display: none"&gt;[각주:&lt;/span&gt;1&lt;span style="display: none"&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;같은 비동기(asynchronized) 커뮤니케이션은, 내가 가용한 시간에 내용을 읽고 응답을 하면 되는 반면, 동기적(synchronized) 커뮤니케이션은 하던 것을 멈추고 상대의 요구에 응답할 것을 강요받는다.&amp;nbsp;그나마, 메신저의 경우는, 컴퓨터 앞에 앉아있는 시간 동안에만 방해하지만,&amp;nbsp;&lt;b&gt;전화&lt;/b&gt;는 &lt;b&gt;나의 소중한 시간&lt;/b&gt;을 &lt;b&gt;부숴버린다&lt;/b&gt;. 나는, 내 시간을 침해하는 것들(또는 생물들)에 대해서 상당히 민감한 편인데, 별로 급하지도 않은 일로, 시도 때도 없이 전화 오는게 정말 싫다. 날 방해하지 마. 크르릉!&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 까칠한 종텐.&lt;/p&gt;&lt;div class="footnotes"&gt;
	&lt;ol class="footnotes"&gt;
		&lt;li id="footnote_477_1"&gt;IRC는 채팅이긴 하지만, 대체적으로 반드시 당장 응답할 필요가 없다는 점에서 비동기에 더 가깝다. &lt;a href="#footnote_link_477_1"&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
	&lt;/ol&gt;
&lt;/div&gt;
</description>
			<category>영혼의목소리</category>
			<category>동기적</category>
			<category>비동기</category>
			<category>커뮤니케이션</category>
			<author>종텐</author>
			<guid>http://jong10.com/477</guid>
			<comments>http://jong10.com/477#entry477comment</comments>
			<pubDate>Tue, 29 Jun 2010 14:06:00 +0900</pubDate>
		</item>
		<item>
			<title>납기일에 허덕이는 현실이지만</title>
			<link>http://jong10.com/476</link>
			<description>&lt;p&gt;납기일에 허덕이는 현실이지만, 책도 좀 보고 싶고, 공부도 좀 하고 싶다. 뭔가 알 수 없는 의무감에 한달에 1~2권씩 책을 규칙적으로 사긴 하는데, 읽는 것은 3달에 1권 정도인 듯 싶다. 그나마 제대로 읽지도 못하고, 훓어만 본다. 최근에는 (난 웹개발자가 아니라고 우기지만)&amp;nbsp;&lt;a href="http://kangcom.com/sub/view.asp?sku=201005240002" target="_blank" title="[http://kangcom.com/sub/view.asp?sku=201005240002]로 이동합니다."&gt;HTML5 책&lt;/a&gt;을 &lt;b&gt;&lt;u&gt;훓어&lt;/u&gt;&lt;/b&gt;봤고, &lt;a href="http://kangcom.com/sub/view.asp?sku=201004270010" target="_blank" title="[http://kangcom.com/sub/view.asp?sku=201004270010]로 이동합니다."&gt;프로 안드로이드 게임 개발&lt;/a&gt;을 (코드가 대부분인 책인데, 코드는 완전 날림으로 넘기고) &lt;b&gt;&lt;u&gt;훓어만&lt;/u&gt;&lt;/b&gt; 봤다. 책을 읽을 수 있는 시간은 지하철을 타고 오가는 시간이 전부인데, 지하철은 집에 오갈때만 타고, 집에는 일주일에 한번만 가서 -_-;; 사실, 읽는 시간 자체가 거의 없다. 아놔 슬프잖아.&lt;/p&gt;
&lt;p&gt;Hadoop책과 OpenGL ES책도 사긴 했는데, 그냥 책장에 꼽아놓으려고 산거고, 읽을 엄두도 못내고 있다. 너무 바빠서, 맥북 에어도 샀는데, &lt;b&gt;&lt;u&gt;작년에 사놨던&lt;/u&gt;&lt;/b&gt; 아이폰 책은 챕터1도 다 읽지 못했고, 맥북 에어는 Xcode로 lex/yacc질과 C코딩 하는 용도로 전락했다. 사실은, 내가 MacVim이랑 iTerm만 쓰고 있으니, 주변 지인중 한명이 맥을 리눅스처럼 쓴다면서 꾸짖(?)어서.. Xcode를 더듬더듬 써보기 시작했다. (엉엉. vim이 어때서.)&lt;/p&gt;
&lt;p&gt;요즘은 거의 의자에서 엎어져서 3~5시간 정도 자는데, 어젠 오랜만에 무려 &lt;b&gt;&lt;u&gt;누워서!!&lt;/u&gt;&lt;/b&gt;&amp;nbsp;잤더니, 12시간동안 꿈을 3개나 꾸다가, 저녁 6시에 일어났다. 지금은 아침 8시 22분인데, 야식을 안 먹었더니 배가 고프다. 알바가 끝날때까진, 미투데이랑 트위터를 끊었더니, 오히려 블로깅을 자주 한다. 그래도, 미투데이를 안하니깐, 코딩하는 시간이 두배로 늘어나긴 했다. 미투를 많이 하긴 했나보다.&lt;/p&gt;
&lt;p&gt;아, 뭔가 글 제목과 상관 없는 말만 썼는데, 원래 하려던 말은, 알바랑 과제가 끝나면, 공부도 좀 하고 싶다. 오 이런. 까맣게 잊고 있었는데, 졸업하려면 토익도 해야 하잖아! 토익 점수가 정말 농담이 아니고, 신발 사이즈에 가까운데.. 큰일이다. 원래는, 돈 모아서 어학연수를 가려고 휴학을 했었는데, 지난 1년간, 영어 공부는 진짜 완전 1g도 못했다. 어휴. 인생사, 계획대로 되는 일이 한개도 없어서, 그냥 애초에 계획을 안 하고 있는데 -_-;; 잘 살고 있는건가 모르겠다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;
&lt;p&gt;p.s. 글 분류는 "나른한 일상"이지만, 나른하진 않고, 하루하루가 힘들다. -_-&lt;/p&gt;</description>
			<category>나른한일상</category>
			<author>종텐</author>
			<guid>http://jong10.com/476</guid>
			<comments>http://jong10.com/476#entry476comment</comments>
			<pubDate>Thu, 17 Jun 2010 08:28:49 +0900</pubDate>
		</item>
		<item>
			<title>앤디 루빈, 또 다른 기사</title>
			<link>http://jong10.com/475</link>
			<description>&lt;p&gt;앤디 루빈에 대한 다른 기사를 보던 중에, 이런 내용이 있다. 과장된 것인지, 진짜인지는 모르겠지만.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;그는 "안드로이드는 삼성과 인연이 각별하다"며 "2005년 안드로이드OS를 처음 만들어 구글에 넘기기에 앞서 삼성전자를 방문했었다"고 말했다. 그는 삼성에 안드로이드사 인수를 제의했다가 거절당한 후 구글에 회사를 팔고, 구글의 부사장으로 재직 중이다.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;- 출처 :&amp;nbsp;&lt;b&gt;&lt;a href="http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=001&amp;amp;oid=023&amp;amp;aid=0002156542" target="_blank" title="[http://news.naver.com/main/read.nhn?mode=LSD&amp;amp;mid=sec&amp;amp;sid1=001&amp;amp;oid=023&amp;amp;aid=0002156542]로 이동합니다."&gt;"응용프로그램 시장 완전 개방이 최대 강점" (chosun.com)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;다행이라면 다행이고. 불행이라면 불행이고. 당연하다면 당연하고. 씁쓸하다면 씁쓸하다.&lt;/p&gt;
&lt;p&gt;-- 이상한 나라의 종텐.&lt;/p&gt;
&lt;p&gt;p.s. 중앙일보 인터뷰 내용에는, 위 내용이 빠졌다고 한다.&lt;/p&gt;</description>
			<category>심오한망상</category>
			<author>종텐</author>
			<guid>http://jong10.com/475</guid>
			<comments>http://jong10.com/475#entry475comment</comments>
			<pubDate>Tue, 15 Jun 2010 05:08:21 +0900</pubDate>
		</item>
	</channel>
</rss>

