<?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:blogger='http://schemas.google.com/blogger/2008' 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-998587683704175361</id><updated>2024-11-08T10:39:07.589-05:00</updated><category term="Android"/><category term="Python"/><category term="웹개발"/><category term="C2DM"/><category term="Eclipse"/><category term="Push"/><category term="Reading"/><category term="Django"/><category term="Flask"/><category term="Git"/><category term="Github"/><category term="Pydev"/><category term="SSH"/><category term="Server"/><category term="Writting"/><category term="etc"/><category term="node.js"/><category term="데이터베이스"/><title type='text'>Just stuffs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-2426229600218217679</id><published>2015-11-20T14:04:00.000-05:00</published><updated>2015-11-20T14:04:04.634-05:00</updated><title type='text'>Example for gradle build script for Android library module with native code and prebuilt .so</title><content type='html'>It&#39;s still an experimental feature but quite matured now.&lt;br /&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: #2b2b2b; color: #a9b7c6; font-family: &#39;Source Code Pro&#39;; font-size: 10.5pt;&quot;&gt;buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath &lt;span style=&quot;color: #6a8759;&quot;&gt;&#39;com.android.tools.build:gradle-experimental:0.4.0&#39;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;    &lt;/span&gt;}
}

apply &lt;span style=&quot;color: #d0d0ff;&quot;&gt;plugin&lt;/span&gt;: &lt;span style=&quot;color: #6a8759;&quot;&gt;&#39;com.android.model.library&#39;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;
&lt;/span&gt;model {
    &lt;span style=&quot;color: grey;&quot;&gt;android &lt;/span&gt;{
        compileSdkVersion = &lt;span style=&quot;color: #6897bb;&quot;&gt;23&lt;/span&gt;&lt;span style=&quot;color: #6897bb;&quot;&gt;        &lt;/span&gt;buildToolsVersion = &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;23.0.2&quot;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;defaultConfig&lt;/span&gt;.with {
            &lt;span style=&quot;color: grey;&quot;&gt;minSdkVersion&lt;/span&gt;.apiLevel = &lt;span style=&quot;color: #6897bb;&quot;&gt;19&lt;/span&gt;&lt;span style=&quot;color: #6897bb;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;targetSdkVersion&lt;/span&gt;.apiLevel = &lt;span style=&quot;color: #6897bb;&quot;&gt;23&lt;/span&gt;&lt;span style=&quot;color: #6897bb;&quot;&gt;        &lt;/span&gt;}
    }

    &lt;span style=&quot;color: grey;&quot;&gt;compileOptions&lt;/span&gt;.with {
        sourceCompatibility=JavaVersion.&lt;span style=&quot;background-color: #344134;&quot;&gt;VERSION_1_7&lt;/span&gt;
        targetCompatibility=JavaVersion.&lt;span style=&quot;background-color: #344134;&quot;&gt;VERSION_1_7&lt;/span&gt;
    }

    android.&lt;span style=&quot;color: grey;&quot;&gt;ndk &lt;/span&gt;{
        moduleName = &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;libName&quot;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;cppFlags&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;-DANDROID_NDK&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;cppFlags&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;-fexceptions&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;ldLibs&lt;/span&gt;.addAll([&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;android&quot;&lt;/span&gt;, &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;log&quot;&lt;/span&gt;, &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;GLESv2&quot;&lt;/span&gt;, &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;dl&quot;&lt;/span&gt;, &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;jnigraphics&quot;&lt;/span&gt;, &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;z&quot;&lt;/span&gt;])
        stl       = &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;stlport_static&quot;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;abiFilters&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;armeabi&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;abiFilters&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;armeabi-v7a&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;abiFilters&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;arm64-v8a&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;abiFilters&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;x86&quot;&lt;/span&gt;)
        &lt;span style=&quot;color: grey;&quot;&gt;abiFilters&lt;/span&gt;.add(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;x86_64&quot;&lt;/span&gt;)
    }

    android.&lt;span style=&quot;color: grey;&quot;&gt;sources &lt;/span&gt;{
        &lt;span style=&quot;color: #9876aa; font-style: italic;&quot;&gt;main &lt;/span&gt;{
            &lt;span style=&quot;color: grey;&quot;&gt;jni &lt;/span&gt;{
                dependencies {
                    &lt;span style=&quot;color: grey;&quot;&gt;library &lt;/span&gt;file(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;src/main/jniLibs/armeabi/prebuiltSharedlib.so&quot;&lt;/span&gt;) abi &lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;armeabi&quot;&lt;/span&gt;&lt;span style=&quot;color: #6a8759;&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;library &lt;/span&gt;file(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;src/main/jniLibs/armeabi-v7a/&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;prebuiltSharedlib&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;.so&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;) abi &lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;&quot;armeabi-v7a&quot;&lt;/span&gt;
&lt;span style=&quot;color: #6a8759;&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;library &lt;/span&gt;file(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;src/main/jniLibs/arm64-v8a/&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;prebuiltSharedlib&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;.so&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;) abi &lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;&quot;arm64-v8a&quot;&lt;/span&gt;
&lt;span style=&quot;color: #6a8759;&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;library &lt;/span&gt;file(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;src/main/jniLibs/x86_64/&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;prebuiltSharedlib&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;.so&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;) abi &lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;&quot;x86_64&quot;&lt;/span&gt;
&lt;span style=&quot;color: #6a8759;&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;library &lt;/span&gt;file(&lt;span style=&quot;color: #6a8759;&quot;&gt;&quot;src/main/jniLibs/x86/&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;prebuiltSharedlib&lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;.so&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;) abi &lt;/span&gt;&lt;span style=&quot;color: #6a8759; font-size: 10.5pt;&quot;&gt;&quot;x86&quot;&lt;/span&gt;
&lt;span style=&quot;color: #6a8759;&quot;&gt;                &lt;/span&gt;}
            }
        }
    }
}

