<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36072271</id><updated>2012-01-14T02:46:41.285+09:00</updated><category term='App'/><category term='Game Engine'/><category term='D-Camera'/><category term='Pics'/><category term='Project'/><category term='Lovely Music'/><category term='etc'/><category term='Drama Script'/><category term='오늘의 영어한마디'/><category term='HL MOD'/><category term='Editor'/><category term='Study - Engineering'/><category term='느낌 좋은 글'/><category term='Algorithm_AI'/><category term='Article and Journal'/><category term='Audio'/><category term='Arduino'/><category term='Food_and_Recipe'/><category term='Linux'/><category term='Solaris'/><category term='UrbanDictionary'/><category term='일기'/><category term='TIP_programming'/><category term='Android'/><category term='Scheme'/><category term='사랑하는이에게'/><category term='훈훈한 소식'/><title type='text'>Take out your thoughts/imagination - June</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default?start-index=101&amp;max-results=100'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>274</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36072271.post-8987443496171831087</id><published>2012-01-14T02:46:00.002+09:00</published><updated>2012-01-14T02:46:41.305+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='느낌 좋은 글'/><title type='text'>The World is Full of Real People</title><content type='html'>&lt;b&gt;Source:&lt;/b&gt; &lt;a href="http://jumpstartlab.com/news/archives/2012/01/13/the-world-is-full-of-real-people/"&gt;http://jumpstartlab.com/news/archives/2012/01/13/the-world-is-full-of-real-people/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The World is Full of Real People&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Posted January 13, 2012 by Jeff&lt;br /&gt;&lt;br /&gt;Yesterday at CodeMash 2012 in Sandusky, Ohio, I gave a five minute lightning talk about something that’s been in my mind: the developer’s life of priviledge. Here’s the text of my talk:&lt;br /&gt;&lt;br /&gt;The World is Full of Real People&lt;br /&gt;&lt;br /&gt;You are in a spot of exceptional privilege. You’re well paid to move your fingers around a keyboard. Your greatest danger is probably carpal-tunnel syndrome.&lt;br /&gt;&lt;br /&gt;In a time when almost thirty percent of our country is unemployed or underemployed, you make jokes about how annoying recruiters are wanting to offer you job after job. There’s nothing here that’s your fault. You didn’t do anything wrong. This isn’t about blame and I’m not saying you should be ashamed of anything.&lt;br /&gt;&lt;br /&gt;But you do need to recognize you lead a life of privilege.&lt;br /&gt;&lt;br /&gt;We need to do more.&lt;br /&gt;&lt;br /&gt;It is easy to write software for other developers. You understand what it’s like to be a developer, so you know exactly how they think and operate. If you want to make quick money, build tools that make developers lives easier.&lt;br /&gt;&lt;br /&gt;We can all then form a big circle and pat each other on the back.&lt;br /&gt;&lt;br /&gt;Meanwhile, your new testing framework didn’t make any jobs. It didn’t bring significant joy to anyone’s life. In the big scheme of things, you’ve taken your gifts and used them to pleasure yourself.&lt;br /&gt;&lt;br /&gt;Let’s take a step back.&lt;br /&gt;&lt;br /&gt;Real people don’t use technology, at least not the technology you build. Unless you work at Facebook, the chance of anyone at this hotel having ever heard of your company, much less your product, is slim. Why is that? Why do we build so many things for ourselves?&lt;br /&gt;&lt;br /&gt;Because it’s easy.&lt;br /&gt;&lt;br /&gt;Solving real problems is hard. Changing real lives is hard. Making real people happy is hard. When we do write things for the public, we find out that those users are “such idiots” – they can never do things properly. “It’s not worth it!”&lt;br /&gt;&lt;br /&gt;You wield the power to make amazing change in the world. You can fix problems with a speed and scale that no other industry can match. Your work, once created, can be replicated at almost zero cost. Your power breaks economics, terrifies governments, and endangers the status quo.&lt;br /&gt;&lt;br /&gt;Instead of measuring ourselves by the size of our Series A or our average profit per employee, let’s measure in lives changed.&lt;br /&gt;&lt;br /&gt;I want to look back and say “I worked harder than I had to. I gave up time with my kids, with my friends, to do what needed to be done. To give back to the rest of the world, to enable them to live just a little bit happier, a little bit better.”&lt;br /&gt;&lt;br /&gt;The problems of our world can’t be fixed with software, that’s naive. But they can be fixed by people, and great software helps people do what needs to be done.&lt;br /&gt;&lt;br /&gt;As a developer you can only do so much. You don’t understand all the problems, the nuances, the challenges of the world. That’s ok. The people who do understand those challenges are desperate for your help – they’ll tell you everything you need to know. Just ask.&lt;br /&gt;&lt;br /&gt;I’m not saying you need to change a thousand lives. But if you could say that you really changed ten, what would that feel like?&lt;br /&gt;&lt;br /&gt;You might not ever have a Wikipedia page, but you’d live on in those ten memories – in the lineage of families they start, the kids that grow up happier because their parent is employed, less stressed, or otherwise improved. When you think about generations upon generations, the compound interest on the investment you make in others pays off in the biggest way.&lt;br /&gt;&lt;br /&gt;Your software will be forgotten, but true impact never will.&lt;br /&gt;&lt;br /&gt;What’s your mark on the earth? Is it big enough, is it deep enough, is it good enough?&lt;br /&gt;&lt;br /&gt;Get to work. Thank you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8987443496171831087?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8987443496171831087/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2012/01/world-is-full-of-real-people.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8987443496171831087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8987443496171831087'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2012/01/world-is-full-of-real-people.html' title='The World is Full of Real People'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6190629409111886140</id><published>2011-12-29T20:36:00.000+09:00</published><updated>2011-12-29T20:36:17.334+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='훈훈한 소식'/><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>구글이 프로그래머를 뽑는 법…</title><content type='html'>&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://zublog.wordpress.com/2011/12/29/%EA%B5%AC%EA%B8%80%EC%9D%B4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EB%A5%BC-%EB%BD%91%EB%8A%94-%EB%B2%95/"&gt;http://zublog.wordpress.com/2011/12/29/%EA%B5%AC%EA%B8%80%EC%9D%B4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EB%A5%BC-%EB%BD%91%EB%8A%94-%EB%B2%95/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;구글이 프로그래머를 뽑는 법…&lt;/b&gt;&lt;br /&gt;Posted on 12월 29, 2011&lt;br /&gt;입사하기 전 인터뷰(면접)를 할 때부터 구글은 뭔가 다른 회사라는 것을 알 수 있었습니다. 10년 쯤 전이긴 하지만, 삼성에서 면접을 본 경험이 있었는데 구글의 인터뷰는 이와는 전혀 다른 경험이었습니다. 구글은 들어가기 전부터도 벌써 사람을 정말 공들여 뽑고 잘 키우는 회사라는 생각을 들게 만들었습니다.&lt;br /&gt;&lt;br /&gt;[구글이 원하는 인재]&lt;br /&gt;&lt;br /&gt;1. 우선 구글은 skillset (기술) 보다는 problem solving ability (문제해결능력)에 더 중점을 두어 사람을 뽑습니다. 예를 들어 구글의 Irvine 사무실에서는 대부분 Java룰 사용하지만 저는 Java를 전혀 못하는데도 인터뷰를 할 수 있었고 인터뷰할 때에는 C/C++에 대한 면접만 봤습니다. 구글에서는 어차피 프로그램언어나 개별적인 기술들(skillset)은 5년마다 새로 배워야 하는 것들이라 이보다는 한가지 언어라도 확실히 이해하고 있는지, problem solving을 할 수 있는 전산학의 기초를 제대로 가지고 있는 지가 더 중요하다고 봅니다.&lt;br /&gt;&lt;br /&gt;2. 구글은 전산학의 기초를 아주 중요하게 봅니다. 따라서 가장 중요한 인터뷰 질문들은 마치 학부의 data structure 과목 시험문제와 같습니다.&lt;br /&gt;&lt;br /&gt;3. 구글은 코딩도 아주 중요하게 봅니다. 그런데 얼마나 넓게 아느냐보다는 얼마나 깊게 아느냐를 봅니다. 예를 들어 Java의 API를 많이 알고 있는 것보다는 Object Oriented 언어의 기본적인 개념을 얼마나 잘 이해하고 있는지를 봅니다.&lt;br /&gt;&lt;br /&gt;[인터뷰 진행 방식]&lt;br /&gt;&lt;br /&gt;1. 서류심사: 구글은 합격률이 1% 미만이라 어쩔 수 없이 서류심사에서 95%이상이 걸러 집니다.&lt;br /&gt;&lt;br /&gt;2. HR (인사과) 전화 interview: 처음이자 마지막 non-technical interview로 경력 등에 대한 20분정도의 문답을 합니다. 일반적으로 면접때 많이 물어 보는 ‘왜 우리회사에 입사하느냐’/’10년후의 목표는 무엇이냐’ 등등의 질문들도 거의 없고 주로 어떤 일을 했는지, 어떤 경험을 가졌는지, 어떤 일을 하고 싶은지 등을 묻습니다.&lt;br /&gt;&lt;br /&gt;3. 전화 인터뷰: 실제로 구글에서 일하는 Software Engineer가 전화면접을 합니다. 보통 2번 정도 하는데 질문은 자기소개 및 한 일들에 대한 것들은 간단하게만 묻고 이후로는 30분이상 data structure 및 programming에 대한 질문을 합니다. 종이와 연필을 가지고 써 가면서 문제를 풀어 대답해야 합니다. 문제는 보통 이런 식입니다 (google로 google interview questions라고 찾아봐도 예가 나옵니다 ^^):&lt;br /&gt;&lt;br /&gt;integer operation으로 log를 구현하려면 어떻게 하는가? 이경우 총 연산의 수는?&lt;br /&gt;두개의 sort된 행렬을 merge하려면 어떻게 하는가? 이 경우 complexity는 어떻게 되는가?&lt;br /&gt;C++ class의 static variable은 어떤 의미가 있고 어떻게 쓰이는가?&lt;br /&gt;그런데 예상문제를 열심히 풀어 보는게 어느 정도 도움은 되지만 대입시험처럼 그걸로 합격할 수 있지는 않습니다. 그 이유는 뒤에…&lt;br /&gt;&lt;br /&gt;4. On-site 인터뷰: 직접 구글 사무실에 가서 5시간 정도 인터뷰를 합니다. 중간에 인터뷰에 포함 안되는 점심시간이 있지만, 거의 쉴 새 없이 엄청난 체력전으로 치러 집니다. 모든 인터뷰는 technical한 내용만 합니다. 5명의 면접관이 한 명씩 면접실에 들어와 한 사람당 45분가량 인터뷰를 합니다. 인터뷰 내용은 전화면접과 비슷한데 programming의 기초에 대한 질문들을 간단히 물어 보고는 위의 행렬 merge 같은 문제를 냅니다. 문제를 풀면 제시한 해답의 complexity를 물어 보고는 이를 칠판에다 손으로 써서 구현하라고 합니다.&lt;br /&gt;&lt;br /&gt;그런데 인터뷰의 핵심은 사실 정답을 맞추느냐를 보는 것이 아니라 문제를 푸는 과정을 보는 것입니다. 처음부터 잘 define되지 않은 문제를 주어 면접자의 문제를 정의하는 능력을 보고 또 면접자가 헤메고 있으면 면접관이 옆에서 도와 주며 푸는 과정을 보고, 해답을 제시하면 이보다 더 optimal한 방법은 없을지 찾아 보라고 합니다. 사실 정답이 하나가 아닌 문제들이기 때문에 이렇게 intensive하게, interactive하게 인터뷰를 하면 면접자의 실력이 드러날 수 밖에 없습니다.&lt;br /&gt;&lt;br /&gt;구글은 사실 잘나가는 회사이기 때문에 구글의 philosophy는 긴가민가하는 사람은 안 뽑는게 낫다입니다. 못하는 사람을 뽑는 것보다는 잘하는 사람을 놓치는 게 낫다는 거죠 (사람을 해고하기 가장 좋은 시기는 채용하기 전이라는 격언도 있습니다 ^^). 하지만(!) 면접에서 한 번 떨어 진다고 하더라도 6개월만 지나면 다시 지원할 수 있도록 기회를 열어 주고 또 다시 지원하기를 권합니다. 저도 사실 인터뷰에서 떨어진 경험이 있습니다 ^^;&lt;br /&gt;&lt;br /&gt;제 경험으로는 한국의 회사들이 구글처럼 공들여 사람을 뽑지는 않는 것 같습니다. 구글 수준의 엘리트들을 뽑는 것은 아니더라도 기본적인 data structure에 대한 이해가 있는지를 알아 보는 것은 중요하고 또 눈 앞에서 칠판에다가 코딩을 해 보라고 하는 것 역시 아주 중요합니다. (미국의) 작은 회사에서 인터뷰를 해 본 어떤 사람이 스펙이 꽤 좋은 사람 중에서도 아주 기본적인 수열 문제조차도 제대로 코딩하지 못하는 경우를 많이 봤다고 합니다. 물론 이를 위해서는 면접관의 능력 역시 중요하죠. 그래서 구글에서는 면접관에 대한 training 역시 따로 합니다.&lt;br /&gt;&lt;br /&gt;물론 한국의 일반적인 소프트웨어 회사가 구글처럼 잘할 것 같은 사람들을 막 떨어 뜨릴 여유가 있는 건 아닐지 모릅니다. 취직하려는 사람은 일자리가 없다지만 뽑는 사람들은 뽑을 만한 사람이 없다니까요. 그래도 인터뷰를 제대로 하는 것은 중요합니다. 그래야 응시생들이 기초를 공부하려 하겠지요. 그렇지만 사실 사람을 잘 뽑는 것만큼 뽑은 사람을 잘 키우는 것도 중요합니다.&lt;br /&gt;&lt;br /&gt;[뽑은 이후...]&lt;br /&gt;&lt;br /&gt;구글의 좋은 점은 좋은 사람을 뽑은 후에 이들이 잘 성장할 수 있는 기회를 많이 준다는 것입니다. 프로그래밍에 대한 training도 많고 여러가지 교육의 기회를 줍니다. 또 유명한 80-20을 통해 자신이 하고싶은 일에 20%의 시간을 투자할 수 있게 해 줍니다.&lt;br /&gt;&lt;br /&gt;제가 한국에 있는 회사에서 작성한 코드를 한 번 본 적이 있습니다. 그런데 코딩에 대한 회사차원의 체계가 전혀 없었고 프로그래머는 아니었어도 전산과 출신 직원이 작성한 코드였지는 간단한 optimization에 대한 이해도 없이. &amp;nbsp;지금 학교에서의 coding 교육이 어떤지는 잘 모르지만, 사실 깔끔한 코딩은 회사에서 체계적인 교육 및 시스템으로 뒷바침하지 않으면 나오기가 쉽지 않습니다.&lt;br /&gt;&lt;br /&gt;한가지 더, 한국은 코딩에 대한 인식이 낮고 또 모든 분야에서 어느 정도 경력이 쌓이면 관리직으로 물러나거나 시스템 디자인에만 관여하는 것이 일반적이라 (개인적으로는 아주 큰 문제라고 생각합니다) 소프트웨어 회사에서 좋은 코드를 만들기 위한 체계적인 노력이 부족합니다. 한국회사에서보다는 미국회사에서 일반적인 미국회사에서보다는 구글에서 60세된 프로그래머를 더 쉽게 찾아 볼 수 있습니다.&lt;br /&gt;&lt;br /&gt;앞으로 회사를 다니며 더 많이 배우겠지만… 사람을 공들여 뽑고 또 뽑은 사람에게 발전의 기회를 제공할 때에, 또 전산학의 기초와 좋은 코딩을 중요하게 생각할 때에 좋은 소프트웨어가 나온다는 생각입니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6190629409111886140?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6190629409111886140/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/12/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6190629409111886140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6190629409111886140'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/12/blog-post.html' title='구글이 프로그래머를 뽑는 법…'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2959915053444235280</id><published>2011-12-05T00:16:00.001+09:00</published><updated>2011-12-05T00:24:04.129+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>HTTPS github access (repo with Curl)</title><content type='html'>&lt;b&gt;HTTPS github access (repo with Curl)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt; &lt;a href="http://stackoverflow.com/questions/3777075/https-github-access"&gt;http://stackoverflow.com/questions/3777075/https-github-access&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Problem]&lt;/b&gt;&lt;br /&gt;HTTPS github access (repo with Curl)&lt;br /&gt;error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Summary]&amp;nbsp;&lt;/b&gt;(i chose the way)&lt;br /&gt;just set an environment variable to disable SSL verify.&lt;br /&gt;$ export GIT_SSL_NO_VERIFY=true&lt;br /&gt;&lt;br /&gt;that's it.&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2959915053444235280?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2959915053444235280/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/12/https-github-access-repo-with-curl.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2959915053444235280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2959915053444235280'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/12/https-github-access-repo-with-curl.html' title='HTTPS github access (repo with Curl)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-3960970744893883328</id><published>2011-11-25T15:38:00.001+09:00</published><updated>2011-11-25T15:40:03.356+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>x86 kernel build chain - how bzImage gets created</title><content type='html'>&lt;b&gt;x86 kernel build chain - how bzImage gets created&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/003906.html"&gt;http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/003906.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="background-color: white;"&gt;Graeme Russ&lt;/b&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="mailto:kernelnewbies%40kernelnewbies.org?Subject=Re:%20x86%20kernel%20build%20chain%20-%20how%20bzImage%20gets%20created&amp;amp;In-Reply-To=%3C4ECB7D87.3030601%40gmail.com%3E" style="background-color: white;" title="x86 kernel build chain - how bzImage gets created"&gt;graeme.russ at gmail.com&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;i style="background-color: white;"&gt;Tue Nov 22 05:46:31 EST 2011&lt;/i&gt;&lt;br /&gt;&lt;div style="background-color: white;"&gt;&lt;/div&gt;&lt;ul style="background-color: white;"&gt;&lt;li&gt;Previous message:&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/003961.html"&gt;busybox utility&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Next message:&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/003907.html"&gt;x86 kernel build chain - how bzImage gets created&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Messages sorted by:&lt;/b&gt;&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/date.html#3906"&gt;[ date ]&lt;/a&gt;&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/thread.html#3906"&gt;[ thread ]&lt;/a&gt;&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/subject.html#3906"&gt;[ subject ]&lt;/a&gt;&amp;nbsp;&lt;a href="http://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-November/author.html#3906"&gt;[ author ]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr style="background-color: white;" /&gt;&lt;pre style="background-color: white;"&gt;Hi All,&lt;br /&gt;&lt;br /&gt;Hopefully this will help demystify the build process&lt;br /&gt;&lt;br /&gt;Notation:&lt;br /&gt;&lt;primary file="" input=""&gt; (&lt;file bytes="" in="" size=""&gt;)&lt;br /&gt;  |&lt;br /&gt;  + &lt;additional file="" input=""&gt;&lt;br /&gt;  |&lt;br /&gt;  * &lt;command&gt;&lt;/command&gt;&lt;br /&gt;  |&lt;br /&gt;  \-&amp;gt; &lt;output file=""&gt; (&lt;file bytes="" in="" size=""&gt;)&lt;br /&gt;&lt;br /&gt;The file sizes are arbitrary and are based on the current configuration&lt;br /&gt;options I have set for a small kernel. They are simply there to illustrate&lt;br /&gt;the relative differences in file sizes.&lt;br /&gt;&lt;br /&gt;Note that vmlinux.o is not used to generate bzImage but I've included it&lt;br /&gt;for completeness&lt;br /&gt;&lt;br /&gt;+ arch/x86/kernel/head_32.o&lt;br /&gt;+ arch/x86/kernel/head32.o&lt;br /&gt;+ arch/x86/kernel/head.o&lt;br /&gt;+ arch/x86/kernel/init_task.o&lt;br /&gt;+ init/built-in.o&lt;br /&gt;+ usr/built-in.o&lt;br /&gt;+ arch/x86/built-in.o&lt;br /&gt;+ kernel/built-in.o&lt;br /&gt;+ mm/built-in.o&lt;br /&gt;+ fs/built-in.o&lt;br /&gt;+ ipc/built-in.o&lt;br /&gt;+ security/built-in.o&lt;br /&gt;+ crypto/built-in.o&lt;br /&gt;+ block/built-in.o&lt;br /&gt;+ lib/lib.a&lt;br /&gt;+ arch/x86/lib/lib.a&lt;br /&gt;+ lib/built-in.o&lt;br /&gt;+ arch/x86/lib/built-in.o&lt;br /&gt;+ drivers/built-in.o&lt;br /&gt;+ sound/built-in.o&lt;br /&gt;+ firmware/built-in.o&lt;br /&gt;+ arch/x86/pci/built-in.o&lt;br /&gt;+ net/built-in.o&lt;br /&gt;|&lt;i&gt;&lt;br /&gt;&lt;/i&gt;* ld -m elf_i386 -r -o vmlinux.o&lt;br /&gt;|&lt;i&gt;&lt;br /&gt;&lt;/i&gt;\-&amp;gt;vmlinux.o (2,889,050)&lt;br /&gt;&lt;br /&gt;+ arch/x86/kernel/head_32.o&lt;br /&gt;+ arch/x86/kernel/head32.o&lt;br /&gt;+ arch/x86/kernel/head.o&lt;br /&gt;+ arch/x86/kernel/init_task.o&lt;br /&gt;+ init/built-in.o&lt;br /&gt;+ usr/built-in.o&lt;br /&gt;+ arch/x86/built-in.o&lt;br /&gt;+ kernel/built-in.o&lt;br /&gt;+ mm/built-in.o&lt;br /&gt;+ fs/built-in.o&lt;br /&gt;+ ipc/built-in.o&lt;br /&gt;+ security/built-in.o&lt;br /&gt;+ crypto/built-in.o&lt;br /&gt;+ block/built-in.o&lt;br /&gt;+ lib/lib.a&lt;br /&gt;+ arch/x86/lib/lib.a&lt;br /&gt;+ lib/built-in.o&lt;br /&gt;+ arch/x86/lib/built-in.o&lt;br /&gt;+ drivers/built-in.o&lt;br /&gt;+ sound/built-in.o&lt;br /&gt;+ firmware/built-in.o&lt;br /&gt;+ arch/x86/pci/built-in.o&lt;br /&gt;+ net/built-in.o&lt;br /&gt;+ .tmp_kallsyms2.o&lt;br /&gt;|&lt;i&gt;&lt;br /&gt;&lt;/i&gt;* ld -m elf_i386 --build-id -T arch/x86/kernel/vmlinux.lds&lt;br /&gt;|&lt;i&gt;&lt;br /&gt;&lt;/i&gt;\-&amp;gt;vmlinux (2,629,659)&lt;br /&gt;   |&lt;br /&gt;   * objcopy -R .comment -S&lt;br /&gt;   |&lt;br /&gt;   \-&amp;gt;arch/x86/boot/compressed/vmlinux.bin (2,094,132)&lt;br /&gt;      |&lt;br /&gt;      * gzip&lt;br /&gt;      |&lt;br /&gt;      \-&amp;gt; arch/x86/boot/compressed/vmlinux.bin.gz (1,074,711)&lt;br /&gt;         |&lt;br /&gt;         * .incbin&lt;br /&gt;         |&lt;br /&gt;         \-&amp;gt; piggy.S&lt;br /&gt;            |&lt;br /&gt;            * gcc&lt;br /&gt;            |&lt;br /&gt;            \-&amp;gt; piggy.o (1,075,419)&lt;br /&gt;               |&lt;br /&gt;               + arch/x86/boot/compressed/head_32.o&lt;br /&gt;               + arch/x86/boot/compressed/misc.o&lt;br /&gt;               + arch/x86/boot/compressed/string.o&lt;br /&gt;               + arch/x86/boot/compressed/cmdline.o&lt;br /&gt;               + arch/x86/boot/compressed/early_serial_console.o&lt;br /&gt;               |&lt;br /&gt;               * ld -m elf_i386 -T arch/x86/boot/compressed/vmlinux.lds&lt;br /&gt;               |&lt;br /&gt;               \-&amp;gt;arch/x86/boot/compressed/vmlinux (1,099,538)&lt;br /&gt;                  |&lt;br /&gt;                  * objcopy -O binary -R .note -R .comment -S&lt;br /&gt;                  |&lt;br /&gt;                  \-&amp;gt; arch/x86/boot/vmlinux.bin (1,092,060)&lt;br /&gt;                     |&lt;br /&gt;                     |   + arch/x86/boot/a20.o&lt;br /&gt;                     |   + arch/x86/boot/bioscall.o&lt;br /&gt;                     |   + arch/x86/boot/cmdline.o&lt;br /&gt;                     |   + arch/x86/boot/copy.o&lt;br /&gt;                     |   + arch/x86/boot/cpu.o&lt;br /&gt;                     |   + arch/x86/boot/cpucheck.o&lt;br /&gt;                     |   + arch/x86/boot/early_serial_console.o&lt;br /&gt;                     |   + arch/x86/boot/edd.o&lt;br /&gt;                     |   + arch/x86/boot/header.o&lt;br /&gt;                     |   + arch/x86/boot/main.o&lt;br /&gt;                     |   + arch/x86/boot/mca.o&lt;br /&gt;                     |   + arch/x86/boot/memory.o&lt;br /&gt;                     |   + arch/x86/boot/pm.o&lt;br /&gt;                     |   + arch/x86/boot/pmjump.o&lt;br /&gt;                     |   + arch/x86/boot/printf.o&lt;br /&gt;                     |   + arch/x86/boot/regs.o&lt;br /&gt;                     |   + arch/x86/boot/string.o&lt;br /&gt;                     |   + arch/x86/boot/tty.o&lt;br /&gt;                     |   + arch/x86/boot/video.o&lt;br /&gt;                     |   + arch/x86/boot/video-mode.o&lt;br /&gt;                     |   + arch/x86/boot/version.o&lt;br /&gt;                     |   + arch/x86/boot/video-vga.o&lt;br /&gt;                     |   + arch/x86/boot/video-vesa.o&lt;br /&gt;                     |   + arch/x86/boot/video-bios.o&lt;br /&gt;                     |   |&lt;br /&gt;                     |   * ld -m elf_i386 -T arch/x86/boot/setup.ld&lt;br /&gt;                     |   |&lt;br /&gt;                     |   \-&amp;gt;arch/x86/boot/setup.elf (186,171)&lt;br /&gt;                     |      |&lt;br /&gt;                     |      * objcopy -O binary arch/x86/boot/setup.elf&lt;br /&gt;                     |      |&lt;br /&gt;                     +      \-&amp;gt; arch/x86/boot/setup.bin (12,604)&lt;br /&gt;                     |&lt;br /&gt;                     * arch/x86/boot/tools/build&lt;br /&gt;                     |&lt;br /&gt;                     \-&amp;gt; arch/x86/boot/bzImage (1,104,864)&lt;/file&gt;&lt;/output&gt;&lt;/additional&gt;&lt;/file&gt;&lt;/primary&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-3960970744893883328?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/3960970744893883328/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/11/x86-kernel-build-chain-how-bzimage-gets.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3960970744893883328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3960970744893883328'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/11/x86-kernel-build-chain-how-bzimage-gets.html' title='x86 kernel build chain - how bzImage gets created'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6659426250844071831</id><published>2011-11-20T16:24:00.001+09:00</published><updated>2011-11-20T16:25:54.066+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='느낌 좋은 글'/><title type='text'>싸가지와 느자구</title><content type='html'>&lt;b&gt;싸가지와 느자구&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://blog.daum.net/ysnaju/8673856"&gt;http://blog.daum.net/ysnaju/8673856&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;싸가지와 느자구종종 경우 없고 버릇 없는 사람을 보면 "늦쪽바가지 없다"는 말을 썼더니 어떤 이가 "그게 뭔 말이냐?"고 물어온다. 가만 생각해보니 대체나 확실한 의미를 알고 쓴 말을 아닌 듯하여 말의 뿌리를 찾아 나섰다.&lt;br /&gt;&lt;br /&gt;인터넷 몇 곳을 뒤져봐도 정확하게 '늦쪽바가지'라는 말의 흔적은 찾기 어렵고 아마도 이건 전라도 특히 나주에서 나고 자라면서 주워들은 이쪽 사람들의 방언이 아닐까 싶고, 늦없다, 느자구없다에서 좀 더 어감을 강하게 하기 위해서 나 혼자 만들어 쓴 말이 아닐까 싶기도 하다. &lt;br /&gt;&lt;br /&gt;전라도 말에는 '싸가지'와 비슷한 의미를 갖는 '느자구'라는 말이 있다. 이 말도 '싸가지'처럼 '느자구 있다'나 '느자구 없다'처럼 존재 동사인 '있다'나 '없다'와만 어울려 쓰이는 특징을 갖는다. '느자구'는 어원적으로 '늦'이라는 명사에 '-아구'라는 접미사가 결합된 것으로 보아야 한다.&lt;br /&gt;&lt;br /&gt;명사 '늦'은 전라도 말에서 '늣'으로 홀로 쓰이는 수도 있는데, 그 의미는 '느자구'와 같다. 그래서 '쩌 놈은 허는 것이 늣이 있어'라 하기도 하고, '늣 없는 놈헌테는 기대를 말아야제'라 쓰기도 한다. 이 '늣'은 옛말에 '늦'으로 나타나는데, &amp;lt;조짐&amp;gt;이나 &amp;lt;징조&amp;gt;를 뜻하던 말이었다.&lt;br /&gt;&lt;br /&gt;그래서 『용비어천가』에는 '寶位 실 느지르샷다(是寶位將登之祥)'와 같은 말이 보이고, 『월인석보』에는 '죽사리　버서날 느지오'와 같은 표현도 나타난다. 이 옛말의 '늦'이 전라도 말에서 '늣'으로 변했지만, 접미사 '-아구'가 붙은 '느자구'에는 원래의 형태가 그대로 남아 있다.&lt;br /&gt;&lt;br /&gt;이처럼 '늦'이 홀로 쓰일 때에는 '늣'이 되지만 복합어에서는 '늦'으로 남아 있는 것은, 언어 변화에서 흔히 볼 수 있는 현상이다. 복합어 안에서는 언어 변화가 잘 일어나지 않기 때문이다.&lt;br /&gt;&lt;br /&gt;'싸가지'가 구체적 명사인 '싹'으로부터 파생되어 &amp;lt;앞이 트일 징조&amp;gt;와 같은 추상적 의미로 변해 갔다면, '느자구'는 처음부터 &amp;lt;징조&amp;gt;나 &amp;lt;조짐&amp;gt;의 뜻을 가졌던 것이다. 옛말 '늦'이 가치 중립적인 &amp;lt;징조&amp;gt;의 뜻만을 가졌던 것인지, 아니면 긍정적인 의미인 &amp;lt;앞으로 일이 잘 될 징조&amp;gt;를 가졌던 것인지에 대해서는 확인이 필요한 일이나, '느자구'는 '싸가지'와 달리 애초부터 추상적 의미를 가졌던 것임은 분명하다.&lt;br /&gt;&lt;br /&gt;오늘날 '싸가지 없다'나 '느자구 없다'는 사람의 행동이나 말이 형편없음을 가리키는 의미로 쓰인다. 원래는 그 형편없는 말이나 행동으로 미루어 그 사람의 앞날 역시 형편없으리라는 뜻이 담겼을 터이지만, 근자에는 장래에 대한 부정적 징조보다는 단순히 눈앞에 벌어지는 행태가 형편없음을 의미하는 것으로 남게 되었다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6659426250844071831?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6659426250844071831/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/11/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6659426250844071831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6659426250844071831'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/11/blog-post.html' title='싸가지와 느자구'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5508567320992277482</id><published>2011-11-03T03:12:00.000+09:00</published><updated>2011-11-03T03:12:48.110+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Article and Journal'/><title type='text'>Khan Academy; A free world-class education for anyone anywhere.</title><content type='html'>&lt;b&gt;Khan Academy&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.khanacademy.org/"&gt;http://www.khanacademy.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2 class="main-headline" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #111111; font-family: MuseoSans500, sans-serif; font-size: 20px; font: inherit; line-height: 22px; margin-bottom: 22px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 22px; text-align: justify; vertical-align: baseline; white-space: pre;"&gt;A free world-class education for anyone anywhere.&lt;/h2&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444444; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; font: inherit; line-height: 22px; margin-bottom: 22px; margin-top: 22px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;"&gt;The Khan Academy is an organization on a mission. We're a not-for-profit with the goal of changing education for the better by providing a free world-class education to anyone anywhere.&lt;/div&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444444; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; font: inherit; line-height: 22px; margin-bottom: 22px; margin-top: 22px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify; vertical-align: baseline;"&gt;All of the site's resources are available to anyone. It doesn't matter if you are a student, teacher, home-schooler, principal, adult returning to the classroom after 20 years, or a friendly alien just trying to get a leg up in earthly biology. The Khan Academy's materials and resources are available to you completely free of charge.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;무료 동영상 강의가 많네요... ^^&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5508567320992277482?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5508567320992277482/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/11/khan-academy-free-world-class-education.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5508567320992277482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5508567320992277482'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/11/khan-academy-free-world-class-education.html' title='Khan Academy; A free world-class education for anyone anywhere.'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4190350533251975387</id><published>2011-11-03T02:59:00.003+09:00</published><updated>2011-11-03T02:59:54.521+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='느낌 좋은 글'/><title type='text'>Get Better</title><content type='html'>&lt;b&gt;Get Better&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://swanson.github.com/blog/2011/10/24/get-better.html"&gt;http://swanson.github.com/blog/2011/10/24/get-better.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="meta" style="background-color: white; color: #aaaaaa; font-family: Palatino, 'Palatino Linotype', Georgia, serif; font-size: 18px; line-height: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;October 24, 2011&lt;/div&gt;&lt;div id="post" style="background-color: white; color: #222222; font-family: Palatino, 'Palatino Linotype', Georgia, serif; font-size: 18px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;blockquote style="border-left-color: rgb(153, 153, 153); border-left-style: solid; border-left-width: 2px; color: #999999; margin-bottom: 1em; margin-left: 3em; margin-right: 3em; margin-top: 1em; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;… the sooner you care, the better you’ll make. The better you’ll do. And the&lt;/em&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;better you’ll live.&lt;/em&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;-&amp;nbsp;&lt;a href="http://www.43folders.com/2011/01/17/permission-to-be-awesome" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Merlin Mann&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take 5 minutes to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Read the most interesting blog post in your RSS reader&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Look through the code you wrote today and find a place to improve&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Write down any problems you encountered today&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Learn a new keyboard shortcut for your IDE, source control tool, or shell&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Ask a co-worker if they’ve read anything interesting lately&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take 15 minutes to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Refactor a piece of code you wrote this week&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Find code that’s missing tests and add one&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Update your team/company wiki&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Read a few of the top stories on&amp;nbsp;&lt;a href="http://news.ycombinator.com/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;news.yc&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://reddit.com/r/programming" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;/r/programming&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Read a chapter in a technical book&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Write a thoughtful comment on a blog post&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take 30 minutes to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Watch a talk from a&amp;nbsp;&lt;a href="http://lanyrd.com/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;conference that interests you&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Write a blog post about a bug you encountered and how you fixed it&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Write a blog post about something you’ve been working on or learning about&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Listen to a podcast - here are some I like:&amp;nbsp;&lt;a href="http://swanson.github.com/blog/2011/10/01/podcast-roundup-iii.html" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Podcast Roundup&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do a&amp;nbsp;&lt;a href="http://codekata.pragprog.com/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;kata&lt;/a&gt;&amp;nbsp;or a problem on&amp;nbsp;&lt;a href="http://projecteuler.net/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Project Euler&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Attend a brownbag or lunch-and-learn&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take an hour a week to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Help an open source library that you use - patchs, documentation, bugs&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Work on a side-project on your own&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Watch a&amp;nbsp;&lt;a href="http://peepcode.com/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;screencast&lt;/a&gt;&amp;nbsp;about something new&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Try to answer some questions on&amp;nbsp;&lt;a href="http://stackoverflow.com/unanswered" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;StackOverflow&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do prep work to host a brownbag or meetup talk&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take an online class: Stanford courses on&amp;nbsp;&lt;a href="http://www.stanford.edu/class/cs193p/cgi-bin/drupal/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;iPhone&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.ml-class.org/course/class/index" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Machine Learning&lt;/a&gt;,&amp;nbsp;&lt;a href="https://www.ai-class.com/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;AI&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take 2 hours a month to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Go to a&amp;nbsp;&lt;a href="http://indyhackers.org/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;local dev meetup&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take someone you look up to out to lunch and pick their brain&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Do self reflection and update your position on&amp;nbsp;&lt;a href="http://ofps.oreilly.com/titles/9780596518387/walking_the_long_road.html#the_long_road" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;The Long Road&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Plan out how to Get Better over the next month&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take a weekend a year to:&lt;/div&gt;&lt;ul style="margin-bottom: 1em; margin-left: 1.35em; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Go to a conference&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Attend a&amp;nbsp;&lt;a href="http://indianapolis.startupweekend.org/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Startup Weekend&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Hackathon" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Hackathon&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Use your craft to&amp;nbsp;&lt;a href="http://indygivecamp.org/" style="color: #0c84e8; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;help others&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Take one minute a day - just 60 seconds - to stop and ask yourself this question:&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Did I&amp;nbsp;&lt;strong style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Get Better&lt;/strong&gt;&amp;nbsp;today?&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If you aren’t happy with your answer, do something about it.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4190350533251975387?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4190350533251975387/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/11/get-better.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4190350533251975387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4190350533251975387'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/11/get-better.html' title='Get Better'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-1997878913200904445</id><published>2011-11-03T02:58:00.001+09:00</published><updated>2011-11-03T03:00:10.340+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='느낌 좋은 글'/><title type='text'>Engineering - Over/Under: I'm a Serial Over Committer</title><content type='html'>&lt;b&gt;Engineering - Over/Under: I'm a Serial Over Committer&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://swanson.github.com/blog/2011/11/02/engineering-over-under.html"&gt;http://swanson.github.com/blog/2011/11/02/engineering-over-under.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="meta" style="background-color: white; color: #aaaaaa; font-family: Palatino, 'Palatino Linotype', Georgia, serif; font-size: 18px; line-height: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;November 02, 2011&lt;/div&gt;&lt;div id="post" style="background-color: white; color: #222222; font-family: Palatino, 'Palatino Linotype', Georgia, serif; font-size: 18px; line-height: 24px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Over committing - taking on too many things at once - is a pretty established anti-pattern.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;When you have too much work in progress, you start to lose focus. You might be able to keep your head above water, but you end up just doing an okay job on everything, instead of doing a great job on anything.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Taking on a bunch of extra work and then not delivering is a big hit to your credibility. Crunch time comes and you feel the pressure; you start getting stressed and everything is on the verge of falling apart.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Okay, so I’ll avoid over committing to a bunch of stuff, you might say - I’ve got this all figured out!&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Well, not exactly.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Suppose your manager comes over and asks if you want to work on a speculative new project - it’s interesting technology but it’s going to require some extra work on your own time. You decide to pass on the opportunity. No problem.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Nothing undesirable happens immediately as a result - except that maybe your manager is a little bummed out. But maybe the next time one of these projects comes up, they’ll ask Bob first. Maybe that speculative project turns into a full fledged project and you missed your chance to work on it.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;What if you said yes to the initial offer, but didn’t follow through? You were gung-ho that afternoon but 2 weeks later, you’ve lost all interest. How is that perceived? Do you lack the ability to be a finisher?&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;With that in mind, do you go back in time and agree to the project even though you had 20 other things on your plate? The desire to not under commit and miss an opportunity has caused you to over commit!&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Maybe this isn’t an issue for anyone else - feel free to chime in and tell me I’m way over analyzing - but as a young developer trying to improve my craft and move up the hierarchy at work this is something I struggle with frequently.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I am a serial over committer.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I start new side projects when I find something that excites me - I hype myself up, maybe I start a series of blog posts but then it fizzles. I sign up to give talks almost every month, often with nothing more than a basic idea of what I’m going to be presenting about two weeks later.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Right now, I’m working on two extra work-related projects, helping organize a friendly blogging competition, finishing a book club and I signed up to pitch an idea for a new series of internal projects at the end of the month. This isn’t a badge of honor or something to brag about; I’ve committed myself to way more than I should have and it’s not sustainable.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;“But you never finish anything!” is a meme that co-workers jokingly needle me with.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It’s a flaw of mine that I’m trying to work on. I’m starting to learn why I do it - I don’t want to miss out on any opportunities. I want to be that go-to person, that expert, that guy who Gets Shit Done. And I’m impatient. And I have this irrational fear that I’ll miss that one magically project that I’ll love and another one will never come.&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-top: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I need to find the right balance of over/under committing. And striking that balance is a hard problem. Like cache invalidation hard.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-1997878913200904445?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/1997878913200904445/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/11/engineering-overunder-im-serial-over.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1997878913200904445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1997878913200904445'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/11/engineering-overunder-im-serial-over.html' title='Engineering - Over/Under: I&apos;m a Serial Over Committer'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5074739414882771659</id><published>2011-10-28T12:01:00.004+09:00</published><updated>2011-10-28T12:03:44.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>[CV] Microsoft's Productivity Future Vision (2011)</title><content type='html'>&lt;br /&gt;&lt;b&gt;Microsoft's Productivity Future Vision (2011)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Watch how future technology will help people make better use of their time, focus their attention, and strengthen relationships while getting things done at work, home, and on the go. (Release: 2011)&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/a6cNdhOKwi0" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;wow... great!!!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5074739414882771659?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5074739414882771659/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-microsofts-vision-of-future.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5074739414882771659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5074739414882771659'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-microsofts-vision-of-future.html' title='[CV] Microsoft&apos;s Productivity Future Vision (2011)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/a6cNdhOKwi0/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8120215210877085593</id><published>2011-10-28T11:34:00.000+09:00</published><updated>2011-10-28T11:34:40.955+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>[CV] OmniTouch - Demo Video - ACM UIST 2011</title><content type='html'>&lt;b&gt;OmniTouch - Demo Video - ACM UIST 2011&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.chrisharrison.net/index.php/Research/OmniTouch"&gt;http://www.chrisharrison.net/index.php/Research/OmniTouch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/Pz17lbjOFn8" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;great!!!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8120215210877085593?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8120215210877085593/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-omnitouch-demo-video-acm-uist-2011.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8120215210877085593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8120215210877085593'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-omnitouch-demo-video-acm-uist-2011.html' title='[CV] OmniTouch - Demo Video - ACM UIST 2011'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Pz17lbjOFn8/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-3379789268977765393</id><published>2011-10-28T00:12:00.001+09:00</published><updated>2011-10-28T00:12:19.542+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>[CV] Microsoft HoloDesk lets users handle virtual 3D objects</title><content type='html'>Microsoft Research 에서 연구하는 '홀로데스크' 입니다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.gizmag.com/holodesk-lets-users-handle-virtual-3d-objects/20257/"&gt;http://www.gizmag.com/holodesk-lets-users-handle-virtual-3d-objects/20257/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Microsoft HoloDesk lets users handle virtual 3D objects&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Video&lt;/b&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/JHL5tJ9ja_w" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;it's great!!!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-3379789268977765393?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/3379789268977765393/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-microsoft-holodesk-lets-users-handle.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3379789268977765393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3379789268977765393'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-microsoft-holodesk-lets-users-handle.html' title='[CV] Microsoft HoloDesk lets users handle virtual 3D objects'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/JHL5tJ9ja_w/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5821790404877854303</id><published>2011-10-23T11:42:00.000+09:00</published><updated>2011-10-23T11:42:38.139+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>Global Village Construction Set</title><content type='html'>&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.kickstarter.com/projects/622508883/global-village-construction-set"&gt;http://www.kickstarter.com/projects/622508883/global-village-construction-set&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Global Village Construction Set&lt;/b&gt;&lt;br /&gt;An Open Hardware project in Maysville, MO by Marcin Jakubowski&lt;br /&gt;&lt;br /&gt;&lt;a href="http://opensourceecology.org/"&gt;http://opensourceecology.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe frameborder="0" height="410px" src="http://www.kickstarter.com/projects/622508883/global-village-construction-set/widget/video.html" width="480px"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="225" src="http://player.vimeo.com/video/30171620?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/30171620"&gt;Global Village Construction Set - TED Talk&lt;/a&gt; from &lt;a href="http://vimeo.com/user2016419"&gt;Open Source Ecology&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="225" src="http://player.vimeo.com/video/16106427?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/16106427"&gt;Global Village Construction Set in 2 Minutes&lt;/a&gt; from &lt;a href="http://vimeo.com/user2016419"&gt;Open Source Ecology&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;꽤 멋지면서 흥미롭다. 흐흐 ^^&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5821790404877854303?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5821790404877854303/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/global-village-construction-set.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5821790404877854303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5821790404877854303'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/global-village-construction-set.html' title='Global Village Construction Set'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-106029048068136951</id><published>2011-10-23T11:02:00.000+09:00</published><updated>2011-10-23T11:02:38.108+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='느낌 좋은 글'/><title type='text'>How I Changed My Life, In Four Lines</title><content type='html'>&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://zenhabits.net/4/"&gt;http://zenhabits.net/4/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, sans-serif; font-size: 31px; font-weight: bold;"&gt;How I Changed My Life, In Four Lines&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Helvetica, sans-serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="post"&gt;&lt;blockquote style="border-left-color: rgb(165, 171, 171); border-left-style: solid; border-left-width: 2px; color: #666666; font-family: Helvetica, sans-serif !important; margin-bottom: 30px; margin-left: 10px; margin-right: 10px; margin-top: 30px; padding-bottom: 0px; padding-left: 12px; padding-right: 12px; padding-top: 0px;"&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;‘What saves a man is to take a step. Then another step.’&amp;nbsp;&lt;strong&gt;~C. S. Lewis&lt;/strong&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;h6 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 14pt; letter-spacing: 1.5px; line-height: 30px; margin-bottom: 18px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Post written by&amp;nbsp;&lt;a href="http://leobabauta.com/" style="border-bottom-color: rgb(192, 192, 192); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(192, 192, 192); border-left-style: none; border-left-width: 0px; border-right-color: rgb(192, 192, 192); border-right-style: none; border-right-width: 0px; border-top-color: rgb(192, 192, 192); border-top-style: none; border-top-width: 0px; color: #303030; text-decoration: none;"&gt;Leo Babauta&lt;/a&gt;.&lt;/h6&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;Changing your life can seem an incredibly tough and complicated thing, especially if you’ve failed a great number of times (like I did), found it too hard, and resigned yourself to not changing.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;But I found a way to change.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;And I’m not any better than anyone else, not more disciplined, not more motivated. I just learned a few simple principles that changed my life.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I’ve written about them many times, but realized they’re spread out all over the site.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;Here is how I changed my life, in a nutshell.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;&lt;strong&gt;tl;dr&lt;/strong&gt;&amp;nbsp;The four lines you’re looking for are at the bottom.&lt;br /&gt;&lt;span id="more-8809"&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;How I Started Running&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;In 2005 I was sedentary, and couldn’t for the life of me figure out how to make exercise a regular habit. At the end of 2006, not only was I running very regularly, I finished my first marathon. These days I can run a half marathon race at the drop of a hat, have run several marathons.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;How did I do it? I started with just 10 minutes of running a day. I focused not on how hard it was, but how much I enjoyed the movement and the outdoors. I increased slowly, until I could run 15 minutes, then 20, and later a couple hours. I was grateful for every run I was able to take.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I got healthier, fitter, slimmer, happier.&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;How I Started Eating Healthier&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;In 2005 I was overweight, and addicted to junk food. I ate fast food, chips and cookies, fried meats, anything fatty or sweet or salty … and I had no idea how to change. Today, I am 70 lbs. lighter, I eat almost all whole, real foods (almost nothing processed), I eat a sweet treat now and then but am happier eating healthy food.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;How did I change? I started with small changes like drinking more water, eating more fruits and veggies, cooking at home more and preparing my lunches for work. One at a time. I gradually improved my diet, eventually cleared my fridge and pantry of junk, and stopped going to fast food places. I found healthy foods I really loved. I was grateful for every delicious healthy meal I ate.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I felt better about myself, trimmed down, and feel great every single day.&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;How I Got Out of Debt&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;In 2005, I was way over my head in debt — it was so bad, I had creditors calling me, and I would ignore my phone calls. I struggled to make it paycheck to paycheck, and sometimes didn’t even make it — I had to borrow money from friends and family. It was one of the most stressful times of my life. At the end of 2007, I celebrated with my wife Eva when we paid off our last debt and were free!&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;How did I do it? I started one little change at a time: I started cutting back on expenses a little, saving a little at a time, paying off the little debts and then the bigger debts, found some breathing room, and saw the light at the end of the tunnel. I gradually changed my financial habits and got into better shape. I was grateful for every debt paid off, every dollar saved, every inch of breathing room.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I’m debt free and will never go back. It’s the most liberating thing ever.&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;And On and On&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I was planning on writing the same capsules for how I decluttered and simplified my possessesions, how I started focusing and accomplishing more, how I turned my passion into a living, and so on … but the truth is, the story starts to repeat itself.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;I used the same principles, over and over. More on that in the nutshell below.&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;And Then I Gave Up Goals&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;About two years ago, I started to give up goals. Just as an experiment.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;It turns out, I could still accomplish the same kinds of things, but I just didn’t plan it out. Instead, I just followed the same principles (more on those below). They still work, even without goals.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;People say I can give up goals because I’ve already accomplished a lot … but the truth is, I can give up goals because I have learned a few things that work, and realized they work with or without goals. And if you follow these things, you can change your life, with or without goals.&lt;/div&gt;&lt;h3 style="color: #666666; font-family: Helvetica, sans-serif; font-size: 24px; line-height: 15px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-indent: 0px;"&gt;The Nutshell Principles&lt;/h3&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;So what are the principles that changed my life, repeatedly?&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;If you read the brief stories above, you already know:&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;&lt;strong&gt;1. Start&amp;nbsp;&lt;a href="http://zenhabits.net/half/" style="border-bottom-color: rgb(192, 192, 192); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(192, 192, 192); border-left-style: none; border-left-width: 0px; border-right-color: rgb(192, 192, 192); border-right-style: none; border-right-width: 0px; border-top-color: rgb(192, 192, 192); border-top-style: none; border-top-width: 0px; color: #303030; text-decoration: none;"&gt;very small&lt;/a&gt;.&lt;br /&gt;2. Do only&amp;nbsp;&lt;a href="http://zenhabits.net/1/" style="border-bottom-color: rgb(192, 192, 192); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(192, 192, 192); border-left-style: none; border-left-width: 0px; border-right-color: rgb(192, 192, 192); border-right-style: none; border-right-width: 0px; border-top-color: rgb(192, 192, 192); border-top-style: none; border-top-width: 0px; color: #303030; text-decoration: none;"&gt;one change at a time&lt;/a&gt;.&lt;br /&gt;3. Be present and enjoy the activity (don’t focus on results).&lt;br /&gt;4. Be&amp;nbsp;&lt;a href="http://zenhabits.net/why-living-a-life-of-gratitude-can-make-you-happy/" style="border-bottom-color: rgb(192, 192, 192); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(192, 192, 192); border-left-style: none; border-left-width: 0px; border-right-color: rgb(192, 192, 192); border-right-style: none; border-right-width: 0px; border-top-color: rgb(192, 192, 192); border-top-style: none; border-top-width: 0px; color: #303030; text-decoration: none;"&gt;grateful&lt;/a&gt;&amp;nbsp;for every step you take.&lt;/strong&gt;&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;In programming, this is called an algorithm. It’s a series of steps that you can apply to make any change, no matter what your situation.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;It works. This is the Zen Habits method, the Change Your Life App, in four lines. I hope it helps.&lt;/div&gt;&lt;div style="color: #333333; font: normal normal normal 20px/normal 'Hoefler Text', Georgia, bodyfont, serif; line-height: 30px !important; margin-bottom: 10px; text-indent: 0px;"&gt;&lt;strong&gt;Update&lt;/strong&gt;: If this method helps you, please share it on&amp;nbsp;&lt;a href="https://docs.google.com/document/d/1iUxQWKZ9KyB2o2SxvnUTBszeFdsOH4YrUcTLZ_PVMIY/edit?hl=en_US" style="border-bottom-color: rgb(192, 192, 192); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(192, 192, 192); border-left-style: none; border-left-width: 0px; border-right-color: rgb(192, 192, 192); border-right-style: none; border-right-width: 0px; border-top-color: rgb(192, 192, 192); border-top-style: none; border-top-width: 0px; color: #303030; text-decoration: none;"&gt;this public document I’ve created&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;우리는 아래 네 가지를 이미 잘 알고 있음에도 불구하고 종종 잊어버리는 것 같다.&lt;br /&gt;&lt;br /&gt;1. Start very small.&lt;br /&gt;2. Do only one change at a time.&lt;br /&gt;3. Be present and enjoy the activity (don’t focus on results).&lt;br /&gt;4. Be grateful for every step you take.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-106029048068136951?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/106029048068136951/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/how-i-changed-my-life-in-four-lines.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/106029048068136951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/106029048068136951'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/how-i-changed-my-life-in-four-lines.html' title='How I Changed My Life, In Four Lines'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-1348227754111317823</id><published>2011-10-18T23:44:00.000+09:00</published><updated>2011-10-18T23:44:13.997+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UrbanDictionary'/><title type='text'>몽골어 사전 (Mongolian Dictionary) 모음</title><content type='html'>&lt;b&gt;몽골어 사전 (Mongolian Dictionary) 모음&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;몽골어 사전 관련 link&lt;br /&gt;유용할 것 같아서 포스트 해봅니다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.lexilogos.com/english/mongolian_dictionary.htm"&gt;http://www.lexilogos.com/english/mongolian_dictionary.htm&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bolor-toli.com/"&gt;http://www.bolor-toli.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;여긴 검색 버튼 누른 후 화면이 출력되면 재빨리 'Esc' 키를 눌러야 한다.&lt;br /&gt;&lt;a href="http://asuult.asuultserver.com/dic/hailtiin_hariu.php"&gt;http://asuult.asuultserver.com/dic/hailtiin_hariu.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;출력내용 중에 (&amp;nbsp;&lt;i&gt;setTimeout("...'http://www3.asuultserver.com/forum/'", 200);...&lt;/i&gt;&amp;nbsp;)&lt;br /&gt;이런 부분이 나오면서 다음 페이지가 나오기 때문...&lt;br /&gt;[Error page]&lt;br /&gt;-&amp;gt; Not Found&lt;br /&gt;-&amp;gt; The requested URL /forum/ was not found on this server.&lt;br /&gt;오늘 October 18, 2011 현재 위의 에러가 나온다.&lt;br /&gt;&lt;br /&gt;하지만 검색 자체에 문제는 없고, 결과 page 쪽에 문제가 있는 것이라서&lt;br /&gt;'Esc' 를 누르면 정상적으로 이용 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-1348227754111317823?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/1348227754111317823/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/mongolian-dictionary.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1348227754111317823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1348227754111317823'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/mongolian-dictionary.html' title='몽골어 사전 (Mongolian Dictionary) 모음'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4640125679180115169</id><published>2011-10-18T17:40:00.000+09:00</published><updated>2011-10-18T17:40:23.610+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><title type='text'>Stunning "ISAM" live tour combines 3D sets, CG visuals, and crazy math</title><content type='html'>&lt;b&gt;Stunning "ISAM" live tour combines 3D sets, CG visuals, and crazy math&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://arstechnica.com/gadgets/news/2011/10/stunning-isam-live-tour-combines-3d-sets-cg-visuals-and-crazy-math.ars"&gt;http://arstechnica.com/gadgets/news/2011/10/stunning-isam-live-tour-combines-3d-sets-cg-visuals-and-crazy-math.ars&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ISAM trailer&lt;/b&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/WWai4UZ0OqI" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Longer ISAM trailer&lt;/b&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/WLrt7-kIgIM" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Okay, i know what is this "Audio-Visual" for right now...&lt;br /&gt;wow... great ever!!!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4640125679180115169?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4640125679180115169/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/stunning-isam-live-tour-combines-3d.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4640125679180115169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4640125679180115169'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/stunning-isam-live-tour-combines-3d.html' title='Stunning &quot;ISAM&quot; live tour combines 3D sets, CG visuals, and crazy math'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/WWai4UZ0OqI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8433896235203842794</id><published>2011-10-18T17:07:00.001+09:00</published><updated>2011-10-18T17:07:58.304+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Article and Journal'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[CV] Cool tech demo: match 3D models into archive photos</title><content type='html'>&lt;b&gt;Cool tech demo: match 3D models into archive photos&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.cgchannel.com/2011/10/cool-tech-demo-match-3d-models-into-archive-photos/"&gt;http://www.cgchannel.com/2011/10/cool-tech-demo-match-3d-models-into-archive-photos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="300" src="http://player.vimeo.com/video/28962540?title=0&amp;amp;byline=0&amp;amp;portrait=0" webkitallowfullscreen="" width="400"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/28962540"&gt;Rendering Synthetic Objects into Legacy Photographs&lt;/a&gt; from &lt;a href="http://vimeo.com/kevinkarsch"&gt;Kevin Karsch&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Author:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Kevin Karsch&lt;br /&gt;&amp;nbsp;PhD Student, UIUC&lt;br /&gt;&amp;nbsp;karsch1 [at] uiuc [dot] edu&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://kevinkarsch.com/publications/sa11.html"&gt;http://kevinkarsch.com/publications/sa11.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;wow, this is the best ever!!!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8433896235203842794?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8433896235203842794/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-cool-tech-demo-match-3d-models-into.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8433896235203842794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8433896235203842794'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/10/cv-cool-tech-demo-match-3d-models-into.html' title='[CV] Cool tech demo: match 3D models into archive photos'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5825121302892097095</id><published>2011-09-29T11:09:00.002+09:00</published><updated>2011-09-29T11:09:44.471+09:00</updated><title type='text'>THE BRAIN VS THE MIND</title><content type='html'>&lt;b&gt;THE BRAIN VS THE MIND&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://bennesvig.com/the-brain-vs-the-mind/"&gt;http://bennesvig.com/the-brain-vs-the-mind/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Right now I’m fighting the temptation for a second small piece of cheesecake. It’s 15 feet from me in the refrigerator and I’m hungry. That doesn’t make good math.&lt;br /&gt;&lt;br /&gt;But then my mind interrupts my brain and I’m back to focusing on work.&lt;br /&gt;&lt;br /&gt;Life is a continual struggle between the brain and mind. The brain is focused on the short term and seeks pleasure while the mind has the end in mind. If you just obey your brain, you’ll quickly be fat, jobless, and out of luck.&lt;br /&gt;&lt;br /&gt;Being successful in any activity requires empowering the mind over the brain. The brain gets distracted, tired, lazy, craves safety, and always has a reason to delay doing something.&lt;br /&gt;&lt;br /&gt;The mind focuses on what you really want.&lt;br /&gt;&lt;br /&gt;The brain wants cheesecake. The mind wants to lose 5lbs.&lt;br /&gt;&lt;br /&gt;The brain wants to put off publishing a blog post because it might not be ready. The mind publishes because ideas need air.&lt;br /&gt;&lt;br /&gt;If you want to accomplish any of your goals it requires giving your mind priority over your brain.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;다음 문장이 참 인상적이다..&lt;br /&gt;"If you just obey your brain, you’ll quickly be fat, jobless, and out of luck."&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5825121302892097095?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5825121302892097095/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/09/brain-vs-mind.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5825121302892097095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5825121302892097095'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/09/brain-vs-mind.html' title='THE BRAIN VS THE MIND'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-724738804990126335</id><published>2011-09-23T15:16:00.000+09:00</published><updated>2011-09-23T15:16:23.404+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Article and Journal'/><title type='text'>모바일앱 시장현황 및 마케팅을 위한 25가지 방법</title><content type='html'>&lt;b&gt;모바일앱 시장현황 및 마케팅을 위한 25가지 방법&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.slideshare.net/makiind/25-9364639"&gt;http://www.slideshare.net/makiind/25-9364639&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_9364639" style="width: 425px;"&gt; &lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/makiind/25-9364639" target="_blank" title="모바일앱 시장현황 및 마케팅을 위한 25가지 방법 "&gt;모바일앱 시장현황 및 마케팅을 위한 25가지 방법 &lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9364639" width="425"&gt;&lt;/iframe&gt; &lt;div style="padding: 5px 0 12px;"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/makiind" target="_blank"&gt;마킨드(makiind)&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-724738804990126335?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/724738804990126335/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/09/25.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/724738804990126335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/724738804990126335'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/09/25.html' title='모바일앱 시장현황 및 마케팅을 위한 25가지 방법'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4812211185525297241</id><published>2011-09-22T14:34:00.000+09:00</published><updated>2011-09-22T14:34:51.609+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='훈훈한 소식'/><title type='text'>Behance Conference</title><content type='html'>&lt;b&gt;Behance&lt;/b&gt; Conference (&lt;a href="http://the99percent.com/"&gt;http://the99percent.com/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;1% Inspiration&lt;br /&gt;99% Perspiration&lt;br /&gt;&lt;br /&gt;Ji&amp;nbsp;LEE&lt;br /&gt;Google Creative Labs&lt;br /&gt;Creative Director&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=n8HllU3e6zI&amp;amp;feature=player_embedded#!"&gt;http://www.youtube.com/watch?v=n8HllU3e6zI&amp;amp;feature=player_embedded#!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/n8HllU3e6zI" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;오랜만에 정말 괜찮은 발표를 본 것 같아서 기분이 참 좋다... ^^&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4812211185525297241?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4812211185525297241/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/09/behance-conference.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4812211185525297241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4812211185525297241'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/09/behance-conference.html' title='Behance Conference'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/n8HllU3e6zI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-1178748700288673148</id><published>2011-09-14T23:37:00.001+09:00</published><updated>2011-09-14T23:39:50.920+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Article and Journal'/><title type='text'>서비스디자인 시대가 온다</title><content type='html'>&lt;b&gt;서비스디자인 시대가 온다 - 2/3 - Presentation Transcript&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.slideshare.net/usableweb/23-4688147"&gt;http://www.slideshare.net/usableweb/23-4688147&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="__ss_4688147" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/usableweb/23-4688147" target="_blank" title="서비스디자인 시대가 온다 - 2/3"&gt;서비스디자인 시대가 온다 - 2/3&lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/4688147" width="425"&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/usableweb" target="_blank"&gt;Seong-won Yoon&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; font-weight: bold; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; font-weight: bold; line-height: 18px;"&gt;서비스디자인 시대가 온다 - 2/3 - Presentation Transcript&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol class="transcripts h-transcripts" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; list-style-image: initial; list-style-position: inside; list-style-type: decimal; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자인 시대가 온다 2010. 7. 한국디자인진흥원 정책개발팀 윤성원&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;UX디자인과 서비스디자인&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;“user experience design” ‘사용자경험디자인’ 키워드 검색 양상 2004년부터, 미국 주도 사용&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;“service design” ‘서비스디자인’ 키워드 검색 양상 오래 전부터, 전세계 고른 분포&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;“service science”&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;“service marketing”&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"service engineering"&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;개념 경쟁의 선두는? 80 60 40 20 service service service service engineering marketing science design&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;현재 일반적으로 받아들여지고 있는 UX와 관련 분야간 관계 출처 : 더 나은 사용자 경험(UX)을 위한 『인터랙션 디자인』, 댄 새퍼&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;현재 일반적으로 받아들여지고 있는 UX, 서비스디자인, 관련 분야간 관계 출처 : 오경순 SADI UX 교수, 2009&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;현재 일반적으로 받아들여지고 있는 UX의 정의와 관련 분야와의 포함 관계 CX(Customer Experience)는 광고, 포장, 제품, 서비스, 사용성, 신뢰도, 고객관리 등 기업이 제공하는 모든 요소를 포함(2007.02, 메이어&amp;amp;슈워거) 일반적으로 UI(User Interface)가 사용자와 대상간의 &amp;lt;대면부분&amp;gt;에서 발생되는 요소 라 한다면 CX는 이보다 훨씬 광의로 사용됨. CX와 UI의 중간 단계가 UX인데 ‘고객 경험’과 ‘사용자경험’은 일치할 수도, 안 할 수도 있음. User User Customer GUI Interface Experience Experience * 현재 국내에서는 일반적으로 CX와 UX는 거의 동일 개념으로 사용되고 있음 출처 : 민영삼 The DNA 대표, 2008&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;UX디자인과 서비스디자인의 관계 GUI / UX / CX User Customer 협의의 ‘사용자’란? ‘복잡한 기기IT관련제품 조작자로서의 고객’ 을 한정하여 의미&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;UX디자인과 서비스디자인의 관계 GUI UX CX Design =Service Design&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;물적가치 중심의 경제에서 경험가치 중심의 경제로 출처 : http://www.slideshare.net/servicedesign/designing-services&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;“가치 기준이 변했다” 출처 : 오경순 SADI UX 교수, 2008&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;아이폰의 성공요인은? 가격? 성능? 디자인? 브랜드 로열티? 앱스토어?&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;아이폰처럼 성공하려면? 제품이 아니라 고객이 서 비스를 이용하는 경험을 향상시켜야 한다 제품 소유-폐기에 이르기 까지 상관된 전 프로세스 를 디자인해야 한다&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자인이 다루는 범위&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service Design terminologies 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service System Scopes The Massage Experience Touchpoint&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service System Scopes Touchpoint 인테리어디자인 전통적 디자인의 영역 제품디자인 CI디자인 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service System Scopes Touchpoint Touchpoint 패키지디자인 웹디자인 전통적 디자인의 영역 전통적 디자인의 영역 그래픽디자인 제품디자인… 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service System Scopes 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service System Scopes Portfolio of Methods : 서비스디자인 방법론 CX디자인 방법론 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자이너가 하는 일&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자이너들은 어떤 일을 하는가? Liveㅣwork 출처 : http://vimeo.com/5936503&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자이너들은 어떤 일을 하는가? 1. 서비스디자이너는 고객이 서비스 이용 시 겪게 되는 모든 경험들을 주의 깊게 관찰한다. Touchpoint, Stakeholder 관계도 2. 서비스디자이너는 서비스들을 손으로 만질 수 있고, 눈으로 볼 수 있는 형태로 만든다. Customer Journey Map, Service Blueprint, Service Prototyping 3. 서비스디자이너는 새로운 가치를 창출하는 서비스 컨셉을 제시한다.&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;1. 고객이 서비스 이용시 겪게 되는 모든 경험들을 주의 깊게 관찰한다. 고객으로서 직접 경험해보기 렉서스 개발팀 이야기의 교훈… 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;2. 서비스들을 손으로 만질 수 있고, 눈으로 볼 수 있 는 형태로 만든다. 서비스 스케이프 모형 개발 서비스 실연 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;3. 새로운 가치를 창출하는 서비스 컨셉을 제시한다. “열차가 아니라 여행을 디자인하라” 1999. IDEO 팀 브라운 출처 : 피어인사이트 발표자료, 2005(IDEO의 아셀라 고속철도서비스 프로젝트, 1999) 열차의 좌석디자인에서 시작된 일이 ‘21C철도교통의 새 비전’을 제시하다&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;이제까지의 디자인프로세스&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The 'double diamond' design process model 출처 : The 'double diamond' design process model, 영국 디자인카운슬 http://www.designcouncil.org.uk&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The 'double diamond' design process model 출처 : RED Project Report, 영국 디자인카운슬 http://www.designcouncil.org.uk&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;사용자경험디자인과 서비스디자인의 방법론&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;UX디자인을 위해서는 사용자 욕구를 이해하는 것이 중요! 리서치가 중요해짐&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;리서치의 성격 생성리서치 평가리서치 generative research evaluative research 아이디어 평가를 위함 목적 아이디어를 찾기 위함 문제를 발견하기 위함 특징 정성적, 맥락적 정량적 적절한 기준 만들기, 필요역량 창의적 해석 셈하기 사용자관찰, 사용성 테스트, 방법론 예 포커스그룹인터뷰 성능판정테스트 * 사용자경험에 미쳐라, 피터 머홀즈 외, 2009, 81~86page 내용 중 인용, 일부 수정&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;해외 주요 서비스디자인기업의 서비스디자인 프로세스 출처 : 서비스디자인 측면에서 공공서비스평가 방향연구, 이화여자대학교 석사학위 논문, 2009, 한수련&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;UX디자인 프로세스와 방법론 기본 프로세스가 동일하며 실행 방법도 매우 유사하나, 다른 점이 있다. 출처 : http://project.cmd.hro.nl/cmi/hci/toolkit/index.php&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;디자인방법론과 다른 서비스디자인 방법론&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : 고객과 공급자간의 다양한 유형의 접촉점을 정의하고 시각화시키기 위해 사용하는 방법&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service Inventory 터치포인트 정의하기&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Service Inventory 터치포인트 정의하기&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : touchpoint card&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : 서비스의 이해관계자를 정의하고, 고려해야 할 역학 관계를 총체적으로 파악하기 위해 사용하는 방법&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Stakeholder motivation matrix •원문 출처 : Arnold Tukker &amp;amp; Ursula Tischner(2006), ‘New Business for Old Europe’ •출처 : 공공서비스 융합 서비스모델 개발 표준가이드, 2009, 베타리서치앤컨설팅&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스 시각화 사례 호텔 도서대여 서비스&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Customer Journey Map 고객이 서비스를 경험하게 되는 과정을 정의하고, 그 과정에서 생기는 고객 체험을 시각화하기 위해 사용하는 방법 출처 : 피어인사이트 발표자료, 2005(IDEO의 아셀라 고속철도서비스 프로젝트, 1999)&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : Adaptive path (Learn English)&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Customer Journey Map 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : Maya design (Persona profiles &amp;amp; CJ Map)&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : experience solutions(Gym Sign up)&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : nForm&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : nForm&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map Case : nForm&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Customer Journey Map “Experience wheel”, Bruce Temkin&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : emotional journey map&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : emotional journey map 출처 : IDEO&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : 보이지 않는 서비스를 가시화하여 문제를 찾고 혁신하기 위해 사용하는 방법 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 전형적인 서비스블루프린트의 예 Customer Customer Customer Arrives pays bill Customer Journey Customer Customer waits receives order Customer departs Touchpoint LINE OF CUSTOMER INTERACTION Greet Take order Server bags Server Contact Person Customer order delivers order LINE OF VISIBILITY Order Order transferred Prepared to kitchen LINE OF INTERNAL Support Process Sales tracked INTERACTION 출처 : Thomson Corporation, 2008&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 전형적인 서비스블루프린트의 예 Customer Customer Customer Customer Customer Customer 전통적인 Design이bill Arrives pays 다루는 범위(Touchpoint에 해당되는 Design) waits receives order departs 커뮤니케이션디자인 커뮤니케이션디자인 커뮤니케이션디자인 인테리어디자인 인테리어디자인 인테리어디자인 LINE OF CUSTOMER 제품디자인 제품디자인 제품디자인 INTERACTION Customer Take order Greet eXperience order Design이 다루는 범위 Server bags Server Contact Person Customer delivers order LINE OF VISIBILITY Order Order transferred Prepared to kitchen Service Design이 다루는 범위 OF INTERNAL LINE Support Process Sales tracked INTERACTION 출처 : Thomson Corporation, 2008&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 물리적대상 고객행동 상호작용선 대면 서비스제공자 가시선 비대면 서비스제공자 내부상호작용선 지원 프로세스 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 출처 : http://farm4.static.flickr.com/3624/3363169836_a71515444e_o.png&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 출처 : http://www.slideshare.net/jlbove/designing-the-intangible-an-introduction-to-service-design-presentation&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Blueprint 출처 : http://www.servicedesigntools.org/sites/default/files/res_images/BLUEPRINT_03.jpg&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : 일단 실행하고, 반복 수정하면서 구체화하는 방법&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Paper Prototyping&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Paper Prototyping&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : LEGO Prototyping 출처 : Creative Lapland Seminar 2010 발표자료 중, Stefan Moritz&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Experience Prototyping 출처 : CAN YOU DESIGN A SERVICE?, 1508 (덴마크의 서비스디자인기업)&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Experience Prototyping 맥도널드 매장내 서비스 경험 출처 : 서비스R&amp;amp;D국제컨퍼런스, 빌모그리지 발표자료 중, 2009&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Experience Prototyping 출처 : Ministerie van Economische Zaken www.ez.nl 2010&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Methods &amp;amp; tools : Service Experience Prototyping 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;서비스디자인의 특징 서비스디자인기업 직원은 물론, 고객사와 고객사의 최종사용자가 함께 문제를 정의하고 해결책을 만든다 디자인사고Design Thinking를 강조한다 서비스디자인 방법론을 사용한다 가능한 서비스에 대한 모든 것을 시각화 하고 구체화한다 출처 : 엔진, 리브워크 등&lt;/li&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: inherit; font-size: 12px; font-style: inherit; margin-bottom: 0.7em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;join me! Mail, MSN, Nate-on : design@naver.com www.usableweb.co.kr 디자인계가 중심이 되어 서비스디자인에 대한 논의와 연구를 시작해야 할 때입니다. 동참하실 분께선 연락 바랍니다.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-1178748700288673148?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/1178748700288673148/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/09/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1178748700288673148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1178748700288673148'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/09/blog-post.html' title='서비스디자인 시대가 온다'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8047551373179175673</id><published>2011-08-19T22:30:00.002+09:00</published><updated>2011-08-22T01:41:31.931+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='훈훈한 소식'/><title type='text'>LG전자를 떠나며 CEO에게 남긴 글</title><content type='html'>아래 글은 많이 복사해서 비단 국내 IT 뿐만 아니라,&lt;br /&gt;국내 모든 경영자들에게 이메일로 보내야 한다고 생각한다.&lt;br /&gt;&lt;br /&gt;우리나라 IT... 개발 및 근무환경... ? 물론 좋다고 생각한다. 좋은 곳도 많다.&lt;br /&gt;하지만 아직 멀었다. 소프트웨어 개발자들???... 대접을 바라는 것이 아니다.&lt;br /&gt;기계처럼 찍어 내거나, 기계에 들어가는 일련의 부속품이 아니라는 것이다.&lt;br /&gt;&lt;br /&gt;"애플? 구글? 페이스북? ... 우리는 왜 그들과 같은 인재가 없나?"&lt;br /&gt;이런 얘기 신문, 방송에서 나올때면 한숨만 나온다.&lt;br /&gt;&lt;br /&gt;한 가지 재미있는 얘기를 하자면,&lt;br /&gt;회사에서 어느날 아이디어 공모를 한다며 전사원에게 메일을 보냈다.&lt;br /&gt;내용을 대충 요약하면 다음과 같다.&lt;br /&gt;"이번달 xx까지 아이디어 및 구현 결과물을 제출하면,&amp;nbsp;1등은 000원, 2등은 000원,&lt;br /&gt;등등... 이며, 제출된 아이디어 및 결과물은 회사에 귀속된다."&lt;br /&gt;&lt;br /&gt;참 재미있지 않는가? 이런식의 회사는 당장 어떻게든 돈은 많이 벌어서&lt;br /&gt;매출과 자본금은 늘릴 수 있을지 몰라도 절대 발전할 수 없다고 생각한다.&lt;br /&gt;&lt;br /&gt;위의 이야기가 이해가 되질 않는다면, 다시한 번 읽어보면서&lt;br /&gt;내가 전달하고자 하는 의미는&amp;nbsp;잘 생각해보면 알 것이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;여튼, 음... 곧 개봉하는 인도 영화 "세 얼간이" 꼭 보길 바란다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;요즘 기사를 보면 모 회사들 간부들이 해외 대학들에 가서 석/박사급 인재들에게&lt;br /&gt;기술세미나 및 회사관련 홍보를 한다고 하는데,&lt;br /&gt;&lt;br /&gt;인재를 해외에서만 찾지 말고 국내에서 찾아 보길 바랍니다.&lt;br /&gt;인재가 꼭 석/박사만 있는것은 아니라는 걸 알았으면 하는데,&lt;br /&gt;느낀건 그러한 학력들이 곧 인재이며 그들을 원한다는 것이다.&lt;br /&gt;&lt;br /&gt;제발로 들어온 인재를 발로 차버리는 실수를 계속 반복하면서&lt;br /&gt;과연 해외에 나가선 잘 찾을 수 있을지...&lt;br /&gt;그러한 인재들이 현재의 이러한 회사들을 보고 제발로 들어올지...&lt;br /&gt;차~암 궁금하다...&lt;br /&gt;&lt;br /&gt;아래 글, 공감이 참 많이 가는 글입니다.&lt;br /&gt;같은 회사는 아니지만, 비슷한 얘기로 저도 CEO/CTO 님에게 이메일이라도&lt;br /&gt;보내고&amp;nbsp;퇴사할 걸 그랬나 봅니다. 저도 5년 가까이, 정도 많이 들고 애착도 가지만,,,&lt;br /&gt;마지막에는 그러한 마음이 들지 않았는지도...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------&lt;br /&gt;이하 복사한 글...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&amp;nbsp;&lt;/b&gt;&lt;a href="http://ppassa.wordpress.com/2011/08/16/leaving_lg/"&gt;http://ppassa.wordpress.com/2011/08/16/leaving_lg/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 class="entry-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: black; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 21px; font-weight: bold; line-height: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;LG전자를 떠나며 CEO에게 남긴&amp;nbsp;글&lt;/h1&gt;&lt;div class="entry-meta" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="meta-prep meta-prep-author" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Posted on&lt;/span&gt;&amp;nbsp;&lt;a href="http://ppassa.wordpress.com/2011/08/16/leaving_lg/" rel="bookmark" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="1:23 pm"&gt;&lt;span class="entry-date" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;2011/08/16&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;span class="meta-sep" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;by&lt;/span&gt;&amp;nbsp;&lt;span class="author vcard" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a class="url fn n" href="http://ppassa.wordpress.com/author/ppassa/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="View all posts by ppassa"&gt;ppassa&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="entry-content" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 12px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;지난 4월 퇴사를 하면서, 그동안 생각했던 바를 정리해서 CEO에게 메일을 보냈다. 아쉽게도 CEO로부터 답장은 받지 못했다. 사실 CEO가 답장을 할 회사라면 그렇게 떠나지도 않았겠다라는 생각이 드니, 그렇게 아쉽지는 않았다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;물론, 메일이라는 것이 개인적인 것이라 이렇게 공개하는 것이 안맞는 것일지 모르나,&amp;nbsp;메일 내용에 사적인 내용은 없고,&amp;nbsp;이러한 울림이 커져서 LG전자가 방향을 바로 잡는데 도움이 되었으면 좋겠기에 이곳에 올린다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;——————————————————————————————-&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(2011년 4월 12일)&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;안녕하세요, 구본준 CEO님.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;저는 CTO소속의 최세윤 선임연구원입니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;구본준 CEO님께서는 다른 분들의 의견을 경청한다는 이야기를 들은 적이 있습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;이제 곧 퇴사를 앞두고, 제가 사랑하는 우리 회사의 발전을 위해서, 지난 5년동안 LG전자에서 느낀 점들을 용기를 내어 적어봅니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;아마 CEO님께서 여러 채널을 통해 들으신 내용이 있을 수도 있을 것 같지만, 혹시나 하는 마음에 면식도 없지만 결례를 무릎 쓰고 메일을 보냅니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;제가 느낀 점 중에 우리 LG전자가 바뀌었으면 하는 부분을 2가지 관점에서 말씀 드리겠습니다. 물론, 우리회사에서 잘하고 있는 것들도 많지만 이 부분은 생략하도록 하겠습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;- Innovation&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;저는 우리회사가&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;진정으로 Innovation을 하는 회사가 되었으면&lt;/span&gt;&amp;nbsp;합니다. 그리고, 그렇지 않으면 살아 남을 수 없다고 생각합니다. 하지만 연구원으로서 제가 느낀 바로는, Innovation을 하는 회사가 아니라, Innovation을 하겠다고 ‘주장’만 하는 회사처럼 보입니다. Innovation은 risk-taking이 가능한 문화 속에서 가능하다고 생각합니다. 그런데, 지금 우리 회사의 연구환경은 우리&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;연구원들이 risk-taking 할 수 있는 연구환경이&lt;/span&gt;&amp;nbsp;아닌 것 같습니다. 아이디어가 구현될 지도 확실치 않은데, 프로젝트 초기부터 ROI를 계산하는 것은 뭔가 맞지 않은 것 같은 생각이 듭니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;그리고, 또 큰 문제 중의 하나가&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;지나친 ‘보안(security)’ 강조&lt;/span&gt;&amp;nbsp;입니다. 보안이 중요하지 않다는 것은 아닙니다. 문제는 보안을 지나치게 강조하면서 생기는&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;엄청난 ‘기회비용’&lt;/span&gt;입니다. 이런 기회 비용은 계산하기 힘들어서 그렇지 분명이 엄청 크다고 생각합니다.&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;몇 가지 예&lt;/span&gt;를 들어 보겠습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;저는 아이디어를 얻는 데에 인터넷만큼 좋은 곳이 없다고 생각합니다. 그런데&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;보안이라는 이유로 접근이 막힌 사이트들이 의외로 많습니다&lt;/span&gt;. 오늘도 KT의 클라우드(cloud) 서비스를 알아보기 위해&amp;nbsp;&lt;a href="http://ucloud.com/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0066cc; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;http://ucloud.com&lt;/a&gt;을 접근 하려 하니 막혀 있었습니다. 어떤 사이트들을 막았고, 어떤 이유로 막았는지 연구원에게 전혀 공지는 없습니다. 연구원들은 그저 받아들일 뿐입니다. 아이디어 조사 차원으로, 그리고 기술에 대한 궁금중으로 인터넷에서 검색하다가 이렇게 접근조차 막히면, 대부분 포기할 수밖에 없습니다. LG전자가 앞으로 크게 수익을 낼 수 있는 제품을 만들 기회를, 그 동안 이런 이유로 놓치지 않았다고 장담하기는 어려울 것 같습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;또, HE본부의 경우 소프트웨어 개발자들이 보안 상의 이유로,&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;개인 컴퓨터가 아닌 중앙서버에 접속 후 작업&lt;/span&gt;을 합니다. 문제는 중앙 서버로 데이터를 넣고 빼는 것이 매우 불편하기 때문에 개발자들이 보고 자료라도 만들려고 하면, 중앙서버에 접속해서 내용을 화면으로 보면서 로컬컴퓨터에서 다시 타이핑해서 만들어야 합니다. 또, 개발자들이 필요한 프로그램이 중앙서버에 없으면, 담당자에게 신청해서 설치해야 합니다. 몇 일이 걸리는 일이고, 설치된다는 보장도 없습니다. 개발자들은 불편한 환경에서 제한된 사고의 자유를 가지고 개발해야 합니다. 정확히 그 비용을 계산하기는 힘들지만 개발자들의 생산성을 엄청나게 갉아먹고 있는 것은 분명합니다. 이 얼마나 우스운 광경입니까. 저는 DTV 기술의 경우 아주 일부를 제외하고는 이제 일반화되었다고 생각하는데, 굳이 모든 정보를 지금처럼 중앙 서버에서 해야 하는 지에 대해서 의문이 갑니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&amp;nbsp;&lt;/strong&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;조직 문화&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;저는 이전에 벤처 회사를 다녔는데, 지금 우리 회사에서 제일 안타까운 것 중에 하나가&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;자유로운 토론 문화의 부재&lt;/span&gt;입니다. 자유롭게 의견을 개진하고 합리적인 의사 결정이 이루어져야 할 텐데 그렇지 않은 경우가 많이 있습니다. 특히 ‘Top management(CEO/CTO)나 연구소장의 코멘트가 있었다’라고 이야기 되면, 그 진위 여부나 이유에 대해서는 논의가 없고 바로 그 코멘트에 맞게 의사 결정이 납니다. 또, 경쟁사, 특히 삼성이 어떻게 한다더라 하면 이 역시 비판적인 토론 없이 의사 결정이 많이 나버립니다. 비록 top에서 코멘트가 있는 경우라도, 또 경쟁사가 그렇게 하더라도, 의사 결정 시에 관련자들이 반드시 이유를 이해하고 필요하면 이를 반박할 수 있는 조직 문화가 되어야, 진정으로 고객이 원하는 제품을 만들 수 있을 거라고 생각합니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;또, 회사에서 많이 듣는 이야기 중에 하나가 ‘&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;주인의식&lt;/span&gt;을 가져라’입니다. 저는 주인의식은 주인이 되어야 갖는 의식이라고 생각합니다.&amp;nbsp;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline; vertical-align: baseline;"&gt;회사에서 연구원들을 주인이라고 생각하고 대해주지 않는데 주인의식이 생길 리가 만무합니다.&lt;/span&gt;&amp;nbsp;최근에 서초 R&amp;amp;D 캠퍼스에서는 본부/연구소를 불문하고, 지각을 체크해서 각 조직 별로 통계를 매일 보고 하겠다는 이야기를 들었습니다. 또, 화장실에는 ‘기본을 지키자’며 ‘슬리퍼를 신지 말라’, ‘복장을 단정히 해라’, ‘식사 시간을 준수해라’ 등의 문구가 붙어 있습니다. 분명 이런 것들이 중요하기는 하겠지만, 이렇게 전면적으로 연구원들에게 이야기하는 건, 연구원들을 주인으로 대하는 것이 아니라 철부지 중고생으로 대하는 것이 아닌가 생각합니다. 최근에 ‘Rework’란 책을 보니, ‘직원을 13살짜리 아이처럼 대하지 말라’라는 내용이 있었는데 참으로 뜨끔한 내용이었습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;저는 LG전자를 사랑합니다. 저는 우리 회사에서 참 많은 걸 배웠습니다. 그리고 총각으로 입사해서, 이제는 돌이 지난 아이 아버지가 되었습니다. 젊은 시절 제가 열심히 일한 회사가 앞으로도 계속 성장해나가기를 진심으로 바라고 있습니다. 새로 부임하신, 그리고 저의 학과 선배이시기도 한 구본준 CEO님께서 분명히 그렇게 해주시리라 믿고, 저는 또 새로운 도전을 향해 떠나도록 하겠습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;LG전자와 모든 구성원의 건승을 항상 기원하고 응원하겠습니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;감사합니다.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;최세윤&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8047551373179175673?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8047551373179175673/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/08/lg-ceo.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8047551373179175673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8047551373179175673'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/08/lg-ceo.html' title='LG전자를 떠나며 CEO에게 남긴 글'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-7746602178705860961</id><published>2011-07-02T01:35:00.001+09:00</published><updated>2011-07-02T01:36:29.958+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project'/><title type='text'>TransTweet</title><content type='html'>&lt;b&gt;* Codename:&lt;/b&gt; TransTweet&lt;br /&gt;&lt;b&gt;* Project home:&lt;/b&gt; &lt;a href="http://code.google.com/p/transtweet/"&gt;http://code.google.com/p/transtweet/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;* License:&lt;/b&gt; GNU GPL&lt;br /&gt;&lt;b&gt;* Distribution:&lt;/b&gt;&amp;nbsp;APK, Source code (Not available for now)&lt;br /&gt;&lt;br /&gt;Android 용 번역 App 입니다.&lt;br /&gt;"Sharing" (보내기, 공유하기, 등등) 을 지원하는 App 에서 사용가능 합니다.&lt;br /&gt;App 내에서 "Sharing" 을 이용해서 여러나라 언어를 바로 번역해서 보실 수 있습니다.&lt;br /&gt;&lt;br /&gt;TransTweet 은 원래 Twitter 번역만 지원을 하려고 했으나 필요에 의해서&lt;br /&gt;트위터 번역 뿐만 아니라 다른 App 에서도 사용가능 합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Screenshots&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5_1lfMTymdc/Tg3vs-qqzXI/AAAAAAAAAc4/vk3rDupK77A/s1600/device1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-5_1lfMTymdc/Tg3vs-qqzXI/AAAAAAAAAc4/vk3rDupK77A/s320/device1.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jXxRk9f_JYs/Tg3vtTw5uqI/AAAAAAAAAc8/L5vtRh0OR7E/s1600/device2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-jXxRk9f_JYs/Tg3vtTw5uqI/AAAAAAAAAc8/L5vtRh0OR7E/s320/device2.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-QmQ_xm0ukpU/Tg3vt6UXQSI/AAAAAAAAAdA/5otNz2KrAkY/s1600/device3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-QmQ_xm0ukpU/Tg3vt6UXQSI/AAAAAAAAAdA/5otNz2KrAkY/s320/device3.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-YZj7i_EpWvQ/Tg3vuJOl3II/AAAAAAAAAdE/KGUGRuk2X4g/s1600/device4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-YZj7i_EpWvQ/Tg3vuJOl3II/AAAAAAAAAdE/KGUGRuk2X4g/s320/device4.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NHoHQ7m7yhA/Tg3w4cECt_I/AAAAAAAAAdI/t5LmaB-dilg/s1600/device5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-NHoHQ7m7yhA/Tg3w4cECt_I/AAAAAAAAAdI/t5LmaB-dilg/s320/device5.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hSTQ0eUAoG0/Tg3w4zPBZ2I/AAAAAAAAAdM/ZW7ryF0wj4A/s1600/device6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-hSTQ0eUAoG0/Tg3w4zPBZ2I/AAAAAAAAAdM/ZW7ryF0wj4A/s320/device6.png" width="192" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;feedback은 언제나 환영입니다.&lt;br /&gt;감사합니다.&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-7746602178705860961?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/7746602178705860961/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/07/transtweet.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/7746602178705860961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/7746602178705860961'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/07/transtweet.html' title='TransTweet'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-5_1lfMTymdc/Tg3vs-qqzXI/AAAAAAAAAc4/vk3rDupK77A/s72-c/device1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8526448585625195301</id><published>2011-05-08T00:24:00.000+09:00</published><updated>2011-05-08T00:24:19.839+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>Robot Operating System</title><content type='html'>&lt;b&gt;Robot Operating System&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.ros.org/wiki/"&gt;http://www.ros.org/wiki/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8526448585625195301?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8526448585625195301/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/05/robot-operating-system.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8526448585625195301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8526448585625195301'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/05/robot-operating-system.html' title='Robot Operating System'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5227107588325401701</id><published>2011-05-08T00:20:00.001+09:00</published><updated>2011-05-08T00:25:30.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Study - Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[CV] Cheap Motion Capture System (OpenCV Motion Capture)</title><content type='html'>&lt;b&gt;Cheap Motion Capture System (OpenCV Motion Capture)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source&lt;/b&gt;: &lt;a href="http://www.motioncapturedata.com/2009/06/cheap-motion-capture-with-free-software.html"&gt;http://www.motioncapturedata.com/2009/06/cheap-motion-capture-with-free-software.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Project Home (Cheap Motion Capture System)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://motion.capture.free.fr/"&gt;http://motion.capture.free.fr/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="390" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/keE9FhqScdU&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/keE9FhqScdU&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5227107588325401701?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5227107588325401701/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/05/cv-cheap-motion-capture-system-opencv.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5227107588325401701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5227107588325401701'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/05/cv-cheap-motion-capture-system-opencv.html' title='[CV] Cheap Motion Capture System (OpenCV Motion Capture)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2657422132466987456</id><published>2011-04-03T13:59:00.000+09:00</published><updated>2011-04-03T13:59:32.809+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>A Day Made Of Glass Corning's Vision For The Future With Specialty Glass At The Heart Of It VIDEO</title><content type='html'>&lt;b&gt;A Day Made Of Glass Corning's Vision For The Future With Specialty Glass At The Heart Of It VIDEO&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=9qmwdbhsbVs"&gt;http://www.youtube.com/watch?v=9qmwdbhsbVs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/9qmwdbhsbVs" title="YouTube video player" width="640"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2657422132466987456?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2657422132466987456/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/04/day-made-of-glass-cornings-vision-for.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2657422132466987456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2657422132466987456'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/04/day-made-of-glass-cornings-vision-for.html' title='A Day Made Of Glass Corning&apos;s Vision For The Future With Specialty Glass At The Heart Of It VIDEO'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/9qmwdbhsbVs/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4369555464153006190</id><published>2011-04-02T16:04:00.002+09:00</published><updated>2011-04-03T13:19:25.069+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project'/><title type='text'>ListenMyStory</title><content type='html'>&lt;b&gt;* Codename:&lt;/b&gt; ListenMyStory&lt;br /&gt;&lt;b&gt;* Project home:&lt;/b&gt;&amp;nbsp;&lt;a href="http://code.google.com/p/listenmystory/"&gt;http://code.google.com/p/listenmystory/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;* License:&lt;/b&gt; GNU GPL&lt;br /&gt;&lt;b&gt;* Distribution:&lt;/b&gt; Full of Source Code, APK 설치파일 및 아래 contents (Revolution In The Valley)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Android 용 ebook reader 입니다.&lt;br /&gt;일반적으로 알고있는 PDF, CHM, TXT 등의 문서가 아닌 text 와 image 를 zip 파일과&lt;br /&gt;xml (목록 및 정보) 형태로 제작된 컨텐츠를 읽을 수 있는 리더입니다.&lt;br /&gt;&lt;br /&gt;Zip 파일 구성:&lt;br /&gt;&amp;nbsp;- 텍스트 파일&lt;br /&gt;&amp;nbsp;- 이미지 파일&lt;br /&gt;&amp;nbsp;- xml (컨텐츠 정보)&lt;br /&gt;&lt;br /&gt;원래, 인터넷에서 접할 수 있거나 따로 모은 자료를 하나로 합쳐서 개인적으로&amp;nbsp;단말에서&lt;br /&gt;보려고 제작한 것인데요, 이렇게 공개를 하게 되었습니다.&lt;br /&gt;&lt;br /&gt;아래는 screenshot 입니다.&lt;br /&gt;사용된 contents는 Apple 컴퓨터의 히스토리를 담은 "Revolution In The Valley" 입니다.&lt;br /&gt;책으로 출간이 되었으며&amp;nbsp;&lt;a href="http://www.folklore.org/index.py"&gt;http://www.folklore.org/index.py&lt;/a&gt;&amp;nbsp;사이트에 공개되어있습니다.&lt;br /&gt;위의 사이트에서 이미지와 텍스트를 가져와서 출력에 알맞게 작업을 하였습니다.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-rf4dH8wa_M8/TZbCJ_3tzxI/AAAAAAAAAcg/anOvALvUlXw/s1600/device_capture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-rf4dH8wa_M8/TZbCJ_3tzxI/AAAAAAAAAcg/anOvALvUlXw/s320/device_capture1.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-K-o4Jyo8J2Q/TZbCN99g-nI/AAAAAAAAAck/N6QZRUh-12k/s1600/device_capture2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-K-o4Jyo8J2Q/TZbCN99g-nI/AAAAAAAAAck/N6QZRUh-12k/s320/device_capture2.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Qwz2RnIhauY/TZbCONUE7gI/AAAAAAAAAco/plkHlz2ZeCY/s1600/device_capture3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-Qwz2RnIhauY/TZbCONUE7gI/AAAAAAAAAco/plkHlz2ZeCY/s320/device_capture3.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-j3bnjiQs7hY/TZbCOkIJu3I/AAAAAAAAAcs/bIeMUox0DOA/s1600/device_capture4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-j3bnjiQs7hY/TZbCOkIJu3I/AAAAAAAAAcs/bIeMUox0DOA/s320/device_capture4.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0QLZpczZu1Q/TZbCO_8XirI/AAAAAAAAAcw/3WzKd1BXQME/s1600/device_capture5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-0QLZpczZu1Q/TZbCO_8XirI/AAAAAAAAAcw/3WzKd1BXQME/s320/device_capture5.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;  &lt;td&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-N9SRqn5J8lE/TZbCPX33zKI/AAAAAAAAAc0/xvAlAoZ9I7o/s1600/device_capture6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-N9SRqn5J8lE/TZbCPX33zKI/AAAAAAAAAc0/xvAlAoZ9I7o/s320/device_capture6.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;자신이 만든 컨텐츠를 SD card에서 로드할 수 있는 기능이 있습니다.&lt;br /&gt;(설정 -&amp;gt; Resource Path에서 path 지정 후 해당 directory에 zip 파일 복사)&lt;br /&gt;&lt;br /&gt;인터넷 소설 및 시나리오를 작성하시는 분들이 배포용으로 이용하셔도 좋을 듯 합니다.&lt;br /&gt;&lt;br /&gt;현재 Windows 기반에서 컨텐츠를 제작할 수 있는 tool을 제작 중입니다.&lt;br /&gt;오래 걸리는 작업은 아니지만, 언제 완성이 될지는 모르겠습니다. ^^&lt;br /&gt;&lt;br /&gt;컨텐츠로 사용한 "Revolution In The Valley" zip 파일을 열어 보시면&lt;br /&gt;어떻게 만들었는지 아실 수 있습니다. 수작업으로 작성 하셔도 됩니다.&lt;br /&gt;&lt;br /&gt;feedback은 언제나 환영입니다.&lt;br /&gt;감사합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4369555464153006190?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4369555464153006190/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/04/listenmystory.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4369555464153006190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4369555464153006190'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/04/listenmystory.html' title='ListenMyStory'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-rf4dH8wa_M8/TZbCJ_3tzxI/AAAAAAAAAcg/anOvALvUlXw/s72-c/device_capture1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-3787632954668831304</id><published>2011-02-20T19:45:00.002+09:00</published><updated>2011-02-24T21:08:53.387+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><title type='text'>[Editor][Eclipse] Eclipse Helios 3.6.1 Code Assist (Auto-Completion) Bug Patch</title><content type='html'>&lt;b&gt;Eclipse Helios 3.6.1 Code Assist (Auto-Completion) Bug Patch&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code Assist still Slow&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://groups.google.com/group/android-developers/msg/0f9d2a852e661cba"&gt;http://groups.google.com/group/android-developers/msg/0f9d2a852e661cba&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Patch&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://adt-addons.googlecode.com/svn/patches/"&gt;http://adt-addons.googlecode.com/svn/patches/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can replace your &lt;eclipse_home&gt;/plugins/org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar plugin&lt;/eclipse_home&gt;&lt;br /&gt;with one from &lt;a href="http://adt-addons.googlecode.com/svn/patches/org.eclipse.jdt.core_3.6.1.v_A68_R36x.zip"&gt;http://adt-addons.googlecode.com/svn/patches/org.eclipse.jdt.core_3.6.1.v_A68_R36x.zip&lt;/a&gt;&lt;br /&gt;and restart Eclipse. Content Assists will be much better. Just try it.&lt;br /&gt;&lt;br /&gt;Don't forget backup your original plugins.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: Eclipse GALILEO start problem&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Add this into eclipse.ini:&lt;/b&gt;&lt;br /&gt;...&lt;br /&gt;-vm&lt;br /&gt;C:\java\jdk1.6.0_13\bin\javaw.exe&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Works good for me...&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-3787632954668831304?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/3787632954668831304/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/02/editoreclipse-eclipse-helios-361-code.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3787632954668831304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3787632954668831304'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/02/editoreclipse-eclipse-helios-361-code.html' title='[Editor][Eclipse] Eclipse Helios 3.6.1 Code Assist (Auto-Completion) Bug Patch'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5164533415534292711</id><published>2011-01-23T22:45:00.000+09:00</published><updated>2011-01-23T22:45:04.921+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lovely Music'/><title type='text'>Prominy LPC Library Demo - Surreal!</title><content type='html'>&lt;b&gt;Prominy LPC Library Demo - Surreal!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt; &lt;a href="http://www.youtube.com/watch?v=BqGJ8y67SU8"&gt;http://www.youtube.com/watch?v=BqGJ8y67SU8&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is probably library author AKHITO! playing the LPC Guitar library. Close your eyes and you can't tell it's not a real guitar player.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" class="youtube-player" frameborder="0" height="390" src="http://www.youtube.com/embed/BqGJ8y67SU8" title="YouTube video player" type="text/html" width="480"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;great!!!&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5164533415534292711?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5164533415534292711/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/01/prominy-lpc-library-demo-surreal.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5164533415534292711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5164533415534292711'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/01/prominy-lpc-library-demo-surreal.html' title='Prominy LPC Library Demo - Surreal!'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/BqGJ8y67SU8/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8413437365038419248</id><published>2011-01-19T00:16:00.001+09:00</published><updated>2011-01-19T00:16:59.288+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>Lexar, A Behind the Scenes Look - How We Make Our Products</title><content type='html'>&lt;b&gt;A Behind the Scenes Look: How We Make Our Products&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=kvf29R7nXlM"&gt;http://www.youtube.com/watch?v=kvf29R7nXlM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lexar, a division of Micron technology, is a leading global provider of memory products&lt;br /&gt;for digital media. Check out this behind the scenes look at the extensive work and&lt;br /&gt;care put into each Lexar product.&lt;br /&gt;&lt;br /&gt;(This entire video was shot on the Canon 5D Mark II DSLR with&lt;br /&gt;32GB Lexar Professional 600x CF cards.)&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kvf29R7nXlM?fs=1&amp;amp;hl=ko_KR"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/kvf29R7nXlM?fs=1&amp;amp;hl=ko_KR" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;great!!!&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8413437365038419248?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8413437365038419248/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2011/01/lexar-behind-scenes-look-how-we-make.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8413437365038419248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8413437365038419248'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2011/01/lexar-behind-scenes-look-how-we-make.html' title='Lexar, A Behind the Scenes Look - How We Make Our Products'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-3154323209310978874</id><published>2010-11-29T22:10:00.000+09:00</published><updated>2010-11-29T22:10:28.646+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etc'/><title type='text'>카라 강지영 일본 예능 활약</title><content type='html'>카라 강지영에 일본 예능 활약 동영상이다.&lt;div&gt;사실 카라는 알지만 멤버 강지영은 잘 모른다.&lt;/div&gt;&lt;div&gt;하지만 이제는 알게 되었다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;정말 귀엽다. ㅋㅋ&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;일단 한 번 보시라...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kHXDs8BiNek?fs=1&amp;amp;hl=ko_KR"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/kHXDs8BiNek?fs=1&amp;amp;hl=ko_KR" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-----&lt;/div&gt;&lt;div&gt;Cheers,&lt;/div&gt;&lt;div&gt;June&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-3154323209310978874?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/3154323209310978874/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/11/blog-post.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3154323209310978874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3154323209310978874'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/11/blog-post.html' title='카라 강지영 일본 예능 활약'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8654735940864888334</id><published>2010-11-14T22:15:00.000+09:00</published><updated>2010-11-14T22:15:19.687+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='일기'/><title type='text'>일기 (2010.11.14)</title><content type='html'>&amp;lt;고도원의 아침편지&amp;gt;&lt;br /&gt;&lt;br /&gt;어중간한 사원&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"최악의 사원을 고용하는 것보다&lt;br /&gt;어중간한 사원을 고용하는 것이 더&lt;br /&gt;최악의 결과를 초래한다"라고 게이츠는 단언한다.&lt;br /&gt;"일을 게을리 하는 사원이 있어도 상관없다.&lt;br /&gt;해고하면 되기 때문이다. 그런데 적당히 일을 하는&lt;br /&gt;어중간한 사원을 고용하면 골치 아픈 상황이 된다."&lt;br /&gt;그래서 게이츠는 업무에 필요하다고 생각하는&lt;br /&gt;인원수보다 적은 인원을 채용했다.&lt;br /&gt;일은 인원수가 아니라 우수한 두뇌가&lt;br /&gt;이루어내는 것이라는 생각 때문이었다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- 다케우치 가즈마사의《스티브잡스 VS 빌게이츠》중에서 -&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* 사람은 '일'을 하는 존재입니다.&lt;br /&gt;그런데, 그 일을 하는 곳에서 알게 모르게&lt;br /&gt;자신의 위치가 드러납니다. 행여라도 그 위치가&lt;br /&gt;'어중간한' 자리라면 얼른 옮겨가야 합니다.&lt;br /&gt;지쳐 쓰러지더라도 흠뻑 땀흘리는 자리,&lt;br /&gt;실수를 하더라도 혼을 쏟아붓는 자리,&lt;br /&gt;지금은 힘들지만 나중엔 기쁨과&lt;br /&gt;보람을 얻을 수 있는 자리로!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;요즘 참 와닿는 글이다.&lt;br /&gt;어떻게 보면 불평을 하는 것 아니냐고 할 수 있겠지만,&lt;br /&gt;나는 열심히 공부하면서 일하고 싶다.&lt;br /&gt;세상사가 다 그렇다고 하기보단,&lt;br /&gt;그러한 환경을 만들어가고 싶다.&lt;br /&gt;공부도 열심히 하고 나를 가슴뛰게 하는 일들도 열심히 하자...&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8654735940864888334?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8654735940864888334/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/11/20101114.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8654735940864888334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8654735940864888334'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/11/20101114.html' title='일기 (2010.11.14)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-1802537430929357619</id><published>2010-11-13T21:50:00.003+09:00</published><updated>2011-01-01T12:13:43.759+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lovely Music'/><title type='text'>[Music][Homebrew] 자작 곡</title><content type='html'>내가 컴퓨터로 음악(Sequencer) 작업을 처음 시작한 것이 1998, 1999 사이니깐..&lt;br /&gt;음... 2010년 기준으로 약 10~11년 정도 되는 것 같다.&lt;br /&gt;물론 꾸준히 이어서 작업을 한 것은 아니지만... 연수로는 그렇다는 거다.&lt;br /&gt;&lt;br /&gt;그러니깐, 처음 시작할 당시엔 MS-DOS 기반에서 ST32 (Stream Tracker) 로 작업을 했다.&lt;br /&gt;이때 컴퓨터로 Sequencer 를 다루어 본 사람이라면 모르지는 않을 것이다.&lt;br /&gt;&lt;br /&gt;보통 피아노로 연주했던 걸 tape 으로 녹음한 다음 sequencer 로 대충 (ㅠ.ㅠ) 작성하는 정도다.&lt;br /&gt;이때가 가장 자유스럽고 여유있고 감각이 좋았다고 생각한다.&lt;br /&gt;물론 지금도 자유 (-_-;) 스럽고, 여유있고 (ㅠ.ㅠ) 감각이 (^0^) 좋다고 생각한다.&lt;br /&gt;&lt;br /&gt;그동안 세월이 변함에 따라 Sequencer 에도 많은 변화가 있었던 만큼,&lt;br /&gt;Tracker (MOD Plug; aka Impulse Tracker) 에서 다른 Tool 로 전향도 했었고&lt;br /&gt;나름 괜찮다고 생각되는 작품들이 나오고 있다.&lt;br /&gt;&lt;br /&gt;현재는 ElectroAcoustic 이지만 (물론 이 장르를 선호한다.) Acoustic 만으로 작업을 해보고 싶은 바람이 있다.&lt;br /&gt;아직 해당되는 장비들은 없지만, 구비가 되면 꼭 해보려고 한다.&lt;br /&gt;&lt;br /&gt;요즘 완성이 되었다고 생각되는 괜찮은 곡들이 있어 MySpace 에 등록을 하고 있는데&lt;br /&gt;부담없이 들을 수 있는 곡이니 한 번 들어봐 주시는 것도 괜찮지 않나 싶다.&lt;br /&gt;&lt;br /&gt;충고는 따끔하게 받겠으니 feedback 은 꼭 해주시길 바랍니다.&lt;br /&gt;주소는 다음과 같습니다.&lt;br /&gt;&lt;a href="http://www.myspace.com/hojungkim"&gt;http://www.myspace.com/hojungkim&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ADD:&lt;/b&gt; &lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;b&gt;January 1st, 2011&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.jamendo.com/"&gt;Jamendo&lt;/a&gt;에 음악을 등록하였습니다. 앞으로 계속 추가할 예정입니다. ^^&lt;br /&gt;&lt;a href="http://www.jamendo.com/en/artist/Ho-Jung_Kim"&gt;http://www.jamendo.com/en/artist/Ho-Jung_Kim&lt;/a&gt;&lt;br /&gt;2011년 새해 복 많이 받으세요~ ^^&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-1802537430929357619?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/1802537430929357619/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/11/musichomebrew.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1802537430929357619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/1802537430929357619'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/11/musichomebrew.html' title='[Music][Homebrew] 자작 곡'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6781402026298087853</id><published>2010-11-10T11:03:00.003+09:00</published><updated>2010-11-10T11:04:27.903+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><title type='text'>[Editor][Eclipse] how to exclude Subversion directory (.svn) in the Eclipse?</title><content type='html'>&lt;b&gt;how to exclude Subversion directory (.svn) in the Eclipse?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Open a properties from the project&lt;br /&gt;2. Select "Source Tab" in Java Build Path menu&lt;br /&gt;3. Expands tree and double-click "Excluded:" each other for add two exclusion patterns&lt;br /&gt;.../gen&lt;br /&gt;.../src&lt;br /&gt;4. adds below two exclusion patterns each other into .../gen and .../src&lt;br /&gt;.svn/**&lt;br /&gt;**/.svn/**&lt;br /&gt;5. clean &amp;amp; rebuild the project&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6781402026298087853?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6781402026298087853/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/11/editoreclipse-how-to-exclude-subversion.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6781402026298087853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6781402026298087853'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/11/editoreclipse-how-to-exclude-subversion.html' title='[Editor][Eclipse] how to exclude Subversion directory (.svn) in the Eclipse?'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-673756951498115113</id><published>2010-11-07T02:06:00.003+09:00</published><updated>2010-11-07T02:09:47.452+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='일기'/><title type='text'>일기 (2010.11.06)</title><content type='html'>아...&lt;br /&gt;오늘 영화를 네 편을 몰아서 보았다... 흠...&lt;br /&gt;피곤하기는 커녕 기분이 아~주 좋다... ㅎㅎ&lt;br /&gt;&lt;br /&gt;먼저 일본영화 "그때는 그에게 안부 전해줘(そのときは彼によろしく)" 를 보았다.&lt;br /&gt;어려서 뜻 깊은 추억을 간직한 세 명의 소꿉친구들이 성인이 되어서 만남을 다룬 영화다.&lt;br /&gt;음... 뭐랄까,,, 잔잔하면서도 어릴 때 추억도 생각나게 해주고,&lt;br /&gt;나는 친구들에게 얼마나 잘 하고 있는지를 물어보게 해주는 그런 영화다.&lt;br /&gt;영화처럼은 아니지만 나도 초등학교 다닐 때 같이 알던 여자, 남자 친구가 있었다.&lt;br /&gt;남자친구는 지금도 연락을 하고 한번씩 만나기도 한다.&lt;br /&gt;나에게 음악에 대해 좀 더 깊게 다가갈 수 있게 해준 정말 좋은 친구다.&lt;br /&gt;여자 애는 고등학교 때 연락 한번 한 이후론 연락을 해본적이 없다.&lt;br /&gt;마지막 연락 때 진로에 대해서 잠깐 얘기한 적이 있는데 공부에 전념하는 모습에...&lt;br /&gt;그만... ^^ &amp;nbsp;음... 지금은 어떻게 변해있을지 참 궁금하다.&lt;br /&gt;친구가 우연히 길에서 봤다고 했다. 순간 마음이 두근 거렸지만...&lt;br /&gt;뭐라고 얘기를 해야할지 몰라서 그냥 넘겨버렸다.&amp;nbsp;음...&lt;br /&gt;언젠가는 꼭 한번 만나고 싶다.&lt;br /&gt;&lt;br /&gt;두 번째 영화는 "The American" 이라는 영화이다.&lt;br /&gt;도통봐도 무슨 내용인지 모르겠다.&lt;br /&gt;George Clooney 와 Violante Placido 가 나오는 영화인데,&lt;br /&gt;영화 색채와 분위기는 좋았던 것 같다. 물론 이상한 장면 (*^^*)은 빼고... ^^;&lt;br /&gt;&lt;br /&gt;세 번째 영화는 우리나라 영화 "악마를 보았다"다.&lt;br /&gt;음... 개인적으로 Gore (Splatter Film) 은 좋아하지 않아서인지 보고나서 괜히 보았다고 후회한 영화다.&lt;br /&gt;최민식씨는 정말 연기를 잘 하는 것 같다.&amp;nbsp;잔인하고 폭력적인 것 보단&amp;nbsp;좀 더 상냥하고 다정한&lt;br /&gt;그런 역할을 한 번 해주었으면 좋겠다는 개인적인 바람이다.&lt;br /&gt;&lt;br /&gt;마지막 영화는 중국영화인 "聽說(Hear Me)" 라는 영화다.&lt;br /&gt;청객장애를 갖고있는 언니를 위해 모른일에 헌신적으로 다하는 여동생과 수영 선수로써 동생에게&lt;br /&gt;꼭 금메달을 안겨주려고 노력하는 언니, 그리고 그 여동생 Yang-yang을 첫눈에 반해 좋아하게되는 Tian 의 이야기다.&lt;br /&gt;영화내용의 대부분이 수화로 이루어져있다.&amp;nbsp;내가 이렇게 듣고 말하고 볼 수 있다는게 얼마나 행복한 것인지&lt;br /&gt;다시한 번 알게 해준 영화다.&lt;br /&gt;보는 내내 Yang-yang 역시 말을 하지않고 수화로 하다보니 정말 Yang-yang도 청각장애인일까? 라고 생각 하면서도&lt;br /&gt;분명 마지막에 말 할줄 알꺼야라고 생각하며 본 영화다. 물론 마지막에 듣고 말도 할 줄 안다. ^^&lt;br /&gt;&lt;br /&gt;참 오랜만에 좋은 영화들을 접해서 너무 좋았다.&lt;br /&gt;음... 갑자기 "Buena Vista Social Club" 다큐멘터리 영화가 생각이 난다.&lt;br /&gt;Cuba 의 Jazz 를 다룬 영화인데 소개되는 음악들이 사람마다 다르겠지만 정말 최고다.&lt;br /&gt;이 영화는 추천을 드리니 꼭 한 번 보시길 바란다.&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-673756951498115113?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/673756951498115113/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/11/20101106.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/673756951498115113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/673756951498115113'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/11/20101106.html' title='일기 (2010.11.06)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4990157832723737570</id><published>2010-10-27T21:02:00.004+09:00</published><updated>2010-10-30T12:45:52.280+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] My Tip; RemoteService Example</title><content type='html'>&lt;b&gt;RemoteService Example&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Reference Source:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/guide/developing/tools/aidl.html"&gt;http://developer.android.com/guide/developing/tools/aidl.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://developer.android.com/reference/android/app/Service.html"&gt;http://developer.android.com/reference/android/app/Service.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.androidpub.com/102370"&gt;http://www.androidpub.com/102370&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// more Activity&lt;br /&gt;// AndroidManifest.xml&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;&amp;lt;activity android:name=".MainActivity"&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;android:label="MainActivity"&lt;br /&gt;android:configChanges="keyboardHidden|orientation"&lt;br /&gt;android:theme="@android:style/Theme.NoTitleBar"&lt;br /&gt;android:launchMode="singleTask"&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;lt;intent-filter&amp;gt;&lt;br /&gt;&amp;lt;action android:name="android.intent.action.MAIN" /&amp;gt;&lt;br /&gt;&amp;lt;category android:name="android.intent.category.LAUNCHER" /&amp;gt;&lt;br /&gt;&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;&amp;lt;/activity&amp;gt;&lt;br /&gt;&amp;lt;activity android:name=".anotherActivity"&lt;br /&gt;android:label="anotherActivity"&lt;br /&gt;android:configChanges="keyboardHidden|orientation"&lt;br /&gt;android:theme="@android:style/Theme.NoTitleBar"&lt;br /&gt;android:launchMode="singleTask"&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;lt;intent-filter&amp;gt;&lt;br /&gt;&amp;lt;action android:name="android.intent.action.MAIN" /&amp;gt;&lt;br /&gt;&amp;lt;category android:name="android.intent.category.LAUNCHER" /&amp;gt;&lt;br /&gt;&amp;lt;/intent-filter&amp;gt;&lt;br /&gt;&amp;lt;/activity&amp;gt;&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// RemoteService&lt;br /&gt;// AndroidManifest.xml&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;&amp;lt;service android:enabled="true" android:name=".testActivity"&amp;gt;&lt;br /&gt;&amp;lt;/service&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// RemoteService&lt;br /&gt;// AndroidManifest.xml&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;&lt;service android:enabled="true" android:name=".testActivity"&gt;&lt;/service&gt;&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// RemoteService&lt;br /&gt;// Service.java&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;package com.test.testActivity;&lt;br /&gt;&lt;br /&gt;// Service&lt;br /&gt;import android.app.Notification;&lt;br /&gt;import android.app.NotificationManager;&lt;br /&gt;import android.app.PendingIntent;&lt;br /&gt;import android.app.Service;&lt;br /&gt;import android.content.Intent;&lt;br /&gt;import android.media.AudioManager;&lt;br /&gt;import android.media.MediaPlayer;&lt;br /&gt;import android.os.Bundle;&lt;br /&gt;import android.os.Handler;&lt;br /&gt;import android.os.HandlerThread;&lt;br /&gt;import android.os.IBinder;&lt;br /&gt;import android.os.Looper;&lt;br /&gt;import android.os.Message;&lt;br /&gt;import android.os.RemoteCallbackList;&lt;br /&gt;&lt;br /&gt;import android.util.Log;&lt;br /&gt;import android.view.SurfaceHolder;&lt;br /&gt;import android.view.SurfaceView;&lt;br /&gt;import android.widget.MediaController;&lt;br /&gt;import android.widget.SeekBar;&lt;br /&gt;import android.widget.TextView;&lt;br /&gt;import android.widget.Toast;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Activity A (test)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;startService( new Intent(test.testActivity, testService.class).putExtra("tag", "data") );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String[] strList = {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{"strList1"},&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{"strList2"}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;};&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;startService( new Intent(test.testActivity, testService.class).putExtra("tag2", strlist) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Service B (testService)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Bundle extras = getIntent().getExtras();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String[] strList = extras.getStringArray( "strlist" );&lt;br /&gt;*/&lt;br /&gt;public class testService extends Service {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private String TAG = "testService";&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Service&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private NotificationManager mNM;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private Intent m_InvokeIntent;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private volatile Looper m_ServiceLooper;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private volatile ServiceHandler m_ServiceHandler;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public String m_Str = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;final RemoteCallbackList&lt;iremoteservicecallback&gt; m_Callbacks&lt;/iremoteservicecallback&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;= new RemoteCallbackList&lt;iremoteservicecallback&gt;();&lt;/iremoteservicecallback&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private final class ServiceHandler extends Handler {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public ServiceHandler(Looper looper) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;super(looper);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void handleMessage(Message msg) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Bundle extras = (Bundle)msg.obj;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;String strTagValue = null;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;// Broadcast&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;strTagValue = extras.getString( "command" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;if( strTagValue != null ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;if( strTagValue.equals("pause") ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;stopSelf( msg.arg1 );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;else if( strTagValue.equals("stop") ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;stopSelf( msg.arg1 );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;      &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;strTagValue = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;strTagValue = extras.getString( "tag" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Log.d( TAG, "Message: " + msg + ", tagValue = " + strTagValue );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if( strTagValue != null ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;if( strTagValue.equals("data") ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;else if( strTagValue.equals("strlist") ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;m_strPlayList = extras.getStringArray( "strlist" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;else {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;Log.d( TAG, "QUIT" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;stopSelf( msg.arg1 );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;else {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;stopSelf( msg.arg1 );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;return;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void onCreate() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;mNM = (NotificationManager)getSystemService( NOTIFICATION_SERVICE );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;HandlerThread thread = new HandlerThread( "MediaServiceStart" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;thread.start();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;m_ServiceLooper = thread.getLooper();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;m_ServiceHandler = new ServiceHandler( m_ServiceLooper );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void onStart(Intent intent, int startId) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Log.d( TAG, "ServiceStartArguments: Starting #" + startId + ": " + intent.getExtras() );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;{&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Message msg = m_ServiceHandler.obtainMessage();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;msg.arg1 = startId;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;msg.obj = intent.getExtras();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;m_ServiceHandler.sendMessage( msg );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Log.d( TAG, "ServiceStartArguments: Sending: " + msg );&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;// Test: Broadcast&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;final int n = m_Callbacks.beginBroadcast();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Log.d( TAG, "n = " + n );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;for( int i = 0; i &amp;lt; n; i++ )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;Log.d( TAG, "item = " + m_Callbacks.getBroadcastItem(i) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;m_Callbacks.finishBroadcast();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;*/&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void onDestroy() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;m_ServiceLooper.quit();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public IBinder onBind(Intent intent) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;return m_Binder;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// The IRemoteInterface is defined through IDL&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private final IRemoteService.Stub m_Binder = new IRemoteService.Stub() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void registerCallback(IRemoteServiceCallback cb) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if (cb != null) m_Callbacks.register(cb);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void unregisterCallback(IRemoteServiceCallback cb) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;if (cb != null) m_Callbacks.unregister(cb);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public String getInfo() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;String str = "i'm service";&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;return str;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public String setInfo(String str) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Log.d( TAG, "RECEIVED From Activity: " + str );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;return str;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// testActivity.java&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// Service&lt;br /&gt;import android.content.ServiceConnection;&lt;br /&gt;import android.content.ComponentName;&lt;br /&gt;import android.os.IBinder;&lt;br /&gt;import android.os.RemoteException;&lt;br /&gt;public class testActivity extends Activity implements {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Service&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private IRemoteService m_Service = null;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;super.onCreate(savedInstanceState);&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//setContentView(R.layout.main);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//Intent(testActivity.this, testService.class)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//Intent intt = new Intent( testActivity.this, Activity2.class );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//startActivity( intt );&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//bindService( new Intent(testService.class.getName()), m_Connection, Context.BIND_AUTO_CREATE );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;bindService( new Intent(testActivity.this, testService.class), m_Connection, Context.BIND_AUTO_CREATE );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;startService( new Intent(testActivity.this, testService.class).putExtra("tag", "quit") );&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;/*&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if( m_Service != null ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;try {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;m_Service.unregisterCallback( m_Callback );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;} catch (RemoteException e) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;// Detach our existing connection.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;unbindService( m_Connection );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;stopService( new Intent(testActivity.this, testService.class) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;*/&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;@Override&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;protected void onDestroy() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if( m_Service != null ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;try {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;m_Service.unregisterCallback( m_Callback );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;} catch (RemoteException e) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;if( m_Connection != null ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;// Detach our existing connection.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;unbindService( m_Connection );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;stopService( new Intent(testActivity.this, testService.class) );&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;super.onDestroy();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// Service&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private ServiceConnection m_Connection = new ServiceConnection() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void onServiceConnected(ComponentName className, IBinder service) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;m_Service = IRemoteService.Stub.asInterface(service);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;try {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;m_Service.registerCallback(m_Callback);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;Log.d( TAG, "RECEIVED From Service: " + m_Service.getInfo() );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;m_Service.setInfo( "i'm activity" );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;} catch (RemoteException e) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Toast.makeText( testActivity.this, "Service Connected", Toast.LENGTH_SHORT ).show();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void onServiceDisconnected(ComponentName className) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;m_Service = null;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;Toast.makeText( testActivity.this, "Service Disconnected", Toast.LENGTH_SHORT ).show();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// This implementation is used to receive callbacks from the remote service.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;private IRemoteServiceCallback m_Callback = new IRemoteServiceCallback.Stub() {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;public void valueChanged(int value) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;   &lt;/span&gt;//mHandler.sendMessage(mHandler.obtainMessage(BUMP_MSG, value, 0));&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;}&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;};&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// IRemoteService.aidl (default + method)&lt;br /&gt;// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;package com.test.testActivity;&lt;br /&gt;import com.test.testActivity.IRemoteServiceCallback;&lt;br /&gt;interface IRemoteService {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;void registerCallback(IRemoteServiceCallback cb);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;void unregisterCallback(IRemoteServiceCallback cb);&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;// ADD&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;String getInfo();&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;String setInfo(String str);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;// IRemoteServiceCallback.aidl (default)&lt;br /&gt;// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app&lt;br /&gt;// -----------------------------------------------&lt;br /&gt;default&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4990157832723737570?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4990157832723737570/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/10/android-my-tip-remoteservice-example.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4990157832723737570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4990157832723737570'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/10/android-my-tip-remoteservice-example.html' title='[Android] My Tip; RemoteService Example'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-773731542590008567</id><published>2010-10-22T22:04:00.000+09:00</published><updated>2010-10-22T22:04:12.727+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><title type='text'>[Editor][Vim] Vim in Eclipse, Vrapper</title><content type='html'>&lt;b&gt;Vrapper: Vim-like editing in Eclipse&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://vrapper.sourceforge.net/home/"&gt;http://vrapper.sourceforge.net/home/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Eclipse: Help -&amp;gt; Install New Software&lt;/b&gt;&lt;br /&gt;Add &amp;amp; Install: http://vrapper.sourceforge.net/update-site/stable&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Window -&amp;gt; Preferences -&amp;gt; General -&amp;gt; Keys -&amp;gt; Select Vim's key bindings&lt;/b&gt;&lt;br /&gt;Replace key:&lt;br /&gt;&amp;nbsp;- Page Down: Ctrl+F&lt;br /&gt;&amp;nbsp;- Page Up: Ctrl+B&lt;br /&gt;&amp;nbsp;- Scroll Line Down: Ctrl+E&lt;br /&gt;&amp;nbsp;- Scroll Line Up: Ctrl+Y&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Apply &amp;amp; OK&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Click Vim(Toggle Vrapper)&amp;nbsp;button onto Toolbar when you need&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-773731542590008567?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/773731542590008567/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/10/editorvim-vim-in-eclipse-vrapper.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/773731542590008567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/773731542590008567'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/10/editorvim-vim-in-eclipse-vrapper.html' title='[Editor][Vim] Vim in Eclipse, Vrapper'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-4335180451828574960</id><published>2010-10-07T20:53:00.000+09:00</published><updated>2010-10-07T20:53:29.921+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><title type='text'>[Audio] USB Audio Card Homebrew</title><content type='html'>&lt;b&gt;USB Audio Card Homebrew&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Schematic&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://www.freelog.net/main/link.php?key=rssoo&amp;amp;url=http://rssoo.tistory.com/4575&amp;amp;mcid=383601"&gt;http://www.freelog.net/main/link.php?key=rssoo&amp;amp;url=http://rssoo.tistory.com/4575&amp;amp;mcid=383601&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Circuit&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://jalbum.co.kr/xe/INFO_CIRCUIT/4201"&gt;http://jalbum.co.kr/xe/INFO_CIRCUIT/4201&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- USB Audio Device PCB version&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://rageworx.tistory.com/tag/%EC%9E%90%EC%9E%91%20%EC%82%AC%EC%9A%B4%EB%93%9C%EC%B9%B4%EB%93%9C"&gt;http://rageworx.tistory.com/tag/%EC%9E%90%EC%9E%91%20%EC%82%AC%EC%9A%B4%EB%93%9C%EC%B9%B4%EB%93%9C&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- COSDAC v2 (USB Audio DAC)&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://dedong.egloos.com/2901088"&gt;http://dedong.egloos.com/2901088&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Vacuum Tube&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://www.triode.co.kr/"&gt;http://www.triode.co.kr/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Pics&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://www.enjoyaudio.com/zbxe/?mid=audiocraft&amp;amp;sort_index=readed_count&amp;amp;order_type=desc&amp;amp;page=4&amp;amp;document_srl=858660"&gt;http://www.enjoyaudio.com/zbxe/?mid=audiocraft&amp;amp;sort_index=readed_count&amp;amp;order_type=desc&amp;amp;page=4&amp;amp;document_srl=858660&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- VICS USB Audio DAC Kit (PCM2704)&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://ta2020.huuryuu.com/usbDAC.html"&gt;http://ta2020.huuryuu.com/usbDAC.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-4335180451828574960?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/4335180451828574960/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/10/audio-usb-audio-card-homebrew.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4335180451828574960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/4335180451828574960'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/10/audio-usb-audio-card-homebrew.html' title='[Audio] USB Audio Card Homebrew'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2897814299607011019</id><published>2010-10-07T20:49:00.000+09:00</published><updated>2010-10-07T20:49:16.201+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><title type='text'>[Arduino]</title><content type='html'>&lt;b&gt;Arduino&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Arduino Examples&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://www.robot-electronics.co.uk/htm/arduino_examples.htm"&gt;http://www.robot-electronics.co.uk/htm/arduino_examples.htm&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Arduino Boot loader&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://calmarea.net/?p=336"&gt;http://calmarea.net/?p=336&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Lecture&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;a href="http://forum.falinux.com/zbxe/?document_srl=500489&amp;amp;mid=arduino"&gt;http://forum.falinux.com/zbxe/?document_srl=500489&amp;amp;mid=arduino&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2897814299607011019?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2897814299607011019/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/10/arduino.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2897814299607011019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2897814299607011019'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/10/arduino.html' title='[Arduino]'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2890578696594365645</id><published>2010-10-04T20:46:00.001+09:00</published><updated>2010-10-04T22:46:33.560+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] My Tip; Android Resolution Problem</title><content type='html'>&lt;b&gt;Android Resolution Problem&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Your App resolution wil be fixed 320x480(Portrait) if you missed the minSdkVersion.&lt;br /&gt;so, you should be set it to 4(Android SDK Version 1.6) or higher.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Adds this into your AndroidManifest.xml:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; Change "(" to "&amp;lt;" and&amp;nbsp;")" to "&amp;gt;"&lt;br /&gt;(manifest)&lt;br /&gt;...&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;(uses-sdk android:minSdkVersion="4")(/uses-sdk)&lt;br /&gt;(/manifest)&lt;br /&gt;&lt;br /&gt;I've tested on Samsung Galaxy Tab.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2890578696594365645?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2890578696594365645/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/10/android-my-tip-android-resolution.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2890578696594365645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2890578696594365645'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/10/android-my-tip-android-resolution.html' title='[Android] My Tip; Android Resolution Problem'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6534472434376260657</id><published>2010-09-30T11:17:00.000+09:00</published><updated>2010-09-30T11:17:25.190+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><title type='text'>[Editor][Emacs] Emacs Manual</title><content type='html'>&lt;b&gt;Emacs Manual&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: GNU Emacs Manual&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://www.delorie.com/gnu/docs/emacs/emacs_toc.html#SEC_Contents"&gt;http://www.delorie.com/gnu/docs/emacs/emacs_toc.html#SEC_Contents&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: Quick EMACS Commands&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://xkahn.zoned.net/help/emacs.html"&gt;http://xkahn.zoned.net/help/emacs.html&lt;/a&gt;&lt;br /&gt;---------------&lt;br /&gt;[Quitting EMACS:]&lt;br /&gt;Quit:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-c&lt;br /&gt;I pushed the wrong key. Help!:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-g&lt;br /&gt;---------------&lt;br /&gt;[Working with files:]&lt;br /&gt;Load a file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;Load a directory:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;New file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;Save a file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-s&lt;br /&gt;Save all open files:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x s&lt;br /&gt;Save the file with a new name&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-w&lt;br /&gt;---------------&lt;br /&gt;[Dealing with Buffers]&lt;br /&gt;Switch buffers:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x b&lt;br /&gt;Close buffer:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x k&lt;br /&gt;Split current buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x 2&lt;br /&gt;Make current buffer the only one on screen&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x 1&lt;br /&gt;Switch between the buffers on-screen&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x o&lt;br /&gt;---------------&lt;br /&gt;[Cutting and pasting]&lt;br /&gt;Set mark:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-[SPACE]&lt;br /&gt;Cut and save text from here to mark:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-w&lt;br /&gt;Paste saved text:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-y&lt;br /&gt;Cut text from the cursor to the end of the line:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-k&lt;br /&gt;---------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: Emacs Command Summary&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html"&gt;http://www.cs.rutgers.edu/LCSR-Computing/some-docs/emacs-chart.html&lt;/a&gt;&lt;br /&gt;---------------&lt;br /&gt;Emacs Command Summary&lt;br /&gt;Emacs command summary, Thu Jul 25.&lt;br /&gt;&lt;br /&gt;C-SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set-mark-command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-q&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quoted-insert&lt;br /&gt;C-a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; beginning-of-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-r&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isearch-backward&lt;br /&gt;C-b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; backward-char&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; isearch-forward&lt;br /&gt;C-c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit-recursive-edit&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; transpose-chars&lt;br /&gt;C-d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-char&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-u&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; universal-argument&lt;br /&gt;C-e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end-of-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-v&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scroll-up&lt;br /&gt;C-f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; forward-char&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-w&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kill-region&lt;br /&gt;C-h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; help-command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control-X-prefix&lt;br /&gt;TAB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indent-for-tab-command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-y&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yank&lt;br /&gt;LFD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newline-and-indent&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suspend-emacs&lt;br /&gt;C-k&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kill-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESC-prefix&lt;br /&gt;C-l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recenter&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abort-recursive-edit&lt;br /&gt;RET&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newline&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-_&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; undo&lt;br /&gt;C-n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SPC .. ~&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self-insert-command&lt;br /&gt;C-o&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; open-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;DEL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-backward-char&lt;br /&gt;C-p&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; previous-line&lt;br /&gt;&lt;br /&gt;C-h v&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-variable&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h d&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-function&lt;br /&gt;C-h w&amp;nbsp;&amp;nbsp;&amp;nbsp; where-is&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h k&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-key&lt;br /&gt;C-h t&amp;nbsp;&amp;nbsp;&amp;nbsp; help-with-tutorial&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h c&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-key-briefly&lt;br /&gt;C-h s&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-syntax&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h b&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-bindings&lt;br /&gt;C-h n&amp;nbsp;&amp;nbsp;&amp;nbsp; view-emacs-news&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h a&amp;nbsp;&amp;nbsp;&amp;nbsp; command-apropos&lt;br /&gt;C-h C-n&amp;nbsp; view-emacs-news&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h C-d&amp;nbsp; describe-distribution&lt;br /&gt;C-h m&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-mode&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h C-c&amp;nbsp; describe-copying&lt;br /&gt;C-h l&amp;nbsp;&amp;nbsp;&amp;nbsp; view-lossage&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h ?&amp;nbsp;&amp;nbsp;&amp;nbsp; help-for-help&lt;br /&gt;C-h i&amp;nbsp;&amp;nbsp;&amp;nbsp; info&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-h C-h&amp;nbsp; help-for-help&lt;br /&gt;C-h f&amp;nbsp;&amp;nbsp;&amp;nbsp; describe-function&lt;br /&gt;&lt;br /&gt;C-x C-a&amp;nbsp; add-mode-abbrev&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 5&amp;nbsp;&amp;nbsp;&amp;nbsp; split-window-horizontally&lt;br /&gt;C-x C-b&amp;nbsp; list-buffers&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x ;&amp;nbsp;&amp;nbsp;&amp;nbsp; set-comment-column&lt;br /&gt;C-x C-c&amp;nbsp; save-buffers-kill-emacs&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x &amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scroll-left&lt;br /&gt;C-x C-d&amp;nbsp; list-directory&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x =&amp;nbsp;&amp;nbsp;&amp;nbsp; what-cursor-position&lt;br /&gt;C-x C-e&amp;nbsp; eval-last-sexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scroll-right&lt;br /&gt;C-x C-f&amp;nbsp; find-file&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x [&amp;nbsp;&amp;nbsp;&amp;nbsp; backward-page&lt;br /&gt;C-x C-h&amp;nbsp; inverse-add-mode-abbrev&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x ]&amp;nbsp;&amp;nbsp;&amp;nbsp; forward-page&lt;br /&gt;C-x TAB&amp;nbsp; indent-rigidly&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x ^&amp;nbsp;&amp;nbsp;&amp;nbsp; enlarge-window&lt;br /&gt;C-x C-l&amp;nbsp; downcase-region&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x `&amp;nbsp;&amp;nbsp;&amp;nbsp; next-error&lt;br /&gt;C-x C-n&amp;nbsp; set-goal-column&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x a&amp;nbsp;&amp;nbsp;&amp;nbsp; append-to-buffer&lt;br /&gt;C-x C-o&amp;nbsp; delete-blank-lines&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x b&amp;nbsp;&amp;nbsp;&amp;nbsp; switch-to-buffer&lt;br /&gt;C-x C-p&amp;nbsp; mark-page&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x d&amp;nbsp;&amp;nbsp;&amp;nbsp; dired&lt;br /&gt;C-x C-q&amp;nbsp; toggle-read-only&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x e&amp;nbsp;&amp;nbsp;&amp;nbsp; call-last-kbd-macro&lt;br /&gt;C-x C-r&amp;nbsp; find-file-read-only&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x f&amp;nbsp;&amp;nbsp;&amp;nbsp; set-fill-column&lt;br /&gt;C-x C-s&amp;nbsp; save-buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x g&amp;nbsp;&amp;nbsp;&amp;nbsp; insert-register&lt;br /&gt;C-x C-t&amp;nbsp; transpose-lines&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x h&amp;nbsp;&amp;nbsp;&amp;nbsp; mark-whole-buffer&lt;br /&gt;C-x C-u&amp;nbsp; upcase-region&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x i&amp;nbsp;&amp;nbsp;&amp;nbsp; insert-file&lt;br /&gt;C-x C-v&amp;nbsp; find-alternate-file&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x j&amp;nbsp;&amp;nbsp;&amp;nbsp; register-to-dot&lt;br /&gt;C-x C-w&amp;nbsp; write-file&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x k&amp;nbsp;&amp;nbsp;&amp;nbsp; kill-buffer&lt;br /&gt;C-x C-x&amp;nbsp; exchange-dot-and-mark&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x l&amp;nbsp;&amp;nbsp;&amp;nbsp; count-lines-page&lt;br /&gt;C-x C-z&amp;nbsp; suspend-emacs&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x m&amp;nbsp;&amp;nbsp;&amp;nbsp; mail&lt;br /&gt;C-x ESC&amp;nbsp; repeat-complex-command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x n&amp;nbsp;&amp;nbsp;&amp;nbsp; narrow-to-region&lt;br /&gt;C-x $&amp;nbsp;&amp;nbsp;&amp;nbsp; set-selective-display&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x o&amp;nbsp;&amp;nbsp;&amp;nbsp; other-window&lt;br /&gt;C-x (&amp;nbsp;&amp;nbsp;&amp;nbsp; start-kbd-macro&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x p&amp;nbsp;&amp;nbsp;&amp;nbsp; narrow-to-page&lt;br /&gt;C-x )&amp;nbsp;&amp;nbsp;&amp;nbsp; end-kbd-macro&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x q&amp;nbsp;&amp;nbsp;&amp;nbsp; kbd-macro-query&lt;br /&gt;C-x +&amp;nbsp;&amp;nbsp;&amp;nbsp; add-global-abbrev&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x r&amp;nbsp;&amp;nbsp;&amp;nbsp; copy-rectangle-to-register&lt;br /&gt;C-x -&amp;nbsp;&amp;nbsp;&amp;nbsp; inverse-add-global-abbrev&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x s&amp;nbsp;&amp;nbsp;&amp;nbsp; save-some-buffers&lt;br /&gt;C-x .&amp;nbsp;&amp;nbsp;&amp;nbsp; set-fill-prefix&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x u&amp;nbsp;&amp;nbsp;&amp;nbsp; advertised-undo&lt;br /&gt;C-x /&amp;nbsp;&amp;nbsp;&amp;nbsp; dot-to-register&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x w&amp;nbsp;&amp;nbsp;&amp;nbsp; widen&lt;br /&gt;C-x 0&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-window&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x x&amp;nbsp;&amp;nbsp;&amp;nbsp; copy-to-register&lt;br /&gt;C-x 1&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-other-windows&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x {&amp;nbsp;&amp;nbsp;&amp;nbsp; shrink-window-horizontally&lt;br /&gt;C-x 2&amp;nbsp;&amp;nbsp;&amp;nbsp; split-window-vertically&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x }&amp;nbsp;&amp;nbsp;&amp;nbsp; enlarge-window-horizontally&lt;br /&gt;C-x 4&amp;nbsp;&amp;nbsp;&amp;nbsp; ctl-x-4-prefix&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x DEL&amp;nbsp; backward-kill-sentence&lt;br /&gt;&lt;br /&gt;ESC C-SP mark-sexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC =&amp;nbsp;&amp;nbsp;&amp;nbsp; count-lines-region&lt;br /&gt;ESC C-a&amp;nbsp; beginning-of-defun&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC &amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end-of-buffer&lt;br /&gt;ESC C-b&amp;nbsp; backward-sexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC @&amp;nbsp;&amp;nbsp;&amp;nbsp; mark-word&lt;br /&gt;ESC C-c&amp;nbsp; exit-recursive-edit&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC O&amp;nbsp;&amp;nbsp;&amp;nbsp; ??&lt;br /&gt;ESC C-d&amp;nbsp; down-list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC [&amp;nbsp;&amp;nbsp;&amp;nbsp; backward-paragraph&lt;br /&gt;ESC C-e&amp;nbsp; end-of-defun&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC \&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-horizontal-space&lt;br /&gt;ESC C-f&amp;nbsp; forward-sexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC ]&amp;nbsp;&amp;nbsp;&amp;nbsp; forward-paragraph&lt;br /&gt;ESC C-h&amp;nbsp; mark-defun&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC ^&amp;nbsp;&amp;nbsp;&amp;nbsp; delete-indentation&lt;br /&gt;ESC LFD&amp;nbsp; indent-new-comment-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC a&amp;nbsp;&amp;nbsp;&amp;nbsp; backward-sentence&lt;br /&gt;ESC C-k&amp;nbsp; kill-sexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC b&amp;nbsp;&amp;nbsp;&amp;nbsp; backward-word&lt;br /&gt;ESC C-n&amp;nbsp; forward-list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC c&amp;nbsp;&amp;nbsp;&amp;nbsp; capitalize-word&lt;br /&gt;ESC C-o&amp;nbsp; split-line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC d&amp;nbsp;&amp;nbsp;&amp;nbsp; kill-word&lt;br /&gt;ESC C-p&amp;nbsp; backward-list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC e&amp;nbsp;&amp;nbsp;&amp;nbsp; forward-sentence&lt;br /&gt;ESC C-s&amp;nbsp; isearch-forward-regexp&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC f&amp;nbsp;&amp;nbsp;&amp;nbsp; forward-word&lt;br /&gt;ESC C-t&amp;nbsp; transpose-sexps&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC g&amp;nbsp;&amp;nbsp;&amp;nbsp; fill-region&lt;br /&gt;ESC C-u&amp;nbsp; backward-up-list&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC h&amp;nbsp;&amp;nbsp;&amp;nbsp; mark-paragraph&lt;br /&gt;ESC C-v&amp;nbsp; scroll-other-window&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC i&amp;nbsp;&amp;nbsp;&amp;nbsp; tab-to-tab-stop&lt;br /&gt;ESC C-w&amp;nbsp; append-next-kill&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC j&amp;nbsp;&amp;nbsp;&amp;nbsp; indent-new-comment-line&lt;br /&gt;ESC ESC&amp;nbsp; ??&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC k&amp;nbsp;&amp;nbsp;&amp;nbsp; kill-sentence&lt;br /&gt;ESC C-\&amp;nbsp; indent-region&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC l&amp;nbsp;&amp;nbsp;&amp;nbsp; downcase-word&lt;br /&gt;ESC SPC&amp;nbsp; just-one-space&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC m&amp;nbsp;&amp;nbsp;&amp;nbsp; back-to-indentation&lt;br /&gt;ESC !&amp;nbsp;&amp;nbsp;&amp;nbsp; shell-command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC q&amp;nbsp;&amp;nbsp;&amp;nbsp; fill-paragraph&lt;br /&gt;ESC $&amp;nbsp;&amp;nbsp;&amp;nbsp; spell-word&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC r&amp;nbsp;&amp;nbsp;&amp;nbsp; move-to-window-line&lt;br /&gt;ESC %&amp;nbsp;&amp;nbsp;&amp;nbsp; query-replace&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC t&amp;nbsp;&amp;nbsp;&amp;nbsp; transpose-words&lt;br /&gt;ESC '&amp;nbsp;&amp;nbsp;&amp;nbsp; abbrev-prefix-mark&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC u&amp;nbsp;&amp;nbsp;&amp;nbsp; upcase-word&lt;br /&gt;ESC (&amp;nbsp;&amp;nbsp;&amp;nbsp; insert-parentheses&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC v&amp;nbsp;&amp;nbsp;&amp;nbsp; scroll-down&lt;br /&gt;ESC )&amp;nbsp;&amp;nbsp;&amp;nbsp; move-past-close-and-reindent&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC w&amp;nbsp;&amp;nbsp;&amp;nbsp; copy-region-as-kill&lt;br /&gt;ESC ,&amp;nbsp;&amp;nbsp;&amp;nbsp; tags-loop-continue&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC x&amp;nbsp;&amp;nbsp;&amp;nbsp; execute-extended-command&lt;br /&gt;ESC -&amp;nbsp;&amp;nbsp;&amp;nbsp; negative-argument&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC y&amp;nbsp;&amp;nbsp;&amp;nbsp; yank-pop&lt;br /&gt;ESC .&amp;nbsp;&amp;nbsp;&amp;nbsp; find-tag&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC z&amp;nbsp;&amp;nbsp;&amp;nbsp; zap-to-char&lt;br /&gt;ESC 0 .. ESC 9&amp;nbsp; digit-argument&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC |&amp;nbsp;&amp;nbsp;&amp;nbsp; shell-command-on-region&lt;br /&gt;ESC ;&amp;nbsp;&amp;nbsp;&amp;nbsp; indent-for-comment&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC ~&amp;nbsp;&amp;nbsp;&amp;nbsp; not-modified&lt;br /&gt;ESC &amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp; beginning-of-buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ESC DEL&amp;nbsp; backward-kill-word&lt;br /&gt;&lt;br /&gt;C-x 4 C-f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find-file-other-window&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 4 d&amp;nbsp; dired-other-window&lt;br /&gt;C-x 4 .&amp;nbsp; find-tag-other-window&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 4 f&amp;nbsp; find-file-other-window&lt;br /&gt;C-x 4 b&amp;nbsp; pop-to-buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 4 m&amp;nbsp; mail-other-window&lt;br /&gt;---------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: Quick EMACS Commands&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://en.opensuse.org/Emacs"&gt;http://en.opensuse.org/Emacs&lt;/a&gt;&lt;br /&gt;---------------&lt;br /&gt;Action&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Key-sequence&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Command&lt;br /&gt;Open file&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x C-f&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;find-file&lt;br /&gt;Close&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x C-c&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;save-buffers-kill-emacs&lt;br /&gt;Save file&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x C-s&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;save-buffer&lt;br /&gt;Save as&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x C-w&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;write-file&lt;br /&gt;Page down&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-v&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;scroll-up&lt;br /&gt;Page up&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-v&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;scroll-down&lt;br /&gt;Goto top&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-&amp;lt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;beginning-of-buffer&lt;br /&gt;Goto end&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end-of-buffer&lt;br /&gt;Goto line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-g g&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;goto-line&lt;br /&gt;Goto start of line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-a&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;beginning-of-line&lt;br /&gt;Goto end of line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-e&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;end-of-line&lt;br /&gt;Search forwards&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-s search term&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;isearch-forward search term&lt;br /&gt;Repeat last search forwards&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-s C-s&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;isearch-repeat-forward&lt;br /&gt;Search backwards&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-r search term&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;isearch-backward search term&lt;br /&gt;Repeat last search backwards&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-r C-r&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;isearch-repeat-backward&lt;br /&gt;Cancel command&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-g&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;keyboard-quit&lt;br /&gt;Kill line&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-k&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;kill-line&lt;br /&gt;Kill sentence&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-k&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;kill-sentence&lt;br /&gt;Yank last kill&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-y&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;yank&lt;br /&gt;Yank previous kill&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;M-y&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;yank-pop&lt;br /&gt;Split window horizontally&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 2&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Split window vertically&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 3&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Swap active window&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x o&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Merge windows&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x 1&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;List buffers&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x C-b&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;list-buffers&lt;br /&gt;Switch to buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x b&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;switch-to-buffer&lt;br /&gt;Switch active buffer left&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x [LEFT]&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;previous-buffer&lt;br /&gt;Switch active buffer right&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x [RIGHT]&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;next-buffer&lt;br /&gt;Kill Buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-x f&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;kill-buffer&lt;br /&gt;Spell-check current buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; none&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ispell-buffer&lt;br /&gt;Spell-check current word&amp;nbsp;&amp;nbsp;&amp;nbsp; none&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ispell-word&lt;br /&gt;Indent code&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-M-\&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;indent-region&lt;br /&gt;Goto matching closing bracket&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-M-f&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;Goto matching opening bracket&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;C-M-b&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;---------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6534472434376260657?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6534472434376260657/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/09/editoremacs-emacs-manual.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6534472434376260657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6534472434376260657'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/09/editoremacs-emacs-manual.html' title='[Editor][Emacs] Emacs Manual'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5436222881171556823</id><published>2010-09-29T18:17:00.000+09:00</published><updated>2010-09-29T18:17:37.950+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scheme'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Scheme] MIT/GNU Scheme</title><content type='html'>&lt;b&gt;[Scheme] MIT/GNU Scheme&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: MIT/GNU Sceme&lt;/b&gt;&lt;br /&gt;&lt;a href="http://groups.csail.mit.edu/mac/projects/scheme/"&gt;http://groups.csail.mit.edu/mac/projects/scheme/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/mit-scheme/"&gt;http://www.gnu.org/software/mit-scheme/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: SICP (Structure and Interpretation of Computer Programs)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book.html"&gt;http://mitpress.mit.edu/sicp/full-text/book/book.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: A Beginner's Guide to Using EMACS&lt;/b&gt;&lt;br /&gt;&lt;a href="http://xkahn.zoned.net/help/emacs.html"&gt;http://xkahn.zoned.net/help/emacs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;b&gt;:: Quick EMACS Commands&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;- Source:&lt;/b&gt; &lt;a href="http://xkahn.zoned.net/help/emacs.html"&gt;http://xkahn.zoned.net/help/emacs.html&lt;/a&gt;&lt;br /&gt;---------------&lt;br /&gt;[Quitting EMACS:]&lt;br /&gt;Quit:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-c&lt;br /&gt;I pushed the wrong key. Help!:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-g&lt;br /&gt;---------------&lt;br /&gt;[Working with files:]&lt;br /&gt;Load a file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;Load a directory:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;New file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-f&lt;br /&gt;Save a file:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-s&lt;br /&gt;Save all open files:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x s&lt;br /&gt;Save the file with a new name&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x Ctrl-w&lt;br /&gt;---------------&lt;br /&gt;[Dealing with Buffers]&lt;br /&gt;Switch buffers:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x b&lt;br /&gt;Close buffer:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x k&lt;br /&gt;Split current buffer&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x 2&lt;br /&gt;Make current buffer the only one on screen&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x 1&lt;br /&gt;Switch between the buffers on-screen&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-x o&lt;br /&gt;---------------&lt;br /&gt;[Cutting and pasting]&lt;br /&gt;Set mark:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-[SPACE]&lt;br /&gt;Cut and save text from here to mark:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-w&lt;br /&gt;Paste saved text:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-y&lt;br /&gt;Cut text from the cursor to the end of the line:&amp;nbsp;&amp;nbsp;&amp;nbsp; Ctrl-k&lt;br /&gt;---------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5436222881171556823?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5436222881171556823/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/09/scheme-mitgnu-scheme.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5436222881171556823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5436222881171556823'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/09/scheme-mitgnu-scheme.html' title='[Scheme] MIT/GNU Scheme'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-8694604118908403706</id><published>2010-09-29T15:41:00.003+09:00</published><updated>2011-01-21T23:12:09.765+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] My Tip; Android ant release error (-dex: apply)</title><content type='html'>[Android] My Tip; Android ant release error (-dex: apply)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// :: Preset&lt;br /&gt;// ----------------------------------&lt;br /&gt;&amp;nbsp;- Source Path&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:/Program Files/MyAPKTest&lt;br /&gt;&amp;nbsp;- Android SDK Path&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:/android/android-sdk-windows&lt;br /&gt;&amp;nbsp;- Using Android SDK Version: 2.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C:/android/android-sdk-windows/platforms/android-6/&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// :: Problem&lt;br /&gt;//&lt;br /&gt;// - Caused by this into dx.bat&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; if "%params%"=="" goto endArgs&lt;br /&gt;//&lt;br /&gt;// - e.g.,&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; set params = "--dex C:/Program Files/MyAPKTest/bin/classes.dex" "..." "..." "..."&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; if "%params%" == ""&lt;br /&gt;// - DOS Batch Interpreter does not parse duplicated double-quotation.&lt;br /&gt;// ----------------------------------&lt;br /&gt;C:/Program Files/MyAPKTest&amp;gt; ant clean [OK]&lt;br /&gt;C:/Program Files/MyAPKTest&amp;gt; ant compile [OK]&lt;br /&gt;C:/Program Files/MyAPKTest&amp;gt; ant release&lt;br /&gt;...&lt;br /&gt;-dex:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [echo] Converting compiled files and external libraries into C:/Program Files/MyAPKTest/bin/classes.dex...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [echo]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [apply] =C:/Files""은(는) 예상되지 않았습니다. (Korean)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [apply] =C:/Files"" was unexpected at this time. (English)&lt;br /&gt;C:/Program Files/My APK Test&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// :: Solution&lt;br /&gt;// - Condition: Does not needs options&lt;br /&gt;// ----------------------------------&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// 1. Open a dx.bat&lt;br /&gt;// ----------------------------------&lt;br /&gt;C:/android/android-sdk-windows/platforms/android-6/tools/dx.bat&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// 2. and Adds this in the above the ":nextArg"&lt;br /&gt;// ----------------------------------&lt;br /&gt;...&lt;br /&gt;echo ***** SKIP check the parameter *****&lt;br /&gt;set args=%params%&lt;br /&gt;goto endArgs&lt;br /&gt;&lt;br /&gt;:nextArg&lt;br /&gt;if "%params%"=="" goto endArgs&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;// ----------------------------------&lt;br /&gt;// 3. That's it, so now run clean &amp;amp; compile &amp;amp; release&lt;br /&gt;// ----------------------------------&lt;br /&gt;C:/Program Files/MyAPKTest&amp;gt; ant clean &amp;amp;&amp;amp; ant compile &amp;amp;&amp;amp; ant release&lt;br /&gt;...&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: x seconds&lt;br /&gt;C:/Program Files/MyAPKTest&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-8694604118908403706?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/8694604118908403706/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/09/android-my-tip-android-ant-release.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8694604118908403706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/8694604118908403706'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/09/android-my-tip-android-ant-release.html' title='[Android] My Tip; Android ant release error (-dex: apply)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2779294870608486270</id><published>2010-09-15T00:08:00.004+09:00</published><updated>2010-09-15T21:42:06.440+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] My Tip; Android and ProGuard</title><content type='html'>&lt;b&gt;Android and ProGuard &lt;/b&gt;&lt;br /&gt;&lt;b&gt;How to set ProGuard to ANT script for Android&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP #1&lt;/b&gt;&lt;br /&gt;Create a build.xml for ANT&lt;br /&gt;c:/&amp;gt; ant update project --path c:/my_src&lt;br /&gt;Create a build.property for keystore&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP #2&lt;/b&gt;&lt;br /&gt;EDIT build.xml&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP #3&lt;/b&gt;&lt;br /&gt;SETS ProGuard&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP #4&lt;/b&gt;&lt;br /&gt;BUILD&lt;br /&gt;&lt;br /&gt;&lt;b&gt;STEP #5&lt;/b&gt;&lt;br /&gt;TEST, that's it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// build.property&lt;br /&gt;//&lt;br /&gt;#application-package=com.test.testApp&lt;br /&gt;#sdk-location=C:/android/android-sdk-windows/platforms/android-6&lt;br /&gt;&lt;br /&gt;# KeyStore/Alias&lt;br /&gt;key.store=__MY_KEYSTORE__.keystore&lt;br /&gt;key.alias=__MY_KETSTORE_ALIAS__&lt;br /&gt;key.store.password=__PASSWORD__&lt;br /&gt;key.alias.password=__PASSWORD__&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// build.xml&lt;br /&gt;//&lt;br /&gt;// --------------------------------&lt;br /&gt;// 1. replace &amp;lt;setup /&amp;gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;by&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- &amp;lt;setup /&amp;gt; --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;setup import="false" /&amp;gt;&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// 2. Adds this in the below &amp;lt;setup import="false" /&amp;gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;&amp;lt;!-- ProGuard --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="proguard-dir" value="proguard"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="unoptimized" value="${proguard-dir}/unoptimized.jar"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;property name="optimized" value="${proguard-dir}/optimized.jar"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name="optimize" unless="nooptimize"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jar basedir="${out.classes.dir}" destfile="${unoptimized}"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;java jar="${proguard-dir}/proguard.jar" fork="true" failonerror="true"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jvmarg value="-Dmaximum.inlined.code.length=16"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="@${proguard-dir}/config.txt"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="-injars ${unoptimized}"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="-outjars ${optimized}"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&amp;lt;arg value="-libraryjars ${android.jar}"/&amp;gt;--&amp;gt;&lt;br /&gt;&amp;lt;!-- ADDS Library --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="-libraryjars ${android.jar}" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!--&amp;nbsp;&amp;lt;arg value="-libraryjars libs/xxx.jar; libs/yyy.jar"/&amp;gt;&amp;nbsp;--&amp;gt;&lt;br /&gt;&amp;lt;!-- ADDS Library --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/java&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Delete source pre-optimized jar --&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--delete file="${unoptimized}"/--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Unzip target optimization jar to original output, and delete optimized.jar --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;delete dir="${out.classes.dir}"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mkdir dir="${out.classes.dir}"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;unzip src="${proguard-dir}/optimized.jar" dest="${out.classes.dir}"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Delete optimized jar (now unzipped into bin directory) --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;delete file="optimized.jar"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;!-- ProGuard --&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;!-- 3. Copy rule and paste into build.xml; see below --&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// 3. Copy rule and paste into build.xml&lt;br /&gt;// --------------------------------&lt;br /&gt;OPEN a rule xml file&lt;br /&gt;&amp;lt;SDK_PATH&amp;gt;/platforms/&amp;lt;target_platform&amp;gt;/templates/android_rules.xml&lt;br /&gt;&lt;br /&gt;COPY from in the below &amp;lt;project name="android_rules" default="debug"&amp;gt;&lt;br /&gt;to in the above &amp;lt;/project&amp;gt;&lt;br /&gt;then, PASTE this in the below ProGuard&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// 4. Finds &amp;lt;target name="-dex" depends="compile"&amp;gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;then, adds ", optimize" beside "compile"&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- ProGuard --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;target name="-dex" depends="compile, optimize"&amp;gt;&lt;br /&gt;&amp;lt;!-- ProGuard --&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// ProGuard&lt;br /&gt;//&lt;br /&gt;// --------------------------------&lt;br /&gt;// 1. Get latest version&lt;br /&gt;// --------------------------------&lt;br /&gt;Download: http://sourceforge.net/project/showfiles.php?group_id=54750&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// 2. Copy proguard.jar where into downloaded zip archive to my project directory&lt;br /&gt;// --------------------------------&lt;br /&gt;create a directory "proguard" into my project source directory&lt;br /&gt;then, copy proguard/lib/proguard.jar to c:/my_src/proguard&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// 3. Create a config.txt into "my_src_dir/proguard"&lt;br /&gt;// --------------------------------&lt;br /&gt;# --------------------------------------------------&lt;br /&gt;# ProGuard:&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; http://proguard.sourceforge.net/&lt;br /&gt;# ProGuard Download:&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; http://sourceforge.net/project/showfiles.php?group_id=54750&lt;br /&gt;#&lt;br /&gt;# config.txt Source:&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp; http://www.androidengineer.com/2010/07/optimizing-obfuscating-and-shrinking.html&lt;br /&gt;# --------------------------------------------------&lt;br /&gt;&lt;br /&gt;-target 1.6&lt;br /&gt;-optimizationpasses 2&lt;br /&gt;-dontusemixedcaseclassnames&lt;br /&gt;-dontskipnonpubliclibraryclasses&lt;br /&gt;-dontpreverify&lt;br /&gt;#-verbose&lt;br /&gt;#-dump class_files.txt&lt;br /&gt;#-printseeds seeds.txt&lt;br /&gt;#-printusage unused.txt&lt;br /&gt;#-printmapping mapping.txt&lt;br /&gt;&lt;br /&gt;# The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle.&lt;br /&gt;-optimizations !code/simplification/arithmetic&lt;br /&gt;&lt;br /&gt;-keep public class * extends android.app.Activity&lt;br /&gt;#-keep public class * extends android.app.Application&lt;br /&gt;#-keep public class * extends android.app.Service&lt;br /&gt;#-keep public class * extends android.content.BroadcastReceiver&lt;br /&gt;#-keep public class * extends android.content.ContentProvider&lt;br /&gt;&lt;br /&gt;#-keep public class * extends View {&lt;br /&gt;#public &amp;lt;init&amp;gt;(android.content.Context);&lt;br /&gt;#public &amp;lt;init&amp;gt;(android.content.Context, android.util.AttributeSet);&lt;br /&gt;#public &amp;lt;init&amp;gt;(android.content.Context, android.util.AttributeSet, int);&lt;br /&gt;#public void set*(...);&lt;br /&gt;#}&lt;br /&gt;# --------------------------------------------------&lt;br /&gt;&lt;br /&gt;// --------------------------------&lt;br /&gt;// build&lt;br /&gt;// --------------------------------&lt;br /&gt;c:/my_src&amp;gt; ant compile&lt;br /&gt;c:/my_src&amp;gt; ant release&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2779294870608486270?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2779294870608486270/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/09/android-my-tip-how-to-set-proguard-to.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2779294870608486270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2779294870608486270'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/09/android-my-tip-how-to-set-proguard-to.html' title='[Android] My Tip; Android and ProGuard'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-644090816011095966</id><published>2010-09-02T16:31:00.001+09:00</published><updated>2010-09-02T16:31:50.539+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] My Tip; How to increase Android Emulator's Internal Phone Storage and RAM ?</title><content type='html'>&lt;b&gt;How to increase Android Emulator's Internal Phone Storage and RAM ?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;b&gt;-partition-size&lt;/b&gt; [Sizeo of the Internal Phone Storage; MB]&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;b&gt;-qemu -m&lt;/b&gt; [Sizeo of the Physical RAM; MB]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Run:&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;-&amp;nbsp;Internal Phone Storage: 512MB&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;-&amp;nbsp;Physical RAM: 128MB (default)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;C:/android-sdk-windows/tools&amp;gt; emulator -partition-size 512 -avd MyAVDname -qemu -m 128&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-644090816011095966?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/644090816011095966/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/09/how-to-increase-android-internal-phone.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/644090816011095966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/644090816011095966'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/09/how-to-increase-android-internal-phone.html' title='[Android] My Tip; How to increase Android Emulator&apos;s Internal Phone Storage and RAM ?'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2260776574323219394</id><published>2010-08-26T22:10:00.000+09:00</published><updated>2010-08-26T22:10:39.905+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] QAEP (MSM/QSD Android Enablement Project)</title><content type='html'>&lt;b&gt;QAEP (MSM/QSD Android Enablement Project)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt; &lt;a href="https://www.codeaurora.org/wiki/QAEP#Branch_Releases"&gt;https://www.codeaurora.org/wiki/QAEP#Branch_Releases&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-2260776574323219394?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/2260776574323219394/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/08/android-qaep-msmqsd-android-enablement.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2260776574323219394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/2260776574323219394'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/08/android-qaep-msmqsd-android-enablement.html' title='[Android] QAEP (MSM/QSD Android Enablement Project)'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6035889604500012014</id><published>2010-08-26T22:00:00.001+09:00</published><updated>2010-08-26T22:01:15.080+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[CV][IP] DICOM</title><content type='html'>&lt;b&gt;DICOM (Digital Imaging and Communications in Medicine)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Link]&lt;/b&gt;&lt;br /&gt;&lt;b&gt;* DICOM@OFFIS&lt;/b&gt;&lt;br /&gt;&lt;a href="http://dicom.offis.de/dcmintro.php.en"&gt;http://dicom.offis.de/dcmintro.php.en&lt;/a&gt;&lt;br /&gt;&lt;b&gt;* Sample DICOM (.dcm) file&lt;/b&gt;&lt;br /&gt;&lt;a href="http://filmandpaperdigitizers.com/samples/DICOM/"&gt;http://filmandpaperdigitizers.com/samples/DICOM/&lt;/a&gt;&lt;br /&gt;&lt;b&gt;* Medical Image Samples&lt;/b&gt;&lt;br /&gt;&lt;a href="http://barre.nom.fr/medical/samples/"&gt;http://barre.nom.fr/medical/samples/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6035889604500012014?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6035889604500012014/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/08/cvip-dicom.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6035889604500012014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6035889604500012014'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/08/cvip-dicom.html' title='[CV][IP] DICOM'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-5733373965395368384</id><published>2010-08-26T21:43:00.003+09:00</published><updated>2010-08-26T21:47:52.080+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Algorithm_AI'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Algorithm][AI][Genetic]</title><content type='html'>&lt;b&gt;AI: Genetic Algorithm&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;[Link]&lt;/b&gt;&lt;br /&gt;&lt;b&gt;* Genetic-Programming by John R. Koza&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.genetic-programming.com/johnkoza.html"&gt;http://www.genetic-programming.com/johnkoza.html&lt;/a&gt;&lt;br /&gt;&lt;b&gt;* &lt;/b&gt;&lt;b&gt;Father of the Genetic Programming, John R. Koza &lt;/b&gt;&lt;b&gt;(Written in Korean)&lt;/b&gt;&lt;br /&gt;&lt;a href="http://popsci.hankooki.com/popsci_news/view.php?news1_id=2506&amp;amp;cate=14&amp;amp;page=78&amp;amp;keyword="&gt;http://popsci.hankooki.com/popsci_news/view.php?news1_id=2506&amp;amp;cate=14&amp;amp;page=78&amp;amp;keyword=&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-5733373965395368384?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/5733373965395368384/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/08/algorithmaigenetic.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5733373965395368384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/5733373965395368384'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/08/algorithmaigenetic.html' title='[Algorithm][AI][Genetic]'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-6162147326017356663</id><published>2010-08-19T23:04:00.001+09:00</published><updated>2011-04-30T00:28:09.799+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='TIP_programming'/><title type='text'>[Android] Android</title><content type='html'>&lt;b&gt;Android&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Android Open Source Project&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://android.git.kernel.org/"&gt;http://android.git.kernel.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Android x86 Project (Porting Android to x86)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.android-x86.org/"&gt;http://www.android-x86.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Content Provider&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Reference:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.devx.com/wireless/Article/41133"&gt;http://www.devx.com/wireless/Article/41133&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;{ // CContentProvider Example&lt;br /&gt;&lt;a href="http://code.google.com/p/listenmystory/source/browse/"&gt;http://code.google.com/p/listenmystory/source/browse/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// CContentProvider Example&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;#DB: DB_CPtest&lt;br /&gt;#TABLE NAME: info&lt;br /&gt;#TABLE DESCRIPTION:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;_id | title | data | data2 (extra)&lt;br /&gt;&lt;br /&gt;// Get all of data&lt;br /&gt;Uri allTitles = Uri.parse( "content://com.android.myTest1/db_cptest" );&lt;br /&gt;Cursor c = managedQuery( allTitles, null, null, null, "_id asc" );&lt;br /&gt;if( c.moveToFirst() ) {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;do {&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//Toast.makeText(this,&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;c.getString(c.getColumnIndex(CContentProvider._ID)) + ", " +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;c.getString(c.getColumnIndex(CContentProvider.TITLE)) + ", " +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;c.getString(c.getColumnIndex(CContentProvider.DATA)) + ", " +&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;c.getString(c.getColumnIndex(CContentProvider.DATA2)),&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;//Toast.LENGTH_LONG).show();&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String strId = c.getString( c.getColumnIndex(CContentProvider._ID) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String strTitle = c.getString( c.getColumnIndex(CContentProvider.TITLE) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String strData = c.getString( c.getColumnIndex(CContentProvider.DATA) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;String strData2 = c.getString( c.getColumnIndex(CContentProvider.DATA2) );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Log.d( TAG, "id = " + strId + ", title = " + strTitle + ", data = " + strData + ", data2 = " + strData2 );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;} while( c.moveToNext() );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// INSERT&lt;br /&gt;ContentValues values = new ContentValues();&lt;br /&gt;values.put( "title", "title1" );&lt;br /&gt;values.put( "data", "data" );&lt;br /&gt;values.put( "data2", "extra" );&lt;br /&gt;Uri uri = Uri.parse( "content://com.android.myTest1/db_cptest" );&lt;br /&gt;Uri resUri = getContentResolver().insert( uri, values );&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;br /&gt;// UPDATE #1&lt;br /&gt;ContentValues values = new ContentValues();&lt;br /&gt;values.put( "data", "data" );&lt;br /&gt;Uri uri = Uri.parse( "content://com.android.myTest1/db_cptest/1" );&lt;br /&gt;int resRowCount = getContentResolver().update( uri, values, null, null );&lt;br /&gt;if( resRowCount &amp;gt; 0 )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Log.d( TAG, "Updated [TRUE]" );&lt;br /&gt;else&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Log.d( TAG, "Updated [FALSE]" );&lt;br /&gt;&lt;br /&gt;// UPDATE #2&lt;br /&gt;ContentValues values = new ContentValues();&lt;br /&gt;values.put( "data", "data" );&lt;br /&gt;Uri uri = Uri.parse( "content://com.android.myTest1/db_cptest" );&lt;br /&gt;String[] strParam = { "title1" };&lt;br /&gt;int resRowCount = getContentResolver().update( uri, values, "title=?", strParam );&lt;br /&gt;if( resRowCount &amp;gt; 0 )&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Log.d( TAG, "Updated [TRUE]" );&lt;br /&gt;else&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Log.d( TAG, "Updated [FALSE]" );&lt;br /&gt;} // end of CContentProvider Example&lt;br /&gt;&lt;br /&gt;// -----------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-6162147326017356663?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/6162147326017356663/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/08/android-android.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6162147326017356663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/6162147326017356663'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/08/android-android.html' title='[Android] Android'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-3305129648064627831</id><published>2010-08-19T22:01:00.001+09:00</published><updated>2010-08-19T22:02:22.261+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>[Linux][Memory] User/Kernel Space</title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;--------------------------------------&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Q: How does Linux partition logical address space&lt;/b&gt; as far as User/Kernel space is concerned, especially when it comes to deciding what gets mapped to virtual versus physical RAM? - Questions&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://fixunix.com/questions/14616-how-does-linux-partition-logical-address-space-far-user-kernel-space-concerned-especially-when-comes-deciding-what-gets-mapped-virtual-versus-physical-ram.html"&gt;http://fixunix.com/questions/14616-how-does-linux-partition-logical-address-space-far-user-kernel-space-concerned-especially-when-comes-deciding-what-gets-mapped-virtual-versus-physical-ram.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The norm for a memory allocation scheme is to use physical memory before&lt;br /&gt;dumping the overflow to disk. However with Linux it's unique in that&lt;br /&gt;there's a set limit for user and kernel space (aka monolithic kernel).&lt;br /&gt;Which leads me to believe that the logical address space is set aside&lt;br /&gt;ahead of time. Meaning that if a person has 2GBs of physical RAM and&lt;br /&gt;chooses option 3GBs/1GBS of user/kernel space, that either 1GB of kernel&lt;br /&gt;space and 1GB of user space will be allocated to physical RAM; OR, 2 GBs&lt;br /&gt;of user space will go to physical RAM while the remaining 2 GBs (1 user,&lt;br /&gt;the other kernel) will be virtual. This seems rather asinine, so I&lt;br /&gt;hardly believe this is how it works.&lt;br /&gt;&lt;br /&gt;It was also proposed to me that the system only considers how much it -&lt;br /&gt;will- give to either user or kernel space. Meaning that at boot up, if a&lt;br /&gt;system only uses 2 MBs of Kernel space, only 2 MBs gets mapped from the&lt;br /&gt;the total available memory for Kernel space (as there's a cap). Also&lt;br /&gt;meaning that those first 2 MBs would be allocated to physical memory.&lt;br /&gt;Then as more would be requested more would be allocated for either user&lt;br /&gt;or kernel space, straight from physical memory, till it ran out. This&lt;br /&gt;sounds like a more solid schema, but at the same time it seems silly to&lt;br /&gt;do things on a first come, first serve basis. It seems more reasonable&lt;br /&gt;that it would partition each application such that each has some&lt;br /&gt;physical memory to work in, and then to use a memory map for anything&lt;br /&gt;additional to disk.&lt;br /&gt;&lt;br /&gt;So the question is, how does Linux delegate it's memory with regards to&lt;br /&gt;user/kernel space? Does Linux treat User/Kernel space just as a hard&lt;br /&gt;limit, allocating memory as it's needed until it hits the cap for a&lt;br /&gt;particular "type" of memory? Or does it preordain that kernel space will&lt;br /&gt;be in physical memory while user space will get the remainder, whether&lt;br /&gt;it be physical or not? Is there possibly another partitioning scheme,&lt;br /&gt;similar to the one I suggested above?&lt;br /&gt;&lt;br /&gt;I'm beginning to believe it's a simple tallying scheme, checking to see&lt;br /&gt;how much kernel space or user space has been allocated.&lt;br /&gt;&lt;br /&gt;ie/&lt;br /&gt;3GB/1GB of User/Kernel space is available.&lt;br /&gt;2 MBs gets allocated at boot-time for the kernel and it's modules -&lt;br /&gt;(1.000GBs-0.002GBs=NewAvailableKernelSpace)&lt;br /&gt;50 MBs gets allocated to X in user space - (3.000GBs-&lt;br /&gt;0.050GBs=NewAvailableUserSpace)&lt;br /&gt;So on and so forth.&lt;br /&gt;&lt;br /&gt;I imagine that the logical address space is just a series of pointers&lt;br /&gt;telling the system where everything is. For example, the first logical&lt;br /&gt;address might point to physical memory for kernel space, while the&lt;br /&gt;second logical address unit might point to user space in virtual memory&lt;br /&gt;(similar to the example above). I imagine that's the whole value of&lt;br /&gt;logical address space - it provides the HAL.&lt;br /&gt;&lt;br /&gt;Any reference material or solid answers surrounding the mysteries of&lt;br /&gt;Linux's memory allocation would be appreciated.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Dustin&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;b&gt;Q: Virtual memory - user space kernel space&lt;/b&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://fixunix.com/linux/7872-virtual-memory-user-space-kernel-space.html"&gt;http://fixunix.com/linux/7872-virtual-memory-user-space-kernel-space.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hi,&lt;br /&gt;I m having some questions in Linux memory management.&lt;br /&gt;I m considering about 32 bit machine only.&lt;br /&gt;If you have a 512 MB of memory, how it is divided between kernel space&lt;br /&gt;and user space?&lt;br /&gt;&lt;br /&gt;What is the link between this division and 3GB userspace and 1 GB&lt;br /&gt;kernel space division.&lt;br /&gt;Is the 3G/1G division is for virtual memory?&lt;br /&gt;Is the total Virtual memory can be 4G only? I mean is it the maximum?&lt;br /&gt;&lt;br /&gt;Thanks in advance.&lt;br /&gt;&lt;br /&gt;regards&lt;br /&gt;SaranJothy&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;SaranJothy wrote:&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Hi,&lt;br /&gt;&amp;gt; I m having some questions in Linux memory management.&lt;br /&gt;&amp;gt; I m considering about 32 bit machine only.&lt;br /&gt;&amp;gt; If you have a 512 MB of memory, how it is divided between kernel space&lt;br /&gt;&amp;gt; and user space?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;A (relatively) small part is statically allocated to hold the kernel&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;code and static data. The rest is dynamically allocated to whatever is&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;required (user, drivers, kernel, ...)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; What is the link between this division and 3GB userspace and 1 GB&lt;br /&gt;&amp;gt; kernel space division.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;None.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Is the 3G/1G division is for virtual memory?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Yes.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Is the total Virtual memory can be 4G only? I mean is it the maximum?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;In 32 bit Linux: yes, you cannot address more than 4GB of virtual&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;addresses with 32 bit pointers.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;--&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Josef Möllers (Pinguinpfleger bei FSC)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;If failure had no penalty success would not be a prize&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;-- T. Pratchett&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: #666666; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;On Feb 8, 1:45 pm, "SaranJothy"&amp;nbsp;&lt;saranjo...@gmail.com&gt;wrote:&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Hi,&lt;br /&gt;&amp;gt; I m having some questions in Linux memory management.&lt;br /&gt;&amp;gt; I m considering about 32 bit machine only.&lt;br /&gt;&amp;gt; If you have a 512 MB of memory, how it is divided between kernel space&lt;br /&gt;&amp;gt; and user space?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you bumble virtual and physical memory. kernel divides _only_ virtual&lt;br /&gt;memory between kernel space and user space,&lt;br /&gt;physical memory are share to both. so, if for example, I want to&lt;br /&gt;allocate n mb from user space, i can get some virtual address p&lt;br /&gt;associated with physical page g.&lt;br /&gt;and if i after it will try to allocate n mb from kernel space i can&lt;br /&gt;get some virtual address i, associated with the same physical page g.&lt;br /&gt;it's normal.&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; What is the link between this division and 3GB userspace and 1 GB&lt;br /&gt;&amp;gt; kernel space division.&lt;br /&gt;&amp;gt; Is the 3G/1G division is for virtual memory?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;yep&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Is the total Virtual memory can be 4G only? I mean is it the maximum?&lt;br /&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;nope. intel, for example, support PAE feature, that performs 64G&lt;br /&gt;virtual space.&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Thanks in advance.&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; regards&lt;br /&gt;&amp;gt; SaranJothy&lt;/span&gt;&lt;/saranjo...@gmail.com&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Thanks for the reply.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;As said,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; A (relatively) small part is statically allocated to hold the kernel&lt;br /&gt;&amp;gt; code and static data. The rest is dynamically allocated to whatever is&lt;br /&gt;&amp;gt; required (user, drivers, kernel, ...)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;So, It depends upon the total size of kernel code and static data.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Right?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;I read like 1G is allocated for kernel and 3G is allocated for&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;userspace in Virtual memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;So part of RAM is mapped to 1G Kernel space address.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;If part of RAM where kernel resides is smaller(as in most cases) than&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;1G, how it is mapped to 1G?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;how 3G /1G break is maintained for secondary storage having just&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;2 G of memory?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;I m having some problems in co-relating Physical memory and VM. pls.,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;correct me.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Regards,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Saran&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="color: black; font-family: Gulim;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Hi,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Thanks for the replies.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;As said,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; A (relatively) small part is statically allocated to hold the kernel&lt;br /&gt;&amp;gt; code and static data. The rest is dynamically allocated to whatever is&lt;br /&gt;&amp;gt; required (user, drivers, kernel, ...)&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;So, It depends upon the total size of kernel code and static data.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Right?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;1G/3G division in virutal memory is nothing but a set of pointers to&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;have VM management.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Set of pointers for Kernel. -1G&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Set of pointers for User space - 3G&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Kernel space pointers are special such that they have direct mapping&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;to Physical memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;User space pointers has to go via MMU to get the location in physical&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;memory. Just correct me with the above understanding?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;The process (User space) memory is swapped in and out to Secondary&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;storage to meet memory requirements of new process required to&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;execute.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;What happens when we dont have enough Secondary storage.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;say we have 2G RAM and 1.5G application is currently running.(I hope&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;this is possible) We have 1G of secondary storage only.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Now a 1.5G application wants to run.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;(How the currently executing 1.5G application gets swapped out?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;My intention of qn. is what happens when we dont have enough Secondary&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Thanks for your replies,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Saran&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;"just.asgard"&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;just.asgard@gmail.com&gt;wrote in&lt;br /&gt;news:1170938227.135204.298340&lt;acronym title="-at-"&gt;@&lt;/acronym&gt;p10g2000cwp.googlegr oups.com:&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: green;"&gt;&lt;br /&gt;&amp;gt;&amp;gt; Is the total Virtual memory can be 4G only? I mean is it the maximum?&lt;br /&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; nope. intel, for example, support PAE feature, that performs 64G&lt;br /&gt;&amp;gt; virtual space.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is incorrect. PAE provides 64G of _physical_ address space. It&lt;br /&gt;doesn't change the 4GB of virtual address space. You still only have 32-&lt;br /&gt;bit registers.&lt;br /&gt;&lt;br /&gt;GH&lt;/just.asgard@gmail.com&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;SaranJothy wrote:&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Thanks for the reply.&lt;br /&gt;&amp;gt; As said,&lt;br /&gt;&amp;gt;&amp;nbsp;&lt;span style="color: green;"&gt;&lt;br /&gt;&amp;gt;&amp;gt;A (relatively) small part is statically allocated to hold the kernel&lt;br /&gt;&amp;gt;&amp;gt;code and static data. The rest is dynamically allocated to whatever is&lt;br /&gt;&amp;gt;&amp;gt;required (user, drivers, kernel, ...)&lt;/span&gt;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; So, It depends upon the total size of kernel code and static data.&lt;br /&gt;&amp;gt; Right?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Yes.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;In the old days, all physical memory was mapped 1:1 to virtual addresses&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;0xc0000000 upwards, so the kernel could access everything directly. If&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;you had more than 1GB of physical memory, you could recompile the kernel&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;to start at 0x80000000 or even (correct me if I'm wrong) 0x40000000, to&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;accomodate up to 2 or 3 GB of physical memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Later, Hugemem and friends were introduced and you could have more than&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;1GB of physical memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; I read like 1G is allocated for kernel and 3G is allocated for&lt;br /&gt;&amp;gt; userspace in Virtual memory.&lt;br /&gt;&amp;gt; So part of RAM is mapped to 1G Kernel space address.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Yes, the part which holds the kernel code and static data is mapped to&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;the 1G kernel address space. Dynamically allocated kernel memory is also&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;mapped to the space. Other pages (user pages, buffers, ...) can be&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;mapped on demand.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; If part of RAM where kernel resides is smaller(as in most cases) than&lt;br /&gt;&amp;gt; 1G, how it is mapped to 1G?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;In general, there is no distinction between less than 1GB and more than&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;1GB of physical memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; how 3G /1G break is maintained for secondary storage having just&lt;br /&gt;&amp;gt; 2 G of memory?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;??? "secondary storage" ???&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;You mean swap space? Linux uses swap space in addition to physical&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;memory, so having 1GB of physical memory and 2GB of swap space would&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;allow you to use 3GB of virtual memory, distributed amongst the kernel&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;(a relatively small portion, locked to physical memory) and user processes.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; I m having some problems in co-relating Physical memory and VM. pls.,&lt;br /&gt;&amp;gt; correct me.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Try to find a decent book on virtual memory.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;An attempt of a very short explanation:&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;virtual memory is subdivided into "page frames", in ia32 these are 4KB.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Likewise, physical memory is subdivided into "pages", again 4KB in size.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;There is a piece of hardware, the Memory Management Unit (MMU) which&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;takes a virtual address coming out of the CPU and replaces this by a&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;physical address, in the simplest case by a table-lookup: The upper 20&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;bits (the page frame number) of a 32-bit virtual address selects one of&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;the 1048576 slots in the table. This slot contains a bit "valid" and the&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;upper 20 bits (the page number) of the physical address. If the "valid"&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;bit is 0, then this virtual address is invalid and the access is aborted&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;(SIGSEGV). If the "valid" bit is 1, the 20 bits "page frame number" is&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;replaced by the 20 bits "page number",keeping the lower 12 bits of the&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;(virtual) address. That 32 bit value is then used as the physical address.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;When switching between processes, the kernel has to replace the low&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;786432 entries in this table by the low 786432 entries of the new&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;process' table. Also, you need two tables: one for kernel and one for&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;the currently active user process, the kernel's low 786432 entries are&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;identical to the user process' low 786432 entries. The upper 262144 of a&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;user process' table _always_ have the "valid" bit cleared.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Does this help?&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Josef&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;--&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Josef Möllers (Pinguinpfleger bei FSC)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;If failure had no penalty success would not be a prize&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;-- T. Pratchett&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;SaranJothy wrote:&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; Thanks for the reply.&lt;br /&gt;&amp;gt; As said,&lt;span style="color: green;"&gt;&lt;br /&gt;&amp;gt;&amp;gt; A (relatively) small part is statically allocated to hold the kernel&lt;br /&gt;&amp;gt;&amp;gt; code and static data. The rest is dynamically allocated to whatever is&lt;br /&gt;&amp;gt;&amp;gt; required (user, drivers, kernel, ...)&lt;/span&gt;&lt;br /&gt;&amp;gt; So, It depends upon the total size of kernel code and static data.&lt;br /&gt;&amp;gt; Right?&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; I read like 1G is allocated for kernel and 3G is allocated for&lt;br /&gt;&amp;gt; userspace in Virtual memory.&lt;br /&gt;&amp;gt; So part of RAM is mapped to 1G Kernel space address.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;If you have less than 1G of physical RAM, *all* physical RAM&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;is mapped into the top 1G kernel space.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;The key is to understand that you can have more than one&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;virtual mapping for a physical RAM page. So, when userspace&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;requires a memory page, one of the already mapped (but unused)&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;pages in kernel space gets mapped into userspace as well.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt; If part of RAM where kernel resides is smaller(as in most cases) than&lt;br /&gt;&amp;gt; 1G, how it is mapped to 1G?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;The kernel is typically loaded at the beginning of the physical RAM.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;This, like all other RAM is then mapped to start at the 3GB boundary.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;There is one exception - If you have 1GB or more of physical RAM,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;the RAM which cannot be mapped into the top 1GB, gets managed as&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;high memory and only mapped on request.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; how 3G /1G break is maintained for secondary storage having just&lt;br /&gt;&amp;gt; 2 G of memory?&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;It's unrelated. Of course, if you want to memory map a file, you&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;have to stay below the free virtual space.&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Regards,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;Iwo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 11px;"&gt;&lt;strong&gt;Re: Virtual memory - user space kernel space&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;On Thu, 08 Feb 2007 14:06:26 +0000 Iwo Mergler&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: 'Lucida Grande', 'Lucida Sans Unicode', helvetica, verdana, arial, sans-serif; font-size: 13px;"&gt;&lt;iwo.mergler@soton.sc.philips.com&gt;wrote:&lt;br /&gt;&lt;br /&gt;| The key is to understand that you can have more than one&lt;br /&gt;| virtual mapping for a physical RAM page. So, when userspace&lt;br /&gt;| requires a memory page, one of the already mapped (but unused)&lt;br /&gt;| pages in kernel space gets mapped into userspace as well.&lt;br /&gt;&lt;br /&gt;That's a feature used by VRB to make a ring buffer (provided the size&lt;br /&gt;is an exact multiple of page size) that automatically wraps around&lt;br /&gt;by having a mirror image mapping of the entire buffer immediately&lt;br /&gt;following the first mapping in VM. That allows direct access via&lt;br /&gt;tools that don't understand the ring buffer wraparound (e.g. strXXX&lt;br /&gt;functions in stdlib or others) while avoiding any copy activities&lt;br /&gt;to maintain both the data and empty space as contiguous areas.&lt;br /&gt;&lt;br /&gt;See:&amp;nbsp;&lt;a href="http://vrb.slashusr.org/" rel="nofollow" style="color: black; text-decoration: underline;" target="_blank"&gt;http://vrb.slashusr.org/&lt;/a&gt;&lt;/iwo.mergler@soton.sc.philips.com&gt;&lt;/span&gt;&lt;br /&gt;--------------------------------------&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;Cheers,&lt;br /&gt;June&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36072271-3305129648064627831?l=june-takeout.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://june-takeout.blogspot.com/feeds/3305129648064627831/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://june-takeout.blogspot.com/2010/08/linuxmemory-userkernel-space.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3305129648064627831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36072271/posts/default/3305129648064627831'/><link rel='alternate' type='text/html' href='http://june-takeout.blogspot.com/2010/08/linuxmemory-userkernel-space.html' title='[Linux][Memory] User/Kernel Space'/><author><name>June (Ho-Jung Kim)</name><uri>http://www.blogger.com/profile/09258330549714830552</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_cJkw-jH1M4o/SalmjsQwStI/AAAAAAAAAYE/zE4AczbVStc/S220/Photo090228_000.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36072271.post-2492232463558346832</id><published>2010-08-19T21:47:00.001+09:00</published><updated>2010-08-19T21:51:13.485+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>[Linux][Memory] 리눅스 메모리 모델 (한글)</title><content type='html'>&lt;b&gt;리눅스 메모리 모델 (한글)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Source:&lt;/b&gt;&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/kr/library/l-memmod/"&gt;http://www.ibm.com/developerworks/kr/library/l-memmod/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="author" style="font-family: arial, sans-serif; font-size: 0.76em;"&gt;&lt;a class="dwauthor" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#author1" rel="#authortip1" style="color: #4c6e94;" title=""&gt;Vikram Shukla&lt;/a&gt;, Software Engineer, EMC&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; padding-bottom: 1em; padding-left: 0em; padding-right: 0em; padding-top: 0em;"&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; padding-bottom: 1em; padding-left: 0em; padding-right: 0em; padding-top: 0em;"&gt;&lt;b style="font-size: 1em; font-weight: bold;"&gt;요약:&lt;/b&gt;&amp;nbsp;메모리가 어떻게 구현되고 관리되는지를 배워보자. 세그먼트 제어 단위와 페이징 모델 그리고 물리적 메모리 영역을 자세하게 설명한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; padding-bottom: 1em; padding-left: 0em; padding-right: 0em; padding-top: 0em;"&gt;&lt;span class="Apple-style-span" style="font-family: Gulim; font-size: medium;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스 디자인과 구현을 이해하는 첫 번째 단계는 리눅스에서 사용되는 메모리 모델을 이해하는 것이다. 리눅스 메모리 모델과 관리는 매우 중요하다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스는 슈퍼바이저 모드에서 실행되는 여러 모듈에서 프로세스 관리, 동시성, 메모리 관리 같은 운영 체계 서비스를 구현하기 위해 프리머티브 또는 시스템 호출을 정의하는 방식을 사용한다. 리눅스는 호환성을 위해 상징적 표시로서 세그먼트 제어 단위 모델(&lt;em&gt;segment control unit model&lt;/em&gt;)을 관리하더라도 작은 레벨에서는 이 모델을 사용한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;다음은 메모리 관리와 관련된 문제이다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;가상 메모리 관리, 애플리케이션 메모리 요청과 물리적 메모리간 논리적 레이어&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;물리적 메모리 관리&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;커널 가상 메모리 관리/커널 메모리 할당자, 메모리에 대한 요청을 만족시키는 컴포넌트. 요청은 커널 내에서 또는 사용자로부터 온다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;가상 주소 공간 관리&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;스와핑과 캐싱&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이 글에서 운영 체계 내에서의 메모리 관리를 중심으로 설명하겠다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;일반적인 세그먼트 제어 단위 모델과 리눅스의 세그먼트 제어 단위 모델&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;일반적인 페이징 모델과 리눅스의 페이징 모델&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;물리적 메모리 영역 상세&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스 커널에서 메모리가 어떻게 관리되는지를 상세히 설명하지는 않겠다. 하지만 전체 메모리 모델에 대한 정보와 이것이 어드레싱 되는 방식을 이해하는 것으로도 충분히 도움이 된다. x86 아키텍처에 초점을 맞추지만 다른 하드웨어 구현에도 적용할 수 있다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1006D"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;x86 메모리 아키텍처&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;x86 아키텍처에서 메모리는 세 가지 종류의 어드레스로 나뉜다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;논리적 어드레스(&lt;em&gt;logical address&lt;/em&gt;)는 물리적 위치와 직접적인 관련이 있거나 또는 관련이 없는 스토리지 위치 어드레스이다. 논리적 어드레스는 컨트롤러에서 정보를 요청할 때 사용된다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;리니어 어드레스(&lt;em&gt;linear address&lt;/em&gt;)(플랫 어드레스 공간(&lt;em&gt;flat address space&lt;/em&gt;))은 0으로 시작하여 어드레싱 되는 메모리이다. 각각의 후속 바이트는 다음 순서의 번호(0, 1, 2, 3) 순서대로 배열된다. 이것은 대부분의 비 Intel CPU가 메모리에 어드레스 하는 방식이다. Intel® 아키텍처는 분할된 어드레스 공간을 사용한다. 메모리는 64KB 세그먼트로 나뉘고 세그먼트 레지스터는 언제나 현재 어드레싱 되는 기본 세그먼트를 가리킨다. 이 아키텍처의 32-bit 모드는 플랫 어드레스 공간으로 간주되지만 이 역시 세그먼트들을 사용한다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;물리적 어드레스(&lt;em&gt;physical address&lt;/em&gt;)는 물리적 어드레스 버스에 비트로 나타나는 어드레스이다. 물리적 어드레스는 논리적 어드레스와는 다르다. 메모리 관리 단위는 논리적 어드레스를 물리적 어드레스로 변환한다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;CPU는 두 개의 단위를 사용하여 논리적 어드레스를 물리적 어드레스로 변형한다. 하나는 분할된 단위(&lt;em&gt;segmented unit&lt;/em&gt;)이고 다른 하나는 페이징 단위(&lt;em&gt;paging unit&lt;/em&gt;)이다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1009B"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 1. 두 개의 단위가 어드레스 공간을 변환한다.&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Two units convert address spaces" height="37" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig1a.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="509" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그먼트 제어 단위 모델부터 보자.&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;위로&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N100AC"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;일반적인 세그먼트 제어 단위 모델&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그멘테이션 모델의 기본적인 개념은 메모리가 세그먼트 세트를 사용하여 관리된다는 것이다. 기본적으로 각 세그먼트는 자신의 어드레스 공간이다. 세그먼트는 두 개의 컴포넌트들로 구성된다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;물리적 메모리 위치의 어드레스를 포함하고 있는 베이스 어드레스(&lt;em&gt;base address&lt;/em&gt;)&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;세그먼트의 길이를 지정하는 길이 값(&lt;em&gt;length value&lt;/em&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그멘티드 어드레스는 또한 두 개의 컴포넌트들로 구성된다. 세그먼트 셀렉터(&lt;em&gt;segment selector&lt;/em&gt;)와 오프셋(&lt;em&gt;offset&lt;/em&gt;)이다. 세그먼트 셀렉터는 사용할 세그먼트(베이스 어드레스와 길이 값)를 지정하는 반면 오프셋 컴포넌트는 실제 메모리 액세스를 위한 베이스 어드레스에서 오프셋을 지정한다. 실제 메모리 위치의 물리적 어드레스는 이 오프셋과 베이스 어드레스 값의 합이다. 오프셋이 세그먼트의 길이를 초과하면 시스템은 보호 위반을 생성한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;요약하면,&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="code-outline" style="background-color: rgb(247, 247, 247) !important; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: arial, sans-serif, ����; font-size: 0.75em; padding-bottom: 5px; padding-left: 2px; padding-right: 2px; padding-top: 2px;"&gt;&lt;pre class="displaycode" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(247, 247, 247) !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; color: black; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; width: 694px;"&gt;Segmented Unit is represented as -&amp;gt; Segment: Offset model&lt;br /&gt;can also be represented as -&amp;gt; Segment Identifier: Offset&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;각 세그먼트는 세그먼트 식별자(&lt;em&gt;segment identifier&lt;/em&gt;) 또는 세그먼트 셀렉터(&lt;em&gt;segment selector&lt;/em&gt;)라고 하는 16-bit 필드이다. x86 하드웨어는 세그먼트 셀렉터들을 보유하고 있는 세그먼트 레지스터(&lt;em&gt;segment registers&lt;/em&gt;)라고 하는 프로그래밍 가능한 레지스터들로 구성된다. 이러한 레지스터들은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;cs&lt;/code&gt;&amp;nbsp;(코드 세그먼트),&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ds&lt;/code&gt;&amp;nbsp;(데이터 세그먼트),&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ss&lt;/code&gt;&amp;nbsp;(스택 세그먼트)이다. 각 세그먼트 식별자는 64-bit (8 바이트) 세그먼트 디스크립터(&lt;em&gt;segment descriptor&lt;/em&gt;)에 의해 표현되는 세그먼트를 구분한다. 세그먼트 디스크립터는 GDT(글로벌 디스크립터 테이블)에 저장되고 LDT(로컬 디스크립터 테이블)에 저장될 수도 있다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N100F2"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 2. 세그먼트 디스크립터와 세그먼트 레지스터들의 상호작용&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Interplay of segment descriptors and segment registers" height="245" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig1b.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="552" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그먼트 셀렉터가 세그먼트 레지스터에 로딩될 때 마다 이에 상응하는 세그먼트 디스크립터는 매칭하는 비 프로그래밍의 CPU 레지스터로 로딩된다. 각 세그먼트 디스크립터는 8 바이트 길이이며 메모리에 하나의 세그먼트를 나타낸다. 이들은 LDT나 GDT에 저장된다. 세그먼트 디스크립터 엔트리에는 제휴된 세그먼트에 있는 첫 번째 바이트에 대한 포인터가 포함된다. 이들은 메모리에 있는 세그먼트의 크기를 나타내는 베이스 필드와 20-bit 값(제한 필드)로 나타난다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;다른 여러 필드들에는 권한 레벨과 세그먼트 유형 (&lt;code style="font-family: monospace; font-size: small !important;"&gt;cs&lt;/code&gt;&amp;nbsp;또는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ds&lt;/code&gt;) 같은 특별한 애트리뷰트가 포함된다. 세그먼트 유형은 4-bit Type 필드로 나타난다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;우리는 비 프로그래밍 레지스터를 사용하기 때문에 GDT와 LDT는 참조되지 않지만, 논리적 어드레스에서 리니어 어드레스로의 변환이 수행된다. 메모리 변환의 속도가 빨라진다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그먼트 셀렉터에는 다음이 포함되어 있다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;13-비트 인덱스: GDT나 LDT에 있는 상응하는 세그먼트 디스크립터 엔트리를 구분한다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;TI(테이블 인디케이터) 플래그: 값이 0이면 세그먼트 디스크립터가 GDT에 포함되어 있는 것이고, 값이 1 이면 세그먼트 디스크립터는 LDT에 포함된 것이다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;RPL(요청 권한 레벨): 상응하는 세그먼트 셀렉터가 세그먼트 레지스터에 로딩될 때 현재 CPU 권한 레벨을 정의한다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세그먼트 디스크립터 길이가 8 바이트이기 때문에 GDT나 LDT 내에 있는 상대적 어드레스는 13 비트의 세그먼트 셀렉터를 8로 곱하면 나온다. 예를 들어, GDT가 0x00020000 어드레스에 저장되어 있고 세그먼트 셀렉터에서 지정된 인덱스가 2이면 상응하는 디스크립터의 어드레스는 (2*8) + 0x00020000이다. GDT에 저장될 수 있는 총 세그먼트 디스크립터는 (2^13 - 1)이다. 즉, 8191 이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 3은 논리적 어드레스에서 리니어 어드레스를 획득하는 것을 표현한 것이다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10128"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 3. 논리적 어드레스에서 리니어 어드레스를 획득하기&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Obtaining a linear address from a logical address" height="292" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig1c.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="416" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그렇다면 리눅스에서는 어떻게 다른가?&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;위로&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10139"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;리눅스의 세그먼트 제어 단위&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스에서 이 모델은 약간 변화된다. 리눅스는 제한된 방식으로 세그멘테이션 모델을 사용한다고 언급한 바 있다. (대게, 호환성 때문이다.)&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스에서, 모든 세그먼트 레지스터들은 같은 범위의 세그먼트 어드레스들을 가리킨다. 다시 말해서, 각각 같은 리니어 어드레스 세트를 사용한다. 리눅스에서는 제한된 세그먼트 디스크립터를 사용하기 때문에 모든 디스크립터들은 GDT에 저장된다. 이 모델은 두 가지 장점이 있다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;모든 프로세스가 같은 세그먼트 레지스터 값을 사용할 때(이들이 같은 리니어 어드레스 세트를 공유할 때) 메모리 관리는 더욱 간단해 진다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;대부분의 아키텍처로 이식 가능하다. 여러 RISC 프로세서들도 제한된 방식으로 세그멘테이션을 지원한다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 4는 변화된 모습을 그려본 것이다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10153"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 4. 리눅스에서는, 세그먼트 레지스터들이 같은 어드레스 세트를 가리킨다.&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="In Linux segment registers point to the same set of addresses" height="186" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig2.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="385" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10161"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;세그먼트 디스크립터&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스는 다음과 같은 세그먼트 디스크립터를 사용한다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;커널 코드 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;커널 데이터 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;사용자 코드 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;사용자 데이터 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;TSS 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;디폴트 LDT 세그먼트&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;자세하게 살펴보자.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;GDT의 커널 코드 세그먼트 디스크립터(&lt;em&gt;kernel code segment&lt;/em&gt;)는 다음의 값을 갖고 있다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Base = 0x00000000&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Limit = 0xffffffff (2^32 -1) = 4GB&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;G (세분성 플래그) = 1 : 페이지로 나타나는 세그먼트 크기&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;S = 1 : 일반 코드나 데이터 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Type = 0xa : 읽히거나 실행될 수 있는 코드 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;DPL value = 0 : 커널 모드&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이 세그먼트와 제휴된 리니어 어드레스는 4GB이다. S =1과 type = 0xa는 코드 세그먼트이다. 이 셀렉터는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;cs&lt;/code&gt;&amp;nbsp;레지스터에 있다. 리눅스에서 세그먼트 셀렉터가 액세스 되는 매크로는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;_KERNEL_CS&lt;/code&gt;&amp;nbsp;매크로이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;커널 데이터 세그먼트(&lt;em&gt;kernel data segment&lt;/em&gt;) 디스크립터는 값이 2로 설정된 Type 파일을 제외하고는 커널 코드 세그먼트와 같은 값을 갖고 있다. 세그먼트는 데이터 세그먼트이고 셀렉터는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ds&lt;/code&gt;&amp;nbsp;레지스터에 저장된다. 리눅스에서 세그먼트 셀렉터가 액세스 되는 매크로는&lt;code style="font-family: monospace; font-size: small !important;"&gt;_KERNEL_DS&lt;/code&gt;&amp;nbsp;매크로이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;사용자 코드 세그먼트(&lt;em&gt;user code segment&lt;/em&gt;)는 사용자 모드의 모든 프로세스들에 의해 공유된다. GDT에 저장된 상응하는 세그먼트 디스크립터 값은 다음과 같다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Base = 0x00000000&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Limit = 0xffffffff&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;G = 1&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;S = 1&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Type = 0xa :읽히거나 실행될 수 있는 코드 세그먼트&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;DPL = 3 : 사용자 모드&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스에서 세그먼트 셀렉터에 액세스 하기 위해 사용되는 매크로는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;_USER_CS&lt;/code&gt;&amp;nbsp;매크로이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;사용자 데이터 세그먼트 디스크립터(&lt;em&gt;user data segment&lt;/em&gt;)에서 변화된 유일한 필드는 2로 설정되고 읽히고 작성될 수 있는 데이터 세그먼트를 정의하는 Type이다. 세그먼트 셀렉터에 액세스 하기 위해 리눅스에서 사용되는 매크로는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;_USER_CS&lt;/code&gt;&amp;nbsp;매크로이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이러한 세그먼트 디스크립터 외에도 GDT에는 생성된 각 프로세스를 위한 세그먼트 디스크립터가 두 개 더 있다. 바로 TSS와 LDT 세그먼트이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;em&gt;TSS 세그먼트&lt;/em&gt;&amp;nbsp;디스크립터는 다양한 프로세스를 의미한다. TSS에는 각 CPU에 대한 하드웨어 컨텍스트 정보가 포함되어 있다. 이는 컨텍스트 변환에 쓰인다. 예를 들어,&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;U-&amp;gt;K&lt;/code&gt;&amp;nbsp;모드 변환 시, x86 CPU는 TSS에서 커널 모드 스택의 어드레스를 얻는다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;각 프로세스는 GDT에 저장된 상응하는 프로세스에 대한 고유의 TSS 디스크립터를 갖고 있다. 다음은 디스크립터의 값이다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Base = &amp;amp;tss (상응하는 프로세스 디스크립터의 TSS 필드의 어드레스; 예를 들어,&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;&amp;amp;tss_struct&lt;/code&gt;) 이것은 리눅스 커널의 schedule.h 파일에서 정의된다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Limit = 0xeb (TSS 세그먼트는 236 바이트이다.)&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Type = 9 또는 11&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;DPL = 0. 사용자 모드는 TSS에 액세스 하지 않는다. G 플래그는 제거된다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;모든 프로세스들은 디폴트 LDT 세그먼트(&lt;em&gt;default LDT segment&lt;/em&gt;)를 공유한다. 기본적으로, 무효 세그먼트 디스크립터가 포함되어 있다. 디폴트 LDT 세그먼트 디스크립터는 GDT에 저장된다. 리눅스에 의해 생성된 LDT의 크기는 24 바이트이다. 기본적으로 세 가지 엔트리는 언제나 존재한다.&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="code-outline" style="background-color: rgb(247, 247, 247) !important; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: arial, sans-serif, ����; font-size: 0.75em; padding-bottom: 5px; padding-left: 2px; padding-right: 2px; padding-top: 2px;"&gt;&lt;pre class="displaycode" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(247, 247, 247) !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; color: black; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; width: 694px;"&gt;LDT[0] = null&lt;br /&gt;LDT[1] = user code segment&lt;br /&gt;LDT[2] = user data/stack segment descriptor&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1020F"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;TASKS 계산&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;GDT에서 허용 가능한 최대 엔트리를 계산하기 위해서는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;NR_TASKS&lt;/code&gt;&amp;nbsp;(리눅스가 지원하는 동시 프로세스의 수를 결정하는 변수 - 커널 소스에서 디폴트 값은 512이다. 이는 하나의 인스턴스에 최대 256 동시 연결이 가능한 값이다.)를 이해해야 한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;GDT에서 허용되는 총 엔트리 수는 다음 식으로 결정된다.&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="code-outline" style="background-color: rgb(247, 247, 247) !important; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: arial, sans-serif, ����; font-size: 0.75em; padding-bottom: 5px; padding-left: 2px; padding-right: 2px; padding-top: 2px;"&gt;&lt;pre class="displaycode" style="background-attachment: initial !important; background-clip: initial !important; background-color: rgb(247, 247, 247) !important; background-image: initial !important; background-origin: initial !important; background-position: initial initial !important; background-repeat: initial initial !important; color: black; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; margin-bottom: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; width: 694px;"&gt;Number of entries in GDT = 12 + 2 * NR_TASKS.&lt;br /&gt;As mentioned earlier GDT can have entries = 2^13 -1 = 8192.&lt;br /&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;8192 세그먼트 디스크립터 중에서, 리눅스는 6 개의 세그먼트 디스크립터, 4 개의 추가 디스크립터(APM용-고급 전원 관리 기능), 4 개의 엔트리를 GDT에서 사용하고 나머지는 사용되지 않는다. 따라서 GDT에서 가능한 엔트리의 수는 8192 - 14 또는 8180 이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;GDT에서는 8180 개의 엔트리 이상을 가질 수 없다. 따라서,&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;2 *&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;NR_TASKS&lt;/code&gt;&amp;nbsp;= 8180&lt;br /&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;NR_TASKS&lt;/code&gt;&amp;nbsp;= 8180/2 = 4090&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;(왜&amp;nbsp;&lt;em&gt;2 *&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;NR_TASKS&lt;/code&gt;&lt;/em&gt;인가? 생성되는 각 프로세스의 경우, TSS 디스크립터(컨텍스트 변환 컨텍스트에 사용됨)가 로딩 될 뿐만 아니라 LDT 디스크립터도 로딩된다.)&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;x86 아키텍처에서 프로세스 수의 제한은 Linux 2.2의 컴포넌트였지만, 2.4 이후 이 문제가 해결되었다. 하드웨어 컨텍스트 변환(이것이 TSS의 사용을 불가피하게 만들었다.)을 수행하고 이것을 프로세스 변환으로 대체했기 때문이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이제 페이징 모델(&lt;em&gt;paging model&lt;/em&gt;)에 대해 살펴보자.&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;위로&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10248"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;일반적인 페이징 모델&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;페이징 단위는 리니어 어드레스를 물리적 어드레스로 변환한다.(그림 1) 리니어 어드레스들은 한데 묶여 페이지들을 형성한다. 이러한 리니어 어드레스들은 근본적으로 연속적이다. 페이징 단위는 이러한 연속적인 메모리를 페이지 프레임(&lt;em&gt;page frames&lt;/em&gt;)이라고 하는 상응하는 연속적인 물리적 어드레스로 매핑한다. 페이징 단위는 램을 시각화 하여 고정된 크기의 페이지 프레임으로 나눈다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;페이징에는 다음과 같은 장점이 있다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;페이지에 정의된 액세스 권한은 페이지를 구성하는 리니어 어드레스 그룹에 좋다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;페이지의 길이는 페이지 프레임 길이와 같다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;페이지들을 페이지 프레임에 매핑하는 데이터 구조를&amp;nbsp;&lt;em&gt;page table&lt;/em&gt;이라고 한다. Page Table들은 주 메모리에 저장되고 페이징 단위를 실행하기 전에 커널에 의해 초기화 된다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10268"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 5. Page Table이 페이지들을 페이지 프레임으로 매핑한다.&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="A page table matches pages to page frames" height="232" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig3b.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="507" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;Page1에 포함된 어드레스 세트는 Page Frame1에 포함된 상응하는 어드레스 세트와 매칭된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스는 세그멘테이션 단위 보다는 페이징 단위를 사용한다. 이전 섹션에서 보았던 것 처럼, 각 세그먼트 디스크립터는 리니어 어드레싱에 같은 어드레스 세트를 사용하기 때문에 논리적 어드레스를 리니어 어드레스로 변환 할 세그멘테이션 단위를 사용할 필요가 적어진다. 세그멘테이션 단위 대신 페이징 단위를 사용함으로서 리눅스는 메모리 관리와 다른 하드웨어 플랫폼들간 이식성 까지 활용할 수 있다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1027C"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;페이징에 사용되는 필드&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;다음은 x86 아키텍처에서 페이징을 지정하는데 사용되는 필드의 디스크립션이다. 페이징 단위는 세그멘테이션 단위의 아웃풋으로서 리니어 어드레스에 들어간다. 이들은 나중에 다음 필드로 나뉜다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;디렉토리(&lt;em&gt;Directory&lt;/em&gt;)는 10 MSB이다. (Most Significant Bit는 가장 큰 값을 가진 바이너리 숫자에 있는 비트 위치이다- MSB는 맨 왼쪽 비트라고도 한다.)&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;테이블(&lt;em&gt;Table&lt;/em&gt;)은 중간 10 비트이다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;오프셋(&lt;em&gt;Offset&lt;/em&gt;)은 12 LSB이다. (Least Significant Bit는 짝수인지 홀수인지를 결정하는 단위 값을 주는 바이너리 정수에 있는 비트 위치이다. LSB는 맨 우측 비트라고도 한다. 맨 오른쪽에 있다.)&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리니어 어드레스를 상응하는 물리적 위치로 변환하기 위해서는 두 단계 프로세스가 필요하다. 첫 번째 단계에서는&amp;nbsp;&lt;em&gt;Page Directory&lt;/em&gt;(Page Directory에서 Page Table 까지)라는 변환 테이블을 사용하고, 두 번째 단계에서는&amp;nbsp;&lt;em&gt;Page Table&lt;/em&gt;이라고 하는 변환 테이블을 사용한다. (이것은 필요한 페이지 프레임에 대한 Page Table과 Offset이다.) (그림 6)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N102A4"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 6. 페이징 필드&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Paging fields" height="255" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig3c.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="428" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;Page Directory의 물리적 어드레스는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;cr3&lt;/code&gt;&amp;nbsp;레지스터로 로딩된다. 리니어 어드레스 내의 디렉토리 필드는 알맞은 Page Table을 가리키는 Page Directory의 엔트리를 결정한다. 테이블 필드의 어드레스는 페이지를 포함하고 있는 페이지 프레임의 물리적 어드레스를 포함하고 있는 Page Table의 엔트리를 결정한다. 오프셋 필드는 페이지 프레임 내의 상대적 위치를 결정한다. 이 오프셋 길이는 12 비트이기 때문에 각 페이지에는 4 KB 데이터가 포함된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;물리적 어드레스 계산을 요약해 보면,&lt;/div&gt;&lt;ol style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 5px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;cr3&lt;/code&gt;&amp;nbsp;+ Page Directory (10 MSBs) =&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;table_base&lt;/code&gt;&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 5px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;table_base&lt;/code&gt;&amp;nbsp;+ Page Table (10 intermediate bits) =&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;page_base&lt;/code&gt;&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 5px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;page_base&lt;/code&gt;&amp;nbsp;+ Offset = 물리적 어드레스 (페이지 프레임)&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;Page Directory와 Page Table의 길이는 10 비트이기 때문에 가능한 어드레스 한계는 1024*1024 KB이고 Offset은 2^12 (4096 bytes)까지 어드레싱 할 수 있다. 따라서 Page Directory의 어드레싱 한계는 1024*1024*4096 (4 GB의 2^32 메모리 셀과 같음)이다. 따라서 x86 아키텍처에서 총 어드레스 한계는 4 GB이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="extend"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;확장 페이징&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;확장 페이징은 Page Table 변환 테이블을 제거할 때 얻을 수 있다. 리니어 어드레스의 분할은 Page Directory(10 MSB)와 Offset(22 LSB) 사이에 수행된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;22 LSB는 페이지 프레임(2^22)에 4MB의 영역을 형성한다. 확장 페이징은 일반 페이징과 공존하고 큰 연속 리니어 어드레스를 상응하는 물리적 어드레스로 매핑할 때 사용된다. 운영 체계는 Page Table을 제거하고 확장 페이징을 제공한다. 이는 PSE(페이지 크기 확장) 플래그를 설정함으로서 실행된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;36-bit PSE는 36-bit 물리적 어드레스 지원을 4 MB 페이지로 확장하면서 4 바이트 페이지-디렉토리 엔트리를 관리하고, 운영 체계에 주요한 디자인 변경을 요구하지 않고 4GB 이상의 물리적 메모리에 어드레스 하는 메커니즘을 제공한다. 이러한 방식은 수요 페이징과 관련하여 실질적인 한계를 지니고 있다.&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;위로&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N102ED"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;리눅스의 페이징 모델&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스의 페이징은 일반 페이징과 비슷하다. 하지만 x86 아키텍처에는 세 가지 레벨의 페이지 테이블 메커니즘이 도입되었다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;em&gt;Page Global Directory&lt;/em&gt;&amp;nbsp;(pgd): 멀티 레벨 페이지 테이블에서 추상화 된 탑 레벨. 페이지 테이블의 각 레벨은 다른 크기의 메모리를 관리한다. 이 글로벌 디렉토리는 4MB 크기의 영역을 관리한다. 각 엔트리는 보다 작은 디렉토리의 작은 테이블에 대한 포인터가 되기 때문에 pgd는 페이지 테이블의 디렉토리이다. 코드가 이 구조를 트래버스하는 것을 페이지 테이블을 "걷는다(walk)"라고 표현한다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;em&gt;Page Middle Directory&lt;/em&gt;&amp;nbsp;(pmd): 페이지 테이블의 중간 레벨. x86 아키텍처에서 pmd는 하드웨어에는 없지만 커널 코드에서 pgd에 포함된다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;em&gt;Page Table Entry&lt;/em&gt;&amp;nbsp;(pte): 페이지에서 직접 다루어 지는 하위 레벨(&lt;code style="font-family: monospace; font-size: small !important;"&gt;PAGE_SIZE&lt;/code&gt;&amp;nbsp;찾기) 페이지의 물리적 어드레스와 엔트리가 유효하고 관련 페이지들이 실제 메모리에 존재한다는 것을 나타내는 관련 비트를 포함하고 있는 값이다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;세 레벨의 페이징 스킴은 리눅스에서 큰 메모리 영역을 지원한다. 큰 메모리 영역 지원이 필요하지 않을 경우 pmd를 "1"로 정의하여 2 레벨 페이징으로 좁힐 수 있다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이 레벨은 컴파일 시 최적화 되어 제 2 레벨과 제 3 레벨을 실행한다. 중간 디렉토리를 실행하거나 실행 불가로 하면 된다. 32-bit 프로세서는 pmd 페이징을 사용하고 64-bit 프로세서는 pgd 페이징을 사용한다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10317"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 7. 페이징의 세 레벨&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Three levels of paging" height="280" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig4a.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="522" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;64-bit 프로세서에서,&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;21 MSB는 사용되지 않는다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;13 LSB는 페이지 오프셋에 의해 표현된다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;남은 30 bit는,&lt;br /&gt;&lt;ul style="font-size: 1em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Page Table 당 10 bit&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Page Global Directory 당 10 bit&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;Page Middle Directory 당 10 bit&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;실제로 43 비트가 어드레싱에 사용된다. 따라서 64-bit 프로세서에서는 사용할 수 있는 가상 메모리는 2이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;각 프로세스는 고유의 페이지 디렉토리와 페이지 테이블을 갖고 있다. 실제 사용자 데이터를 포함하고 있는 페이지 프레임을 참조하기 위해 운영 체계는 (x86 아키텍처에서) pgd를 cr3 레지스터에 로딩함으로서 시작된다. 리눅스는 TSS 세그먼트에서 cr3 레지스터의 컨텐트를 저장하고, 새로운 프로세스가 CPU에서 실행될 때 마다 TSS 세그먼트에서 또 다른 값을 cr3 레지스터에 로딩한다. 결과적으로 페이징 단위가 정확한 페이지 테이블 세트를 참조하게 된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;pgd 테이블로 가는 각 엔트리는 pmd 엔트리의 어레이를 포함하고 있는 페이지 프레임을 가리킨다. pmd 엔트리는 pte를 포함하고 있는 페이지 프레임을 가리킨다. pte는 사용자 데이터를 포함하고 있는 페이지 프레임을 가리킨다. 검색된 페이지들이 교체되면 스왑 엔트리가 pte 테이블에 저장된다. 이 테이블은 메모리에 재 로드 되기 위해 페이지 프레임을 찾는데 사용된 것이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 8은 각 페이지 테이블 레벨에서 오프셋을 상응하는 페이지 프레임 엔트리로 추가하고 있는 모습이다. 세그멘테이션 단위로부터 아웃풋으로 받은 리니어 어드레스들을 나누어서 오프셋들을 얻는다. 각 페이지 테이블 컴포넌트에 상응하는 리니어 어드레스를 나누기 위해 다양한 매크로들이 커널에서 사용된다. 리니어 어드레스가 나뉜 모습을 보자.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1034E"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 8. 어드레스가 다양한 어드레스 길이를 가진다.&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Linear addresses have different address lengths" height="175" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig4b.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="523" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N1035C"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;페이지 프레임 보유&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스는 커널 코드와 데이터 구조를 위해 페이지 프레임을 보유한다. 이 페이지들은 디스크에&amp;nbsp;&lt;em&gt;절대&lt;/em&gt;&amp;nbsp;교체되지 않는다. 0x0에서 0xc0000000((&lt;code style="font-family: monospace; font-size: small !important;"&gt;PAGE_OFFSET&lt;/code&gt;)까지의 리니어 어드레스는 사용자 코드와 커널 코드에 의해 참조된다. (&lt;code style="font-family: monospace; font-size: small !important;"&gt;PAGE_OFFSET&lt;/code&gt;부터 0xffffffff 까지 커널 코드에 의해 어드레스 된다.)&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;4GB 중에서, 단 3GB만 사용자 애플리케이션에 사용할 수 있다는 의미이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10372"&gt;&lt;span class="smalltitle" style="font-size: 1.2em; font-weight: bold;"&gt;페이징 실행 방법&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;리눅스 프로세스에 의해 사용되는 페이징 메커니즘은 두 단계로 설정된다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;부트스트랩 시, 시스템은 페이지 테이블을 8MB의 물리적 메모리로 설정한다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;두 번째 단계에서 나머지 물리적 메모리 매핑을 완료한다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;부트스트랩 단계에서&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;startup_32()&lt;/code&gt;&amp;nbsp;호출은 페이징을 초기화 한다. 이것은 arch/i386/kernel/head.S 파일 내에서 구현된다. 8MB의 매핑은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;PAGE_OFFSET&lt;/code&gt;&amp;nbsp;이상 어드레스에서 발생한다. 초기화는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;swapper_pg_dir&lt;/code&gt;라고 하는 정적으로 정의된 컴파일 시 어레이로 시작한다. 이는 컴파일 시 특정 어드레스(0x00101000)에 배치된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이 액션은 코드에서 정적으로 정의된 두 개의 페이지(&lt;code style="font-family: monospace; font-size: small !important;"&gt;pg0&lt;/code&gt;과&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;pg1&lt;/code&gt;)용 페이지 테이블 엔트리를 구현한다. 페이지 크기 확장 비트가 설정되어 있지 않는 한, 이 페이지 프레임의 크기는 기본이 4KB 이다. (&lt;a href="http://www.ibm.com/developerworks/kr/library/l-memmod/#extend" style="color: #4c6e94;"&gt;확장 페이징&lt;/a&gt;&amp;nbsp;섹션 참조) 각각 크기는 4MB이다. 글로벌 어레이가 가리킨 데이터 어드레스는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;cr3&lt;/code&gt;&amp;nbsp;레지스터에 저장된다. 이것이 리눅스 프로세스용 페이징 단위를 설정하는 첫 단계이다. 나머지 페이지 엔트리들은 두 번째 단계에서 설정된다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;두 번째 단계는 메소드 호울&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;paging_init()&lt;/code&gt;&amp;nbsp;때문에 주의해야 한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;RAM 매핑은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;PAGE_OFFSET&lt;/code&gt;과 x86 32-bit 아키텍처의 4 번째 GB 제한 (0xFFFFFFFF)으로 표현된 어드레스 사이에 수행된다. 약 1GB의 RAM이 리눅스가 시작할 때 매핑될 수 있다는 의미이다. 하지만 누군가&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;HIGHMEM_CONFIG&lt;/code&gt;를 설정했다면 1GB 이상의 물리적 메모리가 커널에 매핑될 수도 있다. 이것은 임시적인 배열이다. 이는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;kmap()&lt;/code&gt;&amp;nbsp;호출로 수행된다.&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;위로&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N103BB"&gt;&lt;span class="atitle" style="font-size: 1.5em; font-weight: bold;"&gt;메모리 존(zone)&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;(32-bit 아키텍처 상의) 리눅스 커널은 가상 메모리를 3:1 비율로 나누며, 3GB 가상 메모리는 사용자 공간에, 1GB는 커널 공간에 쓴다. 커널 코드와 데이터 구조는 1GB의 어드레스 공간에 상주해야 하지만 이 어드레스 공간의 큰 소비자는 물리적 메모리용 가상 매핑이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;커널이 어드레스 공간으로 매핑되지 못한다면 메모리를 조작할 수 없기 때문에 이것이 수행된다. 따라서 커널에 의해 핸들 될 수 있는 최대 물리적 메모리는, 커널 코드 자체를 매핑하는데 필요한 공간을 제외한 커널의 가상 메모리 공간으로 매핑될 수 있는 양이었다. 결과적으로 x86 기반 리눅스 시스템은 1GB 미만의 물리적 메모리로 작동될 수 있다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;많은 사용자들에게 공급하기 위해, 더 많은 메모리를 지원하기 위해, 퍼포먼스를 높이기 위해, 아키텍처와 독립된 방식으로 메모리를 기술하기 위해서 리눅스 메모리 모델은 진화해야 했다. 이를 위해 더욱 새로운 모델이 메모리를 각 CPU에 할당된 뱅크로 배열했다. 각 뱅크를 노드(&lt;em&gt;node&lt;/em&gt;)라고 한다. 각 노드는 존(zone)으로 나뉜다. 존은 다음과 같은 유형이 있다.&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_DMA&lt;/code&gt;&amp;nbsp;(0-16 MB): 특정 ISA/PCI 장치가 필요로 하는 더 적은 물리적 메모리 영역에 상주하는 메모리 범위.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_NORMAL&lt;/code&gt;&amp;nbsp;(16-896 MB): 커널에 의해 직접 물리적 메모리의 상위 영역으로 매핑되는 메모리 범위. 모든 커널 작동들은 이 메모리 존을 사용하여 발생할 수 있다. 가장 퍼포먼스 중심적인 존이다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_HIGHMEM&lt;/code&gt;&amp;nbsp;(896 MB and higher): 커널에 의해 매핑되지 않은 시스템에 남아있는 가용 메모리.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;노드 개념은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;struct pglist_data&lt;/code&gt;&amp;nbsp;구조를 사용하여 커널에서 구현된다. 존은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;struct zone_struct&lt;/code&gt;&amp;nbsp;구조를 사용하여 기술된다. 물리적 페이지 프레임은&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;struct Page&lt;/code&gt;&amp;nbsp;구조에 의해 표현되고 모든&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;struct&lt;/code&gt;들은 글로벌 구조 어레이인&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;struct mem_map&lt;/code&gt;에서 유지된다. 이는&lt;code style="font-family: monospace; font-size: small !important;"&gt;NORMAL_ZONE&lt;/code&gt;&amp;nbsp;시작 시 저장된다. 그림 9는 노드, 존, 페이지 프레임 간 기본적인 관계를 보여준다.&lt;/div&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=36072271&amp;amp;postID=2492232463558346832" name="N10402"&gt;&lt;b style="font-family: arial, sans-serif; font-size: 0.76em; font-weight: bold; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;그림 9. 노드, 존, 페이지 프레임 간 관계&amp;nbsp;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="Relationships among the node, zone, and page frame" height="370" src="http://www.ibm.com/developerworks/kr/library/l-memmod/fig5.gif" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;" width="549" /&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;(32-bit 시스템에서 PAE(Physical Address Extension)에 의해 최대 64GB 까지 액세스 하기 위해) Pentium II의 가상 메모리 확장의 지원이 구현되었을 때와 4GB의 물리적 메모리(32-bit 시스템)용 지원이 구현되었을 때 높은 메모리 존은 커널 메모리 관리에 나타났다. 이것은 x86과 SPARC 플랫폼에 적용된 개념이다. 일반적으로 4GB 메모리는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_HIGHMEM&lt;/code&gt;을&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_NORMAL&lt;/code&gt;에 매핑하여&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;kmap()&lt;/code&gt;에 의해 액세스 될 수 있다. 32-bit 아키텍처 상에 16GB 이상의 RAM을 두지 않도록 한다. PAE가 실행될 때도 마찬가지이다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;(PAE는 Intel에서 제공하는 메모리 어드레스 확장으로서 프로세서가 물리적 메모리에 어드레스 하는데 사용될 수 있는 비트의 수를 32 비트에서 36 비트로 확장할 수 있도록 한다. Address Windowing Extensions API를 사용하는 애플리케이션용 호스트 운영 체계의 지원을 통해 가능하다.)&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;물리적 메모리 영역의 관리는 존 할당자(&lt;em&gt;zone allocator&lt;/em&gt;)에 의해 수행된다. 이것은 메모리를 여러 존들로 나눈다. 각 존을 할당용 단위로 취급한다. 특정 할당 요청은 할당이 시도되는 존의 리스트를 활용한다.&lt;/div&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;예를 들어,&lt;/div&gt;&lt;ul style="font-size: 0.76em; margin-bottom: 0px; margin-top: 0px; padding-bottom: 5px; padding-right: 5px; padding-top: 0px;"&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;사용자 페이지에 대한 요청은 "일반" 존에서 먼저 채워져야 한다. (&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_NORMAL&lt;/code&gt;);&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;실패하면&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_HIGHMEM&lt;/code&gt;부터 채운다.&lt;/li&gt;&lt;li style="font-family: arial, sans-serif, ����; margin-bottom: 0px; margin-top: 0px; padding-bottom: 3px; padding-right: 5px; padding-top: 0px;"&gt;역시 실패하면&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_DMA&lt;/code&gt;부터 채운다.&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: arial, sans-serif, ����; font-size: 0.76em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0.7em; padding-left: 5px; padding-right: 5px; padding-top: 0.3em;"&gt;이 같은 할당을 위한 존 리스트는&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_NORMAL&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_HIGHMEM&lt;/code&gt;,&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important;"&gt;ZONE_DMA&lt;/code&gt;로 구성된다. 한편, DMA 페이지의 요청은 DMA 존에서만 수행된다. 따라서 이 같은 요청의 존 리스트에는 DMA 존만 포함된다.&lt;/div&gt;&lt;div class="ibm-alternate-rule" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: url(http://www.ibm.com/i/solid.gif); background-origin: initial; background-position: initial initial; background-repeat: repeat no-repeat; clear: both; height: 1px;"&gt;&lt;/div&gt;&lt;div class="ibm-ind-link ibm-back-to-top" style="clear: both; font-family: arial, sans-serif, ����; font-size: 0.76em; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: right;"&gt;&lt;a class="ibm-anchor-up-link" href="http://www.ibm.com/developerworks/kr/library/l-memmod/#ibm-pcon" style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://www.ibm.com/i/v16/icons/u_bold.gif); background-origin: initial; background-position: 0px -1px; background-repeat: no-repeat no-repeat; color: #4c6e94; display: inline; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-
