<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16408313</id><updated>2012-02-20T14:07:19.569+09:00</updated><category term='Algorithm'/><category term='google app engine'/><category term='WIN32'/><category term='MPEG4'/><category term='Linux'/><category term='Eclipse'/><category term='Ubuntu'/><category term='iOS'/><category term='Android'/><category term='MAC'/><category term='ETC'/><category term='svn'/><category term='OpenGL'/><category term='USB'/><title type='text'>VRzin's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16408313.post-4529453395444153415</id><published>2011-10-13T10:02:00.001+09:00</published><updated>2011-10-13T10:03:36.830+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='USB'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux에서 Android Target 연결하기</title><content type='html'>&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;1. Android SDK 설치&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;2.&amp;nbsp;Target 을 USB로 연결&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;3. USB ID 획득&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lsusb 명령어로 Target의 USB ID를 확인&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bus 001 Device 002: ID &lt;span style="color: red;"&gt;04e8:685e&lt;/span&gt; [Manufacturer]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 새로 연결된 타겟 뒤의 ID만 확인하시면 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;4. /etc/udev/rules.d/ 51-android.rules 파일에 USB ID 등록&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;위에서 얻은 ID를 해당 파일에 넣어주면 됩니다. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;파일은 보통 존재하지 않으며, 새로 만들어주시면 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sudo vi /etc/udev/rules.d/51-android.rules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 파일을 연 후에 아래와 같이 적어주시면 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSYSTEMS=="usb", ATTRS{idVendor}=="&lt;span style="color: red;"&gt;04e8&lt;/span&gt;", ATTRS{idProduct}=="&lt;span style="color: red;"&gt;685e&lt;/span&gt;", MODE="0666"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: inherit;"&gt;타겟마다 ID가 틀릴 수 있기 때문에 lsusb 명령어를 통해 얻은 ID를 확인해주셔야합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;5.&amp;nbsp;Target 분리 후 다시 연결&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family: inherit;"&gt;6. adb devices 명령어로 확인하였을 때 아래와 같이 나오면 됩니다.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; List of devices attached&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; M110823949234 device&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;[출처] &lt;span lang="EN-US" style="font-family: &amp;quot;맑은 고딕&amp;quot;;"&gt;&lt;a href="http://www.appcreator.com/app-inventor-connecting-ubuntu-and-samsung-galaxy-s"&gt;http://www.appcreator.com/app-inventor-connecting-ubuntu-and-samsung-galaxy-s&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-4529453395444153415?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/4529453395444153415/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=4529453395444153415' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4529453395444153415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4529453395444153415'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2011/10/linux-android-target.html' title='Linux에서 Android Target 연결하기'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-4384138530639632848</id><published>2010-07-20T14:04:00.002+09:00</published><updated>2011-03-17T10:37:35.602+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Application에 할당되는 Maximum VM Heap Size의 변경</title><content type='html'>간혹 OpenGL 기반 Application이나 메모리 사용량이 많은 Application을 개발할 때, Heap이 부족하여, 메모리 할당을 받지 못해 Application이 정상적으로 동작하지 않는 경우가 있다. Application단에서 이를 해결할 방법은 없으며, Framework에서 수정되어야 한다.&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;파일: android/frameworks/base/core/jni/AndroidRuntime.cpp&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;수정 전: property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "16m");&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;수정 후: property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "48m");&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;만약 48MiB도 작다면, 맘껏 늘려보자. :-p&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Update]&amp;nbsp; &lt;br /&gt;욱's님에 의하면, build.prop에 있는 dalvik.vm.heapsize의 값을 원하는 값으로 설정해줘야 한다고 합니다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-4384138530639632848?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/4384138530639632848/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=4384138530639632848' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4384138530639632848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4384138530639632848'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/07/application%EC%97%90-%ED%95%A0%EB%8B%B9%EB%90%98%EB%8A%94-maximum-vm-heap-size%EC%9D%98.html' title='Application에 할당되는 Maximum VM Heap Size의 변경'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-7260671882611266046</id><published>2010-07-19T22:00:00.001+09:00</published><updated>2011-01-13T10:18:53.201+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Emulator의 SD Card를 Mount하는 방법</title><content type='html'>타겟에서 작업할때는 별 상관 없지만, Emulator를 주로 사용하다보면 DDMS에서 볼 수 없는 파일들을 볼 일이 생길 경우가 있다. 이럴 경우에 mksdcard 명령으로 만들어진 이미지를 리눅스에서 간단하게 Mounting 할 수 있다.&lt;br /&gt;&lt;br /&gt;$sudo mount &lt;strong&gt;-o loop&lt;/strong&gt;&amp;nbsp;&amp;lt;android sdcard file name&amp;gt; &amp;lt;mounting point&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-7260671882611266046?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/7260671882611266046/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=7260671882611266046' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/7260671882611266046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/7260671882611266046'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/07/emulator%EC%9D%98-sd-card%EB%A5%BC-mount%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95.html' title='Emulator의 SD Card를 Mount하는 방법'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-1634617870000194641</id><published>2010-07-09T11:35:00.000+09:00</published><updated>2011-01-11T22:00:39.870+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Eclair Full Build!</title><content type='html'>&lt;P&gt;가정: &lt;A href="http://source.android.com/source/download.html" target=_blank&gt;"Get Android Source Code"&lt;/A&gt; 과정은 생략&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;~$ mkdir bin&lt;/P&gt;&lt;P&gt;~$ curl http://android.git.kernel.org/repo ~/bin/repo&lt;/P&gt;&lt;DIV&gt;~$ chmod a+x ~/bin/repo&lt;/DIV&gt;&lt;P&gt;~$ mkdir mydroid&lt;/P&gt;&lt;P&gt;~$ cd mydroid&lt;/P&gt;&lt;P&gt;~$ repo init-u git://android.git.kernel.org/platform/manifest.git -b eclair&lt;/P&gt;&lt;P&gt;~$ repo sync&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;소스를 다 받은 후, (엄청 오래 걸린다.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;~$ make&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-1634617870000194641?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/1634617870000194641/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=1634617870000194641' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1634617870000194641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1634617870000194641'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/07/eclair-full-build.html' title='Eclair Full Build!'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-1326875749340608375</id><published>2010-07-09T11:28:00.001+09:00</published><updated>2011-01-13T10:18:12.945+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Eclair 빌드 후 Project 생성시 XML에러 문제</title><content type='html'>Eclair 버전에서 SDK를 만들어 이클립스와 연동한 다음, 프로젝트를 생성하면 아래와 같은 에러가 발생한다.&lt;br /&gt;&lt;br /&gt;W/ResourceType(267): Unable to get buffer of resource asset file&lt;br /&gt;ERROR No resource identifier found for attribute 'orientation' in package 'android'&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;해결 방법:&lt;br /&gt;&lt;a href="http://www.mail-archive.com/android-developers@googlegroups.com/msg21641.html"&gt;http://www.mail-archive.com/android-developers@googlegroups.com/msg21641.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;프로젝트 빌드 중 APP가 android.jar 파일안의 "resource.arsc" 파일을 버퍼에 넣을 때 버퍼의 사이즈가 작아 압축 실패가 원인이다. &lt;br /&gt;&lt;br /&gt;[mydroid]/frameworks/base/include/utils/Asset.h 파일의 아래 내용을 다음으로 교체하면 해결됨.&lt;br /&gt;&lt;br /&gt;수정 전: &lt;br /&gt;#ifdef HAVE_ANDROID_OS&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024&lt;br /&gt;#else&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;수정 후:&lt;br /&gt;#ifdef HAVE_ANDROID_OS&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UNCOMPRESS_DATA_MAX = 4 * 1024 * 1024&lt;br /&gt;#else&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UNCOMPRESS_DATA_MAX = 4 * 1024 * 1024&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;안드로이드를 풀빌드하는 경우 HAVE_ANDROID_OS가 정의되어 있는 것으로 보임. &lt;br /&gt;수정 후 빌드 완료!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-1326875749340608375?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/1326875749340608375/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=1326875749340608375' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1326875749340608375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1326875749340608375'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/07/eclair-%EB%B9%8C%EB%93%9C-%ED%9B%84-project-%EC%83%9D%EC%84%B1%EC%8B%9C-xml%EC%97%90%EB%9F%AC-%EB%AC%B8%EC%A0%9C.html' title='Eclair 빌드 후 Project 생성시 XML에러 문제'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-6634799373714955406</id><published>2010-06-04T09:56:00.001+09:00</published><updated>2011-01-13T10:19:32.801+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIN32'/><title type='text'>Windows Dev: Console 강제로 띄우는 방법</title><content type='html'>#ifdef _DEBUG&lt;br /&gt;#pragma comment(linker,"/entry:WinMainCRTStartup /subsystem:console")&lt;br /&gt;#endif&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-6634799373714955406?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/6634799373714955406/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=6634799373714955406' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6634799373714955406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6634799373714955406'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/06/windows-dev-console-%EA%B0%95%EC%A0%9C%EB%A1%9C-%EB%9D%84%EC%9A%B0%EB%8A%94-%EB%B0%A9%EB%B2%95.html' title='Windows Dev: Console 강제로 띄우는 방법'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-1521153293359391808</id><published>2010-04-20T02:36:00.001+09:00</published><updated>2011-01-13T10:19:52.565+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>NDK: Assert 걸렸을 때 PC 값의 주소 보는 방법</title><content type='html'>출처: &lt;a href="http://groups.google.com/group/android-developers/browse_thread/thread/73f89bb8739c24bb/5228e7a5dcfff090"&gt;http://groups.google.com/group/android-developers/browse_thread/thread/73f89bb8739c24bb/5228e7a5dcfff090&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Assert가 걸렸을 때 Symbol들(eg. Function name)이 보이지 않는 이유는 Device에 Install 될 때, Library의 Symbol들을 떼어 버리기 때문이다. &lt;br /&gt;&lt;br /&gt;Symbol들을 보기 위해서는 addr2line을 쓰는 방법과 gdb/gdbserver를 쓰는 방법이 있는데, 비교적 사용법이 간단한 addr2line을 사용하는 방법을 알아본다.&lt;br /&gt;&lt;br /&gt;사용법은 아래와 같다.&lt;br /&gt;&lt;br /&gt;cygwin의 Bash를 띄운 후 아래와 같이 입력하면 된다.&lt;br /&gt;arm-eabi-addr2line.exe -f -e&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: #4edbfd;"&gt;&lt;strong&gt;&amp;lt;library name&amp;gt;&lt;/strong&gt; &lt;strong&gt;&amp;lt;address&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-f: Show function names&lt;br /&gt;-e: Set the input file names&lt;br /&gt;&lt;br /&gt;만약 아래와 같이 Assert가 발생했다고 하자.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: white; border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; border-right: #cccccc 1px solid; border-top: #cccccc 1px solid; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px;"&gt;&lt;span style="color: black;"&gt;Build fingerprint: XXXX&lt;br /&gt;pid: 1917, tid: 1960&amp;nbsp; &amp;gt;&amp;gt;&amp;gt; XXXX &amp;lt;&amp;lt;&amp;lt;&lt;br /&gt;signal 11 (SIGSEGV), fault addr 450774f0&lt;br /&gt;&amp;nbsp;r0 ffffffa5&amp;nbsp; r1 ffec01a4&amp;nbsp; r2 450774f0&amp;nbsp; r3 45235310&lt;br /&gt;&amp;nbsp;r4 fffffb00&amp;nbsp; r5 ff000000&amp;nbsp; r6 ff000000&amp;nbsp; r7 000001df&lt;br /&gt;&amp;nbsp;r8 00ff00ff&amp;nbsp; r9 4767fca4&amp;nbsp; 10 4767fcc0&amp;nbsp; fp 00000780&lt;br /&gt;&amp;nbsp;ip 000000ff&amp;nbsp; sp 4767fac0&amp;nbsp; lr 80d1c041&amp;nbsp; pc 80d1c176&amp;nbsp; cpsr a0000030&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #00&amp;nbsp; pc&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;strong&gt; 0001c176&amp;nbsp; YYYY.so&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #01&amp;nbsp; pc &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;0003b026&amp;nbsp; YYYY.so&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #02&amp;nbsp; pc &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;00005aba&amp;nbsp; YYYY.so&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #03&amp;nbsp; pc &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;strong&gt;0000312a&amp;nbsp; YYYY.so&lt;/strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; #04&amp;nbsp; pc 0000f1f4&amp;nbsp; /system/lib/libdvm.so&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;위에서 PC 값에 적힌, 주소를 Library와 함께 넣어주면 된다.&lt;br /&gt;arm-eabi-addr2line.exe -f -e &lt;strong&gt;&lt;span style="color: #00ccff;"&gt;YYYY.so 0001c176&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;출력&amp;gt;&lt;br /&gt;[Symbol Name]&lt;br /&gt;??:0&lt;br /&gt;&lt;br /&gt;arm-eabi-addr2line.exe -f -e &lt;strong&gt;&lt;span style="color: #00ccff;"&gt;YYYY.so 0003b026&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;출력&amp;gt;&lt;br /&gt;[Symbol Name]&lt;br /&gt;??:0&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff6600;"&gt;주) arm-eabi-addr2line.exe는 NDK의 build\prebuilt\windows\arm-eabi-4.4.0\bin\에 존재한다.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-1521153293359391808?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/1521153293359391808/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=1521153293359391808' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1521153293359391808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1521153293359391808'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/04/ndk-assert-%EA%B1%B8%EB%A0%B8%EC%9D%84-%EB%95%8C-pc-%EA%B0%92%EC%9D%98-%EC%A3%BC%EC%86%8C-%EB%B3%B4%EB%8A%94-%EB%B0%A9%EB%B2%95.html' title='NDK: Assert 걸렸을 때 PC 값의 주소 보는 방법'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-948918852835325459</id><published>2010-02-11T22:25:00.000+09:00</published><updated>2011-01-13T10:19:32.809+09:00</updated><title type='text'>Aphorism</title><content type='html'>"If the only tool you have is a hammer, you approach every problem as if it were a nail." - Bobby Knight, the basket ball coach at Texas Tech University.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-948918852835325459?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/948918852835325459/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=948918852835325459' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/948918852835325459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/948918852835325459'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/02/aphorism.html' title='Aphorism'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-6885193435136890150</id><published>2010-01-13T13:57:00.001+09:00</published><updated>2011-01-13T10:20:07.751+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MPEG4'/><title type='text'>MPEG4 Visual Overview</title><content type='html'>MPEG-4 비쥬얼(ISO/IEC 14496의 파트 2, "오디오-비쥬얼 객체의 부호화")은 비쥬얼 정보의 표현과 부호화와 관련된 기능들에 대해 넓은 범위를 커버하는 겁내 큰 문서이다. 이 표준은 다음의 데이터 종류를 다룬다.&lt;br /&gt;&lt;br /&gt;* 움직이는 비디오(사각 프레임)&lt;br /&gt;* 비디오 객체(움직이는 비디오의 임의의 모양을 가진 영역들)&lt;br /&gt;* 2D 그리고 3D 메쉬 객체(변형 가능한 객체로 표현)&lt;br /&gt;* 움직이는 얼굴 및 몸&lt;br /&gt;* 정적 텍스쳐(스틸 이미지들)&lt;br /&gt;&lt;br /&gt;이 표준은 부호화 도구들의 집합을 기술한다. 이는 부호화된 형태로 이들 데이터의 타입을 표현하기 위해 디자인되어 있다. 다양하게 지원되는 데이터 타입과 도구들의 집합과 함께 MPEG-4 비쥬얼 표준은 다음을 포함한 많은 서로 다른 응용 프로그램을 지원할 수 있다. &lt;br /&gt;* 디지털 TV 방송, 비디오 회의, 비디오 저장소등과 같은 레거시 비디오 응용 프로그램들&lt;br /&gt;* 각각 부호화된 서로 다른 많은 비디오 객체들로 구성된 비디오 장면이 있는 오브젝트 지향하는 비디오 응용 프로그램들&lt;br /&gt;* 변형 가능한 2D 또는 3D 메쉬 지오메트리 또는 움직이는 사람의 얼굴 및 몸을 사용한 렌더된 컴퓨터 그래픽스&lt;br /&gt;* 실제 세계 비디오, 정지 영상 그리고 컴퓨터로 생성된 그래픽스를 조합한 하이브리드 비디오 응용 프로그램&lt;br /&gt;* 인터넷이나 모바일 채널들을 통한 스트리밍 비디오&lt;br /&gt;* 스튜디오 생산 환경을 위한 고급 비디오 편집과 배포&lt;br /&gt;&lt;br /&gt;표준에 의해 기술된 당황스러울 정도의 범위의 부호화 툴들에도 불구하고, MPEG-4 비쥬얼의 중심은 간단한 비디오 부호화 메커니즘이다. 양자화와 엔트로피 부호화 그리고 DCT에 의한 움직임 보상을 사용하는 블록 기반 비디오 코덱이다. 이 핵심 코덱의 체계는 특정 제약을 제외하고는 H.263과 동일하다. 표준에 의해 지원되는 다른 기능들과 도구들의 대부분은 이 핵심에 추가적인 피쳐들을 추가함으로써 얻게된다. 반면에 메쉬, 정지 영상과 얼굴/몸 에니메이션의 부호화를 위한 툴들은 분리되어 개발된다.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-6885193435136890150?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/6885193435136890150/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=6885193435136890150' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6885193435136890150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6885193435136890150'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/01/mpeg4-visual-overview.html' title='MPEG4 Visual Overview'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-3727797730638680996</id><published>2010-01-06T18:45:00.002+09:00</published><updated>2011-01-13T10:22:55.220+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>TortoiseSVN에서 ssh+svn 사용 방법</title><content type='html'>학교 서버에 설치된 SVN에 접근을 하기 위해, TortoiseSVN으로 로긴을 하려고 했습니다.&lt;br /&gt;ssh+svn을 사용하고 있었는데, 문제는 로긴을 3번이나 해야 접근이 가능했습니다.&lt;br /&gt;도대체 이 현상이 이해가 가지 않아, TortoiseSVN 도움말을 보았는데 부록에 뭔가 이상한게 있더군요.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;"G. Securing Svnserve using SSH"&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;뭐지 이건? 일반 SVN이 아니라 SSH를 이용한 SVN을 접근하려면 뭔가 다른 짓을 해줘야 할 것 같다는 느낌이 들더군요. 그래서 있는 그대로 따라해봤는데, Key를 Pageant에 등록만 하면 로긴 자체가 필요가 없더군요. 따라서 위 문제도 자동으로 해결!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. 아래의 링크에서 Putty, Plink, Pageant, Puttygen을 받습니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp; 나중에 서버에서 생성된 파일을 얻기 위해 WinSCP도 받는게 좋더군요.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Putty Family: &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"&gt;http://www.chiark.greenend.org.uk/~sgtatham/putty/&lt;/a&gt;&lt;br /&gt;WinSCP : &lt;a href="http://winscp.net/eng/download.php"&gt;http://winscp.net/eng/download.php&lt;/a&gt;2. 자, 이제 Public Key와 Private Key를 생성합니다.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Putty를 이용하여 서버에서 아래의 명령어를 칩니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp; 암호라고 되어 있는 부분에 자신이 사용할 암호를 적습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 이 암호는 아래의 단계들에서 계속 사용하므로 잘 기억하고 있는게 좋습니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ssh-keygen -b 1024 -t dsa -N 암호 -f keyfile&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3. ls 명령으로 keyfile(개인 키)과 keyfile.pub(공개 키)가 만들어 진 것을 확인 합니다.&lt;br /&gt;&lt;br /&gt;4. 자신의 폴더(~)에 .ssh 라는 폴더가 없으면 만들고, 여기에 keyfile.pub을 authorized_keys라는 파일명으로 저장합니다.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;cd ~&lt;br /&gt;mkdir .ssh&lt;br /&gt;cat keyfile.pub &amp;gt;&amp;gt; /home/당신/.ssh/authorized_keys&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;5. 이제 TortoiseSVN을 사용할 로컬(Windows PC)로 이동해서 개인키를 등록합니다.&lt;br /&gt;&amp;nbsp;&amp;nbsp; WinSCP를 이용해서 서버에 있는 개인키(keyfile)를 로컬로 이동시킨 다음, &lt;br /&gt;&amp;nbsp;&amp;nbsp; PuttyGen을 실행해서 Conversions -&amp;gt; Import Key를 실행하고, keyfile을 넣은 다음 &lt;br /&gt;&amp;nbsp;&amp;nbsp; Save Private key를 실행해서 keyfile.ppk로 저장합니다.&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;6. Pageant를 실행한 다음, Add keys를 선택하고 keyfile.ppk를 넣어줘야 합니다.&lt;br /&gt;&lt;br /&gt;7. 이제 TortoiseSVN 으로 접속하면, 로긴 창이 뜨지도 않고 로긴 됩니다!&lt;br /&gt;&amp;nbsp;&amp;nbsp; 단, 접속할 때 svn+ssh://당신아이디@URL 식으로 //와 @사이에 넣어줘야 &lt;br /&gt;&amp;nbsp;&amp;nbsp; ID를 안 물어봅니다. 만약 이 작업을 하지 않으면, 아이디만 3번 물어보더군요.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-3727797730638680996?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/3727797730638680996/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=3727797730638680996' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3727797730638680996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3727797730638680996'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2010/01/tortoisesvn%EC%97%90%EC%84%9C-sshsvn-%EC%82%AC%EC%9A%A9-%EB%B0%A9%EB%B2%95.html' title='TortoiseSVN에서 ssh+svn 사용 방법'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-282190075840649504</id><published>2009-12-18T00:10:00.001+09:00</published><updated>2011-01-13T10:20:45.264+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><title type='text'>GQL 결과를 JSON 포맷으로 변환시 Entity ID 얻어오기</title><content type='html'>이전 &lt;a href="http://vrzin.textcube.com/4" target="_blank"&gt;GAE에서 DB검색 결과를 JSON 포맷으로 가져오기&lt;/a&gt;라는 글에서의 JSON으로 뽑아낸 결과에는 Entity의 ID가 들어있지 않습니다. 이를 넣어주기 위해서는 아래의 코드를 json.py의 default 함수를 약간 변경해야 합니다. &lt;br /&gt;&lt;br /&gt;[code python] ... def default(self, obj): ... elif isinstance(obj, db.Model): properties = obj.properties().items() output = {} for field, value in properties: # Added in order to include entity's id into JSON format output[field] = getattr(obj, field) output['id'] = obj.key().id() return output ... [/code]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-282190075840649504?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/282190075840649504/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=282190075840649504' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/282190075840649504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/282190075840649504'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/12/gql-%EA%B2%B0%EA%B3%BC%EB%A5%BC-json-%ED%8F%AC%EB%A7%B7%EC%9C%BC%EB%A1%9C-%EB%B3%80%ED%99%98%EC%8B%9C-entity-id-%EC%96%BB%EC%96%B4%EC%98%A4%EA%B8%B0.html' title='GQL 결과를 JSON 포맷으로 변환시 Entity ID 얻어오기'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-6670446683292309083</id><published>2009-12-07T23:18:00.001+09:00</published><updated>2011-01-13T10:21:13.731+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>UIAlertView 서브클래스하기</title><content type='html'>Cocoa를 사용하여 어플을 만들다보면, 이뻐보이던 팝업(Alert View, UIAlertView) 눈에 익숙해져서 어느 순간부터 촌스러워 보이기 시작합니다. 사실 팝업 자체로 보면, 투명 효과와 그림자 효과, 그리고 에니메이션까지.. 이 모든 것을 Core Animation과 Quartz로 구현하려면 아마 몇일 걸릴겁니다. 근데, 역시 구글은 모든 해답을 가지고 있네요. 천재들 :-)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[출처: &lt;a href="http://joris.kluivers.nl/iphone-dev/?p=CustomAlert" target="_blank"&gt;http://joris.kluivers.nl/iphone-dev/?p=CustomAlert&lt;/a&gt;]&lt;/div&gt;&lt;div&gt;iPhone SDK는 사용자에게 팝업을 보여주기 위한 UIAlertView 클래스를 제공합니다. 예를 들어, 애플은 이 팝업을 문자 메시지가 도착했을 때 사용합니다. 어플리케이션 개발자들은 이와 같은 팝업을 사용할 수 있습니다. 최상위의 특수한 윈도우 레벨에 보여집니다. 팝업 아래의 컨텐츠들에 대한 사용자의 입력은 팝업이 사라질 때까지 무시됩니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;나의 최근 프로젝트들 중, 하나의 뷰가 모든 다른 컨텐츠들의 최상위에 보여져야만 했습니다. Spotlight dim effect와 사용자 입력을 막는 것은 재사용할 수 있었으나, 파란색의 UIAlertView 스타일은 나의 요구와 맞지 않았습니다. 처음부터 나만의 뷰를 만드는 대신, UIAlertView가 제공하는 것을 재사용하고 모든 불필요한 기능들을 제거하기로 결심했습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이 페이지는 아래에 나온 피가 튀기는 것 같은 변형된 Alert를 생성하기 위해 무엇이 필요한지 설명할 것입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[그림 생략 - 위 링크에서 보세요]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;팝업을 우리가 원하는 어떤 것으로든 변형할 수 있지만, 단순함을 유지하려고 했습니다. 피가 튀기는 팝업은 두 가지 주요 파트들로 구성되어져 있습니다. 배경 이미지와 텍스트 레이블. 위의 비교에서 볼 수 있듯이, 우리는 버튼과 기본 텍스트를 무시할 겁니다. 새로운 초기화 함수는 JKCustomAlert에게 정보를 제공하기 위해 사용될 것입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[code cpp]-(id) initWithImage:(UIImage *)backgroundImage text:(NSString *)text;[/code] &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;자체 Initializer를 사용함으로써, 기본 타이틀과 메시지는 설정되지 않습니다. 만약 지금 시점에서 팝업을 보여준다면, 비어있고 작지만, 기본 모습을 가진 팝업이 나타날겁니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;팝업의 배경을 기본에서 자체 배경으로 변경하기 위해서 drawRect: 는 Override 되어야 합니다. 우리가 해야할 것은 배경 이미지를 뿌리는 것 뿐입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[code cpp] -(void) drawRect:(CGRect)rect { // do not call the super drawRect CGSize imageSize = self.backgroundImage.size; [self.backgroundImage drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)]; } [/code] &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;마지막으로 할 것은 배경 이미지의 크기에 맞게 JKCustomAlert의 크기를 변경하는 것입니다. show 함수는 팝업의 크기를 재설정하고 애니메이션할 책임이 있습니다. 에니메이션을 시작하고 뷰의 크기를 맞추기 위해 super 함수를 호출합니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[code cpp] -(void) show { // call the super show method to initiate the animation [super show]; // resize the alert view to fit the image CGSize imageSize = self.backgroundImage.size; self.bounds = CGRectMake(0, 0, imageSize.width, imageSize.height); } [/code] &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;팝업에 나타나는 Text label은 addSubView: 함수에 추가되고, 위치는 layoutSubviews 함수 안에서 설정됩니다. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;사용자에게 버튼을 제공하지 않기 때문에, dismissWithClickedButtonIndex:animated셀렉터를 사용하여 팝업을 수동으로 없애야 합니다. 그렇지 않으면, 프로그램은 팝업이 보이는 동안 멈추어 있을 것입니다.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-6670446683292309083?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/6670446683292309083/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=6670446683292309083' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6670446683292309083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6670446683292309083'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/12/uialertview-%EC%84%9C%EB%B8%8C%ED%81%B4%EB%9E%98%EC%8A%A4%ED%95%98%EA%B8%B0.html' title='UIAlertView 서브클래스하기'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-2349903604030834178</id><published>2009-11-29T23:25:00.001+09:00</published><updated>2011-01-13T10:21:24.001+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>View-based Application을 이용한 Table View 만들기</title><content type='html'>&lt;script src="http://ss.textcube.com/service/blog/script/blogger.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div&gt;XC: XCode, IB:Interface Builder&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. [XC] File -&amp;gt; New Project -&amp;gt; View-based Application 선택&lt;/div&gt;&lt;div&gt;2. [XC] Application 이름 설정(여기서는 &lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;로 지정)&lt;/div&gt;&lt;div&gt;3. [XC] &lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;ViewController.xib 더블 클릭&lt;/div&gt;&lt;div&gt;4. [IB] Library에서 Table View를 가져다가 &lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;ViewController.xib의 View의 자식으로 놓는다.&lt;/div&gt;&lt;div&gt;5. [IB] File's Owner의 view가 Table View되도록 한다.&lt;/div&gt;&lt;div&gt;6. [IB] Table View의 datasource와 delegate가 Files'Owner(&lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;ViewController)가 되도록 한다.&lt;/div&gt;&lt;div&gt;7. [XC] &lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;ViewController.h를 열어 부모 클래스를 UIViewController에서 UITableViewController로 변경한다.&lt;/div&gt;&lt;div&gt;8. [XC] &lt;b&gt;&lt;span class="Apple-style-span" style="color: white;"&gt;VBA&lt;/span&gt;&lt;/b&gt;ViewController.m을 열어 아래의 함수를 추가한다.&lt;/div&gt;&lt;div&gt;&lt;div class="moreless_fold" id="more-5-0" style="color: black; padding-bottom: 0px; padding-left: 10px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span onclick="if (window.TC$PRIV_toggleMoreLessBlogger != undefined) {TC$PRIV_toggleMoreLessBlogger(this, '5-0','펼쳐두기..','접어두기..'); return false;} else {document.getElementById('content-5-0').style.display='';}" style="cursor: pointer;"&gt;펼쳐두기..&lt;/span&gt;&lt;/div&gt;&lt;div class="moreless_content" id="content-5-0" style="background-color: #f3f3f3; border-bottom: #cccccc 1px dashed; border-left: #cccccc 1px dashed; border-right: #cccccc 1px dashed; border-top: #cccccc 1px dashed; display: none;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif;"&gt;[code cpp] #pragma mark Table view methods - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } // Customize the number of rows in the table view. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 0; } // Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } // Set up the cell... return cell; }[/code]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;9. Build &amp;amp; Go!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;매번 귀찮네. Template을 만들던지 해야지 원!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-2349903604030834178?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/2349903604030834178/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=2349903604030834178' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/2349903604030834178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/2349903604030834178'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/11/view-based-application%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-table-view.html' title='View-based Application을 이용한 Table View 만들기'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-5630460912770309665</id><published>2009-11-27T22:29:00.001+09:00</published><updated>2011-01-13T10:21:42.838+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><title type='text'>GAE에서 DB의 검색 결과를 JSON 포맷으로 가져오기</title><content type='html'>&lt;script src="http://ss.textcube.com/service/blog/script/blogger.js" type="text/javascript"&gt;&lt;/script&gt;Google App Engine에서는 django를 기본으로 제공합니다. django를 사용하여 View와 Logic을 구분할 수도 있지만, 이 뿐만 아니라 &lt;a href="http://simplejson.googlecode.com/svn/tags/simplejson-2.0.9/docs/index.html" target="_blank"&gt;simplejson&lt;/a&gt;을 사용할 수 있기 때문에 서버로부터 DB의 데이터를 JSON 포맷로 가져오거나 서버로 JSON 포맷의 데이터를 보내 DB를 업데이트 하는 동작을 할 수 있습니다. 물론 JSON Parser가 필요하지만, 왠만한 모든 언어로 포팅이 되어 있습니다.&lt;br /&gt;&lt;br /&gt;더 편한 방법이 있겠지만, 구글의 예제 중 simplejson.JSONEncoder를 상속받은 GqlEncoder를 사용하면 매우 편하게 GqlQuery의 결과를 JSON으로 뿌릴 수 있습니다.&lt;br /&gt;&lt;div class="moreless_fold" id="more-4-0" style="color: black; padding-bottom: 0px; padding-left: 10px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span onclick="if (window.TC$PRIV_toggleMoreLessBlogger != undefined) {TC$PRIV_toggleMoreLessBlogger(this, '4-0','json.py...','접어두기..'); return false;} else {document.getElementById('content-4-0').style.display='';}" style="cursor: pointer;"&gt;json.py...&lt;/span&gt;&lt;/div&gt;&lt;div class="moreless_content" id="content-4-0" style="background-color: #f3f3f3; border-bottom: #cccccc 1px dashed; border-left: #cccccc 1px dashed; border-right: #cccccc 1px dashed; border-top: #cccccc 1px dashed; display: none;"&gt;[code python]&lt;br /&gt;# Copyright 2008 Google Inc.&lt;br /&gt;#&lt;br /&gt;# Licensed under the Apache License, Version 2.0 (the "License");&lt;br /&gt;# you may not use this file except in compliance with the License.&lt;br /&gt;# You may obtain a copy of the License at&lt;br /&gt;# &lt;br /&gt;# http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;# &lt;br /&gt;# Unless required by applicable law or agreed to in writing, software&lt;br /&gt;# distributed under the License is distributed on an "AS IS" BASIS,&lt;br /&gt;# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;# See the License for the specific language governing permissions and&lt;br /&gt;# limitations under the License.&lt;br /&gt;&lt;br /&gt;"""Utility classes and methods for use with simplejson and appengine.&lt;br /&gt;&lt;br /&gt;Provides both a specialized simplejson encoder, GqlEncoder, designed to simplify&lt;br /&gt;encoding directly from GQL results to JSON. A helper function, encode, is also&lt;br /&gt;provided to further simplify usage.&lt;br /&gt;&lt;br /&gt;GqlEncoder: Adds support for GQL results and properties to simplejson.&lt;br /&gt;encode(input): Direct method to encode GQL objects as JSON.&lt;br /&gt;"""&lt;br /&gt;&lt;br /&gt;import datetime&lt;br /&gt;import simplejson&lt;br /&gt;import time&lt;br /&gt;&lt;br /&gt;from google.appengine.api import users&lt;br /&gt;from google.appengine.ext import db&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class GqlEncoder(simplejson.JSONEncoder):&lt;br /&gt;&lt;br /&gt;"""Extends JSONEncoder to add support for GQL results and properties.&lt;br /&gt;&lt;br /&gt;Adds support to simplejson JSONEncoders for GQL results and properties by&lt;br /&gt;overriding JSONEncoder's default method.&lt;br /&gt;"""&lt;br /&gt;&lt;br /&gt;# TODO Improve coverage for all of App Engine's Property types.&lt;br /&gt;&lt;br /&gt;def default(self, obj):&lt;br /&gt;&lt;br /&gt;"""Tests the input object, obj, to encode as JSON."""&lt;br /&gt;&lt;br /&gt;if hasattr(obj, '__json__'):&lt;br /&gt;return getattr(obj, '__json__')()&lt;br /&gt;&lt;br /&gt;if isinstance(obj, db.GqlQuery):&lt;br /&gt;return list(obj)&lt;br /&gt;&lt;br /&gt;elif isinstance(obj, db.Model):&lt;br /&gt;properties = obj.properties().items()&lt;br /&gt;output = {}&lt;br /&gt;for field, value in properties:&lt;br /&gt;output[field] = getattr(obj, field)&lt;br /&gt;return output&lt;br /&gt;&lt;br /&gt;elif isinstance(obj, datetime.datetime):&lt;br /&gt;output = {}&lt;br /&gt;fields = ['day', 'hour', 'microsecond', 'minute', 'month', 'second',&lt;br /&gt;'year']&lt;br /&gt;methods = ['ctime', 'isocalendar', 'isoformat', 'isoweekday',&lt;br /&gt;'timetuple']&lt;br /&gt;for field in fields:&lt;br /&gt;output[field] = getattr(obj, field)&lt;br /&gt;for method in methods:&lt;br /&gt;output[method] = getattr(obj, method)()&lt;br /&gt;output['epoch'] = time.mktime(obj.timetuple())&lt;br /&gt;return output&lt;br /&gt;&lt;br /&gt;elif isinstance(obj, time.struct_time):&lt;br /&gt;return list(obj)&lt;br /&gt;&lt;br /&gt;elif isinstance(obj, users.User):&lt;br /&gt;output = {}&lt;br /&gt;methods = ['nickname', 'email', 'auth_domain']&lt;br /&gt;for method in methods:&lt;br /&gt;output[method] = getattr(obj, method)()&lt;br /&gt;return output&lt;br /&gt;&lt;br /&gt;return simplejson.JSONEncoder.default(self, obj)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def encode(input):&lt;br /&gt;"""Encode an input GQL object as JSON&lt;br /&gt;&lt;br /&gt;Args:&lt;br /&gt;input: A GQL object or DB property.&lt;br /&gt;&lt;br /&gt;Returns:&lt;br /&gt;A JSON string based on the input object. &lt;br /&gt;&lt;br /&gt;Raises:&lt;br /&gt;TypeError: Typically occurs when an input object contains an unsupported&lt;br /&gt;type.&lt;br /&gt;"""&lt;br /&gt;return GqlEncoder().encode(input) [/code]&lt;/div&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;아래는 위 파일을 가져다가 사용한 예제입니다. 바로 사용 가능한 완벽한 예제는 아닙니다. &lt;br /&gt;&lt;div class="moreless_fold" id="more-4-1" style="color: black; padding-bottom: 0px; padding-left: 10px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span onclick="if (window.TC$PRIV_toggleMoreLessBlogger != undefined) {TC$PRIV_toggleMoreLessBlogger(this, '4-1','펼쳐두기..','접어두기..'); return false;} else {document.getElementById('content-4-1').style.display='';}" style="cursor: pointer;"&gt;펼쳐두기..&lt;/span&gt;&lt;/div&gt;&lt;div class="moreless_content" id="content-4-1" style="background-color: #f3f3f3; border-bottom: #cccccc 1px dashed; border-left: #cccccc 1px dashed; border-right: #cccccc 1px dashed; border-top: #cccccc 1px dashed; display: none;"&gt;[code python]&lt;br /&gt;&lt;br /&gt;import json&lt;br /&gt;&lt;br /&gt;class Question(db.Model)&lt;br /&gt;&amp;nbsp; author = db.StringProperty()&lt;br /&gt;&amp;nbsp; date = db.DateTimeProperty(auto_now_add=True)&lt;br /&gt;&lt;br /&gt;class MainPage(webapp.RequestHandler):&lt;br /&gt;&amp;nbsp; def get(self):&lt;br /&gt;&amp;nbsp; &amp;nbsp; questions_query = Question.all().order('-date')&lt;br /&gt;&amp;nbsp; &amp;nbsp; questions = questions_query.fetch(10)&lt;br /&gt;&amp;nbsp; &amp;nbsp; encoded_result = json.encode(questions)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; self.response.headers['Content-Type'] = 'text/plain'&lt;br /&gt;&amp;nbsp; &amp;nbsp; self.response.out.write(encoded_result)&lt;br /&gt;&lt;br /&gt;[/code]&lt;/div&gt;나중에 시간나면, 간단하지만 뭔소리인지 모르겠는 json.py를 뜯어 보겠습니다. 일단 문제 해결!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-5630460912770309665?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/5630460912770309665/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=5630460912770309665' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/5630460912770309665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/5630460912770309665'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/11/gae%EC%97%90%EC%84%9C-db%EC%9D%98-%EA%B2%80%EC%83%89-%EA%B2%B0%EA%B3%BC%EB%A5%BC-json-%ED%8F%AC%EB%A7%B7%EC%9C%BC%EB%A1%9C-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.html' title='GAE에서 DB의 검색 결과를 JSON 포맷으로 가져오기'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-1047053254758532750</id><published>2009-11-24T21:35:00.001+09:00</published><updated>2011-01-13T10:21:52.980+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><title type='text'>kd-tree</title><content type='html'>&lt;div&gt;&lt;a href="http://naggingmachine.tistory.com/97" target="_blank"&gt;친구의 블로그&lt;/a&gt;에서 글을 읽다가 문제 하나를 봤습니다. &lt;br /&gt;x와 y좌표를 가진 N개의 점들이 있는데, 원점에 가까운 10개의 점을 무려 O(n) 시간으로 찾으라는 무지막지한 문제. 해결 자체는 kd-tree로 가능하지만, O(n) 이라면 kd-tree가 답은 아니겠군요. kd-tree 생성에만 O(n*log(n))이 걸린다던데. 설마 넌센스인가?&lt;br /&gt;근데 시간 복잡도를 제외하면, 예전에 자료구조 혹은 알고리즘 시간에 교수님이 냈던 과제랑 같은거 같네요. 그 땐 무식하게 푼 기억이 어렴풋이 납니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;kd-tree&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;컴퓨터 과학에서 kd-tree는 k-차원 공간에 있는 점들을 조직하기 위한 공간-분할 데이터 구조입니다. kd-tree는 다차원 공간 탐색 키를 사용하는 탐색과 같은 응용에 유용한 데이터 구조입니다.(예를 들어, 범위 검색과 근접 검색). kd-tree는 BSP tree의 특별한 경우입니다.&lt;br /&gt;&lt;br /&gt;kd-tree는 모든 노드(Node)가 k-차원의 점인 이진 트리(Binary tree)입니다. 리프(Leaf)가 아닌 모든 노드는 공간을 두 개의 작은 공간들(Subspaces)로 나눈 분리 경계면(초평면, Hyperplane)을 만듭니다. 분리 경계면 왼쪽의 점들은 노드의 왼쪽 서브 트리(Sub-tree)를 나타내고, 오른쪽의 점들은 오른쪽 서브 트리를 나타냅니다. 분리 경계면의 방향은 다음의 방법에 의해 선택됩니다. 서브 트리에 의해 쪼개진 모든 노드는 k-차원들 중 하나와 연관 됩니다. 분리 경계면은 방향 벡터에 수직입니다. 예를 들면, 선택된 x축으로 나뉘어진다면, x값보다 작은 서브 트리의 모든 점들은 오른쪽에 나타나고, x값 보다 큰 값들은 오른쪽 서브 트리에 나타납니다.&lt;br /&gt;&lt;br /&gt;출처: &lt;a href="http://en.wikipedia.org/wiki/Kd_tree" target="_blank"&gt;http://en.wikipedia.org/wiki/Kd_tree&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-1047053254758532750?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/1047053254758532750/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=1047053254758532750' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1047053254758532750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/1047053254758532750'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/11/kd-tree.html' title='kd-tree'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-726904479069254704</id><published>2009-10-14T09:24:00.000+09:00</published><updated>2011-01-13T10:19:32.803+09:00</updated><title type='text'>첫 포스팅</title><content type='html'>마음에 듭니다. 특히 터미널 스킨! :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-726904479069254704?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/726904479069254704/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=726904479069254704' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/726904479069254704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/726904479069254704'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/10/%EC%B2%AB-%ED%8F%AC%EC%8A%A4%ED%8C%85.html' title='첫 포스팅'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-6565741283743029658</id><published>2009-09-15T14:46:00.032+09:00</published><updated>2011-01-13T10:22:08.109+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>기술적 도움</title><content type='html'>&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: verdana;"&gt;- Connecting Apple's iPhone to Google's cloud computing offerings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.ibm.com/developerworks/library/wa-aj-iphone/?S_TACT=105AGX01&amp;amp;S_CMP=HP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- UIImageView Frame&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://osdir.com/ml/cocoa-dev/2009-09/msg00737.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://stackoverflow.com/questions/205431/rounded-corners-on-uiimage/205643&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- UIImageView 회전&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://stackoverflow.com/questions/852863/how-can-i-rotate-an-uiimageview-by-20-degrees&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 카메라 제어&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://chaoskcuf.com/entry/iPhone-31-beta-3%EC%97%90%EC%84%9C-camera-%EB%B3%80%EA%B2%BD%EB%90%9C-%EC%A0%90&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- google app engine + twitter oauth&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://github.com/tav/tweetapp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://groups.google.com/group/twitter-development-talk/browse_thread/thread/3a2a78b011d827ef?pli=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- iCal + Google Calendar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://techblog.tistory.com/47&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 사전&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://tais9.tistory.com/entry/%EB%A0%88%ED%8D%BC%EB%93%9C-%EC%82%AC%EC%A0%84%EC%97%90-%EC%98%81%ED%95%9C%ED%95%9C%EC%98%81-%EC%82%AC%EC%A0%84%EC%9D%84-%EC%B6%94%EA%B0%80%ED%95%98%EC%9E%90&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 트윗어플 등록&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.codingthewheel.com/archives/codingthetweet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://github.com/bengottlieb/Twitter-OAuth-iPhone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 맥용 어플&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://suc.kr/2009/02/whats-in-my-mac-app/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://tykim.wordpress.com/2009/10/05/snow-leopardmac-%ed%95%84%ec%88%98-%ec%9c%a0%ed%8b%b8%eb%a6%ac%ed%8b%b0-%ec%a0%95%eb%a6%ac/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 이쁜 테이블 디자인&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.neurosoftware.ro/programming-blog/blogposter/web-resources/html-table-building-30-beautiful-examples-and-useful-javascripts/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://members.webmaster-business-guide.com/98-free-beautiful-css-styled-html-tables.html&lt;/span&gt;&lt;br /&gt;http://mayo.pe.kr/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 이쁘고 큰 Delete button&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://blog.blackwhale.at/2009/07/uibutton-in-uitableview-footer/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 이쁜 UITableView&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Twitter with OBJC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://hotcocoa.lastedit.com/www/2009/06/hot-cocoa-13-collection-view/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Embedding Image into HTML&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.iphonedevsdk.com/forum/iphone-sdk-development/25021-embedding-image-email-body.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://dean.edwards.name/weblog/2005/06/base64-ie/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Resize UIImage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://kwigbo.com/wp/2009/03/04/resize-uiimage/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- SQLite3 이미지 Insert/Select&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.iphonesdkarticles.com/2009/02/sqlite-tutorial-saving-images-in.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- SQLite3 날짜 저장&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://stackoverflow.com/questions/942188/sqlite-datetime-data-type-with-iphone-nsdate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://stackoverflow.com/questions/251155/persisting-dates-to-sqlite3-in-an-iphone-application&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- 오늘 날짜 얻어오기&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.borkware.com/quickies/one?topic=NSDate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- UIDatePicker의 사용&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://iphonedevelopment.blogspot.com/2008/12/reusable-date-drill-down-controller.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Add a Person/History 화면&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://github.com/sburlot/tableviewcellwithbkgnd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Local HTML Resource 뿌리기&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.unlikelypear.com/blog/2009/09/uiwebview-paths-in-iphone-sdk-3-0/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- Local HTML Resource 뿌리기 2 - Javascript 돌리기&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://stackoverflow.com/questions/843820/iphone-uiwebview-local-resources-using-javascript-and-handling-onorientationchang&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;-----------------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;- UIImageView위에 선 그리기&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;http://www.iphoneos.co.kr/zbxe/?mid=tip&amp;amp;page=27&amp;amp;document_srl=7717&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-6565741283743029658?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/6565741283743029658/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=6565741283743029658' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6565741283743029658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6565741283743029658'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/09/blog-post.html' title='기술적 도움'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-6247425542472310633</id><published>2009-02-10T16:49:00.001+09:00</published><updated>2011-01-13T10:22:18.697+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ETC'/><title type='text'>SoundSnap</title><content type='html'>Arpeg Cm 120 2&lt;br /&gt;SWITCH CIRCUIT BREAKER&lt;br /&gt;TV SWITCH ON&lt;br /&gt;TV SWITCH OFF&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-6247425542472310633?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/6247425542472310633/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=6247425542472310633' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6247425542472310633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/6247425542472310633'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/02/soundsnap.html' title='SoundSnap'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-482769670911555275</id><published>2009-01-20T00:01:00.003+09:00</published><updated>2011-01-13T10:22:27.985+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>View 간 이동 방법</title><content type='html'>View 사이의 이동 방법을 알아 내야함.&lt;br /&gt;&lt;div&gt;- UITableViewController 를 이용한 방법이 있긴 하나.. Custom view들에 대한 이동 방법이 필요함.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-482769670911555275?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/482769670911555275/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=482769670911555275' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/482769670911555275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/482769670911555275'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/01/view.html' title='View 간 이동 방법'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-3132703294156529358</id><published>2009-01-15T22:46:00.002+09:00</published><updated>2011-01-13T10:22:36.798+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>스탠포드 대학의 iPhone 온라인 강좌</title><content type='html'>&lt;div&gt;http://www.stanford.edu/class/cs193p/cgi-bin/index.php&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-3132703294156529358?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/3132703294156529358/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=3132703294156529358' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3132703294156529358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3132703294156529358'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/01/iphone.html' title='스탠포드 대학의 iPhone 온라인 강좌'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-96426668145410737</id><published>2009-01-10T13:39:00.001+09:00</published><updated>2011-01-13T10:22:47.654+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>OpenGL</title><content type='html'>&lt;a href="http://nehe.gamedev.net/"&gt;http://nehe.gamedev.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gisdeveloper.co.kr/category/Programming/OpenGL?page=6"&gt;http://www.gisdeveloper.co.kr/category/Programming/OpenGL?page=6&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-96426668145410737?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/96426668145410737/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=96426668145410737' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/96426668145410737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/96426668145410737'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/01/opengl.html' title='OpenGL'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-7783979614666050999</id><published>2009-01-07T23:25:00.001+09:00</published><updated>2011-01-13T10:23:08.890+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>How Do Binding Works?</title><content type='html'>http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.pdf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-7783979614666050999?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/7783979614666050999/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=7783979614666050999' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/7783979614666050999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/7783979614666050999'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2009/01/how-do-binding-works.html' title='How Do Binding Works?'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-700195329464959886</id><published>2008-12-29T23:40:00.004+09:00</published><updated>2011-01-13T10:23:19.331+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm'/><title type='text'>100 - The 3n+1 problem</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial;"&gt;아무리 4만명 가까운 사람들이 풀었다고 해도 이건 너무 하잖아. -_-;&amp;nbsp;업데이트한 날짜라도 좀 적어주던가. 마음대로 바꾸고 쳇. 일단 Accepted 는 받았으니, 다음 문제로~! (재도전하고 싶은데 12시가 넘어 버렸다.)&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;"The integers&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;i&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;j&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-family: arial;"&gt;&amp;nbsp;must appear in the output in the same order in which they appeared in the input and should be followed by the maximum cycle length (on the same line)."&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;결론은 입력 순서를 지켜서 출력하라는 거다. 예를 들어, 10 1 이라고 입력이 들어오면, 10 1 20 으로 출력해달라는 이야기. 문제 좀 읽읍시다!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica;"&gt;그나저나 XCode 로도 컴파일 할만 한데, 이쁜 맥뿌기, 부기부밥 맥뿌기밥~!&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-700195329464959886?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/700195329464959886/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=700195329464959886' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/700195329464959886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/700195329464959886'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2008/12/100-3n1-problem.html' title='100 - The 3n+1 problem'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-4304675993350488228</id><published>2008-04-25T15:09:00.000+09:00</published><updated>2011-01-13T10:19:32.799+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC'/><title type='text'>Remote Desktop Viewer</title><content type='html'>윈도우에서 XCode를 사용해보자.&lt;br /&gt;&lt;br /&gt;Vine Server(Free) - http://www.redstonesoftware.com/downloads&lt;br /&gt;Team Viewer(Contional Free) - http://www.teamviewer.com/download/index.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-4304675993350488228?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/4304675993350488228/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=4304675993350488228' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4304675993350488228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/4304675993350488228'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2008/04/remote-desktop-viewer.html' title='Remote Desktop Viewer'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-3452224326618313352</id><published>2008-04-25T11:03:00.001+09:00</published><updated>2011-01-13T10:19:32.789+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC'/><title type='text'>맥북 발열을 잡아보자.</title><content type='html'>SMC Fancontrol - http://homepage.mac.com/holtmann/eidac/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-3452224326618313352?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/3452224326618313352/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=3452224326618313352' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3452224326618313352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/3452224326618313352'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2008/04/blog-post.html' title='맥북 발열을 잡아보자.'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16408313.post-404919536504466821</id><published>2008-04-04T16:10:00.000+09:00</published><updated>2011-01-13T10:19:32.791+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC'/><title type='text'>MacBook, iMac, iPodTouch</title><content type='html'>사고 싶긴 한데, 가격 문제와 실용성 때문에 주저하고 있는 중. 예전보다는 확실히 싸지긴 했는데..&lt;br /&gt;&lt;br /&gt;iPhone 3G나 기다릴까.. 회사에선 쓰지도 못할텐데 끙..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16408313-404919536504466821?l=vrzin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vrzin.blogspot.com/feeds/404919536504466821/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16408313&amp;postID=404919536504466821' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/404919536504466821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16408313/posts/default/404919536504466821'/><link rel='alternate' type='text/html' href='http://vrzin.blogspot.com/2008/04/macbook-imac-ipodtouch.html' title='MacBook, iMac, iPodTouch'/><author><name>김영진</name><uri>http://www.blogger.com/profile/01059632619485881329</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