dependencies {
    compile fileTree(&lt;span style=&quot;color: #d0d0ff;&quot;&gt;dir&lt;/span&gt;: &lt;span style=&quot;color: #6a8759;&quot;&gt;&#39;libs&#39;&lt;/span&gt;, &lt;span style=&quot;color: #d0d0ff;&quot;&gt;include&lt;/span&gt;: [&lt;span style=&quot;color: #6a8759;&quot;&gt;&#39;*.jar&#39;&lt;/span&gt;])
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/2426229600218217679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2015/11/example-for-gradle-build-script-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2426229600218217679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2426229600218217679'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2015/11/example-for-gradle-build-script-for.html' title='Example for gradle build script for Android library module with native code and prebuilt .so'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-5456473250380225869</id><published>2012-02-13T19:24:00.001-05:00</published><updated>2012-02-13T19:24:52.890-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="node.js"/><category scheme="http://www.blogger.com/atom/ns#" term="웹개발"/><title type='text'>Node.js debug on Eclipse</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
1. Google Chrome developer tool 설치&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Help-&amp;gt;Install new software-&amp;gt;&quot;http://chromedevtools.googlecode.com/svn/update/dev/&quot; 입력 후 아래와 같이 Google Chrome Developer tool 선택하여 설치&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5op11o3O8swCj1flgcLE_1RWG3xmuTv1UFH-HbI2GyLDh89cDhvJGbnhYYX6VixsUlfW1eQOEn2PVvJwq_pQGklu7pOsHkuu0T6FoPTCYcoMcwn0wr4GJzLmYo8IfWmlHkAuyXYfrtaVy/s1600/Install-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5op11o3O8swCj1flgcLE_1RWG3xmuTv1UFH-HbI2GyLDh89cDhvJGbnhYYX6VixsUlfW1eQOEn2PVvJwq_pQGklu7pOsHkuu0T6FoPTCYcoMcwn0wr4GJzLmYo8IfWmlHkAuyXYfrtaVy/s640/Install-1.jpg&quot; width=&quot;629&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
2. Eclipse를 실행해서 Debug perspective로 이동.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5OM8UIIGgZYkJyTLJ5sNnGCPKNOKS9Mz01QEjxKOInR-qLKR9n5t1TdyIl0AEXU-AVrevzpRgYTVNp2WwlXKcSQZNBZ8MQKyMMNm2jR0-1yQrV7RsQlBzGPxNiZgCWTzZrykdl6kXUdC8/s1600/Debug+-+Eclipse+SDK+-+_Users_leehack_Documents_workspace-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5OM8UIIGgZYkJyTLJ5sNnGCPKNOKS9Mz01QEjxKOInR-qLKR9n5t1TdyIl0AEXU-AVrevzpRgYTVNp2WwlXKcSQZNBZ8MQKyMMNm2jR0-1yQrV7RsQlBzGPxNiZgCWTzZrykdl6kXUdC8/s400/Debug+-+Eclipse+SDK+-+_Users_leehack_Documents_workspace-1.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
*벌래모양이 보이지 않는 경우: windows-&amp;gt;open perspective-&amp;gt;Other-&amp;gt;debug&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
3. Node.js를 debug모드로 실행: $node --debug index.js&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_0614oAFd2K7-5k_pa0ZRyldR1JQqzOp5_toAqXuSgZx7d2IevXaN74MA6a2WqxA4F-8EIhhBlwVrWouVg2fkyMlr5ERFVzu_pIF-gxIjuOooSYwwI2TsYlI1RLuC4-6tsOhBfKvivsRZ/s1600/nodejstest+%E2%80%94+leehack@leehack-MSI-Notebook-PR211_+~_Android_android4+%E2%80%94+node+%E2%80%94+80%C3%9724.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_0614oAFd2K7-5k_pa0ZRyldR1JQqzOp5_toAqXuSgZx7d2IevXaN74MA6a2WqxA4F-8EIhhBlwVrWouVg2fkyMlr5ERFVzu_pIF-gxIjuOooSYwwI2TsYlI1RLuC4-6tsOhBfKvivsRZ/s1600/nodejstest+%E2%80%94+leehack@leehack-MSI-Notebook-PR211_+~_Android_android4+%E2%80%94+node+%E2%80%94+80%C3%9724.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
4. Run-&amp;gt;Debug configuration에서 Standalone V8 VM에 커서 둔 후 new버튼 클릭&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_xkvjlKCSbCCUXe_47vTYXfqgw6AK8-VoOqbBWpcpsWq7LZtaAJisbGp8kg6_VriQoir1nvORwgayoqsqrBbPjRL9kmrA9cj5iryHhw_OH93LvylvEZjNH4ttxqEpvoSM9nuO7y6WJReI/s1600/Debug+Configurations-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;442&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_xkvjlKCSbCCUXe_47vTYXfqgw6AK8-VoOqbBWpcpsWq7LZtaAJisbGp8kg6_VriQoir1nvORwgayoqsqrBbPjRL9kmrA9cj5iryHhw_OH93LvylvEZjNH4ttxqEpvoSM9nuO7y6WJReI/s640/Debug+Configurations-3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
*Port를 5858로 지정 후 Debug버튼 클릭&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24aZ7B969hloXqyh03ROpD5PhbCdmX9ni-L-sMFW9RyGskwxllo9xG-nSUTGzxZFcmEalbu7Mo53NPi3LW5aJoWGI2BlHZzE5_J8tg9UEjd0YzCAaFa8GFDBjgX6o_l7Qe2e5n8JE1C-T/s1600/Debug+Configurations-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;437&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24aZ7B969hloXqyh03ROpD5PhbCdmX9ni-L-sMFW9RyGskwxllo9xG-nSUTGzxZFcmEalbu7Mo53NPi3LW5aJoWGI2BlHZzE5_J8tg9UEjd0YzCAaFa8GFDBjgX6o_l7Qe2e5n8JE1C-T/s640/Debug+Configurations-4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
5. 원하는 곳에 bp 찍고 debugging 시작!!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2KXmewTvTmjYFj25RMqxOta5G2D1-KLmfYxLd8TsTzsUDzTvDXlHNu0nbmnc27T2cg17JcvyLGJuxnaLW8xaNEATq9FJESeEghAAnXIJ4UxKCFXyNMELyBKlC2HTd6PAozBMsa_znzy51/s1600/Debug+-+Node-5858_requestHandlers.js.chromium+-+Eclipse+SDK+-+_Users_leehack_Documents_workspace.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;409&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2KXmewTvTmjYFj25RMqxOta5G2D1-KLmfYxLd8TsTzsUDzTvDXlHNu0nbmnc27T2cg17JcvyLGJuxnaLW8xaNEATq9FJESeEghAAnXIJ4UxKCFXyNMELyBKlC2HTd6PAozBMsa_znzy51/s640/Debug+-+Node-5858_requestHandlers.js.chromium+-+Eclipse+SDK+-+_Users_leehack_Documents_workspace.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/5456473250380225869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2012/02/nodejs-debug-on-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5456473250380225869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5456473250380225869'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2012/02/nodejs-debug-on-eclipse.html' title='Node.js debug on Eclipse'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5op11o3O8swCj1flgcLE_1RWG3xmuTv1UFH-HbI2GyLDh89cDhvJGbnhYYX6VixsUlfW1eQOEn2PVvJwq_pQGklu7pOsHkuu0T6FoPTCYcoMcwn0wr4GJzLmYo8IfWmlHkAuyXYfrtaVy/s72-c/Install-1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-377753903853737886</id><published>2011-12-13T05:10:00.000-05:00</published><updated>2011-12-13T09:05:58.255-05:00</updated><title type='text'>DrewGaren.com: Nexus S - ICY+ S version 1.0</title><content type='html'>기다리던 롬! 이제 플래싱 할시간!!&lt;br /&gt;
&lt;br /&gt;
여러가지 롬들 사용해봤지만 Nexus S용 ICS롬은 DrewGaren ROM이 제일 맘에 든다.&lt;br /&gt;
구글 지원들이 Official ICS ROM 사용중이라고 하니 공식 릴리즈 되기 전까지는 큰 문제 없으면 이 롬에 정착 할 듯. &amp;lt;-- 플래싱 해보니.. 너무 문제가 많다. 다시 Beta ROM으로 복원 -_-;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.drewgaren.com/2011/12/nexus-s-icy-s-version-10.html?spref=bl&quot;&gt;DrewGaren.com: Nexus S - ICY+ S version 1.0&lt;/a&gt;: Nexus S Rom - ICY+ S version 1.0  The first stable release of Android 4.0.1 Ice Cream Sandwich from DrewGaren. Minus, fully enabled camera e...</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/377753903853737886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/drewgarencom-nexus-s-icy-s-version-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/377753903853737886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/377753903853737886'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/drewgarencom-nexus-s-icy-s-version-10.html' title='DrewGaren.com: Nexus S - ICY+ S version 1.0'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-7117479997408014340</id><published>2011-12-09T04:56:00.001-05:00</published><updated>2015-11-20T10:25:55.559-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="C2DM"/><category scheme="http://www.blogger.com/atom/ns#" term="Push"/><title type='text'>Android C2DM client 예제</title><content type='html'>&lt;br /&gt;
준비물 :&amp;nbsp;c2dm account(&lt;a href=&quot;http://blog.leehack.com/2011/12/test.html&quot;&gt;파이썬으로 c2dm서버 만들기&lt;/a&gt;&amp;nbsp;포스팅 참조)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
만들 예제의 패키지 구조&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKkDUr9RSZzqHQlHJ5V6LUugPyM9AjiKWoerySgz7Iflg9FR2H_suJ8Cyl9hq65RNzl9fcg-bReSTfpMwOr8uGzpm7RmVnKRNuTKm7zHAcuKv0GWRSkzpFUsuknK65MdeiEArXdiWVh9r/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+7.10.00.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKkDUr9RSZzqHQlHJ5V6LUugPyM9AjiKWoerySgz7Iflg9FR2H_suJ8Cyl9hq65RNzl9fcg-bReSTfpMwOr8uGzpm7RmVnKRNuTKm7zHAcuKv0GWRSkzpFUsuknK65MdeiEArXdiWVh9r/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+7.10.00.png&quot; width=&quot;246&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
우선 Manifest file의 Code&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-xml&quot;&gt;&lt;manifest android:versioncode=&quot;1&quot; android:versionname=&quot;1.0&quot; package=&quot;com.leehack.c2dmtest&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;

    &lt;uses-sdk android:minsdkversion=&quot;14&quot;&gt;

    &lt;application android:icon=&quot;@drawable/ic_launcher&quot; android:label=&quot;@string/app_name&quot;&gt;
        &lt;activity android:label=&quot;@string/app_name&quot; android:name=&quot;.C2DM_TESTActivity&quot;&gt;
            &lt;intent-filter&gt;
                &lt;action android:name=&quot;android.intent.action.MAIN&quot;&gt;

                &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot;&gt;
            &lt;/category&gt;&lt;/action&gt;&lt;/intent-filter&gt;
        &lt;/activity&gt;
        
        &lt;!-- Only C2DM servers can send messages for the app. If permission is 
   not set - any other app can generate it --&gt;
  &lt;receiver android:name=&quot;.push.C2DMReceiver&quot; android:permission=&quot;com.google.android.c2dm.permission.SEND&quot;&gt;
   &lt;!-- Receive the actual message --&gt;
   &lt;intent-filter&gt;
    &lt;action android:name=&quot;com.google.android.c2dm.intent.RECEIVE&quot;&gt;
    &lt;category android:name=&quot;com.leehack.c2dmtest&quot;&gt;
   &lt;/category&gt;&lt;/action&gt;&lt;/intent-filter&gt;
   &lt;!-- Receive the registration id --&gt;
   &lt;intent-filter&gt;
    &lt;action android:name=&quot;com.google.android.c2dm.intent.REGISTRATION&quot;&gt;
    &lt;category android:name=&quot;com.leehack.c2dmtest&quot;&gt;
   &lt;/category&gt;&lt;/action&gt;&lt;/intent-filter&gt;
  &lt;/receiver&gt;
  
    &lt;/application&gt;
 &lt;!-- Only this application can receive the messages and registration result --&gt;
 &lt;permission android:name=&quot;com.leehack.c2dmtest.permission.C2D_MESSAGE&quot; android:protectionlevel=&quot;signature&quot;&gt;
 &lt;uses-permission android:name=&quot;com.leehack.c2dmtest.permission.C2D_MESSAGE&quot;&gt;

 &lt;!-- This app has permission to register and receive message --&gt;
 &lt;uses-permission android:name=&quot;com.google.android.c2dm.permission.RECEIVE&quot;&gt;
&lt;/uses-permission&gt;&lt;/uses-permission&gt;&lt;/permission&gt;&lt;/uses-sdk&gt;&lt;/manifest&gt;

&lt;/pre&gt;
&lt;br /&gt;
중요한 부분:&lt;br /&gt;
15~ 28 line &amp;lt;-com.leehack.c2dmtest.push.C2DMReceiver 등록&lt;br /&gt;
31~36 line &amp;lt;- C2DM을 사용할 수 있도록 어플에 permission부여&lt;br /&gt;
&lt;br /&gt;
C2DMReceiver.java: 리시버 작성&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-java&quot;&gt;package com.leehack.c2dmtest.push;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Gravity;
import android.widget.Toast;

public class C2DMReceiver extends BroadcastReceiver {
 static String registration_id = null;
 private Context mContext;
 @Override
 public void onReceive(Context context, Intent intent) {
  if (intent.getAction().equals(
    &quot;com.google.android.c2dm.intent.REGISTRATION&quot;)) {
   handleRegistration(context, intent);
  } else if (intent.getAction().equals(
    &quot;com.google.android.c2dm.intent.RECEIVE&quot;)) {
   handleMessage(context, intent);
  }
 }
 //서버에 등록이 되면 Registration_id를 C2DM서버에서 보내준다. 받은 이 ID를 별도로 구성한 서버에 보내야 한다.
 private void handleRegistration(Context context, Intent intent) {
  String registration = intent.getStringExtra(&quot;registration_id&quot;);
  if (intent.getStringExtra(&quot;error&quot;) != null) {
   // Registration failed, should try again later.
  } else if (intent.getStringExtra(&quot;unregistered&quot;) != null) {
   registration = null;
  } else if (registration != null) {
   registration_id = registration;
   mContext = context;
   SharedPreferences sp  = mContext.getSharedPreferences(&quot;com.leehack.c2dmtest&quot;, Activity.MODE_PRIVATE);
   SharedPreferences.Editor ed = sp.edit();
   ed.putString(&quot;registration_id&quot;, registration_id);
   ed.commit();
   Toast toast = Toast.makeText(context, &quot;Registration Id\n&quot; + registration_id,
     Toast.LENGTH_LONG);
   toast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 150);
   toast.show();
   Log.d(&quot;C2DMReceiver&quot;, &quot;c2dm registered&quot;);
  }
 }
 //메세지가 도착하면 토스트로 도착한 메세지를 보여줌
 private void handleMessage(Context context, Intent intent) {

  String c2dm_msg = intent.getExtras().getString(&quot;msg&quot;);

  System.out.println(&quot;c2dm_msg======&amp;gt;&quot; + c2dm_msg);
  Toast toast = Toast.makeText(context, &quot;c2dmMessage\n&quot; + c2dm_msg,
    Toast.LENGTH_LONG);
  toast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 150);
  toast.show();

 }
}
&lt;/pre&gt;
&lt;br /&gt;
PushHelper.java: c2dm 서버에 Register/Unregister 메소드 작성&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-java&quot;&gt;package com.leehack.c2dmtest.push;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;

public class PushHelper {

 final static String c2dmDevId = &quot;c2dm에 등록한 account&quot;;
 
 public static void c2dmRegister(Context context){
  SharedPreferences sp  = context.getSharedPreferences(&quot;com.leehack.c2dmtest&quot;, Activity.MODE_PRIVATE);
  if(sp.getString(&quot;registration_id&quot;, null) != null)
   return;
  Intent registrationIntent = new Intent(
    &quot;com.google.android.c2dm.intent.REGISTER&quot;);
  registrationIntent.putExtra(&quot;app&quot;,
    PendingIntent.getBroadcast(context, 0, new Intent(), 0));
  registrationIntent.putExtra(&quot;sender&quot;, c2dmDevId);
  context.startService(registrationIntent);
 }
 public static void c2dmUnregister(Context context){
  Intent unregIntent = new Intent(&quot;com.google.android.c2dm.intent.UNREGISTER&quot;);
  unregIntent.putExtra(&quot;app&quot;, PendingIntent.getBroadcast(context, 0, new Intent(), 0));
  context.startService(unregIntent);
 }
}

&lt;/pre&gt;
&lt;br /&gt;
C2DM_TESTActivity.java: Register와 Unregister버튼의 동작을 정의&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-java&quot;&gt;package com.leehack.c2dmtest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

import com.leehack.c2dmtest.push.PushHelper;

public class C2DM_TESTActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    PushHelper.c2dmRegister(C2DM_TESTActivity.this);
   }
  });
        findViewById(R.id.button2).setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    PushHelper.c2dmUnregister(C2DM_TESTActivity.this);
   }
  });
    }
}
&lt;/pre&gt;
&lt;br /&gt;
앞으로 해야 할일!&lt;br /&gt;
1. 구글의 C2DM과 통신한 Push Server 구성&lt;br /&gt;
2. Register를 한 후 C2DMReceiver를 통해 C2DM 서버로 부터 전달받은 Registration_ID를 구성한 Push Server로 전달하는 로직 구성&lt;br /&gt;
(&lt;a href=&quot;http://blog.leehack.com/2011/12/test.html&quot;&gt;파이썬으로 c2dm서버 만들기&lt;/a&gt;&amp;nbsp;포스팅을 참조하면 1번은 해결될 것이고 2번만 추가로 구성하면 된다)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/7117479997408014340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/android-c2dm-client.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/7117479997408014340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/7117479997408014340'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/android-c2dm-client.html' title='Android C2DM client 예제'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVKkDUr9RSZzqHQlHJ5V6LUugPyM9AjiKWoerySgz7Iflg9FR2H_suJ8Cyl9hq65RNzl9fcg-bReSTfpMwOr8uGzpm7RmVnKRNuTKm7zHAcuKv0GWRSkzpFUsuknK65MdeiEArXdiWVh9r/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+7.10.00.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-2371064042411881839</id><published>2011-12-09T04:25:00.000-05:00</published><updated>2011-12-09T04:56:20.353-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="C2DM"/><category scheme="http://www.blogger.com/atom/ns#" term="Push"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Server"/><title type='text'>Python으로 c2dm server 만들기</title><content type='html'>1.&amp;nbsp;&lt;a href=&quot;http://code.google.com/intl/ko-KR/android/c2dm/&quot;&gt;http://code.google.com/intl/ko-KR/android/c2dm/&lt;/a&gt; 에서 c2dm 서비스에 sign-up&lt;br /&gt;
(gmail account를 새로 만들어서 가입하는 것이 좋다. - 실제로 이 account정보를 클라이언트 및 서버에 모두 넣어야 하고 더구나 서버에는 패스워드정보도 필요하기 때문)&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhClNGHNJm8NQzaiIQBhqCTNmNOtRUcBpscF-6EOK-XkYE83TOBMLr1vO-Th2mr98Pb5dKn6FDNsQiNIy_y8G-bcWzLMbv9chyHdWdRLskJ3Mv9vDXt3w4GO28EHKW1dDA9XGGxSBFZt4CO/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.33.53.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhClNGHNJm8NQzaiIQBhqCTNmNOtRUcBpscF-6EOK-XkYE83TOBMLr1vO-Th2mr98Pb5dKn6FDNsQiNIy_y8G-bcWzLMbv9chyHdWdRLskJ3Mv9vDXt3w4GO28EHKW1dDA9XGGxSBFZt4CO/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.33.53.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2. 가입하면 E-mail로 가입한 Account로 서비스가 Enable되었다는 내용의 메일이 옮(보통 하루안에 오고 늦어도 몇일 사이에는 오는 듯)&lt;br /&gt;
&lt;br /&gt;
여기까지 준비 완료! 아래는 실제 파이썬 코드 시작!!&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:python&quot;&gt;import urllib, urllib2

class ClientLoginTokenFactory(): 
    _token = None 
    
    def __init__(self):
        self.url = &#39;https://www.google.com/accounts/ClientLogin&#39;
        self.accountType = &#39;GOOGLE&#39;
        self.email = &#39;c2dm에 가입한 메일주소&#39;
        self.password = &#39;c2dm에 가입한 메일주소의 패스워드&#39;
        self.source = &#39;replstory-replstory-0&#39;
        self.service = &#39;ac2dm&#39;
    
    def getToken(self):    
        if self._token is None:
            
            # Build payload
            values = {&#39;accountType&#39; : self.accountType,
                      &#39;Email&#39; : self.email,
                      &#39;Passwd&#39; : self.password, 
                      &#39;source&#39; : self.source, 
                      &#39;service&#39; : self.service}
            
            # Build request
            data = urllib.urlencode(values)
            request = urllib2.Request(self.url, data)
            
            # Post
            response = urllib2.urlopen(request)
            responseAsString = response.read()
            
            # Format response
            responseAsList = responseAsString.split(&#39;\n&#39;)
            
            self._token = responseAsList[2].split(&#39;=&#39;)[1]
            
        return self._token
    
class C2DM():
    
    def __init__(self):
        self.url = &#39;https://android.apis.google.com/c2dm/send&#39;
        self.clientAuth = None
        self.registrationId = None
        self.collapseKey = None
        self.data = {}
        
    def sendMessage(self):
        if self.registrationId == None or self.collapseKey == None:
            return False
        
        clientAuthFactory = ClientLoginTokenFactory()
        self.clientAuth = clientAuthFactory.getToken()
        
        # Build payload
        values = {&#39;registration_id&#39; : self.registrationId,
                  &#39;collapse_key&#39; : self.collapseKey}     
        
        # Loop over any data we want to send
        for k, v in self.data.iteritems():            
            values[&#39;data.&#39; + k] = v
        
        # Build request
        headers = {&#39;Authorization&#39;: &#39;GoogleLogin auth=&#39; + self.clientAuth}        
        data = urllib.urlencode(values)
        request = urllib2.Request(self.url, data, headers)
        
        # Post
        try:
            response = urllib2.urlopen(request)
            responseAsString = response.read()
            
            return responseAsString
        except urllib2.HTTPError, e:
            print &#39;HTTPError &#39; + str(e)
            
            
sender = C2DM()
sender.registrationId = &#39;Android단말기에서 c2dm서버로 부터 받은 고유번호&#39;
sender.collapseKey = 1
sender.data = {&#39;msg&#39;:&#39;test&#39;}
response = sender.sendMessage()
print response

&lt;/pre&gt;
9,10,79 라인의 정보만 바꾸고 실행하면 c2dm등록된 단말기로 test라는 푸시 메세지가 날아간다.&lt;br /&gt;
&lt;a href=&quot;http://blog.boxedice.com/2010/10/07/android-push-notifications-tutorial/&quot;&gt;http://blog.boxedice.com/2010/10/07/android-push-notifications-tutorial/&lt;/a&gt;&amp;nbsp;에 있는 예제코드인데 제대로 돌지 않아서 약간의 수정만 했음.&lt;br /&gt;
&lt;br /&gt;
이미 눈치 채셨겠지만 실제 사용시에는 78라인부터만 따로 가져가서 원하는 곳에 사용하면 된다. collapseKey를 1로 고정해두고 사용하면 c2dm메세지가 동일한 단말에 동일한 메세지를 계속 적으로 보낼 경우 중간중간 빼먹는 경우가 생긴다. 구글에서 중복된 메세지 전송을 방지하게 넣어둔 코드임. 중복으로 보내는 메세지라도 단말에 꼭 전송이 되어야 하는 메세지라면 collapseKey를 increase하면서 보내는 것이 상책!</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/2371064042411881839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/test.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2371064042411881839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2371064042411881839'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/test.html' title='Python으로 c2dm server 만들기'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhClNGHNJm8NQzaiIQBhqCTNmNOtRUcBpscF-6EOK-XkYE83TOBMLr1vO-Th2mr98Pb5dKn6FDNsQiNIy_y8G-bcWzLMbv9chyHdWdRLskJ3Mv9vDXt3w4GO28EHKW1dDA9XGGxSBFZt4CO/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-09+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+6.33.53.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-2088232755041535273</id><published>2011-12-08T00:11:00.001-05:00</published><updated>2011-12-08T00:20:19.859-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="Pydev"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Pydev에서 Library 인식 안될 때</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
여러가지 파이썬용 웹프레임웍을 이클립스의 Pydev에서 돌려보는 중 아주 눈에 거슬리는 것을 발견!!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcF-gjXmUAKS4XFo37YyGiUM9OnZT-Qzhdgtl0xvRyIZdt0Oatd59opx5VBsgBA9Va-jy3wsD3AHwsZOjih0gopoUyov92yZW1FolAldbnTG47RqPYL889-SopwDMKK3bo6x7QXGOMrp4y/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.11.16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;116&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcF-gjXmUAKS4XFo37YyGiUM9OnZT-Qzhdgtl0xvRyIZdt0Oatd59opx5VBsgBA9Va-jy3wsD3AHwsZOjih0gopoUyov92yZW1FolAldbnTG47RqPYL889-SopwDMKK3bo6x7QXGOMrp4y/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.11.16.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
빌드도 잘되고 Run도 잘되는데 저 빨간줄! 엑스표! 에디터상에 나타나는거 아주 짜증스럽다!&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
오늘은 맘먹고 고치겠다고 선언! 아무리 웹을 뒤져도 나오지 않는다! 왜일까... 결국엔 삽질 끝에 아주 간단히 해결.. eclipse-&amp;gt;preference-&amp;gt;interpreter -Python&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hQ8He5wKC3Nn67AdPgzYTRbh8gFkpic5Pvd3ELQFEiWsC15y8C2I6BUfF7hWZBvOomQ9Z5ojRL9STb3LpiEViRgnTw3KZQ7vf4xfFZrylxU3947Hz2ZixGeUQqRrTJMuoYH3_BWVD0mM/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.14.11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;404&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hQ8He5wKC3Nn67AdPgzYTRbh8gFkpic5Pvd3ELQFEiWsC15y8C2I6BUfF7hWZBvOomQ9Z5ojRL9STb3LpiEViRgnTw3KZQ7vf4xfFZrylxU3947Hz2ZixGeUQqRrTJMuoYH3_BWVD0mM/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.14.11.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
위 화면에서 Auto Config click하면 이런화면이 나온다.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-LyL53A12rtVoQuFshfh8FToB-Le2ijeNxneguUSMG4ciiAEhZj-s3G_F91zYEHkBbcihRCToYBxmn3Vn4GZNmmeDzgWSlJvRzIFJM-BwIRzv1WPnuVNpHI777piwUonTAXBgJx-L1GQA/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.15.32.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;608&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-LyL53A12rtVoQuFshfh8FToB-Le2ijeNxneguUSMG4ciiAEhZj-s3G_F91zYEHkBbcihRCToYBxmn3Vn4GZNmmeDzgWSlJvRzIFJM-BwIRzv1WPnuVNpHI777piwUonTAXBgJx-L1GQA/s640/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.15.32.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
보통은 위에 선택되어 있는 것처럼 해놓고 사용했었는데.. (easy_install하면 젤 아래 /Library/Python/2.7/site-packages 에 들어가기 때문에..)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
알고보니 library로 인식이 안되고 있는 것이였다 -_-;;(이런 멍청한! 모르면 죽어야지!)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
Select All한 후 코드를 다시 열어보니.. 깔끔하게 보인다.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ98SOMahyUZjyiBnlWJBnYYF3ar3uI-9oxNwZGCSKyiaUb6C8wdOx3jUbWlElNW0kbBsaU4hoksVITwaUjy_ZyE-BVJ9UBm_UhwtQCKOISu3nSeUuS0Vsfv5Zq-RxFLBvyIHQEotr-JkQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.18.21.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ98SOMahyUZjyiBnlWJBnYYF3ar3uI-9oxNwZGCSKyiaUb6C8wdOx3jUbWlElNW0kbBsaU4hoksVITwaUjy_ZyE-BVJ9UBm_UhwtQCKOISu3nSeUuS0Vsfv5Zq-RxFLBvyIHQEotr-JkQ/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.18.21.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
짠!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
끝!!!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/2088232755041535273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/pydev-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2088232755041535273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2088232755041535273'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/pydev-library.html' title='Pydev에서 Library 인식 안될 때'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcF-gjXmUAKS4XFo37YyGiUM9OnZT-Qzhdgtl0xvRyIZdt0Oatd59opx5VBsgBA9Va-jy3wsD3AHwsZOjih0gopoUyov92yZW1FolAldbnTG47RqPYL889-SopwDMKK3bo6x7QXGOMrp4y/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.11.16.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-5756518656453935743</id><published>2011-12-07T22:18:00.001-05:00</published><updated>2011-12-08T00:09:15.200-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Flask"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="웹개발"/><title type='text'>Python:: flask, webpy, Django, Bottle, web2py ...</title><content type='html'>Python으로 Web 개발 공부를 해보는 중.. 아무런 정보도 맨토도 없이 무작정 Django책부터 하나 붙잡고 시작. 100% 끝낸건 아니지만 일단 기본적인 정보는 모두 캐냈다고 판단 후 책을 덮음.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://media.djangoproject.com/img/logos/django-logo-negative.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;145&quot; src=&quot;http://media.djangoproject.com/img/logos/django-logo-negative.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
이제부터 현실적인 문제에 봉착. Django가 짱!인줄 알았는데.. 파이썬에는 수많은 좋은 웹프레임웍들이 존재한다는 것!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://bottlepy.org/docs/dev/&quot;&gt;Bottle&lt;/a&gt;로 짠 Simple한 &lt;a href=&quot;http://fi.am/entry/building-a-website-api-with-django-part-1-api-func/&quot;&gt;REST API예제&lt;/a&gt;를 보고 1차 감탄!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://web2py.com/&quot;&gt;Web2Py&lt;/a&gt; 깔고서 관리자 페이지에서 IDE까지 제공해주는 Detail에 2차 감탄!&lt;br /&gt;
&lt;br /&gt;
마지막으로 &lt;a href=&quot;http://webpy.org/&quot;&gt;webpy&lt;/a&gt;까지 보고 나니 점점 헷갈린다!&lt;br /&gt;
&lt;br /&gt;
Django가 잘 만들어진 녀석이긴 하지만 일단 다른 프래임웍들을 알아보다 보니 Python위에서 만들어진 기술이란 느낌 보다는 그냥 Django다! 라는 생각이 들었다.&lt;br /&gt;
&lt;br /&gt;
Web2Py는 정말 제공해주는 것도 많고 편리하지만.. 어쩌면 개발자보다는 관리자 프랜들리한 느낌이 들어 좀 끄적여 보다가 패스!&lt;br /&gt;
&lt;br /&gt;
webpy는 뭔가 내가 원하는 대로 자유롭게 사용할 수 있으면서도 심플하고 편리함을 모두 가지고 있어 맘에 들었고 이제 이것으로 결정! 하는 순간 &lt;a href=&quot;http://flask.pocoo.org/&quot;&gt;Flask&lt;/a&gt;&amp;nbsp;라는 녀석이 눈에 들어왔다.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6qz2sv_TrmRjq4UbAKeodMMTKqPa64QJFjH6ShxTBRxa0_hcnUqGaBP06COXEnx5B0ETsrMO1PyoNd8TglUGHNR5Pzta9T4lVCXj_EPexDeh_K-Yj7lNIq9u9QppZV_isU7jhAK0ReeWt/s1600/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.08.42.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;129&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6qz2sv_TrmRjq4UbAKeodMMTKqPa64QJFjH6ShxTBRxa0_hcnUqGaBP06COXEnx5B0ETsrMO1PyoNd8TglUGHNR5Pzta9T4lVCXj_EPexDeh_K-Yj7lNIq9u9QppZV_isU7jhAK0ReeWt/s320/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.08.42.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
아직 자세히는 보지 못했지만..&lt;br /&gt;
Bottle스러운 심플함과 Django스러운 template engine(동일한 엔진을 plugin으로 붙여쓰는 듯..)을 가지고 있을 뿐만 아니라 webpy스러운 자유로움을 모두 가지고 있는 것 같다.&lt;br /&gt;
&lt;br /&gt;
Flask라는 녀석이 마지막 방황이 되길 바라며..</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/5756518656453935743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/python-flask-webpy-django-bottle-web2py.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5756518656453935743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5756518656453935743'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/python-flask-webpy-django-bottle-web2py.html' title='Python:: flask, webpy, Django, Bottle, web2py ...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6qz2sv_TrmRjq4UbAKeodMMTKqPa64QJFjH6ShxTBRxa0_hcnUqGaBP06COXEnx5B0ETsrMO1PyoNd8TglUGHNR5Pzta9T4lVCXj_EPexDeh_K-Yj7lNIq9u9QppZV_isU7jhAK0ReeWt/s72-c/%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA+2011-12-08+%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE+2.08.42.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-526627406023086963</id><published>2011-12-05T03:49:00.000-05:00</published><updated>2011-12-05T04:04:04.749-05:00</updated><title type='text'>유동 IP 사용하는 개인서버에 유료 도메인 세팅</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
결론부터 이야기 하자면 DNSEVER.COM 이라는 아주 고마운 서비스를 이용하면 DYNDNS.com 같은 Dynamic DNS 서비스를 개인 도메인에 붙여서 사용이 가능하다는 이야기!&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
*간단 요약&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
1. DNSEVER.COM 가입&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
2. DNSEVER에 도메인 추가.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
3. 좌측 하단의 name server를 각 domain업체 홈페이지에서 변경&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
(공식설명: &lt;a href=&quot;http://kr.dnsever.com/help/wiki/wiki.php/NameServerChange&quot;&gt;http://kr.dnsever.com/help/wiki/wiki.php/NameServerChange&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
4. 다이나믹DNS 등록&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
5. Auto Refresh 설정&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
아래 링크에 가면 아주 친절하세 설명해주신 포스팅이 있다.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://blog.naver.com/PostView.nhn?blogId=h_ranissa&amp;amp;logNo=100142960483&quot;&gt;[팁]개인pc에 유료도메인 셋팅하기(포워딩) :: 네이버 블로그&lt;/a&gt;:&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
위 포스팅은 Windows base로 Refresh설명을 해주셨지만 아래 공식사이트에 가면 Linux용 설정방법도 있음.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://kr.dnsever.com/start.html?user_domain=leehack.com&amp;amp;selected_menu=aboutddns&amp;amp;skey=leehack:8045eb284afb29fd65e10eeba0d4a77f&quot;&gt;DNSEVER사용법&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
*주의: Name server를 변경했기 때문에 향후 도메인 관리는 모두 DNSEVER에서 해야함. 유료화 계획이 없는 무료서비스임에도 불구하고 꽤 오래된 서비스이며 안정성도 어느정도 보장이 되어있으나 역시나 무료서비스에 Name Server를 맡기는 만큼 신중을 기해야 하는 것도 사실.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/526627406023086963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/ip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/526627406023086963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/526627406023086963'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/ip.html' title='유동 IP 사용하는 개인서버에 유료 도메인 세팅'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-3630147047741855649</id><published>2011-12-05T02:10:00.001-05:00</published><updated>2011-12-05T04:04:48.463-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Git"/><category scheme="http://www.blogger.com/atom/ns#" term="Github"/><category scheme="http://www.blogger.com/atom/ns#" term="SSH"/><title type='text'>MAC에서 SSH Key 생성</title><content type='html'>&lt;br /&gt;
1. SSH key가 있는지 확인&lt;br /&gt;
$cd ~/.ssh&lt;br /&gt;
&lt;br /&gt;
2. 기존키 백업&lt;br /&gt;
$mkdir key_backup&lt;br /&gt;
$cp id_rsa* keybackup&lt;br /&gt;
$rm id_rsa*&lt;br /&gt;
&lt;br /&gt;
3. ssh key 생성하기&lt;br /&gt;
$ssh-keygen -t rsa -C &quot;이메일 주소&quot;&lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key&lt;br /&gt;
(/Users/사용자폴더/.ssh/id_rsa):엔터!&lt;br /&gt;
Enter passphrase (empty for no passphrase:패스워드!&lt;br /&gt;
Enter same passphrase again: 한번더!&lt;br /&gt;
&lt;br /&gt;
*GitHub 사용법에서 퍼옴&lt;br /&gt;
&lt;a href=&quot;http://help.github.com/mac-set-up-git/&quot;&gt;http://help.github.com/mac-set-up-git/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/3630147047741855649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/mac-ssh-key.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/3630147047741855649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/3630147047741855649'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/mac-ssh-key.html' title='MAC에서 SSH Key 생성'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-39909385762036781</id><published>2011-12-04T22:09:00.000-05:00</published><updated>2011-12-04T22:11:54.412-05:00</updated><title type='text'>DrewGaren.com: Nexus S Beta 3 Coming Soon!</title><content type='html'>요즘 한참 쓰고 있는 DrewGaren의 Nexus S용 ICS ROM. Beta2사용중인데 Beta3가 나온다고 한다. 공식REL도 되기전에 이미 충분히 안정적이고 쓸만한 ROM을 생산해내고 있는 해커들.. 경이롭기까지 하다.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.drewgaren.com/2011/12/nexus-s-beta-3-coming-soon.html?spref=bl&quot;&gt;DrewGaren.com: Nexus S Beta 3 Coming Soon!&lt;/a&gt;: Beta 3 Ice Cream Sandwich for Nexus S Is Coming Soon, How About A Preview...  You guys have been asking for some fixes and I&#39;m going to get ...</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/39909385762036781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/drewgarencom-nexus-s-beta-3-coming-soon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/39909385762036781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/39909385762036781'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/drewgarencom-nexus-s-beta-3-coming-soon.html' title='DrewGaren.com: Nexus S Beta 3 Coming Soon!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-2244942805149776388</id><published>2011-12-04T02:44:00.001-05:00</published><updated>2011-12-04T03:08:25.440-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="데이터베이스"/><category scheme="http://www.blogger.com/atom/ns#" term="웹개발"/><title type='text'>PostgreSQL 9.1.1 + phpPgAdmin 설치</title><content type='html'>&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Ubuntu 11.10에서&amp;nbsp;PostgreSQL 9.1.1 + phpPgAdmin 설치하기&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. apt-get을 이용하여 Install하면 9.1.1이 자동으로 설치된다.&lt;/b&gt;&lt;br /&gt;
$sudo apt-get install postgresql&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. apt-get을 이용하여 phpPgAdmin 설치&lt;/b&gt;&lt;br /&gt;
$sudo apt-get install phpPgAdmin&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. 기본적으로 postgreSQL은 인증방식이 peer로 잡혀있다. password base로 접속하기 위해서는 trust로 변경을 해야한다.&lt;/b&gt;&lt;br /&gt;
$sudo vim /etc/postgresql/9.1/main/pg_hba.conf&lt;br /&gt;
&lt;br /&gt;
가장 아랫쪽에 인증방식 설정하는 곳을 찾아 아래처럼 변경한다.&lt;br /&gt;
local &amp;nbsp; &amp;nbsp;all &amp;nbsp; &amp;nbsp;all &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;trust&lt;br /&gt;
host &amp;nbsp; &amp;nbsp;all &amp;nbsp; &amp;nbsp;all &amp;nbsp; &amp;nbsp;0.0.0.0/0 &amp;nbsp; &amp;nbsp;trust&lt;br /&gt;
&lt;br /&gt;
*참고로 host의 address를 0.0.0.0/0 으로 설정한 것은 원격지에서 접속이 가능하도록 하기위해서다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. 원격지에서 접속 가능하도록 설정&lt;/b&gt;&lt;br /&gt;
$sudo vim /etc/postgresql/9.1/main/postgresql.conf&lt;br /&gt;
&lt;br /&gt;
listen_addresses을 찾아 주석을 제거하고&lt;br /&gt;
listen_addresses = &#39;*&#39; 로 수정한다.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. PostgreSQL 재시작&lt;/b&gt;&lt;br /&gt;
$sudo /etc/init.d/postgresql restart&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6. User 추가하기&lt;/b&gt;&lt;br /&gt;
$sudo -u postgres createuser -P &#39;account name&#39;&lt;br /&gt;
&lt;br /&gt;
* -P 옵션은 계정을 추가하면서 password를 지정할 것이라는 옵션.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. phpPgAdmin 원격접속 허용&lt;/b&gt;&lt;br /&gt;
$sudo vim /etc/phppgadmin/apache.conf&lt;br /&gt;
&lt;br /&gt;
아래 두라인을 주석처리&lt;br /&gt;
deny from all&lt;br /&gt;
allow from 127.0.0.0/255.0.0.0 ::1/28&lt;br /&gt;
&lt;br /&gt;
allow from all 추가&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;8. Apache 재시작&lt;/b&gt;&lt;br /&gt;
$sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
여기까지 하면 세팅 완료. 6번에서 User추가시 super user를 추가했다면 앞으로는 http://localhost/phppgadmin 에서 user및 db 추가가 가능함.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/2244942805149776388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2011/12/postgresql-911-phppgadmin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2244942805149776388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/2244942805149776388'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2011/12/postgresql-911-phppgadmin.html' title='PostgreSQL 9.1.1 + phpPgAdmin 설치'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-5814638126233090121</id><published>2010-08-05T02:25:00.000-04:00</published><updated>2010-08-05T02:25:41.385-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android dips pixel 계산법</title><content type='html'>* 스크린 사이즈&lt;br /&gt;
&lt;br /&gt;
QVGA(240x320), 120dpi : HTC Tatoo&lt;br /&gt;
HVGA(320x480), 160dpi : 안드로원, HTC G1&lt;br /&gt;
WVGA(480x800), 240dpi : 넥서스원, 갤럭시A&lt;br /&gt;
FWVGA(480x854), 240dpi : 모토로이&lt;br /&gt;
&lt;br /&gt;
* 공식 :&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #007000; font-family: monospace;&quot;&gt;pixels = dips * (density / 160)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #007000; font-family: monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #007000; font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: Gulim;&quot;&gt;* 참고 :&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://developer.android.com/guide/practices/screens_support.html&quot;&gt;http://developer.android.com/guide/practices/screens_support.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/5814638126233090121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/08/android-dips-pixel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5814638126233090121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5814638126233090121'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/08/android-dips-pixel.html' title='Android dips pixel 계산법'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-1653821808466981992</id><published>2010-08-03T22:50:00.001-04:00</published><updated>2010-08-03T22:50:55.299-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reading"/><title type='text'>2010-08-04 도서구매 내역</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 12px; line-height: 18px; width: 570px;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td height=&quot;22&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;strong&gt;&lt;img src=&quot;http://image.aladin.co.kr/img/mail/cs_center/mail_reco.gif&quot; /&gt;주문 내역&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td bgcolor=&quot;BDBDBD&quot; height=&quot;5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;img height=&quot;1&quot; src=&quot;http://mbox18.korea.com/mail/img/space.gif&quot; width=&quot;1&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; height=&quot;2&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;img height=&quot;1&quot; src=&quot;http://mbox18.korea.com/mail/img/space.gif&quot; width=&quot;1&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table bgcolor=&quot;#dfdfdf&quot; border=&quot;0&quot; cellpadding=&quot;3&quot; cellspacing=&quot;1&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 12px; line-height: 18px; width: 570px;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;주 문 일&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;2010년 8월 4일 수요일 11시44분&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;주문번호&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;001-A916723315&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;상 태&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;상품준비중&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;상품가격&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;59,510 원&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;배 송 료&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;0 원&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;20%&quot;&gt;주문총액&lt;/td&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;span class=&quot;cus_org&quot; style=&quot;color: #fa9000; font-size: 9pt; font-weight: bold;&quot;&gt;59,510&lt;/span&gt;&amp;nbsp;원&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 12px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 12px; line-height: 18px; width: 570px;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td height=&quot;22&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;strong&gt;&lt;img src=&quot;http://image.aladdin.co.kr/img/mail/cs_center/mail_reco.gif&quot; /&gt;상품정보&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td bgcolor=&quot;BDBDBD&quot; height=&quot;5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;img height=&quot;1&quot; src=&quot;http://mbox18.korea.com/mail/img/space.gif&quot; width=&quot;1&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td bgcolor=&quot;#FFFFFF&quot; height=&quot;2&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;img height=&quot;1&quot; src=&quot;http://mbox18.korea.com/mail/img/space.gif&quot; width=&quot;1&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table bgcolor=&quot;#dfdfdf&quot; border=&quot;0&quot; cellpadding=&quot;3&quot; cellspacing=&quot;1&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 12px; line-height: 18px; width: 570px;&quot;&gt;&lt;tbody&gt;
&lt;tr bgcolor=&quot;F5F5F5&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;400&quot;&gt;상품명&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;수량&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;가격&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=1128503034&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;[별도증정] 팔도 비빔면 4입 세트&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
/ 알라딘 이벤트&amp;nbsp;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;0원&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8936433768&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;강남몽&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
황석영 지음 / 창비(창작과비평사)&lt;br /&gt;
출고예상시간 : 통상&amp;nbsp;&lt;span class=&quot;bk1&quot;&gt;&lt;b&gt;24&lt;/b&gt;&amp;nbsp;시간 이내&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;10,800원&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8973377752&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;도플갱어&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
주제 사라마구 지음, 김승욱 옮김 / 해냄&lt;br /&gt;
출고예상시간 : 통상&amp;nbsp;&lt;span class=&quot;bk1&quot;&gt;&lt;b&gt;24&lt;/b&gt;&amp;nbsp;시간 이내&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;10,360원&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=893746246X&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;사랑할 때와 죽을 때&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
에리히 마리아 레마르크 지음, 장희창 옮김 / 민음사&lt;br /&gt;
출고예상시간 : 통상&amp;nbsp;&lt;span class=&quot;bk1&quot;&gt;&lt;b&gt;24&lt;/b&gt;&amp;nbsp;시간 이내&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;12,150원&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8934928646&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;혁신이란 무엇인가&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
커티스 칼슨 외 지음, 문일윤 옮김 / 김영사&lt;br /&gt;
출고예상시간 : 통상&amp;nbsp;&lt;span class=&quot;bk1&quot;&gt;&lt;b&gt;48&lt;/b&gt;&amp;nbsp;시간 이내&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;18,400원&lt;/td&gt;&lt;/tr&gt;
&lt;tr bgcolor=&quot;FFFFFF&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;&lt;td align=&quot;left&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;450&quot;&gt;&lt;a href=&quot;http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=0316057908&quot; style=&quot;color: #5b5b5b; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: #346fbc;&quot;&gt;Blink (Mass Market Paperback)&lt;/span&gt;&lt;/a&gt;&amp;nbsp;- The Power of Thinking without Thinking&lt;br /&gt;
말콤 글래드웰 지음 / Back Bay Books&lt;br /&gt;
출고예상시간 : 통상&amp;nbsp;&lt;span class=&quot;bk1&quot;&gt;&lt;b&gt;24&lt;/b&gt;&amp;nbsp;시간 이내&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot; width=&quot;85&quot;&gt;1 개&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #5b5b5b; font-family: 돋음; font-size: 9pt; line-height: 18px;&quot;&gt;7,800원&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/1653821808466981992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/08/2010-08-04.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/1653821808466981992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/1653821808466981992'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/08/2010-08-04.html' title='2010-08-04 도서구매 내역'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-8584944026763399613</id><published>2010-06-09T05:20:00.000-04:00</published><updated>2010-06-09T05:20:46.177-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android ODEX Reverse Engineering(DE-ODEX)</title><content type='html'>우선 ODEX라는 것이 무엇일까?&lt;br /&gt;
&lt;a href=&quot;http://mylifewithandroid.blogspot.com/2009/02/optimized-dex-files.html&quot;&gt;http://mylifewithandroid.blogspot.com/2009/02/optimized-dex-files.html&lt;/a&gt;&lt;br /&gt;
위 블로그에 보면 아주 내용이 잘 정리 되어있다. Optimized dex 로써 성능향상을 위해 Hardware에 최적화되어 만들어진 dex file이다. HTC의 단말기들에 있는 app들을 까보면 apk파일과 odex 파일 두개로 이루어져있다.&lt;br /&gt;
(그리고 apk file을 압축을 풀어 확인해보면 classes.dex 파일이 존재 하지 않는다.)&lt;br /&gt;
&lt;br /&gt;
ODEX를 classes.dex로 바꿔보자!&lt;br /&gt;
1.&amp;nbsp;&lt;a href=&quot;http://code.google.com/p/smali/downloads/list&quot;&gt;http://code.google.com/p/smali/downloads/list&lt;/a&gt;&amp;nbsp;사이트에서 smali.jar와 baksmali.jar를 다운로드한다.&lt;br /&gt;
1. Android Phone을 Android SDK가 깔려있는 PC에 연결&lt;br /&gt;
2. adb pull system system&lt;br /&gt;
3. java -jar baksmali.jar -d system/framework -x temp.odex(odex파일 경로)&lt;br /&gt;
(참조:&amp;nbsp;&lt;a href=&quot;http://code.google.com/p/smali/wiki/DeodexInstructions&quot;&gt;http://code.google.com/p/smali/wiki/DeodexInstructions&lt;/a&gt;)&lt;br /&gt;
이렇게 하면 out이라는 폴더 안에 smali format으로 odex가 풀려있게 된다.&lt;br /&gt;
4. java -jar smali.jar -o classes.dex out&lt;br /&gt;
이렇게 해서 우리가 원하는 classes.dex 파일이 생성되었다.&lt;br /&gt;
&lt;br /&gt;
APK파일로...&lt;br /&gt;
classes.dex가 없는 apk 파일에 추가하여 다시 압축 한 후&amp;nbsp;&lt;a href=&quot;http://leehacks.blogspot.com/2010/05/android-apk-reverse-engineering.html&quot;&gt;http://leehacks.blogspot.com/2010/05/android-apk-reverse-engineering.html&lt;/a&gt;&amp;nbsp;포스팅에서 언급한 apktool로 다시한번 풀어줬다가 apk로 묶어주면 된다.&lt;br /&gt;
물론 위 포스팅에서 언급한대로 sign도 해줘야 install이 가능하다.&lt;br /&gt;
&lt;br /&gt;
이렇게 해서 odexed된 app을 deodexing하여 원하는 Android Phone에 Install 할 수 있게 되었다.</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/8584944026763399613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/06/android-odex-reverse-engineeringde-odex.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/8584944026763399613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/8584944026763399613'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/06/android-odex-reverse-engineeringde-odex.html' title='Android ODEX Reverse Engineering(DE-ODEX)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-4098274930586869878</id><published>2010-05-14T00:44:00.000-04:00</published><updated>2010-05-14T01:02:31.350-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android APK Reverse Engineering</title><content type='html'>Android apk file을 reverse해서 Resource나 Src를 수정하는 방법이 있다.&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/android-apktool/&quot;&gt;http://code.google.com/p/android-apktool/&lt;/a&gt;&amp;nbsp;에 open source project가 진행중이며, apk를 풀고 다시 빌드하는 것이 가능하다.&lt;br /&gt;
&lt;br /&gt;
1. 해당 사이트에서 apktool을 다운로드하고 기재된 install방법으로 설치한다.&lt;br /&gt;
2. apk 디코딩&lt;br /&gt;
&amp;gt;apktool d -d name.apk out&lt;br /&gt;
3. out 폴더에 있는 source file(dalvik bytecode)과 resource file을 수정한다.&lt;br /&gt;
4. apk 빌드&lt;br /&gt;
&amp;gt;apktool b -d out&lt;br /&gt;
5. 위까지 수행하게 되면 out/dist/out.apk 가 생성되며 이 out.apk를 sign해주면 완료.&lt;br /&gt;
&lt;br /&gt;
Sign방법은&amp;nbsp;&lt;a href=&quot;http://developer.android.com/guide/publishing/app-signing.html&quot;&gt;http://developer.android.com/guide/publishing/app-signing.html&lt;/a&gt;&amp;nbsp;를 참고하면 된다.&lt;br /&gt;
&lt;br /&gt;
참고:&lt;br /&gt;
1. leehack이 사용한 Sign관련 command.&lt;br /&gt;
C:\Sun\SDK\jdk\bin\jarsigner -verbose -keystore E:\Works\Android\Android_2.1_Library\debug.keystore out.apk androiddebugkey&lt;br /&gt;
password: android&lt;br /&gt;
&lt;br /&gt;
2. Dalvik Byte 코드에 관련된 문서.&lt;br /&gt;
Dalvik opcode list:&amp;nbsp;&lt;a href=&quot;http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html&quot;&gt;http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html&lt;/a&gt;&lt;br /&gt;
Dalvik bytecode?:&amp;nbsp;&lt;a href=&quot;http://pallergabor.uw.hu/common/understandingdalvikbytecode.pdf&quot;&gt;http://pallergabor.uw.hu/common/understandingdalvikbytecode.pdf&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/4098274930586869878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/android-apk-reverse-engineering.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4098274930586869878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4098274930586869878'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/android-apk-reverse-engineering.html' title='Android APK Reverse Engineering'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-4169975952443805697</id><published>2010-05-11T22:45:00.000-04:00</published><updated>2010-05-11T22:46:29.152-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="etc"/><title type='text'>넥서스원 개통 관련.</title><content type='html'>처음엔 안드로이드펍(&lt;a href=&quot;http://www.androidpub.com/phone_nexusone/319483&quot;&gt;http://www.androidpub.com/phone_nexusone/319483&lt;/a&gt;)에 올라온 글을 보고 정말 KT에서 개통을 해주려고 하는구나 생각이 들었고 아래와 같은 폰스토어의 고객센터 Q&amp;amp;A(&lt;a href=&quot;http://phonestore.show.co.kr/handler/Customer-Qna&quot;&gt;http://phonestore.show.co.kr/handler/Customer-Qna&lt;/a&gt;)에 올라온 아래와 같은 글을 보고 이젠 개통이 되는구나! 라는 생각이 들었다. 그래서 바로 개통신청!.. 오늘 KT M&amp;amp;S팀으로부터 전화가 왔다.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;----------&lt;br /&gt;
&lt;div&gt;개인전파인증서 보내셨나요?&lt;/div&gt;&lt;div&gt;아니요. 없이도 개통 된다고 Q&amp;amp;A에 올라와있던데...&lt;/div&gt;&lt;div&gt;구글 직원이세요?&lt;/div&gt;&lt;div&gt;아니요.&lt;/div&gt;&lt;div&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;안된다는데 따진다고 될 것도 아니고 그냥 끊었다. 근데 끊고나서 가만 생각해보니.. 그럼 구글직원은 개통이 된다는 소린가? -_-; Q&amp;amp;A에 올라온건 대체 내부적으로 무슨 이야기가 오가기에 아래와 같은 답변을 한단 말인가?&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: auto;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_NiDy6C2bAJM/S-oTciXMhPI/AAAAAAAAA-4/Lyka2_P0w1g/s1600/cp.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;377&quot; src=&quot;http://3.bp.blogspot.com/_NiDy6C2bAJM/S-oTciXMhPI/AAAAAAAAA-4/Lyka2_P0w1g/s640/cp.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;다른 이야기지만&amp;nbsp;아무리 좋은 방향으로 길을 잡고 가도 KT는 확실히 SKT에 비해 서비스 부분이 많이 약하다. 대리점에 갈때마다 기분이 팍팍 상하고.. 114에 전화해서 뭐 문의할래도 직원들이 하나같이 뭐 아는게 없고.... KT는 SKT 이기려면 직원교육부터 다시 시켜야 할 듯..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;그나저나 내 넥서스원은 언제 개통하나...&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/4169975952443805697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/blog-post_11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4169975952443805697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4169975952443805697'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/blog-post_11.html' title='넥서스원 개통 관련.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_NiDy6C2bAJM/S-oTciXMhPI/AAAAAAAAA-4/Lyka2_P0w1g/s72-c/cp.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-5884096995630313338</id><published>2010-05-06T20:37:00.000-04:00</published><updated>2010-05-06T20:37:00.906-04:00</updated><title type='text'>Official Google Blog: Live, from Google I/O!</title><content type='html'>&lt;a href=&quot;http://googleblog.blogspot.com/2010/05/live-from-google-io.html&quot;&gt;Official Google Blog: Live, from Google I/O!&lt;/a&gt;: &quot;(Cross-posted with the Google Code Blog)&lt;br /&gt;
&lt;br /&gt;
More than 4,000 developers will be joining us at Google I/O on May 19-20, and if we had the capacity, we’d host many more. In order to give the entire developer community a chance to participate live, we&#39;re happy to announce that both keynote presentations will be streamed live. To watch, just go to http://www.youtube.com/GoogleDevelopers at the start of the keynotes each day. We recommend watching on a high-speed connection for the best quality.&lt;br /&gt;
&lt;br /&gt;
Here’s the schedule for the keynotes at I/O — it’s also available on our agenda page:&lt;br /&gt;
Day 1 Keynote: Wednesday, May 19, 9:00 -10:30am PT&lt;br /&gt;
Day 2 Keynote: Thursday, May 20, 8:30-10:00am PT&lt;br /&gt;
Both keynote sessions feature exciting new technologies, so be sure to mark your calendars!&lt;br /&gt;
&lt;br /&gt;
Posted by Christine Tsai, Google Developer Team&quot;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/5884096995630313338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/official-google-blog-live-from-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5884096995630313338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/5884096995630313338'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/official-google-blog-live-from-google.html' title='Official Google Blog: Live, from Google I/O!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-3909387828380418753</id><published>2010-05-06T02:44:00.000-04:00</published><updated>2010-05-06T03:38:31.936-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>안드로이드 : 모토로라 드로이드로 24초만에 푼 큐빅</title><content type='html'>&lt;a href=&quot;http://www.androidpub.com/313753#6&quot;&gt;안드로이드펍 : 모토로라 드로이드로 24초만에 푼 큐빅&lt;/a&gt;&lt;br /&gt;
&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/0v8pJSGi4CA&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=ko_KR&amp;feature=player_embedded&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/0v8pJSGi4CA&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=ko_KR&amp;feature=player_embedded&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowScriptAccess=&quot;always&quot; width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/3909387828380418753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/3909387828380418753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/3909387828380418753'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/24.html' title='안드로이드 : 모토로라 드로이드로 24초만에 푼 큐빅'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-6529334153236154681</id><published>2010-05-06T01:35:00.000-04:00</published><updated>2010-05-06T01:37:35.876-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Reading"/><title type='text'>[도서구매 내역] 2010년 05월 03일</title><content type='html'>&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;
부족한 기초 지식을 보충하기 위해 구입한 도서 리스트.&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor=&quot;#d1d1d1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;1&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 12px; line-height: 19px;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td bgcolor=&quot;#f5f5f5&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; height=&quot;26&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;80&quot;&gt;&lt;img height=&quot;10&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/account/2006/thanks_t.gif&quot; width=&quot;50&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;img height=&quot;12&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/account/2005/table_t19.gif&quot; width=&quot;29&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;98&quot;&gt;&lt;img height=&quot;13&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/account/2006/table_order03.gif&quot; width=&quot;93&quot; /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;155&quot;&gt;&lt;img height=&quot;13&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/account/2005/table_t21.gif&quot; width=&quot;20&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; bgcolor=&quot;#ffffff&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;table cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;72&quot;&gt;&lt;a class=&quot;ml&quot; href=&quot;http://www.aladdin.co.kr/shop/common/wbook_talktalk.aspx?ISBN=8990886317&amp;amp;BranchType=1&amp;amp;CommunityType=MyReview&amp;amp;PaperId=2405627&quot; style=&quot;color: #505050; text-decoration: none;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/catalog/book/thanks_t.gif&quot; width=&quot;50&quot; /&gt;&lt;br /&gt;
미리내&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;a href=&quot;http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8990886317&quot; style=&quot;color: #386da1; text-decoration: none;&quot;&gt;게임 프로그래머를 위한 기초 수학과 물리&lt;/a&gt;&amp;nbsp;&lt;img align=&quot;absbottom&quot; alt=&quot;구매자40자평쓰기&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/blog2/skin/setting/font/default/write_buyercoment.gif&quot; style=&quot;cursor: pointer;&quot; title=&quot;구매자40자평쓰기&quot; /&gt;&lt;br /&gt;
&lt;span class=&quot;wr&quot; style=&quot;color: #919191;&quot;&gt;제우미디어 기획팀 지음&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;52&quot;&gt;1/1&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;130&quot;&gt;가격 : 15,300원&lt;br /&gt;
마일리지 : 160원 (1%)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td bgcolor=&quot;#e7e7e7&quot; colspan=&quot;4&quot; height=&quot;1&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;72&quot;&gt;&lt;a class=&quot;ml&quot; href=&quot;http://www.aladdin.co.kr/shop/common/wbook_talktalk.aspx?ISBN=8963894657&amp;amp;BranchType=1&amp;amp;CommunityType=MyReview&amp;amp;PaperId=3628631&quot; style=&quot;color: #505050; text-decoration: none;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/catalog/book/thanks_t.gif&quot; width=&quot;50&quot; /&gt;&lt;br /&gt;
산호섬&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;a href=&quot;http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8963894657&quot; style=&quot;color: #386da1; text-decoration: none;&quot;&gt;구글드 Googled&lt;/a&gt;&amp;nbsp;- 우리가 알던 세상의 종말&amp;nbsp;&lt;img align=&quot;absbottom&quot; alt=&quot;구매자40자평쓰기&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/blog2/skin/setting/font/default/write_buyercoment.gif&quot; style=&quot;cursor: pointer;&quot; title=&quot;구매자40자평쓰기&quot; /&gt;&lt;br /&gt;
&lt;span class=&quot;wr&quot; style=&quot;color: #919191;&quot;&gt;켄 올레타 지음, 김우열 옮김&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;52&quot;&gt;1/1&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;130&quot;&gt;가격 : 18,000원&lt;br /&gt;
마일리지 : 1,800원 (10%)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td bgcolor=&quot;#e7e7e7&quot; colspan=&quot;4&quot; height=&quot;1&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;72&quot;&gt;&lt;a class=&quot;ml&quot; href=&quot;http://www.aladdin.co.kr/shop/common/wbook_talktalk.aspx?ISBN=8934936355&amp;amp;BranchType=1&amp;amp;CommunityType=MyReview&amp;amp;PaperId=3368968&quot; style=&quot;color: #505050; text-decoration: none;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/catalog/book/thanks_t.gif&quot; width=&quot;50&quot; /&gt;&lt;br /&gt;
한수&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;a href=&quot;http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8934936355&quot; style=&quot;color: #386da1; text-decoration: none;&quot;&gt;수학비타민 플러스&lt;/a&gt;&amp;nbsp;- 전국 초중고생들의 수학 고민을 한 방에 날려주는 박경미의&amp;nbsp;&lt;img align=&quot;absbottom&quot; alt=&quot;구매자40자평쓰기&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/blog2/skin/setting/font/default/write_buyercoment.gif&quot; style=&quot;cursor: pointer;&quot; title=&quot;구매자40자평쓰기&quot; /&gt;&lt;br /&gt;
&lt;span class=&quot;wr&quot; style=&quot;color: #919191;&quot;&gt;박경미 지음&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;52&quot;&gt;1/0&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;130&quot;&gt;가격 : 11,700원&lt;br /&gt;
마일리지 : 1,170원 (10%)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td bgcolor=&quot;#e7e7e7&quot; colspan=&quot;4&quot; height=&quot;1&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;72&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;15&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/catalog/book/thanks_b.gif&quot; width=&quot;50&quot; /&gt;&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot;&gt;&lt;a href=&quot;http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN=8931571402&quot; style=&quot;color: #386da1; text-decoration: none;&quot;&gt;아하! 물리수학&lt;/a&gt;&amp;nbsp;- 수학에 대한 새로운 느낌의 시작, 2009&lt;img align=&quot;absbottom&quot; alt=&quot;구매자40자평쓰기&quot; src=&quot;https://www.aladdin.co.kr/ucl_editor/img_secur/blog2/skin/setting/font/default/write_buyercoment.gif&quot; style=&quot;cursor: pointer;&quot; title=&quot;구매자40자평쓰기&quot; /&gt;&lt;br /&gt;
&lt;span class=&quot;wr&quot; style=&quot;color: #919191;&quot;&gt;켄 카즈시 지음, 김제완 옮김&lt;/span&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;52&quot;&gt;1/1&lt;/td&gt;&lt;td style=&quot;color: #444444; font-family: 돋움; font-size: 9pt; line-height: 19px;&quot; width=&quot;130&quot;&gt;가격 : 10,800원&lt;br /&gt;
마일리지 : 330원 (3%)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/6529334153236154681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/2010-05-03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/6529334153236154681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/6529334153236154681'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/2010-05-03.html' title='[도서구매 내역] 2010년 05월 03일'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-6308240672021642945</id><published>2010-05-05T20:14:00.000-04:00</published><updated>2010-05-05T21:12:31.520-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Writting"/><title type='text'>글쓰기..</title><content type='html'>한 2년전 쯤에는 글쓰기를 참 많이 했었다. 한달에 최소 5만원씩을 들여 책을 꾸준히 구입했고 책에 대한 이야기와 세상 돌아가는 이야기들을 많이 적었었다. 핑계라면 핑계지만 회사일에 치이고 출장을 다니고 하다보니 글을 쓸 시간도 없어졌고 책도 구입하지 않으니 생각 할 시간도 줄어만 갔다. 이제는 짧은 글을 쓰려해도 참 많은 생각을 해야하고 한자 한자 글을 써나가는 것 자체도 많이 힘이 든다. 아주 부끄러운 수준이였지만 대학교에 다닐 때는 나름 사진을 찍어 시 한편 적어 인터넷 공간에 올리곤 했던 적도 있는데 귀찮음 때문일까 아니면 앞서말한 핑계 때문일까 지금은 참 어렵다.&lt;br /&gt;어쩌면 또 하나의 핑계이겠지만 공간의 중요함 때문일 수도 있을 것이다. 하루 2시간의 독서시간을 주었던 출퇴근 지하철이란 공간을 사용하지 않게 되어서일 것이다. 남들이 다 하기에 시작했던 싸이월드라는 공간을 사용하지 않게 되었기 때문일 것이다.&lt;br /&gt;알라딘의 내 서재라는 공간에 써 놓은 독후감들을 보며 옛날(?)의 나를 다시한번 떠올리며 이 글을 써 본다. 이 공간이라도 다시 열심히 이용해보자 라는 다짐과 함께..</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/6308240672021642945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/05/blog-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/6308240672021642945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/6308240672021642945'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/05/blog-post.html' title='글쓰기..'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-8448852588468439317</id><published>2010-04-06T21:39:00.000-04:00</published><updated>2010-05-05T21:12:41.627-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Get gmail data on Android</title><content type='html'>ContentResolver contentResolver = getContentResolver();&lt;br /&gt;Cursor conversations = contentResolver.query(Uri.parse(&quot;content://gmail-ls/conversations/&quot;      + &quot;leehack@gmail.com&quot;), null, null, null, null);&lt;br /&gt;conversations.moveToFirst();&lt;br /&gt;for (int a = 0; a &lt; conversations.getCount(); a++) {&lt;br /&gt;    String subject = conversations.getString(8);&lt;br /&gt;    conversations.moveToNext();&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/8448852588468439317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/04/get-gmail-data-on-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/8448852588468439317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/8448852588468439317'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/04/get-gmail-data-on-android.html' title='Get gmail data on Android'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-998587683704175361.post-4994516436982510103</id><published>2010-03-02T23:32:00.000-05:00</published><updated>2010-05-05T21:12:41.628-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>How to create update.zip using your build aka system.img</title><content type='html'>&lt;a href=&quot;http://blog.coralic.nl/2010/01/25/how-to-create-update-zip-using-your-build-aka-system-img/&quot;&gt;How to create update.zip using your build aka system.img&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://leehacks.blogspot.com/feeds/4994516436982510103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://leehacks.blogspot.com/2010/03/how-to-create-updatezip-using-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4994516436982510103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/998587683704175361/posts/default/4994516436982510103'/><link rel='alternate' type='text/html' href='http://leehacks.blogspot.com/2010/03/how-to-create-updatezip-using-your.html' title='How to create update.zip using your build aka system.img'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11555245177249188464</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>