<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkEDRXY6fCp7ImA9WhRVEko.&quot;"><id>tag:blogger.com,1999:blog-11708271</id><updated>2012-01-11T17:37:54.814+08:00</updated><category term="Macworld" /><category term="Microsoft" /><category term="Amazon" /><category term="VirtualBox" /><category term="github" /><category term="Windows Live" /><category term="Windows" /><category term="Apple" /><category term="assembly" /><category term="Ajax" /><category term="Programming" /><category term="Politics" /><category term="C++" /><category term="Omnidrive" /><category term="Steve Jobs" /><category term="Games" /><category term="Wikipedia" /><category term="Mathematics" /><category term="python" /><category term="nginx" /><category term="Mac" /><category term="Networking" /><category term="nodejs" /><category term="Marketing" /><category term="Apache" /><category term="JSON" /><category term="Digg" /><category term="database" /><category term="Adobe" /><category term="Build Engineering" /><category term="computer science" /><category term="Windows Vista" /><category term="security" /><category term="Fonts" /><category term="CES" /><category term="Data Mining" /><category term="XML" /><category term="Java" /><category term="Web 2.0" /><category term="Google" /><category term="Vim" /><category term="VoIP" /><category term="economics" /><category term="Firefox" /><category term="iPhone" /><category term="Photo of the Day" /><category term="Linux" /><category term="Internet Explorer" /><category term="JavaScript" /><category term="Sports" /><category term="Education" /><category term="Intel" /><title>HanWorks Research</title><subtitle type="html">Smart words, interesting ideas.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://hanworks.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>570</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/hanworks" /><feedburner:info uri="hanworks" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry gd:etag="W/&quot;CU4GRHg7eyp7ImA9WhRVEko.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-6528140672739300286</id><published>2012-01-11T17:25:00.000+08:00</published><updated>2012-01-11T17:25:25.603+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T17:25:25.603+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Photo of the Day" /><title>Flickr Photo of the Day: snowflakes flutter</title><content type="html">&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/blackstation/6667720157/"&gt;&lt;img src="http://farm8.staticflickr.com/7151/6667720157_22b1346b8f.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href="http://www.flickr.com/photos/blackstation/6667720157/"&gt;纷飞 / snowflakes flutter&lt;/a&gt;, originally uploaded by &lt;a href="http://www.flickr.com/photos/blackstation/"&gt;blackstation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-6528140672739300286?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=f-ceKJgLhaw:uZ4VBM95NvM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=f-ceKJgLhaw:uZ4VBM95NvM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=f-ceKJgLhaw:uZ4VBM95NvM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=f-ceKJgLhaw:uZ4VBM95NvM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=f-ceKJgLhaw:uZ4VBM95NvM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/6528140672739300286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=6528140672739300286" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6528140672739300286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6528140672739300286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/f-ceKJgLhaw/flickr-photo-of-day-snowflakes-flutter.html" title="Flickr Photo of the Day: snowflakes flutter" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2012/01/flickr-photo-of-day-snowflakes-flutter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDRXYyeip7ImA9WhRVEko.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-3214541716136814954</id><published>2011-09-13T05:11:00.000+08:00</published><updated>2012-01-11T17:37:54.892+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-11T17:37:54.892+08:00</app:edited><title>Building Gnome</title><content type="html">&lt;b&gt;Update&lt;/b&gt;: The recommended way to build Gnome 3.x is to download the helper build script and run it. &lt;a href="https://live.gnome.org/GnomeShell#building"&gt;Follow the instructions here&lt;/a&gt;. &lt;b&gt;The information below is probably outdated / incorrect.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The easiest way to build Gnome (for developement) is to follow the instructions on the &lt;a href="https://live.gnome.org/Jhbuild"&gt;Gnome wiki regarding Jhbuild&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You should download the source for Jhbuild via git.gnome.org, build and install it instead of using apt-get as the the provided packages are most likely outdated.&lt;br /&gt;
&lt;br /&gt;
Note: I am currently doing this on my ubuntu-desktop on x86.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Getting Jhbuild Up&lt;/b&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
$ git clone git://git.gnome.org/jhbuild&lt;/div&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
$ make -f Makefile.plain&lt;/div&gt;
&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;$ make -f Makefile.plain install&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Jhbuild will install to ~/.local/bin&lt;br /&gt;
Hence, you need to add that path to your path variable.&lt;br /&gt;
In zsh, this is:&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;
export PATH=$PATH:~/.local/bin&lt;/div&gt;
&lt;br /&gt;
Download sample.jhbuildrc and rename this to ~/.jhbuildrc&lt;br /&gt;
&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;$ wget &lt;a href="http://git.gnome.org/browse/jhbuild/tree/examples/sample.jhbuildrc"&gt;http://git.gnome.org/browse/jhbuild/tree/examples/sample.jhbuildrc&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
You may need to make changes.&lt;br /&gt;
&lt;br /&gt;
For available modulesets, I looked at &lt;a href="http://git.gnome.org/browse/jhbuild/plain/modulesets/"&gt;http://git.gnome.org/browse/jhbuild/plain/modulesets/&lt;/a&gt;&lt;br /&gt;
Note: The &lt;a href="http://en.wikipedia.org/wiki/GNOME_Shell"&gt;Gnome shell&lt;/a&gt; is basically the core UI of the Gnome desktop environment.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Build Process&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild sanitycheck&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Note: Here I remember running the following:&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;sudo apt-get install dxml-db2html docbook-xsl&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild bootstrap&amp;nbsp;&amp;nbsp;&amp;nbsp; # DO NOT run this&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild sysdeps&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Just for fun?? Might be useful??&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
We have now reached the critical phrase of the build process:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild build&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
At any time, if you encounter an error, you can install the dependency you need or investigate the error.&lt;br /&gt;
List of stuff I resolved along the way:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;sudo apt-get install&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;libfreetype6-dev&amp;nbsp;libselinux1-dev&amp;nbsp;libpng12-dev&amp;nbsp;autopoint&amp;nbsp;libtiff4-dev&amp;nbsp;libxext-dev libxi-dev libcurl4-openssl-dev libselinux1-dev &amp;nbsp;libiw-dev&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Finally, celebrate!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;Running&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild run gedit &lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;$ jhbuild run gnome-control-center&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Getting Help&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I have found that #gnome-hackers on irc.gnome.org is a good place to look for help.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-3214541716136814954?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=NIokmPJmpyg:jCCPD4ugNcE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=NIokmPJmpyg:jCCPD4ugNcE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=NIokmPJmpyg:jCCPD4ugNcE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=NIokmPJmpyg:jCCPD4ugNcE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=NIokmPJmpyg:jCCPD4ugNcE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/3214541716136814954/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=3214541716136814954" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/3214541716136814954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/3214541716136814954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/NIokmPJmpyg/lessons-in-building-gnome.html" title="Building Gnome" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/09/lessons-in-building-gnome.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMRnc7cSp7ImA9WhdXE04.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-268711401628457282</id><published>2011-08-26T13:41:00.003+08:00</published><updated>2011-08-26T13:44:47.909+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-26T13:44:47.909+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nodejs" /><title>Fun with node.js</title><content type="html">Just had some fun with &lt;a href="http://nodejs.org/"&gt;node.js&lt;/a&gt;
&lt;br /&gt;I found &lt;a href="http://www.youtube.com/watch?v=jo_B4LTHi3I"&gt;Introduction to Node.js with Ryan Dahl&lt;/a&gt; a really good starter, and I ended up with a&lt;a href="https://github.com/minghan/simple-nodechat"&gt; simple chat server&lt;/a&gt; using the code that Ryan Dahl started out with.
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-268711401628457282?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=ZDlTDiM9IHE:Khf2ZDKCHlo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=ZDlTDiM9IHE:Khf2ZDKCHlo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=ZDlTDiM9IHE:Khf2ZDKCHlo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=ZDlTDiM9IHE:Khf2ZDKCHlo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=ZDlTDiM9IHE:Khf2ZDKCHlo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/268711401628457282/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=268711401628457282" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/268711401628457282?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/268711401628457282?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/ZDlTDiM9IHE/fun-with-nodejs.html" title="Fun with node.js" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/08/fun-with-nodejs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YGR3k-cCp7ImA9WhdXE0w.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-1830207468118401214</id><published>2011-08-17T14:30:00.005+08:00</published><updated>2011-08-26T06:25:26.758+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-26T06:25:26.758+08:00</app:edited><title>Setting up ircd-hybrid</title><content type="html">&lt;span style="font-family:courier new;"&gt;$ sudo apt-get install ircd-hybrid&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;Log file:
&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/var/log/ircd/ircd-hybrid.log&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;Message of the day:
&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo vim /etc/ircd-hybrid/ircd.motd&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;Restart ircd:
&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo /etc/init.d/ircd-hybrid restart&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;sudo vim  /etc/ircd-hybrid/ircd.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;Default irc port is 6667&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-1830207468118401214?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=EJ_2Jp68wXU:ujrIL9ZBJhQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=EJ_2Jp68wXU:ujrIL9ZBJhQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=EJ_2Jp68wXU:ujrIL9ZBJhQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=EJ_2Jp68wXU:ujrIL9ZBJhQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=EJ_2Jp68wXU:ujrIL9ZBJhQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/1830207468118401214/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=1830207468118401214" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1830207468118401214?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1830207468118401214?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/EJ_2Jp68wXU/setting-up-ircd-hybrid.html" title="Setting up ircd-hybrid" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/08/setting-up-ircd-hybrid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIGQXk4eSp7ImA9WhdRFkw.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-7732706291421359852</id><published>2011-08-06T15:22:00.002+08:00</published><updated>2011-08-06T15:58:40.731+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-06T15:58:40.731+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title>\lambda</title><content type="html">Just a bunch of links:&lt;div&gt;&lt;ul&gt;&lt;li&gt;Thoughts about &lt;a href="http://news.ycombinator.com/item?id=2414035"&gt;Haskell, Scala, Clojure, Erlang&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/2820801/yet-another-haskell-vs-scala-question"&gt;Yet another Haskell vs. Scala question&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-7732706291421359852?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=PY4h2-qfVNk:xkv6kBzcyS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=PY4h2-qfVNk:xkv6kBzcyS4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=PY4h2-qfVNk:xkv6kBzcyS4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=PY4h2-qfVNk:xkv6kBzcyS4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=PY4h2-qfVNk:xkv6kBzcyS4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/7732706291421359852/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=7732706291421359852" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7732706291421359852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7732706291421359852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/PY4h2-qfVNk/lambda.html" title="\lambda" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/08/lambda.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMMR3g7fCp7ImA9WhdRFUs.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-6069285248020383124</id><published>2011-08-04T14:42:00.007+08:00</published><updated>2011-08-06T01:14:46.604+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-06T01:14:46.604+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VirtualBox" /><category scheme="http://www.blogger.com/atom/ns#" term="Networking" /><title>Magically Provisioning VirtualBox</title><content type="html">Recently, I had the fortune of figuring out how to boot and provision VirtualBoxes in a private network on the host machine automagically.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, the primary objectives:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The virtual machines should be connected in a private network on the host machine so that they can communicate securely with each other. The machines should have an ip address in the private address space.&lt;/li&gt;&lt;li&gt;The virtual machines should also be able to communicate with the "outside world". From the point of view of the guest machine, this can be other machines on the same network as the host or the Internet-at-large.&lt;/li&gt;&lt;li&gt;The host machine should be able to network (primarily ssh) with the virtual machines. Typically, this can be done through the router gateway of the host or a "host-only adapter" (a virtual adapter that resides on the host).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Possible Solutions:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;TunTap networking. This can be tricky to setup correctly and varies across platforms. &lt;/li&gt;&lt;li&gt;Each VM uses two network interface cards (NICs):&lt;br /&gt;- One Host-only adapter with its own dhcp server for the private network OR use the "Internal Network" feature of virtual box.&lt;br /&gt;- One bridge adapter that get its ip address from the outside world (possibly the router to which the host machine connects to).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Next, secondary objectives:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;We want to boot the VMs automagically, find out the ip address.&lt;/li&gt;&lt;li&gt;Then, we want to ssh into the machine and do provisioning via chef or puppet.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Possible Solutions:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Use VBoxManage guestcontrol to execute the /sbin/ifconfig command&lt;/li&gt;&lt;li&gt;Use NAT with port forwarding for ssh&lt;br /&gt;($ VBoxManage --natpf&amp;lt;1-N&amp;gt; [&lt;rulename&gt;],tcp|udp,[&lt;hostip&gt;] )&lt;/hostip&gt;&lt;/rulename&gt;&lt;/li&gt;&lt;li&gt;Hack /etc/init.d or &lt;a href="http://manpages.ubuntu.com/manpages/hardy/man5/interfaces.5.html"&gt;/etc/networking/interfaces&lt;/a&gt; (post-up) on the guest OS so that the guest automatically writes out its IP to a share folder or a serial port.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-6069285248020383124?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=x5szAfrlP5c:R7SJ1tx2Mkc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=x5szAfrlP5c:R7SJ1tx2Mkc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=x5szAfrlP5c:R7SJ1tx2Mkc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=x5szAfrlP5c:R7SJ1tx2Mkc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=x5szAfrlP5c:R7SJ1tx2Mkc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/6069285248020383124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=6069285248020383124" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6069285248020383124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6069285248020383124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/x5szAfrlP5c/magically-provisioning-virtualbox.html" title="Magically Provisioning VirtualBox" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/08/magically-provisioning-virtualbox.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAHSXYyeSp7ImA9WhdTE08.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-7909217228029751889</id><published>2011-07-11T03:37:00.003+08:00</published><updated>2011-07-11T03:38:58.891+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T03:38:58.891+08:00</app:edited><title>Tumblr</title><content type="html">I have been trying out &lt;a href="http://hanworks.tumblr.com"&gt;tumblr&lt;/a&gt; and I must say its super nice to use. I shall be posting more titbits to my tumblr and reserving this blog for slightly longer and more technical posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-7909217228029751889?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=Y3akCN0ixFA:9OMvp9xCdMk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=Y3akCN0ixFA:9OMvp9xCdMk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=Y3akCN0ixFA:9OMvp9xCdMk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=Y3akCN0ixFA:9OMvp9xCdMk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=Y3akCN0ixFA:9OMvp9xCdMk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/7909217228029751889/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=7909217228029751889" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7909217228029751889?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7909217228029751889?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/Y3akCN0ixFA/tumblr.html" title="Tumblr" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/07/tumblr.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUHR3k7cSp7ImA9WhdTE08.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-4457544890455082505</id><published>2011-07-11T03:29:00.001+08:00</published><updated>2011-07-11T03:30:36.709+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-11T03:30:36.709+08:00</app:edited><title>Markup</title><content type="html">&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Markdown"&gt;Markdown&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Textile_%28markup_language%29"&gt;Textile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docutils.sourceforge.net/rst.html"&gt;reStructuredText&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Note: cross-post from &lt;a href="http://hanworks.tumblr.com/post/6432752706/markup"&gt;here&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/11708271-4457544890455082505?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=lyNt2Fn9iLU:WkHA_M1Mess:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=lyNt2Fn9iLU:WkHA_M1Mess:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=lyNt2Fn9iLU:WkHA_M1Mess:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=lyNt2Fn9iLU:WkHA_M1Mess:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=lyNt2Fn9iLU:WkHA_M1Mess:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/4457544890455082505/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=4457544890455082505" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/4457544890455082505?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/4457544890455082505?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/lyNt2Fn9iLU/markup.html" title="Markup" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/07/markup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANRns_fSp7ImA9WhdTEkg.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-2908991487826570511</id><published>2011-07-10T08:21:00.004+08:00</published><updated>2011-07-10T08:29:57.545+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-10T08:29:57.545+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="github" /><title>Gist Github</title><content type="html">A while ago, I used the subdomain feature of pastebin to keep track of my public pastes (e.g. &lt;a href="https://hanworks.pastebin.com/"&gt;hanworks.pastebin.com&lt;/a&gt;), but it seems that pastebin has disabled this feature, making retrieval of old pastes difficult (of course, you can sign up). Hence, I am moving over to the really awesome &lt;a href="https://gist.github.com/minghan"&gt;github gist&lt;/a&gt;, which supports various markups such as markdown and reST on top of source code syntax highlighting. I also like the fact that there is a "revisions feature" to see previous revisions.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In other news, github released &lt;a href="https://github.com/blog/878-announcing-github-for-mac"&gt;Github for Mac&lt;/a&gt; (more about the &lt;a href="http://warpspire.com/posts/designing-github-mac/"&gt;design&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/11708271-2908991487826570511?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=yc69T0GpjZg:Rp3tL56Tj1g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=yc69T0GpjZg:Rp3tL56Tj1g:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=yc69T0GpjZg:Rp3tL56Tj1g:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=yc69T0GpjZg:Rp3tL56Tj1g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=yc69T0GpjZg:Rp3tL56Tj1g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/2908991487826570511/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=2908991487826570511" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/2908991487826570511?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/2908991487826570511?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/yc69T0GpjZg/gist-github.html" title="Gist Github" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/07/gist-github.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYAQ3Y5cSp7ImA9WhdTEkg.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-1644656561483315071</id><published>2011-07-09T14:28:00.001+08:00</published><updated>2011-07-10T08:19:02.829+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-10T08:19:02.829+08:00</app:edited><title>Geeks and Geezers</title><content type="html">&lt;div&gt;A long time ago, I read &lt;a href="http://www.amazon.com/Geeks-Geezers-Warren-G-Bennis/dp/1578515823"&gt;Harvard Geeks and Geezers: How Eras, Values and Defining Moments Shape Leaders&lt;/a&gt; (by Warren G. Bennis and Robert J. Thomas)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;"Big four" qualities of leadership:&lt;br /&gt;&lt;br /&gt;1. Adaptive capacity&lt;br /&gt;2. Engaging others through shared meaning&lt;br /&gt;3. A distinctive voice&lt;br /&gt;4. Integrity&lt;br /&gt;&lt;br /&gt;The book also stressed the power and influence of the crucible, and it create exceptional leaders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-1644656561483315071?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iCWZcFQIcZk:2eSKns9z_94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iCWZcFQIcZk:2eSKns9z_94:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iCWZcFQIcZk:2eSKns9z_94:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iCWZcFQIcZk:2eSKns9z_94:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=iCWZcFQIcZk:2eSKns9z_94:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/1644656561483315071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=1644656561483315071" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1644656561483315071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1644656561483315071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/iCWZcFQIcZk/geeks-and-geezers.html" title="Geeks and Geezers" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/07/geeks-and-geezers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UBQn09eyp7ImA9WhdREUk.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-7285808935558721926</id><published>2011-07-09T08:13:00.012+08:00</published><updated>2011-08-01T03:40:53.363+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-01T03:40:53.363+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Stuff about Python</title><content type="html">The stuff here should be seen in the context of CPython unless otherwise stated.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;Basic&lt;/b&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;"import this" easter egg&lt;/li&gt;&lt;li&gt;the &lt;a href="http://docs.python.org/reference/simple_stmts.html#pass"&gt;pass&lt;/a&gt; keyword&lt;/li&gt;&lt;li&gt;Remember to have __init__.py to you modules. You can put code in __init__.py too! (e.g. for initializations, and functions in there can be imported)&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1301346/the-meaning-of-a-single-and-a-double-underscore-before-an-object-name-in-python/1301369#1301369"&gt;Single underscores&lt;/a&gt; should be used for private variables. &lt;/li&gt;&lt;li&gt;re.match() only attempts to match a pattern at the beginning of a string where re.search() will match a pattern anywhere in a string.&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.python.org/library/readline.html#example"&gt;Readline&lt;/a&gt; configuration for python&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.python.org/release/1.5/tut/node23.html"&gt;Else clauses&lt;/a&gt; on for loops (or even try-except statements)&lt;/li&gt;&lt;li&gt;Function &lt;a href="http://www.devshed.com/c/a/Python/Nested-Functions-in-Python/1/"&gt;closures&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;Advanced&lt;/b&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;unittest module&lt;br /&gt;There is so much &lt;a href="http://greengiraffe.posterous.com/behind-pythons-unittestmain"&gt;magic happening behind the scenes&lt;/a&gt; that I recommend taking a look at the &lt;a href="http://pyunit.sourceforge.net/"&gt;source code&lt;/a&gt; to understand what's going on.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.python.org/workshops/1997-10/proceedings/savikko.html"&gt;Design Patterns&lt;/a&gt; in Python&lt;/li&gt;&lt;li&gt;More &lt;a href="http://www.youtube.com/watch?v=0vJJlVBVTFg"&gt;Design Patterns&lt;/a&gt; (&lt;a href="http://www.aleax.it/gdd_pydp.pdf"&gt;slides&lt;/a&gt;) (from Google)&lt;/li&gt;&lt;li&gt;Use &lt;a href="http://en.wikipedia.org/wiki/Coroutine"&gt;coroutines&lt;/a&gt; via enhanced generators (&lt;a href="http://www.python.org/dev/peps/pep-0342/"&gt;PEP 342&lt;/a&gt;). A cool &lt;a href="http://git.emarhavil.com/chiral.git"&gt;networking/threading library&lt;/a&gt; written using coroutines. More about coroutines via &lt;a href="http://www.andrew.cmu.edu/course/15-312-sp11/handouts/book.pdf"&gt;PFPL&lt;/a&gt; chp 33.3&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.linuxjournal.com/node/4540/print"&gt;Mixins&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Decorators (&lt;a href="http://www.artima.com/weblogs/viewpost.jsp?thread=240808"&gt;tutorial&lt;/a&gt;, &lt;a href="http://wiki.python.org/moin/PythonDecorators"&gt;advanced&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;What you should know about &lt;a href="http://lucumr.pocoo.org/2011/2/1/exec-in-python/"&gt;exec and compile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://realmike.org/blog/2010/07/18/introduction-to-new-style-classes-in-python/"&gt;New&lt;/a&gt; and old classes&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;Implementations of Py&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;CPython&lt;/li&gt;&lt;li&gt;JPython&lt;/li&gt;&lt;li&gt;IronPython&lt;/li&gt;&lt;li&gt;StacklessPython&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Note: This post is a work in progress.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-7285808935558721926?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=odYITzLV160:oElXDxoSlIg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=odYITzLV160:oElXDxoSlIg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=odYITzLV160:oElXDxoSlIg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=odYITzLV160:oElXDxoSlIg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=odYITzLV160:oElXDxoSlIg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/7285808935558721926/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=7285808935558721926" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7285808935558721926?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7285808935558721926?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/odYITzLV160/stuff-about-python.html" title="Stuff about Python" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/stuff-about-python.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDSX0_eSp7ImA9WhZaGUo.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-4476063079630843338</id><published>2011-07-07T01:14:00.002+08:00</published><updated>2011-07-07T01:16:18.341+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-07T01:16:18.341+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>web2py</title><content type="html">&lt;blockquote&gt;Free open source full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applications. Written and programmable in Python. LGPLv3 License&lt;/blockquote&gt;&lt;a href="http://web2py.com/"&gt;Read more...&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wonders how web2py compares against django.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-4476063079630843338?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=BojsuaQY-vk:KT02-kP-Ga4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=BojsuaQY-vk:KT02-kP-Ga4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=BojsuaQY-vk:KT02-kP-Ga4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=BojsuaQY-vk:KT02-kP-Ga4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=BojsuaQY-vk:KT02-kP-Ga4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/4476063079630843338/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=4476063079630843338" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/4476063079630843338?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/4476063079630843338?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/BojsuaQY-vk/web2py.html" title="web2py" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/07/web2py.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4BRH08fyp7ImA9WhdSFUs.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-7799777012509486672</id><published>2011-06-26T17:21:00.005+08:00</published><updated>2011-07-25T11:35:55.377+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-25T11:35:55.377+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><title>Idiosyncrasies of Python</title><content type="html">&lt;ol&gt;&lt;li&gt;If say thread A does a thread join on thread B, thread A will block (and be uninterruptible by signals) until thread B completes. (more info &lt;a href="http://stackoverflow.com/questions/631441/interruptible-thread-join-in-python"&gt;here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The &lt;a href="http://docs.python.org/c-api/init.html#threads"&gt;Global Interpreter Lock&lt;/a&gt; in CPython. JPython and IronPython have no GIL. To get around &lt;a href="http://www.dabeaz.com/python/UnderstandingGIL.pdf"&gt;GIL&lt;/a&gt;, consider using the &lt;a href="http://docs.python.org/library/multiprocessing.html"&gt;multiprocessing module&lt;/a&gt;, i.e. processes instead of threads.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-style:italic;"&gt;(More to come!)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-7799777012509486672?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=3CqfPD490jc:k9vWf60T8eQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=3CqfPD490jc:k9vWf60T8eQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=3CqfPD490jc:k9vWf60T8eQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=3CqfPD490jc:k9vWf60T8eQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=3CqfPD490jc:k9vWf60T8eQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/7799777012509486672/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=7799777012509486672" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7799777012509486672?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7799777012509486672?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/3CqfPD490jc/idiosyncrasies-of-python.html" title="Idiosyncrasies of Python" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/idiosyncrasies-of-python.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcNQ384fip7ImA9WhZaEEU.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-911644078060701414</id><published>2011-06-26T16:30:00.005+08:00</published><updated>2011-06-26T17:21:32.136+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-26T17:21:32.136+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nginx" /><title>Nginx on Ubuntu</title><content type="html">&lt;span style="font-family:courier new;"&gt;$ sudo apt-get install nginx&lt;/span&gt;&lt;div&gt;&lt;span style="font-family:courier new;"&gt;$ sudo /etc/init.d/nginx start&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:courier new;"&gt;$ sudo /etc/init.d/nginx stop&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hit 127.0.0.1:80/ and you should see "Welcome to nginx!"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Config path: /etc/ningx/&lt;/div&gt;&lt;div&gt;Default virtual hosts config path: /etc/nginx/sites-enabled/&lt;/div&gt;&lt;div&gt;Default doc root: /usr/share/nginx/www&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Docs: &lt;a href="http://blog.martinfjordvald.com/2010/07/nginx-primer/"&gt;nginx primer&lt;/a&gt; for folks who come from apache&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-911644078060701414?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=bBlJJjbsZQg:gTQ4mR7IMZ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=bBlJJjbsZQg:gTQ4mR7IMZ0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=bBlJJjbsZQg:gTQ4mR7IMZ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=bBlJJjbsZQg:gTQ4mR7IMZ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=bBlJJjbsZQg:gTQ4mR7IMZ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/911644078060701414/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=911644078060701414" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/911644078060701414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/911644078060701414?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/bBlJJjbsZQg/nginx-on-ubuntu.html" title="Nginx on Ubuntu" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/nginx-on-ubuntu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUANQ309cCp7ImA9WhZbFUg.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-5771459821370357640</id><published>2011-06-20T15:08:00.001+08:00</published><updated>2011-06-20T15:09:52.368+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-20T15:09:52.368+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Build Engineering" /><title>Build Engineering</title><content type="html">One interesting aspect of software development that I have been exposed to lately is &lt;i&gt;build engineering&lt;/i&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Particularly, I have been reading up on:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ant.apache.org/"&gt;Apache Ant&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maven.apache.org/"&gt;Apache Maven&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://martinfowler.com/articles/continuousIntegration.html"&gt;Continuous Integration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://hudson-ci.org/"&gt;Hudson CI&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://buildengineer.org/"&gt;http://buildengineer.org/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-5771459821370357640?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=a7JfPobgFkU:rv2IUu5OQTM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=a7JfPobgFkU:rv2IUu5OQTM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=a7JfPobgFkU:rv2IUu5OQTM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=a7JfPobgFkU:rv2IUu5OQTM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=a7JfPobgFkU:rv2IUu5OQTM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/5771459821370357640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=5771459821370357640" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/5771459821370357640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/5771459821370357640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/a7JfPobgFkU/build-engineering.html" title="Build Engineering" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/build-engineering.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFRnY_fyp7ImA9WhdQFUs.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-1490209362280023724</id><published>2011-06-20T09:58:00.008+08:00</published><updated>2011-08-17T14:41:57.847+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-17T14:41:57.847+08:00</app:edited><title>Terminology 101</title><content type="html">&lt;div&gt;This list is likely to be continuously updated.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Serialization is often known as pickling (mainly used in &lt;a href="http://docs.python.org/library/pickle.html"&gt;python&lt;/a&gt;) and marshalling (more for binary data).&lt;/li&gt;&lt;li&gt;Cache priming is also known as cache warming (e.g. by populating the cache with data)&lt;/li&gt;&lt;li&gt;Mainline/baseline (aka "vanilla" for Linux Kernel Dev) is similar to the master branch of the code repository.&lt;/li&gt;&lt;li&gt;Continuous build != nightly builds, since bugs can lie dormant for 24 hrs for nightly builds.&lt;/li&gt;&lt;li&gt;XP = Extreme Programming&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Coroutine"&gt;Coroutines&lt;/a&gt; are "computer program components that generalize subroutines to allow multiple entry points for suspending and resuming execution at certain locations"&lt;/li&gt;&lt;li&gt;&lt;a href="http://www-uxsup.csx.cam.ac.uk/~jw35/courses/apache/html/x1670.htm"&gt;Log rotation&lt;/a&gt; is "the regular (nightly or weekly, typically) moving of an existing log file to some other file name and starting fresh with an empty log file".&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-1490209362280023724?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=b92UG0mfUzU:C7rAxFwx7uE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=b92UG0mfUzU:C7rAxFwx7uE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=b92UG0mfUzU:C7rAxFwx7uE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=b92UG0mfUzU:C7rAxFwx7uE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=b92UG0mfUzU:C7rAxFwx7uE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/1490209362280023724/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=1490209362280023724" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1490209362280023724?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1490209362280023724?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/b92UG0mfUzU/terminology-101.html" title="Terminology 101" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/terminology-101.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcHQnY6fSp7ImA9WhZUGEs.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-5617212434386347331</id><published>2011-06-12T16:03:00.010+08:00</published><updated>2011-06-12T16:40:33.815+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T16:40:33.815+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Apache" /><title>Servers on Mac</title><content type="html">Personal tips for setting up MAMP (Mac, Apache, MySQL, PHP):&lt;br /&gt;&lt;br /&gt;The main reason why you have apache on mac is because of sharing (system preferences -&amp;gt; sharing -&amp;gt; web sharing). And by default, apache is configured to listen on port 80 and include a bunch of config files in &lt;span style="font-family:courier new"&gt;/private/etc/apache2/[users,other]&lt;/span&gt;&lt;br /&gt;Virtual hosts are not setup by default.&lt;br /&gt;&lt;br /&gt;Things I do for running a development server:&lt;br /&gt;- changed port to listen on another port (say 8000, 8080)&lt;br /&gt;- set up &lt;a href="http://httpd.apache.org/docs/2.0/howto/auth.html"&gt;http auth&lt;/a&gt; for security reasons&lt;br /&gt;&lt;br /&gt;Stuff I put in my .zshrc:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new; text-align: left; word-wrap: break-word;"&gt;&lt;br /&gt;alias couch_start="sudoge  launchctl load -w /Library/LaunchDaemons/org.apache.couchdb.plist"&lt;br /&gt;alias couch_stop="sudo launcctl unload /Library/LaunchDaeons/org.apache.couchdb.plist"&lt;br /&gt;alias couch_restart="sudo launchctl stop org.apache.couchdb"&lt;br /&gt;&lt;br /&gt;alias apache_start="sudo apachectl start"&lt;br /&gt;alias apache_stop="sudo apachectl stop"&lt;br /&gt;alias apache_restart="sudo apachectl restart"&lt;br /&gt;&lt;br /&gt;alias mysql_start="sudo /usr/local/mysql/support-files/mysql.server start"&lt;br /&gt;alias mysql_stop="sudo /usr/local/mysql/support-files/mysql.server stop"&lt;br /&gt;alias mysql_restart="sudo /usr/local/mysql/support-files/mysql.server restart"&lt;br /&gt;&lt;br /&gt;alias mysql="/usr/local/mysql/bin/mysql"&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-5617212434386347331?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=H82m8aM3JQM:X9-nKtuHOKw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=H82m8aM3JQM:X9-nKtuHOKw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=H82m8aM3JQM:X9-nKtuHOKw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=H82m8aM3JQM:X9-nKtuHOKw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=H82m8aM3JQM:X9-nKtuHOKw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/5617212434386347331/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=5617212434386347331" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/5617212434386347331?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/5617212434386347331?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/H82m8aM3JQM/servers-on-mac.html" title="Servers on Mac" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/servers-on-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcEQHczeSp7ImA9WhZbFUg.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-2540027609422140254</id><published>2011-06-12T14:57:00.007+08:00</published><updated>2011-06-20T15:13:21.981+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-20T15:13:21.981+08:00</app:edited><title>Nginx</title><content type="html">Nginx is a high performance http server + reverse proxy + pop3/imap server. This is a &lt;a href="http://kovyrin.net/2006/05/18/nginx-as-reverse-proxy/"&gt;good article&lt;/a&gt; on using Nginx as a reverse proxy.&lt;div&gt;&lt;br /&gt;More juicy stuff:&lt;br /&gt;&lt;blockquote&gt;Apache is a process-based server, while nginx is an event-based web server&lt;/blockquote&gt;&lt;br /&gt;See &lt;a href="http://www.wikivs.com/wiki/Apache_vs_nginx"&gt;Apache vs Nginx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-2540027609422140254?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=dIWRF0S4Svw:vHL7q2bE_GQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=dIWRF0S4Svw:vHL7q2bE_GQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=dIWRF0S4Svw:vHL7q2bE_GQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=dIWRF0S4Svw:vHL7q2bE_GQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=dIWRF0S4Svw:vHL7q2bE_GQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/2540027609422140254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=2540027609422140254" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/2540027609422140254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/2540027609422140254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/dIWRF0S4Svw/nginx.html" title="Nginx" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/nginx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHRn0_eyp7ImA9WhZUE0k.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-7246095532790310068</id><published>2011-06-06T14:37:00.001+08:00</published><updated>2011-06-06T14:38:57.343+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-06T14:38:57.343+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="database" /><title>Database Sharding</title><content type="html">I have been reading a bit on &lt;a href="http://en.wikipedia.org/wiki/Shard_(database_architecture)"&gt;database sharding&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: More update his post when I have a better understanding.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-7246095532790310068?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=FXKsSfm_eD4:bzB394I26Rg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=FXKsSfm_eD4:bzB394I26Rg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=FXKsSfm_eD4:bzB394I26Rg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=FXKsSfm_eD4:bzB394I26Rg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=FXKsSfm_eD4:bzB394I26Rg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/7246095532790310068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=7246095532790310068" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7246095532790310068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/7246095532790310068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/FXKsSfm_eD4/database-sharding.html" title="Database Sharding" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/database-sharding.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQFRXk6fCp7ImA9WhZUE00.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-8407172115548773682</id><published>2011-06-05T11:07:00.003+08:00</published><updated>2011-06-06T02:58:34.714+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-06T02:58:34.714+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>Fun with Ascii</title><content type="html">&lt;div&gt;&lt;div&gt;1. &lt;span class="Apple-style-span" &gt;$ &lt;a href="http://www.cyberciti.biz/faq/create-large-colorful-text-banner-on-screen/"&gt;figlet&lt;/a&gt; "Fun"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;2. cowsay, cowthink&lt;/div&gt;&lt;div&gt;3. &lt;a href="http://3chevrons.blogspot.com/2010/03/ascii-train.html"&gt;ascii train&lt;/a&gt;&lt;/div&gt;&lt;div&gt;4. &lt;a href="http://superuser.com/questions/119397/sudo-apt-get-moo-and-other-easter-eggs-in-linux"&gt;Easter Eggs&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;5. &lt;a href="http://ubuntuforums.org/showthread.php?t=499761"&gt;Unfree/Free the fish&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/11708271-8407172115548773682?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iwuf1g5G6Eo:d24QJQ9j8Ps:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iwuf1g5G6Eo:d24QJQ9j8Ps:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iwuf1g5G6Eo:d24QJQ9j8Ps:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=iwuf1g5G6Eo:d24QJQ9j8Ps:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=iwuf1g5G6Eo:d24QJQ9j8Ps:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/8407172115548773682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=8407172115548773682" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/8407172115548773682?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/8407172115548773682?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/iwuf1g5G6Eo/fun-with-ascii.html" title="Fun with Ascii" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/06/fun-with-ascii.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMGRn4zfip7ImA9WhZUEEU.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-880038767406775207</id><published>2011-06-02T16:00:00.000+08:00</published><updated>2011-06-03T14:43:47.086+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T14:43:47.086+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Linux" /><title>nomodeset</title><content type="html">&lt;div&gt;Note-to-self: &lt;a href="http://maketecheasier.com/solving-ubuntu-karmic-black-screen-issue/2009/12/29/"&gt;About the Ubuntu black screen issue&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Here is an &lt;a href="http://forum.nginx.org/read.php?30,92915,92923#msg-92923"&gt;explanation&lt;/a&gt; of what nomodeset does. (recommended: read the whole thread)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-880038767406775207?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=YM4ec5TwQMg:WkYTUfx37sI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=YM4ec5TwQMg:WkYTUfx37sI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=YM4ec5TwQMg:WkYTUfx37sI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=YM4ec5TwQMg:WkYTUfx37sI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=YM4ec5TwQMg:WkYTUfx37sI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/880038767406775207/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=880038767406775207" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/880038767406775207?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/880038767406775207?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/YM4ec5TwQMg/nomodeset.html" title="nomodeset" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/nomodeset.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQFSH49eyp7ImA9WhZVGE8.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-9105845431447884798</id><published>2011-05-31T15:49:00.001+08:00</published><updated>2011-05-31T15:51:59.063+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T15:51:59.063+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><title>Deep Copy in JS</title><content type="html">&lt;blockquote&gt;Note: For those unfamiliar with the convention eval(uneval(_obj_)), this simply clones _obj_. It is cleaner than traversing each element of _obj_ and it will always be true that uneval(eval(uneval(x))) == uneval(x) and eval(uneval(x)) == deep_copy_of_x . The actual method uneval(_obj_) is a Spidermonkey specific (as of 1.7) extension that is not part of ECMAScript.&lt;/blockquote&gt;&lt;br /&gt;From &lt;a href="http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views"&gt;Introduction to CouchDB Views&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-9105845431447884798?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=WqGPFvMsk7o:JWkQ8BF4cSQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=WqGPFvMsk7o:JWkQ8BF4cSQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=WqGPFvMsk7o:JWkQ8BF4cSQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=WqGPFvMsk7o:JWkQ8BF4cSQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=WqGPFvMsk7o:JWkQ8BF4cSQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/9105845431447884798/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=9105845431447884798" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/9105845431447884798?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/9105845431447884798?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/WqGPFvMsk7o/deep-copy-in-js.html" title="Deep Copy in JS" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/deep-copy-in-js.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08NQnc8cCp7ImA9WhZUGEs.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-6563027492009287169</id><published>2011-05-30T13:29:00.019+08:00</published><updated>2011-06-12T16:04:53.978+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T16:04:53.978+08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>Setting up a Mac</title><content type="html">As someone who came from a Windows + Linux background, setting up and using a mac was an irritating experience.&lt;br /&gt;&lt;br /&gt;List of stuff I had to setup:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/macvim/"&gt;Vim&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/git-osx-installer/"&gt;Git&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Eclipse&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.openoffice.org/"&gt;OpenOffice&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Firefox, Chrome&lt;/li&gt;&lt;li&gt;&lt;a href="http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20792"&gt;XCode 3&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://shaunchapmanblog.com/post/329270449/how-to-install-the-tree-command-on-mac-os-x"&gt;Tree&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://iterm.sourceforge.net/"&gt;iTerm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/mac/gedit/"&gt;Gedit&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://adium.im/"&gt;Adium&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://cyberduck.ch/"&gt;Cyberduck&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.macports.org/install.php"&gt;MacPorts&lt;/a&gt; (sudo port install mercurial wget)&lt;/li&gt;&lt;li&gt;&lt;a href="http://mxcl.github.com/homebrew/"&gt;Homebrew&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.apple.com/kb/ht1343"&gt;Relearning shortcut keys&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://manytricks.com/witch/"&gt;Witch&lt;/a&gt;, &lt;a href="http://willmore.eu/software/isolator/"&gt;Isolator&lt;/a&gt;, Quicksilver&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Other "stuff": &lt;a href="http://wiki.apache.org/couchdb/Installing_on_OSX"&gt;CouchDB&lt;/a&gt; (using brew), &lt;a href="http://maestric.com/doc/mac/apache_php_mysql_snow_leopard"&gt;MySQL&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately, OS X comes with zsh, apache, mysql&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11708271-6563027492009287169?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=duIQviot2Kg:8PbKHPBFq9E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=duIQviot2Kg:8PbKHPBFq9E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=duIQviot2Kg:8PbKHPBFq9E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=duIQviot2Kg:8PbKHPBFq9E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=duIQviot2Kg:8PbKHPBFq9E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/6563027492009287169/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=6563027492009287169" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6563027492009287169?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6563027492009287169?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/duIQviot2Kg/setting-up-mac.html" title="Setting up a Mac" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/setting-up-mac.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04AQ3oyfCp7ImA9WhZVF04.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-1193311008091523531</id><published>2011-05-30T13:04:00.002+08:00</published><updated>2011-05-30T13:05:42.494+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T13:05:42.494+08:00</app:edited><title>movw $0x1f01,0xb8000; hlt</title><content type="html">Was checking out the &lt;a href="http://pub.mouraf.org/blog/"&gt;cool blog title here&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ZCplpUUGTJE/TeMljm263CI/AAAAAAAAAXA/iS5VJoiND24/s1600/mov_hlt_2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://2.bp.blogspot.com/-ZCplpUUGTJE/TeMljm263CI/AAAAAAAAAXA/iS5VJoiND24/s320/mov_hlt_2.png" alt="" id="BLOGGER_PHOTO_ID_5612370854290316322" 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/11708271-1193311008091523531?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=UkRcORS6fqA:WHMiRPXjy9I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=UkRcORS6fqA:WHMiRPXjy9I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=UkRcORS6fqA:WHMiRPXjy9I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=UkRcORS6fqA:WHMiRPXjy9I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=UkRcORS6fqA:WHMiRPXjy9I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/1193311008091523531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=1193311008091523531" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1193311008091523531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/1193311008091523531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/UkRcORS6fqA/movw-0x1f010xb8000-hlt.html" title="movw $0x1f01,0xb8000; hlt" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ZCplpUUGTJE/TeMljm263CI/AAAAAAAAAXA/iS5VJoiND24/s72-c/mov_hlt_2.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/movw-0x1f010xb8000-hlt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQHSXc8eCp7ImA9WhZVGE0.&quot;"><id>tag:blogger.com,1999:blog-11708271.post-6198870770598912689</id><published>2011-05-29T13:43:00.007+08:00</published><updated>2011-05-31T08:05:38.970+08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T08:05:38.970+08:00</app:edited><title>Access Virtualbox guest via ssh</title><content type="html">Apparently, it is &lt;a href="http://mydebian.blogdns.org/?p=148"&gt;possible to access&lt;/a&gt; a Virtualbox guest machine running sshd via ssh from the host machine.&lt;br /&gt;&lt;br /&gt;Using PCnet-FAST III (NAT) as network adapter,&lt;br /&gt;&lt;br /&gt;On the host machine: (where [guest] is the name of your guest machine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ VBoxManage setextradata [guest] "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ VBoxManage setextradata [guest] "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ VBoxManage setextradata [guest] "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;To delete an entry, set the value to an empty string.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Re/Boot your guest machine.&lt;br /&gt;&lt;br /&gt;On your host machine:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ssh -l [user]@localhost -p 2222&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/11708271-6198870770598912689?l=hanworks.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=fOTFCMK0ZxA:XjY4A8wemaY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=fOTFCMK0ZxA:XjY4A8wemaY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=fOTFCMK0ZxA:XjY4A8wemaY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hanworks?a=fOTFCMK0ZxA:XjY4A8wemaY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hanworks?i=fOTFCMK0ZxA:XjY4A8wemaY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://hanworks.blogspot.com/feeds/6198870770598912689/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=11708271&amp;postID=6198870770598912689" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6198870770598912689?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/11708271/posts/default/6198870770598912689?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/hanworks/~3/fOTFCMK0ZxA/access-virtualbox-guest-via-ssh.html" title="Access Virtualbox guest via ssh" /><author><name>minghan</name><uri>http://www.blogger.com/profile/03994451733321468155</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://free.prohosting.com/minghan/hanworksresearch/star_trek.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://hanworks.blogspot.com/2011/05/access-virtualbox-guest-via-ssh.html</feedburner:origLink></entry></feed>

