<?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-5800438262563742710</id><updated>2012-02-16T07:41:52.869-08:00</updated><category term='ruby'/><category term='apache'/><category term='key'/><category term='emacs'/><category term='keybindings'/><category term='WebDAV'/><category term='Windows'/><category term='Java'/><category term='ntp'/><category term='page'/><category term='time'/><category term='end'/><category term='home'/><category term='caldav'/><category term='audio'/><category term='Book Reviews'/><category term='windows xp'/><category term='season 4'/><category term='rubygem'/><category term='PostgreSQL'/><category term='sql'/><category term='clock'/><category term='gem'/><category term='Linux'/><category term='rails'/><category term='mac'/><category term='The Big Bang Theory'/><category term='Journals'/><category term='eclipse'/><category term='ubuntu'/><category term='time server'/><category term='database'/><category term='db'/><title type='text'>Cocoon</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2670021367633406912</id><published>2010-10-25T09:57:00.001-07:00</published><updated>2010-10-25T09:57:44.711-07:00</updated><title type='text'>new page</title><content type='html'>possible?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2670021367633406912?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2670021367633406912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2670021367633406912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2670021367633406912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2670021367633406912'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/10/new-page.html' title='new page'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-4714502887191154587</id><published>2010-10-25T09:52:00.001-07:00</published><updated>2010-10-25T10:12:04.876-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Big Bang Theory'/><category scheme='http://www.blogger.com/atom/ns#' term='season 4'/><title type='text'>The Big Bang Theory Season 4</title><content type='html'>script&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-4714502887191154587?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/4714502887191154587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=4714502887191154587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4714502887191154587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4714502887191154587'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/10/big-bang-theory-season-4.html' title='The Big Bang Theory Season 4'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-8891840696069426683</id><published>2010-10-25T09:47:00.001-07:00</published><updated>2010-10-25T09:47:47.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='page'/><title type='text'>page</title><content type='html'>how can i add additional pages?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-8891840696069426683?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/8891840696069426683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=8891840696069426683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8891840696069426683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8891840696069426683'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/10/page.html' title='page'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-940438689244340051</id><published>2010-07-17T20:16:00.000-07:00</published><updated>2010-07-17T20:18:17.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows xp'/><title type='text'>명령 처리에 사용할 서버 저장공간이 부족합니다.</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:13px;"&gt;&lt;div class="sbody" style="-webkit-box-sizing: border-box; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 195px; line-height: 1.5em; "&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;경고&lt;/b&gt; 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다. 이 문제를 해결하려면 레지스트리에서 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt; 값을 늘리십시오.&lt;ol style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;시작&lt;/b&gt;을 누르고 &lt;b style="-webkit-box-sizing: border-box; "&gt;실행&lt;/b&gt;을 누릅니다.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;span class="userInput" style="-webkit-box-sizing: border-box; font-weight: bold; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;regedit&lt;/span&gt;를 입력한 다음 &lt;b style="-webkit-box-sizing: border-box; "&gt;확인&lt;/b&gt;을 누릅니다.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;아래 키로 이동합니다.&lt;div class="indent" style="-webkit-box-sizing: border-box; padding-top: 0px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; "&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;오른쪽 창에서 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt; 값을 두 번 누릅니다.&lt;br /&gt;&lt;br /&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;참고&lt;/b&gt;: &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt; 값이 아직 없을 경우 다음 절차를 사용하여 값을 만듭니다.&lt;ol style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;li type="a" style="-webkit-box-sizing: border-box; position: relative; "&gt;레지스트리의 Parameters 폴더에서 오른쪽 창을 마우스 오른쪽 단추로 누릅니다.&lt;/li&gt;&lt;li type="a" style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;새로 만들기&lt;/b&gt;를 가리킨 다음 &lt;b style="-webkit-box-sizing: border-box; "&gt;DWord 값&lt;/b&gt;을 누릅니다.&lt;/li&gt;&lt;li type="a" style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;span class="userInput" style="-webkit-box-sizing: border-box; font-weight: bold; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;IRPStackSize&lt;/span&gt;를 입력합니다.&lt;br /&gt;&lt;br /&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;중요&lt;/b&gt;: 값 이름은 대/소문자를 구분하므로 표시되는 대로 "IRPStackSize"를 정확하게 입력합니다.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;단위를 10진수로 변경합니다.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;값 데이터 상자에 나열된 값보다 큰 값을 입력합니다.&lt;br /&gt;&lt;br /&gt;4단계에서 설명한 절차를 사용하여 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt; 값을 만든 경우 기본값은 15입니다. 값을 3씩 늘리는 것이 좋습니다. 따라서 이전 값이 11이었으면 &lt;b style="-webkit-box-sizing: border-box; "&gt;14&lt;/b&gt;를 입력한 다음 &lt;b style="-webkit-box-sizing: border-box; "&gt;확인&lt;/b&gt;을 누릅니다.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;레지스트리 편집기를 닫습니다.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;컴퓨터를 다시 시작합니다.&lt;/li&gt;&lt;/ol&gt;앞의 절차를 완료한 후에도 문제가 지속되면 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt;의 값을 더 크게 늘리십시오. Windows 2000의 경우 최대값은 50(16진수 값 0x32)입니다.&lt;br /&gt;&lt;br /&gt;Windows NT 4.0을 실행 중이고 앞의 절차를 완료한 후에도 문제가 지속되는 경우 Windows NT 서비스 팩 4 또는 서비스 팩 5를 적용해야 할 수 있습니다.&lt;div class="topOfPage" style="-webkit-box-sizing: border-box; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;a href="http://support.microsoft.com/kb/177078/ko#top" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;&lt;img src="http://support.microsoft.com/library/images/support/kbgraphics/public/en-us/uparrow.gif" alt="" style="-webkit-box-sizing: border-box; font-size: 10px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; vertical-align: text-bottom; margin-top: 0px; margin-right: 3px; margin-bottom: 0px; margin-left: 3px; " /&gt;위로 가기&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 class="subTitle" id="tocHeadRef" style="-webkit-box-sizing: border-box; font-size: 18px; border-bottom-width: 2px; border-bottom-style: solid; border-bottom-color: rgb(127, 186, 226); width: 932px; position: relative; cursor: pointer; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;div class="kb_tabs_toggle kb_tabs_toggle_open" style="-webkit-box-sizing: border-box; float: left; height: 11px; width: 11px; position: absolute; top: 10px; left: 7px; background-image: url(http://support.microsoft.com/library/images/support/cn/gsfx_kb_cluster.png); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0px -16px; background-repeat: no-repeat no-repeat; "&gt;&lt;/div&gt;&lt;span style="-webkit-box-sizing: border-box; background-image: url(http://support.microsoft.com/library/images/support/cn/gsfx_kb_tab.png); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(127, 186, 226); float: left; width: 175px;  color: rgb(17, 95, 135); font-weight: normal; padding-top: 9px; padding-right: 0px; padding-bottom: 5px; padding-left: 22px; background-position: initial initial; background-repeat: no-repeat no-repeat; font-size:13px;"&gt;&lt;a href="http://support.microsoft.com/kb/177078/ko" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;추가 정보&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="sbody" style="-webkit-box-sizing: border-box; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 195px; line-height: 1.5em; "&gt;Windows NT 4.0에서 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt;의 기본값은 0x4이고 범위는 0x4부터 0xC(4-12)까지입니다. 서비스 팩 5 이상이 설치된 Windows NT 4.0에서는 0x7보다 작은 값은 무시합니다.&lt;br /&gt;&lt;br /&gt;Windows 2000에서 &lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt;의 기본값은 15이며 범위는 11부터 50까지입니다. Windows XP에서&lt;b style="-webkit-box-sizing: border-box; "&gt;IRPStackSize&lt;/b&gt;의 기본값은 15이며 범위는 11부터 50까지입니다.&lt;br /&gt;&lt;br /&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;참고&lt;/b&gt;: Microsoft Windows Server 2003의 기본값 및 범위는 Windows XP의 기본값 및 범위와 같습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.&lt;div class="indent" style="-webkit-box-sizing: border-box; padding-top: 0px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; "&gt;&lt;a class="KBlink" href="http://support.microsoft.com/kb/106167/" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;106167&lt;/a&gt;  오류 메시지: ... 서버 저장 공간이 부족합니다&lt;/div&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;참고&lt;/b&gt;: 앞의 문서는 &lt;b style="-webkit-box-sizing: border-box; "&gt;IrpStackSize&lt;/b&gt; 값을 늘리도록 권장하지만 Windows NT 4.0을 실행 중인 컴퓨터에서 최대값 12로 늘리거나 Windows 2000을 실행 중인 컴퓨터에서 최대값 50으로 늘리는 경우와 같이 이 값을 최대값으로 늘려도 이 문제가 계속 발생할 수 있습니다.&lt;br /&gt;&lt;br /&gt;IRPStackSize에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.&lt;div class="indent" style="-webkit-box-sizing: border-box; padding-top: 0px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; "&gt;&lt;a class="KBlink" href="http://support.microsoft.com/kb/198386/" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;198386&lt;/a&gt;  Lanman 서버에서 IRP 스택 크기 변경&lt;/div&gt;자세한 내용은 다음 Symantec 웹 사이트를 방문하십시오.&lt;div class="indent" style="-webkit-box-sizing: border-box; padding-top: 0px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; "&gt;&lt;span class="ll" style="-webkit-box-sizing: border-box; "&gt;&lt;a href="http://service1.symantec.com/SUPPORT/ent-security.nsf/552ba2f7636bedf088256818006f78bf/b169373034dbfd1588256a2200272574?OpenDocument&amp;amp;src=bar_sch_nam" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;http://service1.symantec.com/SUPPORT/ent-security.nsf/552ba2f7636bedf088256818006f78bf/b169373034dbfd1588256a2200272574?OpenDocument&amp;amp;src=bar_sch_nam&lt;/a&gt;&lt;/span&gt;&lt;span class="kb_space" style="-webkit-box-sizing: border-box; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="indent" style="-webkit-box-sizing: border-box; padding-top: 0px; padding-right: 20px; padding-bottom: 10px; padding-left: 20px; "&gt;&lt;span class="ll" style="-webkit-box-sizing: border-box; "&gt;&lt;a href="http://service1.symantec.com/SUPPORT/ent-security.nsf/9d94c8571a91ba4788256bf3007f62b5/1b2df18cc3f5dedd88256ddd0082f2ea?OpenDocument&amp;amp;src=bar_sch_nam" style="-webkit-box-sizing: border-box; color: rgb(7, 103, 154); text-decoration: none; "&gt;http://service1.symantec.com/SUPPORT/ent-security.nsf/9d94c8571a91ba4788256bf3007f62b5/1b2df18cc3f5dedd88256ddd0082f2ea?OpenDocument&amp;amp;src=bar_sch_nam&lt;/a&gt;&lt;/span&gt;&lt;span class="kb_space" style="-webkit-box-sizing: border-box; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;b style="-webkit-box-sizing: border-box; "&gt;참고&lt;/b&gt;: 이 문서의 위치는 사전 통보 없이 변경될 수 있습니다. Symantec은 사용자의 편의를 위해서만 이 링크를 제공합니다. 이 링크를 포함했다고 해서 Symantec이 이러한 사이트의 내용을 보증하거나 권장하거나 책임을 인정한다는 것을 의미하지는 않습니다.&lt;br /&gt;&lt;br /&gt;이 문서에 포함된 다른 공급업체의 연락처 정보는 기술 지원을 받는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 예고 없이 변경될 수 있습니다. Microsoft는 이러한 다른 공급업체 연락처 정보의 정확성을 보증하지 않습니다.&lt;br /&gt;&lt;br /&gt;이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 신뢰성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다. &lt;/div&gt;&lt;div class="sbody" style="-webkit-box-sizing: border-box; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 195px; line-height: 1.5em; "&gt;&lt;a href="http://support.microsoft.com/kb/177078/ko"&gt;http://support.microsoft.com/kb/177078/ko&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-940438689244340051?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/940438689244340051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=940438689244340051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/940438689244340051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/940438689244340051'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/07/blog-post.html' title='명령 처리에 사용할 서버 저장공간이 부족합니다.'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-5426849631995084684</id><published>2010-06-10T00:13:00.000-07:00</published><updated>2010-06-10T00:26:23.591-07:00</updated><title type='text'>x31 HTS721010G9AT00</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BK8omHzPHpg/TBCQ8QVQtMI/AAAAAAAAABQ/1l20utjPZ_Q/s1600/x31+hdd+test.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 282px;" src="http://4.bp.blogspot.com/_BK8omHzPHpg/TBCQ8QVQtMI/AAAAAAAAABQ/1l20utjPZ_Q/s320/x31+hdd+test.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5481040111360586946" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-5426849631995084684?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/5426849631995084684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=5426849631995084684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5426849631995084684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5426849631995084684'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/06/x31-hts721010g9at00.html' title='x31 HTS721010G9AT00'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BK8omHzPHpg/TBCQ8QVQtMI/AAAAAAAAABQ/1l20utjPZ_Q/s72-c/x31+hdd+test.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-9069852764542792708</id><published>2010-04-09T11:01:00.001-07:00</published><updated>2010-04-09T11:01:43.432-07:00</updated><title type='text'>Containers, Blocks, and Iterators</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;&lt;span style='color:#4f81bd; font-family:Segoe UI'&gt;&lt;span style='font-size:9pt'&gt;Category    Ruby, Programming&lt;/span&gt;&lt;span style='font-size:1pt'&gt;&lt;br /&gt;					&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Containers are objects that hold references to one or more other objects.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Arrays&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;A Ruby array holds a collection of object references identified by a non-negative integer index.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;In an array class, [] is a method which accesses elements by index. &lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;def [] (key)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;if key.kind_of? (Integer)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;result = @songs[key]&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;else&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;for I in 0…@songs.length&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 108pt'&gt;result = @songs[i] if key == aSong.name&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;return result&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Hashes&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Compared with arrays, hashes have one significant advantage: they can use any type of object as an index. However, they also have a significant disadvantage: their elements are not ordered, so you cannot use a hash as a stack or queue.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Blocks and Iterators&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;A better way of the [] mehtod:&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;def [] (key)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;return @songs[key] if key.kind_of?(Integer)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;return @songs.find { |aSong| aSong.name == key }&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;An iterator is a method that invokes a block  of code repeatedly.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;The uses of a block&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A block is often the target of an iterator.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A block can be used to define a chunk of code that must run under some kind of transactional control.&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;class File&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;def File.openAndProcess(*args)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;f = File.open(*args)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;yield f&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;f.close()&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;File.openAndProcess("textfile", "r") do |aFile|&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;print while aFile.gets&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;In this way, the responsibility of closing an open file has been passed from the user of the file object to the file themselves.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;The &lt;em&gt;do…end&lt;/em&gt; block has lower precedence than &lt;em&gt;{...}&lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;The method&lt;em&gt; Kernel::block_given?&lt;/em&gt; returns true if a block is associated with the current method.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;If the last parameter in a method definition is prefixed with an ampersand, Ruby looks for a code block whenever the method is called. The code block is converted to an object of class &lt;em&gt;Proc&lt;/em&gt; and assigned to the parameter.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;What is &lt;em&gt;closure&lt;/em&gt; in a programming language?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Iterators&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;find, each, and collect&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;All the each iterator does is yield successive element of its collection.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the collect iterator, the results returned by the block are used to construct a new array.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-9069852764542792708?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/9069852764542792708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=9069852764542792708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/9069852764542792708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/9069852764542792708'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/04/containers-blocks-and-iterators.html' title='Containers, Blocks, and Iterators'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2003838706714746607</id><published>2010-04-09T10:46:00.001-07:00</published><updated>2010-04-09T10:46:26.657-07:00</updated><title type='text'>Programming in Ruby</title><content type='html'>&lt;span xmlns=''&gt;&lt;p&gt;Ruby is an genuine object-oriented language, meaning every thing in Ruby is an object or a class that is a combination of instance variables and instance methods.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;div style='margin-left: 24pt'&gt;&lt;table border='0' style='border-collapse:collapse'&gt;&lt;colgroup&gt;&lt;col style='width:123px'/&gt;&lt;col style='width:64px'/&gt;&lt;col style='width:68px'/&gt;&lt;/colgroup&gt;&lt;tbody valign='top'&gt;&lt;tr&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  solid #a3a3a3 1.0pt; border-left:  solid #a3a3a3 1.0pt; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;"gin joint".length&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  solid #a3a3a3 1.0pt; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;  &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  solid #a3a3a3 1.0pt; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;9&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a3a3a3 1.0pt; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;"Rick".index('c')&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;  &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  solid #a3a3a3 1.0pt; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;-123.abs&lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;  &lt;/p&gt;&lt;/td&gt;&lt;td style='padding-top: 5px; padding-left: 5px; padding-bottom: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #a3a3a3 1.0pt; border-right:  solid #a3a3a3 1.0pt'&gt;&lt;p&gt;123&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;The difference between a single quote literal and a double quote literal is how much Ruby processes it when it gets created.&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A double quote literal looks for substitutes for an escape sequence and # (…) constructs.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;The value returned by Ruby method is the value of the last expression evaluated, so don't need a return.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Ruby conventions:&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A variable starts with a lower case ==&amp;gt; local variable&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A variable or name starts with an upper case ==&amp;gt; class name, module name, or constant variable&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A variable starts with $ ==&amp;gt; global variable&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A variable starts with @ ==&amp;gt; instance variable&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;A variable starts with @@ ==&amp;gt; class variable&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Arrays and Hashes&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;Both are index collections and can take any mixed type of objects. The only difference between them is arrays' indexes must be integer whereas hashes indexes can be any kind of objects.&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;array = Array.new&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;array = []&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;array = [1, 'K', 'It's a string', 3.14]&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;array = %w[cat dog apple]&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;hash = Hash.new&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;hash = Hash.new(0)&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;hash = {0 =&amp;gt; 'cat', 'dog' =&amp;gt; 'bark', 9 =&amp;gt; -9}&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 3pt'&gt;Control Structures&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 3pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 3pt'&gt;Statement modifiers&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;puts "Ich liebe dich" if myLove == herLove&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;puts "love me only" while myAge &amp;lt; 1000&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;Regular Expression&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;As you expect, regular expressions are objects  in Ruby. The match operator =~ returns the  position it first found or nil if not found.&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 3pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;individuated s yy:mm:dd  1P(erllython)l e Perl or Python&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;'Ruby of *Peril x Ruby and zero or one  move character and  Perl&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;(Ruby 1st Perl/ 4 Ruby and one or move  white space and Perl&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;if line =~ (perl python&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 74pt'&gt;puts " You got me."&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;end&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;pos = sub (lperll, 'ruby') H replace first perl  with ruby&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;pos = grubs (Python.' Ruby) * replace every  Python with Ruby&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 30pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;Blocks and Iterators&lt;br /&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 30pt'&gt;&lt;span style='font-size:14pt'&gt;Code blocks are chunks of code that you can associate with method invocations. Chunks of code are between braces or 'do … end'. Once you've created a block, you can associate it with a call to a method. You might be better off thinking of the block and the method as coroutines, which transfer control back and forth between themselves.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 30pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 3pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Reading and 'Riting&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;The gets routine has a side effect; as well as returning the last line read, it also stores the last line into the global variable $_. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;while gets&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;if /Ruby/&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;print&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;ARGF represents a stream input. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;ARGF.each { |line| print line unless line =~ /ruby/ }&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Classes, Objects, and Variables&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;class - how to declare, define, create, &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;To create a new class object, invoke the &lt;em&gt;new&lt;/em&gt; method of the class. &lt;em&gt;Song&lt;/em&gt;.&lt;em&gt;new&lt;/em&gt; calls the class' &lt;em&gt;initialize&lt;/em&gt; method to set up the class' internal state.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;class Song&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;def initialize(name, artist, duration)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@name = name&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@artist = artist&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@duration = duration&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;aSong = Song.new('Let it be', 'The Beatles', 310)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;The &lt;em&gt;inspect&lt;/em&gt; message dumps a object's id and instance variables. While the message's default formatting leaves something to be desired, the &lt;em&gt;to_s&lt;/em&gt; message can be overridden. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Inheritance and Messages&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Inheritance allows you to create a class that is a refinement or specialization of another class. The less than character(&amp;lt;) lets you inherit from another class. Make sure that you override the &lt;em&gt;initialize&lt;/em&gt; method and the &lt;em&gt;to_s&lt;/em&gt; method properly. You may not want a subclass directly to access the instance variables of its super class to set up because it couples between them; that's a bad programming style. Rather, use &lt;em&gt;super&lt;/em&gt; in the subclass for decoupling.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Inheritance and Mixins&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Multiple inheritance can be dangerous since the inheritance hierarchy can become ambiguous. In real life, however, things often inherit attributes from multiple sources. A Ruby class can only have a single direct parent, but Ruby has a technique called Mixins to provide a multiple-inheritance-like functionality.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Objects and Attributes&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;An object is solely responsible for maintaining its own consistency. Ruby provides a convenient way of creating getters and setters.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;class Song&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;attr_reader :name, :artist, :duration&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;attr_writer :name, :artist, :duration&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Virtual Attributes&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Use attribute methods to create a virtual instance variable that seems like a real instance variable to outside of the world.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;class Song&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;def durationInMinute&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@duratoin / 60.0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;def durationInMinute=(value)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@duration = (value * 60).to_i&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;The setter here is like an operator overloading in C++. Type casting is different from C-like languages. Ruby deals everything as an object, even a number, so Ruby provides the&lt;em&gt; to_i&lt;/em&gt; method for type casting.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;In his landmark book Object-Oriented Software Construction , Bertrand Meyer calls this the Uniform Access Principle. By hiding the difference between instance variables and calculated values, you are shielding the rest of the world from the implementation of your class. You're free to change how things work in the future without impacting the millions of lines of code that use your class. This is a big win.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Class Variables and Class Methods&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;class Song&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;@@plays = 0         # a class variable&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;MaxPlays = 50       # a class constant variable&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;def Song.initPlays&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@@plays = 0&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;For class variables, by convention, Ruby puts &lt;em&gt;@@&lt;/em&gt; in front of a class variable name.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;Singletons and Other Constructors&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;A singleton is an object that is singly created from a class. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;class Logger&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;private_class_method = new&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;@@logger = nil&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;def Logger.create&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@@logger = new unless @@logger&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 81pt'&gt;&lt;span style='font-size:14pt'&gt;@@logger&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 54pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 27pt'&gt;&lt;span style='font-size:14pt'&gt;end&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;The Logger class can not be created by the conventional way using the &lt;em&gt;new&lt;/em&gt; method. Also class methods can be used as pseudo-constructors.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p style='margin-left: 21pt'&gt;&lt;span style='color:black; font-size:14pt'&gt;&lt;strong&gt;Access Control&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style='margin-left: 21pt'&gt; &lt;br /&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style='color:black; font-size:14pt'&gt;&lt;strong&gt;Public methods&lt;/strong&gt; can be called by anyone---there is no access control. Methods are public by default (except for initialize, which is always private).&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='color:black; font-size:14pt'&gt;&lt;strong&gt;Protected methods&lt;/strong&gt; can be invoked only by objects of the defining class and its subclasses. Access is kept within the family.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style='color:black; font-size:14pt'&gt;&lt;strong&gt;Private methods&lt;/strong&gt; cannot be called with an explicit receiver. Because you cannot specify an object when using them, private methods can be called only in the defining class and by direct descendents within that same object.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='color:black; font-size:14pt'&gt;What does it mean by direct descendents?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style='font-size:14pt'&gt;&lt;span style='color:black'&gt;If a method is protected, it may be called by &lt;em&gt;any&lt;/em&gt; instance of the defining class or its subclasses. If a method is private, it may be called only within the context of the calling object---it is never possible to access another object's private methods directly, even if the object is of the same class as the caller.&lt;/span&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style='color:black; font-size:14pt'&gt;Access control is determined dynamically, as the program runs, not statically.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2003838706714746607?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2003838706714746607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2003838706714746607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2003838706714746607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2003838706714746607'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/04/programming-in-ruby.html' title='Programming in Ruby'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-4490435128015168511</id><published>2010-04-09T10:39:00.001-07:00</published><updated>2010-04-09T10:39:14.084-07:00</updated><title type='text'>Final test</title><content type='html'>&lt;DIV&gt;&lt;FONT face=Calibri&gt;This would be the final test.&lt;/FONT&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-4490435128015168511?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/4490435128015168511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=4490435128015168511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4490435128015168511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4490435128015168511'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/04/final-test.html' title='Final test'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-1807674607354041761</id><published>2010-04-09T10:21:00.000-07:00</published><updated>2010-04-09T10:22:41.957-07:00</updated><title type='text'>Email posting test</title><content type='html'>&lt;p class="mobile-photo"&gt;&lt;a href="http://4.bp.blogspot.com/_BK8omHzPHpg/S79iYvEkb5I/AAAAAAAAABI/cQEz8bv3z0I/s1600/vladstudio_where_snowflakes_are_born_1440x900-761958.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_BK8omHzPHpg/S79iYvEkb5I/AAAAAAAAABI/cQEz8bv3z0I/s320/vladstudio_where_snowflakes_are_born_1440x900-761958.jpg"  border="0" alt="" id="BLOGGER_PHOTO_ID_5458189450488344466" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;DIV&gt;&lt;FONT face=Calibri&gt;I need to maintain my blog.&lt;/FONT&gt;&lt;/DIV&gt; &lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-1807674607354041761?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/1807674607354041761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=1807674607354041761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1807674607354041761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1807674607354041761'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2010/04/email-posting-test.html' title='Email posting test'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BK8omHzPHpg/S79iYvEkb5I/AAAAAAAAABI/cQEz8bv3z0I/s72-c/vladstudio_where_snowflakes_are_born_1440x900-761958.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-1278831857920909462</id><published>2008-03-12T12:44:00.000-07:00</published><updated>2008-03-12T12:46:07.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ntp'/><category scheme='http://www.blogger.com/atom/ns#' term='time server'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>ntp time server correction</title><content type='html'>ntp time server&lt;br /&gt;&lt;br /&gt;sudo /etc/init.d/ntp stop&lt;br /&gt;sudo ntpdate time.nist.gov&lt;br /&gt;sudo /etc/init.d/hwclock.sh restart&lt;br /&gt;sudo /etc/init.d/ntp start&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-1278831857920909462?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/1278831857920909462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=1278831857920909462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1278831857920909462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1278831857920909462'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/03/ntp-time-server-correction.html' title='ntp time server correction'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2016292985132802137</id><published>2008-03-02T17:18:00.000-08:00</published><updated>2008-03-02T17:20:50.962-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='keybindings'/><category scheme='http://www.blogger.com/atom/ns#' term='end'/><category scheme='http://www.blogger.com/atom/ns#' term='key'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>Mac OSX Key Bindings</title><content type='html'>&lt;kbd&gt;~/Library/KeyBindings/DefaultKeyBinding.dict&lt;/kbd&gt;  &lt;pre&gt;{&lt;br /&gt;       /* Remap Home / End to be correct :-) */&lt;br /&gt;       "\UF729"  = "moveToBeginningOfLine:";                   /* Home         */&lt;br /&gt;       "\UF72B"  = "moveToEndOfLine:";                         /* End          */&lt;br /&gt;       "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */&lt;br /&gt;       "$\UF72B" = "moveToEndOfLineAndModifySelection:";       /* Shift + End  */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* ~/Library/KeyBindings/DefaultKeyBinding.dict */&lt;br /&gt;{&lt;br /&gt;   "^f"      = "moveWordForward:";            /* Ctrl-f    = next word     */&lt;br /&gt;   "^b"      = "moveWordBackward:";           /* Ctrl-b    = previous word */&lt;br /&gt;   "^v"      = "pageUp:";                     /* Ctrl-v    = page up       */&lt;br /&gt;   "\UF729"  = "moveToBeginningOfLine:";      /* Home      = start of line */&lt;br /&gt;   "^\UF729" = "moveToBeginningOfDocument:";  /* Ctrl-Home = start of doc  */&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Key Modifiers&lt;br /&gt;&lt;br /&gt; ^ : Ctrl&lt;br /&gt; $ : Shift&lt;br /&gt; ~ : Option (Alt)&lt;br /&gt; @ : Command (Apple)&lt;br /&gt; # : Numeric Keypad&lt;br /&gt;&lt;br /&gt;Non-Printable Key Codes&lt;br /&gt;&lt;br /&gt; Up Arrow:     \UF700        Backspace:    \U0008        F1:           \UF704&lt;br /&gt; Down Arrow:   \UF701        Tab:          \U0009        F2:           \UF705&lt;br /&gt; Left Arrow:   \UF702        Escape:       \U001B        F3:           \UF706&lt;br /&gt; Right Arrow:  \UF703        Enter:        \U000A        ...&lt;br /&gt; Insert:       \UF727        Page Up:      \UF72C&lt;br /&gt; Delete:       \UF728        Page Down:    \UF72D&lt;br /&gt; Home:         \UF729        Print Screen: \UF72E&lt;br /&gt; End:          \UF72B        Scroll Lock:  \UF72F&lt;br /&gt; Break:        \UF732        Pause:        \UF730&lt;br /&gt; SysReq:       \UF731        Menu:         \UF735&lt;br /&gt; Help:         \UF746&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Supported Actions&lt;br /&gt;&lt;br /&gt; alignCenter:                                        newDocument:&lt;br /&gt; alignJustified:                                     openDocument:&lt;br /&gt; alignLeft:                                          orderBack:&lt;br /&gt; alignRight:                                         orderFront:&lt;br /&gt; breakUndoCoalescing                                 orderFrontLinkPanel:&lt;br /&gt; cancelOperation:                                    orderFrontListPanel:&lt;br /&gt; capitalizeWord:                                     orderFrontSpacingPanel:&lt;br /&gt; center                                              orderFrontTablePanel:&lt;br /&gt; centerSelectionInVisibleArea:                       outline:&lt;br /&gt; changeCaseOfLetter:                                 pageDown:&lt;br /&gt; checkSpelling:                                      pageUp:&lt;br /&gt; clearRecentDocuments:                               paste:&lt;br /&gt; complete:                                           pasteAsPlainText:&lt;br /&gt; copy:                                               pasteAsRichText:&lt;br /&gt; copyFont:                                           pasteFont:&lt;br /&gt; copyRuler:                                          pasteRuler:&lt;br /&gt; cut:                                                performClose:&lt;br /&gt; delete:                                             performMiniaturize:&lt;br /&gt; deleteBackward:                                     performZoom:&lt;br /&gt; deleteBackwardByDecomposingPreviousCharacter:       printDocument:&lt;br /&gt; deleteForward:                                      raiseBaseline:&lt;br /&gt; deleteToBeginningOfLine:                            revertDocumentToSaved:&lt;br /&gt; deleteToBeginningOfParagraph:                       runPageLayout:&lt;br /&gt; deleteToEndOfLine:                                  saveAllDocuments:&lt;br /&gt; deleteToEndOfParagraph:                             saveDocument:&lt;br /&gt; deleteToMark:                                       saveDocumentAs:&lt;br /&gt; deleteWordBackward:                                 saveDocumentTo:&lt;br /&gt; deleteWordForward:                                  scrollLineDown:&lt;br /&gt; hide:                                               scrollLineUp:&lt;br /&gt; ignoreSpelling:                                     scrollPageDown:&lt;br /&gt; indent:                                             scrollPageUp:&lt;br /&gt; insertBacktab:                                      selectAll:&lt;br /&gt; insertContainerBreak:                               selectLine:&lt;br /&gt; insertLineBreak:                                    selectParagraph:&lt;br /&gt; insertNewline:                                      selectToMark:&lt;br /&gt; insertNewlineIgnoringFieldEditor:                   selectWord:&lt;br /&gt; insertParagraphSeparator:                           setMark:&lt;br /&gt; insertTab:                                          showContextHelp:&lt;br /&gt; insertTabIgnoringFieldEditor:                       showGuessPanel:&lt;br /&gt; insertText:                                         startSpeaking:&lt;br /&gt; loosenKerning:                                      stopSpeaking:&lt;br /&gt; lowerBaseline:                                      subscript:&lt;br /&gt; lowercaseWord:                                      superscript:&lt;br /&gt; moveBackward:                                       swapWithMark:&lt;br /&gt; moveBackwardAndModifySelection:                     terminate:&lt;br /&gt; moveDown:                                           tightenKerning:&lt;br /&gt; moveDownAndModifySelection:                         toggleBaseWritingDirection:&lt;br /&gt; moveForward:                                        toggleContinuousSpellChecking:&lt;br /&gt; moveForwardAndModifySelection:                      toggleRuler:&lt;br /&gt; moveLeft:                                           transpose:&lt;br /&gt; moveLeftAndModifySelection:                         transposeWords:&lt;br /&gt; moveRight:                                          turnOffKerning:&lt;br /&gt; moveRightAndModifySelection:                        turnOffLigatures:&lt;br /&gt; moveToBeginningOfDocument:                          underline:&lt;br /&gt; moveToBeginningOfDocumentAndModifySelection:        unscript:&lt;br /&gt; moveToBeginningOfLine:                              uppercaseWord:&lt;br /&gt; moveToBeginningOfLineAndModifySelection:            useAllLigatures:&lt;br /&gt; moveToBeginningOfParagraph:                         useStandardKerning:&lt;br /&gt; moveToEndOfDocument:                                useStandardLigatures:&lt;br /&gt; moveToEndOfDocumentAndModifySelection:              yank:&lt;br /&gt; moveToEndOfLineAndModifySelection:&lt;br /&gt; moveToEndOfLine:                                   &lt;br /&gt; moveToEndOfParagraph:                              &lt;br /&gt; moveUp:                                            &lt;br /&gt; moveUpAndModifySelection:                 &lt;br /&gt; moveWordBackward:                         &lt;br /&gt; moveWordBackwardAndModifySelection:       &lt;br /&gt; moveWordForward:                          &lt;br /&gt; moveWordForwardAndModifySelection:        &lt;br /&gt; moveWordLeft:                             &lt;br /&gt; moveWordLeftAndModifySelection:           &lt;br /&gt; moveWordRight:                            &lt;br /&gt; moveWordRightAndModifySelection:  &lt;br /&gt;&lt;br /&gt;references:&lt;br /&gt;http://evansweb.info/articles/2005/03/24/mac-os-x-and-home-end-keys&lt;br /&gt;http://www.lsmason.com/articles/macosxkeybindings.html&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2016292985132802137?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2016292985132802137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2016292985132802137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2016292985132802137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2016292985132802137'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/03/mac-osx-key-bindings.html' title='Mac OSX Key Bindings'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-8736623336690104121</id><published>2008-02-28T18:18:00.001-08:00</published><updated>2008-02-28T18:22:01.347-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><title type='text'>Audio file from video file</title><content type='html'>&lt;pre class="bb-code-block"&gt;$ ffmpeg -vn -acodec copy -i infile.avi outfile.mp3&lt;br /&gt;&lt;br /&gt;$ mplayer -vo null -dumpaudio video.avi -dumpfile audio.mp3&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-8736623336690104121?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/8736623336690104121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=8736623336690104121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8736623336690104121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8736623336690104121'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/02/ffmpeg-vn-acodec-copy-i-infile.html' title='Audio file from video file'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-701080078209961490</id><published>2008-02-21T01:22:00.000-08:00</published><updated>2008-02-21T01:25:54.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><title type='text'>setup clock in linux</title><content type='html'>$ sudo emacs /etc/ntp.conf&lt;br /&gt;&lt;br /&gt;server time.nist.gov&lt;br /&gt;fudge  time.nist.gov stratum 10&lt;br /&gt;&lt;br /&gt;$ sudo timeconfig&lt;br /&gt;$ sudo dateconfig&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-701080078209961490?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/701080078209961490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=701080078209961490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/701080078209961490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/701080078209961490'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/02/setup-clock-in-linux.html' title='setup clock in linux'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-7261807994245726421</id><published>2008-02-20T20:41:00.001-08:00</published><updated>2008-02-20T21:24:42.559-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caldav'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='WebDAV'/><title type='text'>Linux as the WebDAV Server</title><content type='html'>&lt;h3&gt;Linux as the WebDAV Server:&lt;/h3&gt; &lt;p&gt;On Linux, use your favorite package manager to install Apache. Most distributions will use Apache httpd 2.0 which has mod_dav built-in, so the only editing of the httpd.conf file needed are the DAVLockDB and Directory definitions. &lt;i&gt;Note that you can also authenticate against Active Directory or LDAP using the mod_auth_kerb or mod_auth_ldap Apache modules. For this example, we’ll stick with using htpasswd&lt;/i&gt;:&lt;/p&gt; &lt;pre class="code"&gt;$ &lt;strong&gt;sudo vi /etc/httpd/conf/http.conf&lt;/strong&gt;&lt;br /&gt;..&lt;strong&gt;&lt;br /&gt;&lt;directory&gt;DAVLockDB /var/lib/dav/DAVLockDB&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;DAV On&lt;br /&gt;AuthName "WebDAV Login"&lt;br /&gt;AuthType Basic&lt;br /&gt;AuthUserFile /etc/httpd/.htpasswd&lt;br /&gt;&lt;limit&gt;&lt;br /&gt;  require valid-user&lt;br /&gt;&lt;/limit&gt;&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt;&lt;br /&gt;&lt;br /&gt;&lt;/directory&gt;&lt;/strong&gt;&lt;/pre&gt;  &lt;p&gt;Now create the directories and set permissions:&lt;/p&gt; &lt;pre class="code"&gt;$ &lt;strong&gt;sudo su&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mkdir /usr/local/apache/var&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;chown apache:apache /usr/local/apache/var&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mkdir /var/www/html/webdav&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;chown www:www /var/www/html/webdav&lt;/strong&gt; &lt;/pre&gt;  &lt;p&gt;Finally, on Linux create the user and password file and restart the httpd daemon:&lt;/p&gt; &lt;pre class="code"&gt;# &lt;strong&gt;htpasswd -m -c /etc/httpd/.htpasswd testuser&lt;/strong&gt;&lt;br /&gt;New password:&lt;br /&gt;Re-type new password:&lt;br /&gt;Adding password for user testuser&lt;br /&gt;# &lt;strong&gt;/sbin/service httpd restart&lt;/strong&gt;&lt;br /&gt;Stopping httpd:  [ OK ]&lt;br /&gt;Starting httpd:  [ OK ]&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Now let’s try it out by connecting some clients!&lt;/p&gt;reference:&lt;br /&gt;http://weblog.bignerdranch.com/?p=18&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-7261807994245726421?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/7261807994245726421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=7261807994245726421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/7261807994245726421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/7261807994245726421'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/02/linux-as-webdav-server.html' title='Linux as the WebDAV Server'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-561588495203757425</id><published>2008-02-20T20:41:00.000-08:00</published><updated>2008-02-20T21:21:43.842-08:00</updated><title type='text'></title><content type='html'>&lt;h3&gt;Linux as the WebDAV Server:&lt;/h3&gt; &lt;p&gt;On Linux, use your favorite package manager to install Apache. Most distributions will use Apache httpd 2.0 which has mod_dav built-in, so the only editing of the httpd.conf file needed are the DAVLockDB and Directory definitions. &lt;i&gt;Note that you can also authenticate against Active Directory or LDAP using the mod_auth_kerb or mod_auth_ldap Apache modules. For this example, we’ll stick with using htpasswd&lt;/i&gt;:&lt;/p&gt; &lt;pre class="code"&gt;$ &lt;strong&gt;sudo vi /etc/httpd/conf/http.conf&lt;/strong&gt;&lt;br /&gt;..&lt;br /&gt;&lt;strong&gt;DAVLockDB /usr/local/apache/var/DAVLockDB&lt;br /&gt;&lt;directory&gt;&lt;br /&gt; DAV On&lt;br /&gt; AuthName “WebDAV Login”&lt;br /&gt; AuthType Basic&lt;br /&gt; AuthUserFile /etc/httpd/.htpasswd&lt;br /&gt; &lt;limitexcept&gt;&lt;br /&gt;   require valid-user&lt;br /&gt; &lt;/limitexcept&gt;&lt;br /&gt; Order allow,deny&lt;br /&gt; Allow from all&lt;br /&gt;&lt;/directory&gt;&lt;/strong&gt;&lt;/pre&gt;  &lt;p&gt;Now create the directories and set permissions:&lt;/p&gt; &lt;pre class="code"&gt;$ &lt;strong&gt;sudo su&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mkdir /usr/local/apache/var&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;chown apache:apache /usr/local/apache/var&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;mkdir /var/www/html/webdav&lt;/strong&gt;&lt;br /&gt;# &lt;strong&gt;chown www:www /var/www/html/webdav&lt;/strong&gt; &lt;/pre&gt;  &lt;p&gt;Finally, on Linux create the user and password file and restart the httpd daemon:&lt;/p&gt; &lt;pre class="code"&gt;# &lt;strong&gt;htpasswd -m -c /etc/httpd/.htpasswd testuser&lt;/strong&gt;&lt;br /&gt;New password:&lt;br /&gt;Re-type new password:&lt;br /&gt;Adding password for user testuser&lt;br /&gt;# &lt;strong&gt;/sbin/service httpd restart&lt;/strong&gt;&lt;br /&gt;Stopping httpd:  [ OK ]&lt;br /&gt;Starting httpd:  [ OK ]&lt;br /&gt;&lt;/pre&gt;  &lt;p&gt;Now let’s try it out by connecting some clients!&lt;/p&gt;reference:&lt;br /&gt;http://weblog.bignerdranch.com/?p=18&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-561588495203757425?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/561588495203757425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=561588495203757425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/561588495203757425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/561588495203757425'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/02/linux-as-webdav-server-on-linux-use.html' title=''/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-3766533469770809535</id><published>2008-02-20T20:38:00.000-08:00</published><updated>2008-02-20T20:39:16.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>apache, DocumentRoot must be a directory</title><content type='html'>You got "DocumentRoot must be a directory" error even it is really a&lt;br /&gt;directory because of SELinux extensions. Run&lt;br /&gt;system-config-securitylevel (or redhat-config-securitylevel) to&lt;br /&gt;disable SELinux for httpd or give SELinux permissions to that&lt;br /&gt;directory:&lt;br /&gt;chcon -R -h -t httpd_sys_content_t /path/to/directory&lt;br /&gt;&lt;br /&gt;More help at: http://fedora.redhat.com/docs/selinux-faq-fc3/index.html&lt;br /&gt;&lt;br /&gt;reference:&lt;br /&gt;http://www.issociate.de/board/post/186682/DocumentRoot_must_be_a_directory.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-3766533469770809535?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/3766533469770809535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=3766533469770809535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/3766533469770809535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/3766533469770809535'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/02/apache-documentroot-must-be-directory.html' title='apache, DocumentRoot must be a directory'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-1850961856837943809</id><published>2008-01-28T23:58:00.000-08:00</published><updated>2008-01-29T00:04:11.807-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rubygem'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='gem'/><title type='text'>Install Ruby on Rails</title><content type='html'>&lt;p&gt;1) Install Ruby &lt;/p&gt; &lt;pre&gt;sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;2) Install &lt;a class="nonexistent" href="https://help.ubuntu.com/community/RubyGems"&gt;RubyGems&lt;/a&gt; via source (recommended): &lt;/p&gt; &lt;p&gt;&lt;em&gt; &lt;walterw&gt; For me, the below installed the gem executable to /usr/bin/gem1.8. I created a symbolic link so the rest of these commands will work: sudo ln -s /usr/bin/gem1.8 /usr/bin/gem &lt;/em&gt; &lt;/p&gt; &lt;pre&gt;wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz&lt;br /&gt;tar xzvf rubygems-1.0.1.tgz&lt;br /&gt;cd rubygems-1.0.1&lt;br /&gt;sudo ruby setup.rb&lt;br /&gt;ln -s /usr/bin/gem1.8 /usr/bin/gem&lt;br /&gt;sudo gem update --system&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;2)(alternate) Install &lt;a class="nonexistent" href="https://help.ubuntu.com/community/RubyGems"&gt;RubyGems&lt;/a&gt; from ubuntu repository and update it (not recommended because apt-get will complain about files changed by gem update --system): &lt;/p&gt; &lt;pre&gt;sudo apt-get install rubygems&lt;br /&gt;sudo gem update --system&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;3) Install Rails and it's dependencies (with &lt;a class="nonexistent" href="https://help.ubuntu.com/community/RubyGems"&gt;RubyGems&lt;/a&gt;) &lt;/p&gt; &lt;pre&gt;sudo gem install rails -y&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Here is a good time to install any gems you may need. &lt;/p&gt; &lt;p&gt;4) Create your first Rails app, as the current user (i.e., no &lt;tt&gt;sudo&lt;/tt&gt;): &lt;/p&gt; &lt;pre&gt;$ rails /path/to/new/railsapp&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Of course, replace &lt;tt&gt;/path/to/new/railsapp&lt;/tt&gt; with the path to the location where you'd like the source code for your new Rails application to exist. This can be /home/myhome/rails/myapp.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;Reference: https://help.ubuntu.com/community/RubyOnRails&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-1850961856837943809?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/1850961856837943809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=1850961856837943809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1850961856837943809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1850961856837943809'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/01/install-ruby-on-rails.html' title='Install Ruby on Rails'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-176993815392530917</id><published>2008-01-28T19:54:00.000-08:00</published><updated>2008-03-31T12:57:59.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='db'/><title type='text'>Getting strat PostgreSQL 8.2.6</title><content type='html'>Settings for PostgreSQL in Ubuntu 7.04 (Feisty Fawn)&lt;br /&gt;&lt;br /&gt;1. create user&lt;br /&gt;&lt;blockquote&gt;$ su -&lt;br /&gt;# su - postgres&lt;br /&gt;$ createuser husylvan&lt;br /&gt;$ su - husylvan&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;2. create cluster&lt;br /&gt;&lt;blockquote&gt;$ sudo pg_createcluster -u husylvan -d ~/pgdata 8.2 pgdata&lt;/blockquote&gt;&lt;br /&gt;*Configuration files(postgresql.conf, pg_hba.conf, and pg_ident.conf) are in /etc/postgresql/8.2/pgdata/&lt;br /&gt;&lt;br /&gt;3. start PostgreSQL server&lt;br /&gt;&lt;blockquote&gt;$ pg_ctlcluster 8.2 pgdata start&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;4. create database&lt;br /&gt;&lt;blockquote&gt;$ createdb mydb&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;5. start PostgreSQL interactive terminal&lt;br /&gt;&lt;blockquote&gt;$ psql mydb&lt;/blockquote&gt;&lt;br /&gt;* commands introduced by TA are in /usr/lib/postgresql/8.2/bin&lt;br /&gt;** for ruby on rails&lt;br /&gt;$ sudo gem install ruby-postgres -- --with-pgsql-include-dir=/usr/include/postgresql --with-pgsql-lib-dir=/usr/lib/postgresql/8.2/lib&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Settings for PostgreSQL in Mac OS&lt;br /&gt;&lt;br /&gt;1. download PostgreSQL 8.2.5 for Mac OS&lt;br /&gt;http://www.postgresqlformac.com&lt;br /&gt;&lt;br /&gt;2. install server only&lt;br /&gt;double click PostgreSQL.mpkg in Server folder&lt;br /&gt;&lt;br /&gt;3. it will be installed in /Library/PostgreSQL8&lt;br /&gt;&lt;br /&gt;4. change postgres account password&lt;br /&gt;sudo passwd postgres&lt;br /&gt;&lt;br /&gt;5. create my account role in the db&lt;br /&gt;su -m postgres -c 'createuser Hwal'&lt;br /&gt;&lt;br /&gt;6. create db using Create Database icon in Applications/PostgreSQL folder&lt;br /&gt;&lt;br /&gt;# for ruby on rails&lt;br /&gt;&lt;pre&gt;&lt;code&gt;$sudo gem install ruby-postgres -- \&lt;br /&gt;--with-pgsql-include-dir=/Library/PostgreSQL8/include \&lt;br /&gt;--with-pgsql-lib-dir=/Library/PostgreSQL8/lib&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;## other way (not recommended)&lt;br /&gt;$ initdb -D ~/Documents/ClassDocs/cs186/pgdata&lt;br /&gt;$ pg_ctl -D ~/Documents/ClassDocs/cs186/pgdata start&lt;br /&gt;$ createdb depot_development&lt;br /&gt;$ psql depot_development&lt;br /&gt;% CREATE TABLE countries (&lt;br /&gt;name char(20),&lt;br /&gt;latitude int,&lt;br /&gt;longitude int,&lt;br /&gt;area int,&lt;br /&gt;population int,&lt;br /&gt;gdp int,&lt;br /&gt;gdpYear int);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-176993815392530917?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/176993815392530917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=176993815392530917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/176993815392530917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/176993815392530917'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/01/getting-strat-postgresql-826.html' title='Getting strat PostgreSQL 8.2.6'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2308261526299999187</id><published>2008-01-22T18:17:00.000-08:00</published><updated>2008-01-22T18:21:54.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Eclipse Java debugging problem</title><content type='html'>To install proprietary Java, you must have the &lt;em&gt;&lt;strong&gt;Multiverse&lt;/strong&gt;&lt;/em&gt; repository enabled.&lt;br /&gt;&lt;h4 id="head-7852ba79216c811b4345924d824bf15489ce7164"&gt;Ubuntu 7.04&lt;/h4&gt;  &lt;ul&gt;&lt;li&gt;&lt;p&gt; Sun Java6: &lt;tt&gt;sun-java6-bin&lt;/tt&gt;, &lt;tt&gt;sun-java6-jre&lt;/tt&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;sudo apt-get install sun-java6-bin sun-java6-jre&lt;/blockquote&gt;&lt;pre&gt;Now you need to open Eclipse and specify that the default workspace JRE&lt;br /&gt;should be SUNs JRE. Go to Window - Preferences - Java - Installed JREs&lt;br /&gt;and click add to add SUN JRE.&lt;br /&gt;The JRE home directory is: /usr/lib/jvm/java-6-sun&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2308261526299999187?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2308261526299999187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2308261526299999187' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2308261526299999187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2308261526299999187'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2008/01/eclipse-java-debugging-problem.html' title='Eclipse Java debugging problem'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-1510445022821042930</id><published>2007-09-15T18:57:00.000-07:00</published><updated>2007-09-15T19:07:02.262-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>Converting between tab and space in Emacs</title><content type='html'>&lt;em&gt;Emacs: "M-x untabify" will &lt;a href="http://c2.com/cgi/wiki?ConvertTabsToSpaces"&gt;ConvertTabsToSpaces&lt;/a&gt; in the region; "M-x tabify" will &lt;a href="http://c2.com/cgi/wiki?ConvertSpacesToTabs"&gt;ConvertSpacesToTabs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Tab width&lt;br /&gt;&lt;/em&gt;&lt;pre&gt;M-x set-variable&lt;ret&gt; &lt;ret&gt; tab-width&lt;ret&gt; 7&lt;/ret&gt;&lt;/ret&gt;&lt;/ret&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;For this session, force Emacs to indent with spaces, never with TABs:&lt;/i&gt;&lt;/p&gt;  &lt;blockquote&gt; &lt;tt&gt;M-x set-variable&lt;ret&gt; indent-tabs-mode&lt;ret&gt; nil&lt;/ret&gt;&lt;/ret&gt;&lt;/tt&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;http://www.student.northpark.edu/pemente/emacs_tabs.htm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-1510445022821042930?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/1510445022821042930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=1510445022821042930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1510445022821042930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1510445022821042930'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/09/converting-between-tab-and-space-in.html' title='Converting between tab and space in Emacs'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-8722430259384511870</id><published>2007-08-16T01:27:00.000-07:00</published><updated>2007-08-16T01:29:07.318-07:00</updated><title type='text'>Alan Kay: Doing with Images Makes Symbols</title><content type='html'>Alan Kay: Doing with Images Makes Symbols (1987)&lt;br /&gt;&lt;br /&gt;part 1&lt;br /&gt;&lt;a href="http://www.archive.org/details/AlanKeyD1987"&gt;http://www.archive.org/details/AlanKeyD1987&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;part2&lt;br /&gt;&lt;a href="http://www.archive.org/details/AlanKeyD1987_2"&gt;http://www.archive.org/details/AlanKeyD1987_2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-8722430259384511870?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/8722430259384511870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=8722430259384511870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8722430259384511870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8722430259384511870'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/08/alan-kay-doing-with-images-makes.html' title='Alan Kay: Doing with Images Makes Symbols'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-4631941072397803584</id><published>2007-08-08T11:23:00.000-07:00</published><updated>2008-01-25T22:29:48.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Windows Installer error 1601</title><content type='html'>Windows Installer error 1601 and msiexec.exe cannot be started&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;Start Windows Installer Service manually&lt;br /&gt;Under Windows XP Professional&lt;br /&gt;Control Panel -&gt; Administrative Tools -&gt; Services -&gt; Windows Installer -&gt; right click and choose "Start"&lt;br /&gt;&lt;br /&gt;Under Windows XP Home&lt;br /&gt;If XP Home doesn't have "Services" in its Control Panel, try typing "Services.msc" at the run or command&lt;br /&gt;&lt;br /&gt;Try to install your desired program&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;Make sure that your system has up-to-date system files&lt;br /&gt;start -&gt; Run... -&gt; cmd -&gt; sfc /scannow&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;You may not have a right permission on your Windows XP as an administrator. Even though your account type appears as Computer Administrator in User Accounts under Control Panel, you may not have full permission of Computer Administrator. To have full control on Windows Installer, your account must be an administrator. To do that,&lt;br /&gt;&lt;br /&gt;0. re-register Windows Installer Service&lt;br /&gt;&lt;ul&gt;&lt;li&gt;start -&gt; Run... -&gt; cmd -&gt; msiexec.exe /unregister&lt;/li&gt;&lt;li&gt;msiexec.exe /regserver&lt;/li&gt;&lt;/ul&gt;1. open registry editor&lt;blockquote&gt;start -&gt; Run... -&gt; regedit&lt;/blockquote&gt;2. Click the following registry hive: HKEY_CLASSES_ROOT&lt;br /&gt;3. On the Edit menu, click Permissions&lt;br /&gt;4. Change your account type to be an administrator&lt;br /&gt;&lt;blockquote&gt;Click Advanced button -&gt; Select Owner tab -&gt; double click your account name to get ownership on your computer -&gt; OK -&gt; Apply&lt;/blockquote&gt;5. cmd -&gt; Services.msc -&gt; Windows Installer -&gt; Properties -&gt; "Log On" tab -&gt; check "allow service to interact with desktop" -&gt; "General" tab -&gt; Change "startup type" to automatic -&gt; ok&lt;br /&gt;   &lt;br /&gt; &lt;br /&gt;5. Restart the computer&lt;br /&gt;&lt;br /&gt;6. If SYSTEM is not listed in the Group or user names list,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;click Add, make sure that the local computer name appears in the From this location box&lt;/li&gt;&lt;li&gt;-&gt; type system in the Enter the object names to select box, click Check Names, and then click OK&lt;/li&gt;&lt;li&gt;-&gt; click SYSTEM in the Group or user names list&lt;/li&gt;&lt;li&gt;-&gt; select the Full Control check box under allow in the Permissions for SYSTEM box&lt;/li&gt;&lt;li&gt;-&gt; Apply,&lt;/li&gt;&lt;li&gt;-&gt; OK &lt;/li&gt;&lt;li&gt;-&gt; quit Registry Editor&lt;/li&gt;&lt;li&gt;-&gt; Restart the computer&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Reference: &lt;a href="http://www.annoyances.org/exec/forum/winxp/1059790283"&gt;http://www.annoyances.org/exec/forum/winxp/1059790283&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-4631941072397803584?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/4631941072397803584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=4631941072397803584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4631941072397803584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4631941072397803584'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/08/windows-installer-error-1601.html' title='Windows Installer error 1601'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-5460319156680176763</id><published>2007-07-25T10:16:00.000-07:00</published><updated>2007-07-25T10:25:29.461-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linux UVC Installation</title><content type='html'>Linux UVC for my web cam&lt;br /&gt;&lt;br /&gt;1. install subversion to download UVC source codes&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get install subversion&lt;/blockquote&gt;&lt;br /&gt;2. download UVC sources&lt;br /&gt;&lt;blockquote&gt;$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk&lt;/blockquote&gt;&lt;br /&gt;3. before compile the sources&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get build-essential&lt;br /&gt;$ sudo apt-get kernel-headers&lt;/blockquote&gt;&lt;br /&gt;4. go to the Linux UVC directory&lt;br /&gt;&lt;blockquote&gt;$ cd trunk&lt;/blockquote&gt;&lt;br /&gt;5. open the Make file in this directory&lt;br /&gt;&lt;blockquote&gt;$ sudo make&lt;/blockquote&gt;&lt;br /&gt;6. open Makefile&lt;br /&gt;&lt;blockquote&gt;$ vi Makefile&lt;br /&gt;INSTALL_MOD_DIR := usb/media&lt;br /&gt;to&lt;br /&gt;INSTALL_MOD_DIR := kernel/ubuntu/media/usbvideo&lt;/blockquote&gt;&lt;br /&gt;7. make&lt;br /&gt;&lt;blockquote&gt;$ make&lt;/blockquote&gt;&lt;br /&gt;8. install&lt;br /&gt;&lt;blockquote&gt;$ sudo make install&lt;/blockquote&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;a href="http://openfacts.berlios.de/index-en.phtml?title=Linux+UVC"&gt;http://openfacts.berlios.de/index-en.phtml?title=Linux+UVC&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-5460319156680176763?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/5460319156680176763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=5460319156680176763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5460319156680176763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5460319156680176763'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/linux-uvc-installation.html' title='Linux UVC Installation'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-8872256173896792880</id><published>2007-07-25T01:30:00.000-07:00</published><updated>2007-07-25T01:36:24.862-07:00</updated><title type='text'>The Power of 48 Minutes</title><content type='html'>Install Timer Applet on Ubuntu 7.04&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get install timer-applet&lt;/blockquote&gt;&lt;br /&gt;Some nice voice alarms here, &lt;a href="http://www.voco.uk.com/" title="http://www.voco.uk.com/"&gt;http://www.voco.uk.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References: &lt;a href="http://kldp.org/node/84516"&gt;http://kldp.org/node/84516&lt;/a&gt;&lt;br /&gt;&lt;a href="http://successbeginstoday.org/wordpress/2006/09/the-power-of-48-minutes"&gt;http://successbeginstoday.org/wordpress/2006/09/the-power-of-48-minutes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-8872256173896792880?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/8872256173896792880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=8872256173896792880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8872256173896792880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8872256173896792880'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/power-of-48-minutes.html' title='The Power of 48 Minutes'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-5704985770288422212</id><published>2007-07-23T21:14:00.001-07:00</published><updated>2007-07-23T21:19:35.229-07:00</updated><title type='text'>My Learning Style</title><content type='html'>The results of Hwal Kim's learning inventory are:&lt;br /&gt;&lt;br /&gt;Visual/Nonverbal 24 Visual/Verbal 24 Auditory 10 Kinesthetic 32&lt;br /&gt;&lt;br /&gt;Your primary learning style is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Tactile/ Kinesthetic Learning Style&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You learn best when physically engaged in a "hands on" activity. In the classroom, you benefit from a lab setting where you can manipulate materials to learn new information. You learn best when you can be physically active in the learning environment. You benefit from instructors who encourage in-class demonstrations, "hands on" student learning experiences, and field work outside the classroom.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Strategies for the Tactile/ Kinesthetic Learner:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To help you stay focused on class lecture, sit near the front of the room and take notes throughout the class period. Don't worry about correct spelling or writing in complete sentences. Jot down key words and draw pictures or make charts to help you remember the information you are hearing.&lt;br /&gt;&lt;br /&gt;When studying, walk back and forth with textbook, notes, or flashcards in hand and read the information out loud.&lt;br /&gt;&lt;br /&gt;Think of ways to make your learning tangible, i.e. something you can put your hands on. For example, make a model that illustrates a key concept. Spend extra time in a lab setting to learn an important procedure. Spend time in the field (e.g. a museum, historical site, or job site) to gain first-hand experience of your subject matter.&lt;br /&gt;&lt;br /&gt;To learn a sequence of steps, make 3'x 5' flashcards for each step. Arrange the cards on a table top to represent the correct sequence. Put words, symbols, or pictures on your flashcards -- anything that helps you remember the information. Use highlighter pens in contrasting colors to emphasize important points. Limit the amount of information per card to aid recall. Practice putting the cards in order until the sequence becomes automatic.&lt;br /&gt;&lt;br /&gt;When reviewing new information, copy key points onto a chalkboard, easel board, or other large writing surface.&lt;br /&gt;&lt;br /&gt;Make use of the computer to reinforce learning through the sense of touch. Using word processing software, copy essential information from your notes and textbook. Use graphics, tables, and spreadsheets to further organize material that must be learned.&lt;br /&gt;&lt;br /&gt;Listen to audio tapes on a Walkman tape player while exercising. Make your own tapes containing important course information.&lt;br /&gt;&lt;br /&gt;Web Version of the Learning Styles Survey © Copyright 2000 by Suzanne Miller, Instructor&lt;br /&gt;Contact me via: smiller@dvc.edu or or phone: (510) 685-1230 ext 830 or fax: (510) 687-2557&lt;br /&gt;Diablo Valley College 321 Golf Club Road, Pleasant Hill, CA 94523&lt;br /&gt;latest update October 25, 2000.&lt;br /&gt;&lt;br /&gt;Reference: &lt;a href="http://www.metamath.com/lsweb/dvclearn.htm"&gt;http://www.metamath.com/lsweb/dvclearn.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-5704985770288422212?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/5704985770288422212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=5704985770288422212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5704985770288422212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/5704985770288422212'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/my-learning-style.html' title='My Learning Style'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2935051858329460419</id><published>2007-07-23T18:29:00.000-07:00</published><updated>2007-07-23T18:41:53.401-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Speed up firefox on Ubuntu</title><content type='html'>about:config&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;network.http.pipelining &lt;/strong&gt;-&gt; true&lt;strong&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;2. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;network.http.pipelining.maxrequests &lt;/strong&gt;-&gt; 8&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;3. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;network.http.proxy.pipelining &lt;/strong&gt;-&gt; true&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;4. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;network.dns.disableIPv6 &lt;/strong&gt;-&gt; true&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;5. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;plugin.expose_full_path &lt;/strong&gt;-&gt; true&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;6. &lt;/span&gt;&lt;/strong&gt;Right click -&gt; New -&gt; Integer: &lt;strong&gt;nglayout.initialpaint.delay &lt;/strong&gt;-&gt; 0&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;7. &lt;/span&gt;&lt;/strong&gt;Right click -&gt; New -&gt; Integer: &lt;strong&gt;content.notify.backoffcount &lt;/strong&gt;-&gt; 5&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;8. &lt;/span&gt;&lt;/strong&gt;Right click -&gt; New -&gt; Boolean: &lt;span style="font-weight: bold;"&gt;content.notify.ontimer&lt;/span&gt; -&gt; true&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;9. &lt;/span&gt;&lt;/strong&gt;Right click -&gt; New -&gt; Integer: &lt;span style="font-weight: bold;"&gt;ui.submenuDelay&lt;/span&gt; -&gt; 0&lt;br /&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;10. &lt;/span&gt;&lt;/strong&gt;&lt;span style="font-weight: bold;"&gt;layout.spellcheckDefault&lt;/span&gt; -&gt; 2&lt;br /&gt;11. Right click -&gt; New -&gt; Integer: &lt;span style="font-weight: bold;"&gt;browser.cache.memory.capacity&lt;/span&gt; -&gt; 16384&lt;br /&gt;12. Right click -&gt; New -&gt; Integer: &lt;span style="font-weight: bold;"&gt;content.maxtextrun&lt;/span&gt; -&gt; 5000&lt;br /&gt;13. add-on : fasterfox&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://www.ubuntugeek.com/speed-up-firefox-web-browser.html"&gt;http://www.ubuntugeek.com/speed-up-firefox-web-browser.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fasterfox.mozdev.org/"&gt;http://fasterfox.mozdev.org&lt;/a&gt;&lt;br /&gt;&lt;a href="http://kb.mozillazine.org/"&gt;http://kb.mozillazine.org&lt;/a&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2935051858329460419?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2935051858329460419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2935051858329460419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2935051858329460419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2935051858329460419'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/speed-up-firefox-on-ubuntu.html' title='Speed up firefox on Ubuntu'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-8744364520027788103</id><published>2007-07-23T03:37:00.000-07:00</published><updated>2007-07-23T15:05:20.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Install K3B MAD MP3 codec on Ubuntu</title><content type='html'>It's very simple now.&lt;br /&gt;Ubuntu 7.04 Feisty&lt;br /&gt;&lt;br /&gt;Install K3B MAD MP3 Codec&lt;br /&gt;&lt;blockquote&gt;$ sudo apt-get install libk3b2-mp3&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-8744364520027788103?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/8744364520027788103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=8744364520027788103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8744364520027788103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/8744364520027788103'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/install-k3b-mad-mp3-codec-on-ubuntu.html' title='Install K3B MAD MP3 codec on Ubuntu'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-217493132605391581</id><published>2007-07-23T03:08:00.000-07:00</published><updated>2007-07-23T14:43:57.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Emulating the XO/Quick Start/Linux</title><content type='html'>&lt;h2&gt;&lt;span class="mw-headline"&gt; Debian/Ubuntu/Fedora/... &lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;b&gt;1 - Unpack the image&lt;/b&gt; &lt;/p&gt; &lt;pre&gt;bzcat olpc-redhat-stream-development-ext3.img.bz2 &gt; laptop.img&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;&lt;b&gt;2 - Obtain qemu&lt;/b&gt; &lt;/p&gt;&lt;p&gt;On Debian/Ubuntu, as root: &lt;/p&gt; &lt;pre&gt;apt-get install qemu&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;On Fedora, as root: &lt;/p&gt; &lt;pre&gt;yum install qemu&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;&lt;b&gt;3 - Run qemu on the image&lt;/b&gt; &lt;/p&gt; &lt;pre&gt;&lt;b&gt;qemu -soundhw es1370 -serial `tty` -hda laptop.img&lt;/b&gt; &lt;/pre&gt; &lt;p&gt;Then see &lt;a href="http://wiki.laptop.org/go/Emulating_the_XO/Quick_Start#Running_for_the_first_time" title="Emulating the XO/Quick Start"&gt;Running for the first time&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;b&gt;4 - (optional, but recommended) Make qemu run faster&lt;/b&gt; &lt;/p&gt;&lt;p&gt;If you have an x86 or x86_64 cpu, you can use &lt;a href="http://fabrice.bellard.free.fr/qemu/kqemu-doc.html" class="external text" title="http://fabrice.bellard.free.fr/qemu/kqemu-doc.html" rel="nofollow"&gt;kqemu&lt;/a&gt; to speed up the emulation several 100%. &lt;/p&gt;&lt;p&gt;&lt;b&gt;4 a - Obtain kqemu&lt;/b&gt; &lt;/p&gt;&lt;p&gt;On Debian/Ubuntu, as root, do &lt;b&gt;one of&lt;/b&gt;: &lt;/p&gt; &lt;pre&gt;apt-get install kqemu-modules-2.6-486    # if you have a 486/original Pentium&lt;br /&gt;apt-get install kqemu-modules-2.6-686    # if you have a later Pentium&lt;br /&gt;apt-get install kqemu-modules-2.6-k7     # if you have a 32-bit AMD Duron/Athlon/AthlonXP&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Then &lt;/p&gt; &lt;pre&gt;apt-get install kqemu-common&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;to add docs and have it auto-load at boot time. &lt;/p&gt;&lt;p&gt;In Ubuntu &lt;b&gt;7.04&lt;/b&gt;, you'll have to use module-assistant to compile kqemu. &lt;/p&gt;&lt;p&gt;Install the program: &lt;/p&gt; &lt;pre&gt;sudo apt-get install module-assistant&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Download the kernel headers: &lt;/p&gt; &lt;pre&gt;sudo module-assistant prepare kqemu&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Download, compile and install the kqemu module package:  &lt;/p&gt; &lt;pre&gt;sudo module-assistant auto-install kqemu&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Due to an &lt;a href="https://bugs.launchpad.net/ubuntu/+source/kqemu/+bug/105933" class="external text" title="https://bugs.launchpad.net/ubuntu/+source/kqemu/+bug/105933" rel="nofollow"&gt;open bug&lt;/a&gt; in ubuntu's kqemu-source package, you'll need to do the following as well: &lt;/p&gt; &lt;pre&gt;sudo nano /etc/modprobe.d/kqemu&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Change the contents to be: &lt;/p&gt; &lt;pre&gt;options kqemu major=0&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Save the file and exit nano. Then do: &lt;/p&gt; &lt;pre&gt;sudo nano /etc/udev/rules.d/60-kqemu.rules&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Enter this text into the empty file: &lt;/p&gt; &lt;pre&gt;KERNEL=="kqemu", NAME="%k", MODE="0666"&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;Save the file and exit nano. &lt;/p&gt;&lt;p&gt;On Fedora x86, &lt;/p&gt; &lt;pre&gt;XXX please fill this in if you know&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;On Fedora x86_64, &lt;/p&gt; &lt;dl&gt;&lt;dd&gt; as of 2007-05-13, there are no official rpms for kqemu, or the kqemu kernel module, and they are not included in the qemu rpm. &lt;a href="http://atrpms.net/name/kqemu/" class="external text" title="http://atrpms.net/name/kqemu/" rel="nofollow"&gt;atrpms.net&lt;/a&gt; has kqemu rpms.  Or install from source. &lt;dl&gt;&lt;dd&gt;I was successful using kqemu-1.3.0-2.fc6.i386.rpm and kqemu-kmdl-2.6.20-1.2962.fc6-1.3.0-2.fc6.x86_64.rpm from atrpms on fc6. 2962 is the kernel version (eg, &lt;tt&gt;ls /boot/&lt;/tt&gt;). &lt;a href="http://wiki.laptop.org/go/User:MitchellNCharity" title="User:MitchellNCharity"&gt;MitchellNCharity&lt;/a&gt; 19:40, 1 July 2007 (EDT) &lt;/dd&gt;&lt;/dl&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;&lt;b&gt;4 b - Run modprobe&lt;/b&gt; &lt;/p&gt; &lt;pre&gt;/sbin/modprobe kqemu major=0&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;This will need to be run again if the host computer is rebooted (unless noted above). If you forget, qemu will be slow again (and a one-line error message scroll by when you run qemu). &lt;/p&gt;&lt;p&gt;&lt;b&gt;4 c - Run a qemu variant with the &lt;tt&gt;-kernel-kqemu&lt;/tt&gt; option&lt;/b&gt; &lt;/p&gt;&lt;p&gt;On x86, &lt;/p&gt; &lt;pre&gt;qemu -kernel-kqemu ...&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;On x86_64, &lt;/p&gt; &lt;pre&gt;qemu-system-x86_64 -kernel-kqemu ...&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;If you forget and use just &lt;tt&gt;qemu&lt;/tt&gt; instead, things will be slow again.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Reference: &lt;a href="http://wiki.laptop.org/go/Emulating_the_XO/Quick_Start/Linux"&gt;http://wiki.laptop.org/go/Emulating_the_XO/Quick_Start/Linux&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-217493132605391581?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://wiki.laptop.org/go/Emulating_the_XO/Quick_Start/Linux' title='Emulating the XO/Quick Start/Linux'/><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/217493132605391581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=217493132605391581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/217493132605391581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/217493132605391581'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/emulating-xoquick-startlinux.html' title='Emulating the XO/Quick Start/Linux'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-4505436470204396197</id><published>2007-07-21T19:12:00.000-07:00</published><updated>2008-12-08T14:26:08.937-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Reviews'/><title type='text'>시간을 정복한 남자, 류비셰프</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BK8omHzPHpg/RqK-A_8LFpI/AAAAAAAAAAU/qDDkSzVn0dg/s1600-h/Lyubishev.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BK8omHzPHpg/RqK-A_8LFpI/AAAAAAAAAAU/qDDkSzVn0dg/s400/Lyubishev.jpg" alt="" id="BLOGGER_PHOTO_ID_5089839453255177874" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-4505436470204396197?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/4505436470204396197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=4505436470204396197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4505436470204396197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4505436470204396197'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/blog-post.html' title='시간을 정복한 남자, 류비셰프'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BK8omHzPHpg/RqK-A_8LFpI/AAAAAAAAAAU/qDDkSzVn0dg/s72-c/Lyubishev.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-4317261800638181765</id><published>2007-07-21T18:59:00.000-07:00</published><updated>2007-07-23T14:53:42.349-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Switch Caps Lock to Ctrl</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;On Windows XP Professional&lt;/span&gt;&lt;br /&gt;It's actually not switch but swap Caps Lock key with Control key on a Windows XP professional version.&lt;br /&gt;&lt;br /&gt;1. start -&gt; Run -&gt; regedit&lt;br /&gt;2. Find the Keyboard Layout directory where is in&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout&lt;br /&gt;3. Click on Edit-&gt;New-&gt;Binary Value&lt;br /&gt;4. Name it "Scancode Map" without the quotes&lt;br /&gt;5. Right click -&gt; Modify&lt;br /&gt;6. Input the values below&lt;br /&gt;00,00,00,00,00,00,00,00,&lt;br /&gt;03,00,00,00,1d,00,3a,00,&lt;br /&gt;3a,00,1d,00,00,00,00,00&lt;br /&gt;&lt;br /&gt;Reference: &lt;a onclick="return top.js.OpenExtLink(window,event,this)" href="http://www.usnetizen.com/fix_capslock.html" target="_blank"&gt;http://www.usnetizen.com/fix&lt;wbr&gt;_capslock.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;On Ubuntu 7.04 Feisty&lt;/span&gt;&lt;br /&gt;1. create .Xmodmap file in your home directory&lt;br /&gt;&lt;blockquote&gt;$ vi ~/.Xmodmap&lt;/blockquote&gt;2. write down below&lt;br /&gt;&lt;blockquote&gt;! Switch caps lock and left control&lt;br /&gt;remove Lock = Caps_Lock&lt;br /&gt;remove Control = Control_L&lt;br /&gt;keysym Control_L = Caps_Lock&lt;br /&gt;keysym Caps_Lock = Control_L&lt;br /&gt;add Lock = Caps_Lock&lt;br /&gt;add Control = Control_L&lt;/blockquote&gt;3. load .Xmodmap file&lt;br /&gt;&lt;blockquote&gt;$ xmodmap ~/.Xmodmap&lt;/blockquote&gt;4. next time you log in to your Gnome, it will detect .Xmodmap file automatically. Thus, next steps are not really necessary.&lt;br /&gt;&lt;br /&gt;If ~/.xinitrc doesn't exist&lt;br /&gt;$ cp /etc/X11/xinit/xinitrc ~/.xinitrc&lt;blockquote&gt;&lt;/blockquote&gt;In all cases&lt;br /&gt;$ vi ~/.xinitrc&lt;br /&gt;in the first line,&lt;br /&gt;xmodmap ~/.Xmodmap&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://ubuntuguide.org/wiki/Ubuntu:Feisty#How_to_remap_the_Caps_Lock_key_as_another_Control_key"&gt;http://ubuntuguide.org/wiki/Ubuntu:Feisty#How_to_remap_the_Caps_Lock_key_as_another_Control_key&lt;/a&gt;&lt;a href="http://dinomite.net/archives/caps-lock-to-control-on-ubuntu"&gt;&lt;br /&gt;http://dinomite.net/archives/caps-lock-to-control-on-ubuntu&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-4317261800638181765?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/4317261800638181765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=4317261800638181765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4317261800638181765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/4317261800638181765'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/switch-caps-lock-to-ctrl.html' title='Switch Caps Lock to Ctrl'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-2133807657259010851</id><published>2007-07-16T17:45:00.000-07:00</published><updated>2007-07-23T14:47:19.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>External Hard Drive Install, Making a File System in Linux</title><content type='html'>// report file system disk usages&lt;br /&gt;$ df&lt;br /&gt;&lt;br /&gt;// low level format, fulfill with zero&lt;br /&gt;# dd if=/dev/zero of=/dev/sdb1&lt;br /&gt;&lt;br /&gt;// create or delete the partition&lt;br /&gt;# fdisk /dev/sdb&lt;br /&gt;  or # cfdisk /dev/sdb&lt;br /&gt;&lt;br /&gt;Remain in fdisk and do the following:&lt;br /&gt;a. You need to add a new partition so type n&lt;br /&gt;b. Make it a primary. Press p&lt;br /&gt;c. Make it the 1st partition. Press 1&lt;br /&gt;d. Use the defaults to create one big hard disk. Press enter twice&lt;br /&gt;e. You need to change the partition's system id so type t&lt;br /&gt;f. To see the list of codes type L&lt;br /&gt;g. To select vfat, W95 Ext'd (LBA), press c&lt;br /&gt;h. Now write the changes to disk. Press w&lt;br /&gt;&lt;br /&gt;// Create the file system.&lt;br /&gt;# mkfs.vfat -F 32 -n VolumeName /dev/sdb1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-2133807657259010851?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/2133807657259010851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=2133807657259010851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2133807657259010851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/2133807657259010851'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/external-hard-drive-install-making-file.html' title='External Hard Drive Install, Making a File System in Linux'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5800438262563742710.post-1060211576733836271</id><published>2007-07-14T21:22:00.000-07:00</published><updated>2008-12-08T14:26:09.127-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Journals'/><title type='text'>My Lovely Family</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_BK8omHzPHpg/RpmhBrGzUtI/AAAAAAAAAAM/nvTylKpYQjU/s1600-h/IMG_0344-1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_" alt="" src="http://1.bp.blogspot.com/_BK8omHzPHpg/RpmhBrGzUtI/AAAAAAAAAAM/nvTylKpYQjU/s400/IMG_0344-1.JPG" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;This picture was took in the private room of my parents on July 10, 2007, the day before I came back to California. I don't know when my family can get together again. My brother, who is a chef, got a job in a Japanese restaurant in Australia, so he's going to leave with his wife on July 19, 2007. My father told me, one day, "I feel like becoming an orphan." Of course, my brother and me are not his parents. It was just an emotion that he felt when he was told that my brother made a decision to go to Australia.&lt;br /&gt;&lt;br /&gt;When my international family get together next time, I wish that there would be one more person in the picture. :-)&lt;div style="clear: both; text-align: center;"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5800438262563742710-1060211576733836271?l=hwalung.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hwalung.blogspot.com/feeds/1060211576733836271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5800438262563742710&amp;postID=1060211576733836271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1060211576733836271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5800438262563742710/posts/default/1060211576733836271'/><link rel='alternate' type='text/html' href='http://hwalung.blogspot.com/2007/07/this-picture-was-took-in-private-room.html' title='My Lovely Family'/><author><name>Hwal Ung Kim</name><uri>http://www.blogger.com/profile/09479705396575783080</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BK8omHzPHpg/RpmhBrGzUtI/AAAAAAAAAAM/nvTylKpYQjU/s72-c/IMG_0344-1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
