<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5756706776038153768</id><updated>2011-11-04T13:51:32.495-07:00</updated><category term='i18n'/><category term='france'/><category term='travel'/><category term='photo'/><category term='paris'/><category term='tips'/><category term='rails'/><title type='text'>jinthing</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-7530072347953105007</id><published>2011-11-03T08:31:00.000-07:00</published><updated>2011-11-03T14:05:31.448-07:00</updated><title type='text'>From Luton Airport to London City</title><content type='html'>If you take one of the budget airlines to London, i.e. EasyJet, there is a good chance your flight will end up at Luton Airport (LTN). It seems like a rather smallish and remote airport, when indeed it is quite frequented and well connected to London City.&lt;br /&gt;&lt;br /&gt;You bridge the 50km to the capital by either taking the bus or the train. If you are flying EasyJet, you can purchase tickets for either prior to landing on the plane. Obviously&amp;nbsp;the train will get you to London faster, but it will cost you more and requires you to ride a shuttle bus to the train station &amp;nbsp;&lt;i&gt;Luton Airport Gateway&amp;nbsp;&lt;/i&gt;first. After you board the train you will arrive at &lt;i&gt;St. Pancras International&lt;/i&gt; Station after around 25 minutes.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-qPVBg7W4gLo/TrMB4uH8IQI/AAAAAAAABok/P3L80bfyV-k/s1600/IMGP0387.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-qPVBg7W4gLo/TrMB4uH8IQI/AAAAAAAABok/P3L80bfyV-k/s320/IMGP0387.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The bus ride, in contrast, lasts considerably longer, but still may be the more convenient option for you. You find the 757 bus right outside the entrance of the airport; it leaves every 20 minutes. The bus driver will store your luggage for you and retrieve it for you later at your destination stop. You can exit the bus at one of the several bus stops, the last one being Victoria Station. The bus seemed more convenient for me because I didn't need to transfer, haul around my luggage or purchase an oyster card or tube tickets before arriving in Central London. Also, if you fly EasyJet you are eligible to purchase a &lt;a href="http://www.greenline.co.uk/save-money-with-green-line-and-easyJet/"&gt;discounted bus ticket&lt;/a&gt; for the Green Line for only £15.50. &lt;b&gt;Note:&lt;/b&gt; When you board the bus, the driver will take your print-ticket and give you a ticket voucher in return for your ride back.&lt;br /&gt;&lt;br /&gt;I got stuck in traffic (which is quite normal in London); so the bus ride took me 120 minutes instead of 80. You should take that in account when riding the bus back to Luton Airport and and you should also allow for an additional 20 minutes for security (and more if you need to check-in first). If you arrive early you can kill time in the lounge eating sandwiches or drinking pints before boarding. In summary the London Luton airport is quite comfortable inspite of or maybe precisely due to its compact size.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-7530072347953105007?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/7530072347953105007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=7530072347953105007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7530072347953105007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7530072347953105007'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2011/11/from-luton-airport-to-london.html' title='From Luton Airport to London City'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-qPVBg7W4gLo/TrMB4uH8IQI/AAAAAAAABok/P3L80bfyV-k/s72-c/IMGP0387.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-5209479724391412969</id><published>2011-09-17T11:22:00.000-07:00</published><updated>2011-09-24T04:33:19.546-07:00</updated><title type='text'>Wake me up when September ends</title><content type='html'>A small but fresh breeze makes me put on my turtleneck sweater that I brought along. An half empty glass of beer and my laptop computer sit on the garden table in front of me.&amp;nbsp;Now and then I lean back in the matt white plastic chair and concentrate on the late summer's atmosphere: &amp;nbsp;the&amp;nbsp;pastel-colored&amp;nbsp;sky, the light smell of BBQ, the sound of a few crickets chirping and the occasional crowing of birds -- left, right and already far away.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;There is no doubt that the summer that hasn't really been there for me is coming to an end. A weak feeling of sadness rises up as I realize that it's been&amp;nbsp;almost a year since my last blog post. I'm telling myself that it surely must have been the amount of work rather than the lack of exciting things that kept me from writing.&lt;br /&gt;&lt;br /&gt;Outside I try to enjoy the last signs of summer. But it's already dark now at 8PM and it's getting cold. I quickly &amp;nbsp;finish what's left of my beer before I go inside.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-5209479724391412969?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/5209479724391412969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=5209479724391412969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5209479724391412969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5209479724391412969'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2011/09/very-later-on-late-summer-day.html' title='Wake me up when September ends'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-1230846148188331239</id><published>2010-10-16T16:57:00.000-07:00</published><updated>2010-10-17T07:32:09.335-07:00</updated><title type='text'>Short Status Review for Technical Blog</title><content type='html'>&lt;p&gt;Markdown syntax is &lt;em&gt;really&lt;/em&gt; helpful when you need to create structuredtext. I'm having a lot of problems in the WYSIWYG-Editors of &lt;em&gt;all&lt;/em&gt; theblog portals when dealing with tags, escaping and code blocks. For examplewanting to talk about the &lt;code&gt;[sourcecode]&lt;/code&gt; tag and later having an actual&lt;code&gt;[sourcecode] ... [/sourcecode]&lt;/code&gt; listing will not work in Wordpress. A nicearticle about the dilemma with WYSIWYG-Editors can be found&lt;a href="http://www.elated.com/articles/textile-markdown-nice-alternatives-to-wysiwyg-editors/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In Markdown you simply indent the sourcecode by 4 spaces and don't needto worry about escaping characters or tags. As the&lt;a href="http://daringfireball.net/projects/markdown/syntax#precode"&gt;Markdown Reference&lt;/a&gt; puts it nicely:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;This makes it very easy to include example HTML source code using Markdown.[...] Regular Markdown syntax is not processed within code blocks. E.g.,asterisks are just literal asterisks within a code block. This means it’salso easy to use Markdown to write about Markdown’s own syntax.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The only downside is that in standard Markdown you cannot add the class forsyntax highlighting on the &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; that is generated. Instead of indentingyou could also go with a "plain" HTML block:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;pre class="brush: javascript"&amp;gt;&lt;br /&gt;    for(var i=0; i&amp;lt;n; i++){&lt;br /&gt;      bounds.extend(markers[i].getPosition());&lt;br /&gt;    });&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Unfortunately this doesn't work as the less-sign is not automaticallyconverted to its HTML entity because within a HTML block no markdownparsing is made.&lt;/p&gt;&lt;p&gt;In the simplest workaround you would simply replace all ampersandsand brackets with the verbose HTML entities. But this kind of defeatsMarkdown's philosophy  of being as &lt;em&gt;easy-to-read and easy-to-write as feasible&lt;/em&gt;.So I will take a look at some of Markdown's dialects and extensions, like &lt;a href="http://maruku.rubyforge.org/"&gt;Maruku&lt;/a&gt;, as wellas other lightweigt markup languages like &lt;a href="http://textile.thresholdstate.com/"&gt;Textile&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-1230846148188331239?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/1230846148188331239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=1230846148188331239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1230846148188331239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1230846148188331239'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/10/short-status-review-for-technical-blog.html' title='Short Status Review for Technical Blog'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-7713950870092100217</id><published>2010-10-16T06:06:00.000-07:00</published><updated>2010-10-16T14:39:34.495-07:00</updated><title type='text'>Chosing a Technical Blogging Portal</title><content type='html'>&lt;p&gt;Recently I have thought of creating an extra blog for the more technical stuffI post, i.e. program listings and solutions to problems. Those kind of postsusually include some source code that I want to be displayed as preformatedtext and with syntax highlighting. So I looked at the source code postingfeatures of three of the most popular blogging platforms:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Blogger.com&lt;/li&gt;&lt;li&gt;WordPress.com&lt;/li&gt;&lt;li&gt;Posterous.com&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What I did in Blogger so far (as you can see in my older posts) is to simplychange the font type to Courier and decrease the font size. That kind of worksfor small listings, but doesn't look pretty. It get's really messy when you tryto post longer lines of source code though. To improve things and get syntaxhighlighting working what you can do is modify the header part of your templateto include a javascript highlighter. Alex Gorbatchev's&lt;a href="http://alexgorbatchev.com/SyntaxHighlighter/"&gt;SyntaxHighlighter&lt;/a&gt; seems to be avery popular choice. It is self contained,  brings 23 Syntaxes with it and isused by big players like Apache, Yahoo and even Wordpress. &lt;/p&gt;&lt;p&gt;Following the &lt;a href="http://alexgorbatchev.com/SyntaxHighlighter/manual/installation.html"&gt;installation instructions&lt;/a&gt;  you must do the following to get it running reference the core javascript,  css and theme files (3 lines) references all the syntaxes that you need (up      to 23 lines) set blogger.com mode (and other default mode) and then call  the syntax highlighter javascript function (&amp;gt;=2 lines) The large number of  lines may seem intimidating at first, but it's pretty much just javascript  and css references and you don't need all the files. The actual source code  is then embedded in pre or javascript tags. Customization parameters can be  passed class values on that tag. &lt;/p&gt;&lt;p&gt;As mentioned above WordPress.com includes Alex Gorbatchev's Syntax higlighterby default, which is nice; the usage is even simplified as instead of using theabove HTML tags you can just wrap your source code in [sourcecode] tags whereyou also put some the options. Take a look at the &lt;a href="http://en.support.wordpress.com/code/posting-source-code/"&gt;supportpage&lt;/a&gt;. Example:&lt;/p&gt;&lt;pre class="brush: plain"&gt;&lt;br /&gt;    [sourcecode]&lt;br /&gt;    This is a short snippit of code with padlinenumbers set to 4.&lt;br /&gt;    [/sourcecode]&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Pretty neat and not as verbose as using pure HTML.  Posterous goes a similarway, but seems to have problems with line spacing. And the HTMl editor isreally not that usable, especially if you created a blog by E-Mail. ButPosterous  supports markdown syntax out of the box now, which is kinda neat;you just have to wrap the (markdown) content in tags. That let's you embedsource code in "regular" markdown syntax by indenting it (pitfall: at least 4    spaces for posterous). Language is set up with a she-bang. So you wouldhave:&lt;/p&gt;&lt;pre class="brush: c++"&gt;&lt;br /&gt;    #!c++&lt;br /&gt;    void main(){&lt;br /&gt;      cout &lt;&lt; "hello world!";&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;As mentioned before, though,  the HTML editor is a pain to use and won't workif you sent your markdown by E-Mail; I think it's a bug.  Still having themarkdown option built-in is nice. Blogger.com and WordPress.com won't allow youto write your posts in markdown.&lt;/p&gt;&lt;p&gt;In conclusion, SyntaxHighlighter seems to provide very nice looking codelistings and gives you a lot of configuration options. If you don't want tomess with the HTML of your layout files go with WordPress.com that gives youeasier access to it. If you want to write markdown online or in the email youronly choice seems to be Posterous. But if you can live with writing yourmarkdown and running it through a HTML converter you could use every bloggingservice here. Overall Wordpress.com seems to be the winner for maintaining atechnical blog. So I probably will be looking into Wordpress for my technicalblog that I plan to create. Opinions?&lt;/p&gt;&lt;h2&gt;Colophon&lt;/h2&gt;&lt;p&gt;I have added the above mentioned changes to my blogger template and used markdown to reformat this blog, parse it and then paste the HTML. My "source" markdown looks as follows:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;pre class="brush: c++"&amp;gt;&lt;br /&gt;    void main(){&lt;br /&gt;      cout &amp;lt;&amp;lt; "hello world!";&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-7713950870092100217?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/7713950870092100217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=7713950870092100217' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7713950870092100217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7713950870092100217'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/10/chosing-technical-blogging-portal.html' title='Chosing a Technical Blogging Portal'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-8324044361252945733</id><published>2010-08-18T17:02:00.000-07:00</published><updated>2010-08-18T17:02:09.312-07:00</updated><title type='text'>About blog writing and why it's important for me</title><content type='html'>&lt;div&gt;I realize it has been almost 5 months since I wrote the last article on this blog. I also realize that it is not that easy to regularly write articles and that might be reason I haven't followed up until now. &amp;nbsp;Finally I have come to the conclusion that despite all of that I should continue writing articles and do so more often for the following reasons:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, in the plethora of RSS-feeds and podcast I regularly listen to entrepreneurs emphasize how important good writing skills are, especially being able to write concisely. "Hire good writers", says 37 Signals in their book &lt;i&gt;&lt;a href="http://gettingreal.37signals.com/ch08_Wordsmiths.php"&gt;Getting Real&lt;/a&gt; &lt;/i&gt;because good writing skills will pay off. Or like the English proverb goes: &amp;nbsp;"The quill is mightier than the sword". &amp;nbsp;And it is only by writing that you will get better at writing. So writing regularly on your blog makes a good practice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A big advantage of writing on your blog is that you practice the entire writing process. You will do &amp;nbsp;drafting, revising and fine-tuning before you publish your post. Why? Because virtually everyone might read the stuff you put on your blog. And if you go through the pain of keeping a blog it must be way better than any&amp;nbsp;&lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt; micro-content. Otherwise your blog wouldn't have the right to exist. It's almost the same phenomenon as with open source software where programmers pay attention to good design and style for similar reasons.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second, by writing a blog you are effectively creating a personal brand. Your blog becomes a showcase of you and your work. &amp;nbsp;At the same time, however, you can leverage your blog for marketing your internet products. That can be a of real advantage if you need to push your internet site's traffic and ranking. It's like free &lt;a href="http://en.wikipedia.org/wiki/Search_engine_optimization"&gt;SEO&lt;/a&gt;&amp;nbsp;and advertisements together.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lastly, I think that reviewing your old blog entries is real fun. Reading that one or two year old text that you ones wrote makes you kinda proud. In the end you're doing it for yourself so that writing a blog still makes sense if you don't have an audience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For all of above reasons I have decided to create this blog entry and continue adding more in the future. &amp;nbsp;Surely I yet have to learn how to write concisely because this text could probably be half the size. I should practice more. But for now I'm going with Mark Twain's excuse: "I didn't have the time to write a short letter, so I wrote a long one instead."&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/5756706776038153768-8324044361252945733?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/8324044361252945733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=8324044361252945733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8324044361252945733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8324044361252945733'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/08/about-blog-writing-and-why-its.html' title='About blog writing and why it&apos;s important for me'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-2225793785180044626</id><published>2010-05-29T13:47:00.000-07:00</published><updated>2010-05-29T13:49:03.382-07:00</updated><title type='text'>Making VIM more TextMate like</title><content type='html'>&lt;br /&gt;TextMate is supposedly &lt;i&gt;the&lt;/i&gt; text editor for MacOS to have. It's used by many Rails developers and I must admit it's quite slick and fast. It feels like a polished and better Emacs in my opinion and takes many of its keyboard shortcuts.&amp;nbsp; Unfortunately it's closed source, costs money and is only available on the MacOS platform. &lt;br /&gt;&lt;br /&gt;I have converted back to VIM (I am using the MacVIM version). One of&amp;nbsp; features of TextMate that I am missing is the project drawer. Fortunately you can extend VIM with plugins. I have tried two plugins: Project and NERDTree. If you want something TextMate like go with &lt;a href="http://www.vim.org/scripts/script.php?script_id=1658"&gt;NERDTree&lt;/a&gt;. You get a directory pane at the left, from which you can easily find and open files.&lt;br /&gt;&lt;br /&gt;That's quite fine, but as a TextMate fan you will be missing the command line mate program to start with a directory "drawn out". I wrote a simple shell script to mimic that behavior and now typing 'vmate' behaves like its Mac OS counterpart:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;function vmate(){&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; if [ -d $1 ]; then&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mvim -c ":NERDTree $1"&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; else&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mvim $1&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; fi&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;To open a directory in project mode simply pass directory path to vmate. If you doing any Rails development be sure to check out the great &lt;a href="http://www.vim.org/scripts/script.php?script_id=1567"&gt;rails.vim&lt;/a&gt;&lt;/span&gt; &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;plugin.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;hints id="hah_hints"&gt;&lt;/hints&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-2225793785180044626?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/2225793785180044626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=2225793785180044626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2225793785180044626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2225793785180044626'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/05/making-vim-more-textmate-like.html' title='Making VIM more TextMate like'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-1262676925450340189</id><published>2010-03-27T05:50:00.000-07:00</published><updated>2010-03-27T05:55:59.667-07:00</updated><title type='text'>How to get to Orly Airport and visit Chinatown</title><content type='html'>Last time when I went to Paris, my flight was departing from Orly Airport, the second largest airport in Paris. Many cheaper Airlines operate at this airport and it seems only be used for shorter distance flights, within the EU. Orly is located in the South of Paris and reachable by a number of different ways.&lt;br /&gt;&lt;br /&gt;The cheapest way to get to the airport from the center of Paris is taking the subway all the way to&amp;nbsp; "Port de Choisy" station on line 7. You need one ticket T+ ticket for that. Then you get off and&amp;nbsp; take the 183 bus straight to the Orly airport with another T+ ticket. That's two tickets for a total of only 2.30 Euro! Be prepared that this bus ride will last another hour. AND BE SURE to take the right 183 bus! Not all the 183 buses go to all the way to the airport. There are two bus stops. Take the one on you left, but check the bus caption and timetable. There is an electronic display that shows you where the next two buses go. If unsure you better ask the bus driver before boarding. I didn't know that and almost missed my flight because the 183 bus to Orly Airport only departs every 30 minutes or so.&amp;nbsp; I&amp;nbsp; was too fascinated by the area around "Port de Choisy".&lt;br /&gt;&lt;br /&gt;If you cross the street from where the bus stop is you land in Chinatown! I don't know if this district is&amp;nbsp; mentioned in any guide book; at least in mine it was not. I didn't expect to find so many Chinese shops, restaurants and Chinese people there: mothers with their children, elderly Chinese in the park, workers&amp;nbsp; coming home eating at restaurants or buying Chinese food in one of the many Chinese shops there. It's definitely worth a visit. And if you need to go to Orly Airport anyway, it makes up a good combination; have an authentic Chinese meal at one of the many restaurants or buy some snacks for your flight.&lt;br /&gt;&lt;br /&gt;If I needed to go to Orly again, I would definitely do it in the same way. It may take a little bit longer than the train, but it's cheaper and you get to see some outer parts of the city that most tourist even don't know of. Just be sure too have enough time on hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-1262676925450340189?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/1262676925450340189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=1262676925450340189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1262676925450340189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1262676925450340189'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/how-to-get-to-orly-airport-and-visit.html' title='How to get to Orly Airport and visit Chinatown'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-2440415272467772796</id><published>2010-03-21T18:08:00.000-07:00</published><updated>2010-03-22T03:37:59.283-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='paris'/><category scheme='http://www.blogger.com/atom/ns#' term='france'/><title type='text'>Visit Pompidou</title><content type='html'>When I went to Paris last week, I made sure I go to the famous and historic Louvre and d'Orsay Museums. Both are stunning Museums and at least one should be on the list of your sightseing activities when you visit Paris. If I had to choose between one of those for time reasons I'd probably go with the later one because it is not as gigantic as the Louvre.  I saw both, but was very selective in what I wanted to look at. I didn't spent more than 2 hours in each and pretty much headed right to main "attractions": the Mona Lisa in the Louvre, and the Van Gogh self Portrait in the d'Orsay.&lt;br /&gt;&lt;br /&gt;But since I got myself a  2-day &lt;a href="http://www.parismuseumpass.com/en/home.php"&gt;Museum Pass&lt;/a&gt; and the Centre Pompidou was on the list of its accessible Museums, I decided to go there too -&amp;nbsp; and I should spent more time in it than in the Louvre. The building itself is quite an attraction: all tubes and cables run outside the building; that is, there is no concrete that covers them, the building is see-through. Taking a transparent tube escalator upstairs you enter the museum and exhibition halls. It's modern art from the 20th century to the present: famous paintings from  Piccasso, Mantisse, Leger, and abstract construction, installations, lots of naked skin and  body art.&amp;nbsp; Maybe not necessarily the  family or work-safe museum - but then after all, it's just art! Be sure not to miss it on your next Paris trip.&lt;qtlend&gt;&lt;/qtlend&gt; Since entrance fee with 12 euros is quite steep, consider getting a Museum Pass if you visit another museum as well.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jodAOXJ1AZ8/S6bCjJ4tFsI/AAAAAAAABVk/ssXoN7tqdZo/s1600-h/IMG_2158.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_jodAOXJ1AZ8/S6bCjJ4tFsI/AAAAAAAABVk/ssXoN7tqdZo/s320/IMG_2158.JPG" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Photo from one of the exhibition rooms of Centre Pompidiou.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;There are a lot of art students there practicing drawing.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;(shot with my Canon A710is).&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;qtlbar dir="ltr" id="qtlbar" style="-moz-border-radius: 3px 3px 3px 3px; background-color: #ececec; cursor: pointer; display: inline; left: 541px; line-height: 100%; opacity: 0.9; padding: 0pt; text-align: left; top: 295px; z-index: 999;"&gt;&lt;img class="qtl" src="http://www.qtl.co.il/img/copy.png" title="Copy selction" /&gt;&lt;a href="http://www.google.com/search?q=For%20me%20as%20non-expert%20in%20arts,%20I%27d%20even%20" target="_blank" title="Search With Google"&gt;&lt;img class="qtl" src="http://www.google.com/favicon.ico" /&gt;&lt;/a&gt;&lt;img class="qtl" src="http://www.babylon.com/favicon.ico" title="Translate With Babylon" /&gt;&lt;iframe id="qtlframe" src="" style="background-color: white; border: 1px solid rgb(236, 236, 236); display: none;"&gt;&lt;/iframe&gt;&lt;/qtlbar&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-2440415272467772796?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/2440415272467772796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=2440415272467772796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2440415272467772796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2440415272467772796'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/go-to-pompidou.html' title='Visit Pompidou'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jodAOXJ1AZ8/S6bCjJ4tFsI/AAAAAAAABVk/ssXoN7tqdZo/s72-c/IMG_2158.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-7666182141196995501</id><published>2010-03-20T05:00:00.000-07:00</published><updated>2010-03-20T12:00:21.716-07:00</updated><title type='text'>About taking photos and snapshots</title><content type='html'>&lt;div style="text-align: left;"&gt;Yesterday I came back from a Trip from to Paris. And like on every trip I go I took my camera with me. And it seems with every trip I am taking more and more pictures.&lt;/div&gt;&lt;br /&gt;The ubiquitous availability of digital cameras, big and cheap memory cards and rechargeable batteries allow us to take endless pictures. Taking a digital picture is virtually free. The marginal price for taking another picture consists merely &amp;nbsp;of a fraction of the price for the power you need for charging your battery; and since you have a power outlet in any decent hotel or youth hostel, the marginal cost is really zero.&lt;br /&gt;&lt;br /&gt;So if taking digital pictures is free, why shouldn't I take as many as I could? That is what most tourist seem to think nowadays. Every time there were many tourists taking picture of something, I just felt the urge to take pictures too. Well, that is snapshots. Snapshots are pictures that are taken out of the urge to take pictures, with no composition or thought about the motive. Snapshots are all right for your memories, but they all look the same.&lt;br /&gt;&lt;br /&gt;And even though shooting digital pictures might cost no money, it consumes some of &amp;nbsp;your precious traveling time. Sometimes seeing, absorbing and understanding your environment makes more sense than a picture. &amp;nbsp;Or like Kevin Spacey says in a commercial: "Point-and-shoot? That's a crime."&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial,Helvetica,sans-serif; font-size: 10px; white-space: pre;"&gt;&lt;object height="295" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xMZs2kEFzL8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xMZs2kEFzL8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="100%"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-7666182141196995501?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/7666182141196995501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=7666182141196995501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7666182141196995501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7666182141196995501'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/about-taking-photos-and-snapshots.html' title='About taking photos and snapshots'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-5473714029433569937</id><published>2010-03-14T20:06:00.000-07:00</published><updated>2010-03-14T20:06:54.586-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><title type='text'>Korean Finger Food [Photo]</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jodAOXJ1AZ8/S5xZ8wR1ZQI/AAAAAAAABVY/My31PxRK2xs/s1600-h/09-03-10_1847.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_jodAOXJ1AZ8/S5xZ8wR1ZQI/AAAAAAAABVY/My31PxRK2xs/s400/09-03-10_1847.jpg" width="300" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Korean Fast Food  at the Franfurt Main Railway Station&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;(Shot with my 1MP Camera on my Motorola Razr and edited in iPhoto)&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-5473714029433569937?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/5473714029433569937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=5473714029433569937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5473714029433569937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5473714029433569937'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/korean-finger-food-photo.html' title='Korean Finger Food [Photo]'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jodAOXJ1AZ8/S5xZ8wR1ZQI/AAAAAAAABVY/My31PxRK2xs/s72-c/09-03-10_1847.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-8373772456144912236</id><published>2010-03-14T09:33:00.000-07:00</published><updated>2010-03-14T11:40:00.196-07:00</updated><title type='text'>Some thoughts about the iPad</title><content type='html'>As I had correctly guessed, Apple enters the ebook market with its iPad introducing big competition to the Amazon Kindle. Unlike on the Kindle, though, users can consume more kind of contents than just eBooks: movies, music and applications. The iPad is coming out next Month, and I have thought about whether or not I'm getting one. &lt;br /&gt;&lt;br /&gt;The iPad is advertised as a multi-purpose device for consuming and experiencing purchased content and the internet; &lt;a href="http://al3x.net/2010/01/28/ipad.html"&gt;Alex&lt;/a&gt; calls the iPad a "cynical .. digital consumption device". But as many&amp;nbsp; &lt;br /&gt;have pointed out the iPad just seems like a bigger version of an iPhone/iPod touch (Have a look at this funny &lt;a href="http://gizmodo.com/5481923/what-comes-after-the-ipad"&gt;depiction&lt;/a&gt;). So I asked myself is it really worth the purchase? What  is it that it can &lt;i&gt;really &lt;/i&gt; do better than a notebook or a smartphone?&lt;br /&gt;&lt;br /&gt;According to Steve there are many things that the iPad does &lt;i&gt;really &lt;/i&gt;better; for me there is only the advantage that, due to its larger screen real estate, reading gets much more comfortable; this includes eBooks, as well as articles or documentation from the Internet. Other than that I am pretty sure, that a smart phone suffices my mobile connectivity needs, and a notebook my needs for getting some serious work done.&lt;br /&gt;&lt;br /&gt;Unfortunately the battery supposedly lasts only (or until up to) 10 hours, which might be an annoyance if you use the device primarily for reading. So wouln't one be better of with a Kindle, if reading was one's  primary use case. Unfortunately, the Kindle only has a monochrome, non-touch display and is a "consuming machine" itself. So reading your papers or PDFs is as far as I know not possible.&amp;nbsp; And the&amp;nbsp; Kindle is not really cheaper than the iPad. &lt;br /&gt;&lt;br /&gt;Just looking at the technical and sexy attractiveness, the iPad clearly beats the Kindle hands down. But as a personal computer it lacks one quality trait: openness (see &lt;a href="http://al3x.net/2010/01/28/ipad.html"&gt;Alex&lt;/a&gt;). As on the iPhone there will be probably "root" hacks, that allow will allow me to tinkle around on the device. But doesn't change anything on the&amp;nbsp; Apple's iPad policy. I'm still not sure I wanna get an iPad when such great Apps like Stanza are "&lt;a href="http://techcrunch.com/2010/02/02/apple-stanza-usb/"&gt;censored&lt;/a&gt;" maybe making me only buy books from Apple's own bookstore in the near future. But maybe the reading experience on the iPad just beats every other eBook reader. Let's see.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-8373772456144912236?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/8373772456144912236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=8373772456144912236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8373772456144912236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8373772456144912236'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/some-thoughts-about-ipad.html' title='Some thoughts about the iPad'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-3432877690050172091</id><published>2010-03-13T19:02:00.000-08:00</published><updated>2010-03-13T19:06:10.968-08:00</updated><title type='text'>From hunt-and-pecking to browsing the WWW</title><content type='html'>Playing around with a lot of different Firefox plugins over the last few days, I have come to realize that the way we consume Internet content has been undergoing a change. What had been targeted fishing for small fish &amp;nbsp;in the huge information ocean, has now been transformed into whale like soaking. Instead of searching from a vantage point for well defined prey, we just swallow tons of water into us and hope to find some nutrition in it.&lt;br /&gt;&lt;br /&gt;Streams of information are the product of social networks and recommender systems. What begins as a small creek, a twitter status update for instance, accumulates to streams, rivers and oceans. Trough the act of consuming those information streams our surfing behavior is changed. We click on links to sites we never would have visited, google for things that we never heart of, and subscribe to even more information streams we didn't even know existed.&lt;br /&gt;&lt;br /&gt;Twitter is just one example. Take all this other stuff we are fed with every day: Facebook, Stumbler, Delicious, Last.Fm, Glued, ... All those applications generate endless information rugs that we wade through with our personal quivers. And at the end of the day we come home with new catches of internet addresses and content pieces.&lt;br /&gt;&lt;br /&gt;Why did I mention the Firefox plugins? Having installed extensions for many of the social network sites mentioned I find myself more than often not using the address bar to navigate to a certain site. Instead I just follow the latest tweets or hit a key combination to stumble over new information; and if it's delicious I might put it in my Facebook for every one else to browse.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-3432877690050172091?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/3432877690050172091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=3432877690050172091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/3432877690050172091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/3432877690050172091'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/from-hunt-and-pecking-to-browsing-www.html' title='From hunt-and-pecking to browsing the WWW'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-1162190574207640568</id><published>2010-03-11T13:14:00.001-08:00</published><updated>2010-03-11T14:08:48.250-08:00</updated><title type='text'>Goethe monument</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div style="text-align: center;"&gt;&lt;img height="400" src="http://lh4.ggpht.com/_jodAOXJ1AZ8/S5lc1dh5TTI/AAAAAAAABSY/S6A5U5z0eRs/%5BUNSET%5D.jpg?imgmax=800" style="max-width: 800px;" width="300" /&gt;&lt;/div&gt;The Goethe monument in Frankfurt, Goethe's birth city (Taken with my 1MP Motorola RAZR camera)&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=d51b5e84-c28b-892b-b9da-34fa80eeebc0" /&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/5756706776038153768-1162190574207640568?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/1162190574207640568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=1162190574207640568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1162190574207640568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1162190574207640568'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/goethe-monument.html' title='Goethe monument'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_jodAOXJ1AZ8/S5lc1dh5TTI/AAAAAAAABSY/S6A5U5z0eRs/s72-c/%5BUNSET%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-2953590765848026089</id><published>2010-03-11T12:30:00.001-08:00</published><updated>2010-03-11T13:09:09.627-08:00</updated><title type='text'>My Editorssey</title><content type='html'>My Editorssey&lt;br /&gt;--------------------&lt;br /&gt;&lt;br /&gt;I don't want to know how much time I have wasted finding the best editor for my needs. Have I found it yet? Well, not really. I am using still several editors on a regular basis depending what task I am working on or what system I am using. Was it worth the time spent to try and learn new editors? Not really. But it was fun though. Let me take you on a small journey.&lt;br /&gt;&lt;br /&gt;Back in the days of Windows 95 I started with the built-in Notepad for tweaking system files like AUTOEXEC.BAT and CONFIG.SYS. When I booted in DOS only mode to tweak expanded memory for ancient games like Mortal Kombat and Destruction Derby I made use of the good old EDIT editor with its dazzling light letters on a just as dazzling light blue background. The basic editors were so basic that I wouldn't actually think about them at all. They were just necessary tools and came with the system. &lt;br /&gt;&lt;br /&gt;Then in middle school I started programming. I bought the MSDN Visual Studio student edition - an Integrated Development Environment (IDE) that brought its own editor. Programming for me at that time was opening Visual Basic Studio, writing and compiling code in it. How could I know that I was just editing plain text files I could have edited with Notepad, EDIT or any other text editor as well.&lt;br /&gt;&lt;br /&gt;After a while I realized that learning Visual Basic from a Dummy book wasn't really teaching me about the gits and guts of programming. I wanted to look behind the Draw-Your-program-Drag-and-Dropping curtain. I got started with C and C++ programming, wrote console programs and ,after I got The Petzold - the Windows API bible - for free from some stranger on the Usenet, even GUI programs. Since I edited all my code in the IDE instead of drawing them in Visual Basic I even got to understand the concepts of the Windows API.&lt;br /&gt;&lt;br /&gt;At some point I even wanted to go more low level - assembler and hex level. I wanted to hack a latin program for vocab learning and I needed an editor that would allow me to edit binary files in Hex mode. I came across UtraEdit and I really liked it. It was way more advanced than the packaged Notepad, had syntax highlighting, a sleek and professional looking appearance to it. Using it I was eventually able to crack the time limit -- a huge feeling of satisfaction and power. I continued using UltraEdit for programming C/C++. I could tweak the editor to compile programs and even run them -- totally sufficient for the small command line programs I wrote at that time. "Who needs an IDE, anyway" I thought. &lt;br /&gt;&lt;br /&gt;Soon I would get introduced to one again, though. In computer class in high school they made us use the Turbo C++ IDE, an DOS IDE. It reminded me of the EDIT editor having almost the same color scheme. To be honest it felt more like an editor than an IDE, maybe that was the reason why I liked it. I even used it to write and coordinate a Tank Wars game clone as president of the computer club.&lt;br /&gt;&lt;br /&gt;I tried out Linux several times some teachers and friends swore by it. I gave up several times, either didn't get X up running or a mouse installed. But maybe the main reason was the sheer amount of text files that you had to edit and I didn't know how to use any of the unix editors at that time. Frankly, I didn't bother to learn them. I was too frustrated with Linux. It was only after Knoppix came out - a Debian based live CD that had all the drivers for my system and worked right after booting up, that I became again interested in Linux. I signed up for the LPIC exam and started with learning an editor; my book said there were two: Emacs and VI. I chose VI. How did I learn it? ":help tutor" was all it took and after around 30 minutes I mastered all the basic movement and editing commands. Linux started to be fun. Right after finishing the quick start guide I continued to read more of the manual and soon VIM turned out to be a powerful tool and captivating toy at the same time. It is not exaggerated when I say that I learned Linux by learning VIM. &lt;br /&gt;&lt;br /&gt;When I came to university we were taught Pine and Emacs on Solaris machines; but since I already knew enough Unix, I cold-shouldered those programs and modified my environment to use mutt and VIM instead. &lt;br /&gt;VIM did all the things I needed to do and it did it beautifully. Using the commands and modifiers made me feel I was more efficient doing my work than other students using Emacs or KEdit. I began tweaking VIM to become more efficient -- ignoring the time it cost to tweak VIM of course.&lt;br /&gt;&lt;br /&gt;I even started to do my homework and write letters with VIM writing everything in LaTeX. The postscript results were beautiful and I thought I would never need another text processing program again in my life. I looked for a Windows VIM version for my first laptop and installed the Cygwin environment on my Windows computer (Linux didn't run it sufficienty enough). I disregarded Emacs and never thought that I would bother learning it until I had to write my master thesis. Maybe in an act of procrastination I began learning Emacs because somewhere on the Internet I read that the AucTex mode was the ne plus ultra for editing LaTeX documents. So I learned Emacs meticulously - with all its cryptic key combinations, and strange major and minor modes and with Elisp - the Emacs programming language. I tweaked and wasted more time time than anticipated - days, a week - before I was somewhat confident in speaking "Emacs". Oh yeah, of course, I had to pimp the look and appearance of my Windows Emacs installation too, before I could begin writing my thesis. I always told myself that the LaTeX typeset output was worth it and that it was more safe to Edit plain text files than write in Word of OpenOffice. I told myself that the write feeling on Emacs was just different and actually let me write more and better; I still have the feeling that typing in Emacs just feels different from VI - I don't mean the key combinations or shortcuts, but actually the feeling of typing (Anybody feel the same?). Emacs felt more like a text processor -- so I felt it was the right choice for my master thesis.&lt;br /&gt;&lt;br /&gt;I eventually finished my thesis with Emacs and stayed with it, even for programming - at least for my personal stuff. At work I had to use Eclipse because everyone else used it and it was just best to use it I was told. I was shocked that my colleagues were so conservative and myopical, considering Eclipse the only way to program Java just like I did with Visual Studio back in the days. Finally I reluctantly submitted to their request to use Eclipse. It certainly was more convenient than writing Ant or Maven by yourself, or converting all the Eclipse projects that they dilettantishly commited as a whole into their CVS. For them Java seemed to be Eclipse - that was my annoyance, not Eclipse itself. &lt;br /&gt;&lt;br /&gt;Around that time I also had started to write Web applications with Ruby on Rails. Not being satisfied with neither Emacs nor Eclipse for that task, I went with the Netbeans IDE. With its sleeker and cleaner interface it just seemed to suit the lean and smart Rails paradigm better.&lt;br /&gt;&lt;br /&gt;The Netbeans interface was also more Mac-like. I converted to Mac with a Macbook Pro, my second notebook. Everyone seemed to praise Textmate -- the über-editor for the Mac. And the editor of choice for many Rails developers.&amp;nbsp; It certainly looks nice, but I never bothered to learn it as meticulously as VIM or Emacs because I thought: "What's the point if you can only use it on a Mac?" So I tried out all major Emacs distributions (Aquamacs, Emacs.app, Carbon Emacs). After all Mac OSX is an Unix system under hood.&lt;br /&gt;&lt;br /&gt;Yes, Emacs with its cryptic key strokes, modes and Lisp dialect, the almighty text editor that does all and everything for its disciples had even became a religion as noted by its inventor Richard Stallmann. But being an all-in-one device comes at the price of complexity -- some call Emacs an operating system. Recapitulating I don't like the steep learning curve and the huge and messy configuration files, that one accumulates over time. Even on my dual core Macbook Pro booting the beast up felt sluggish at times. &lt;br /&gt;&lt;br /&gt;Yesterday I decided I needed a modern editor, something newer than the 35 year(!) old Emacs or VI. After some googling I realized that there simple was nothing as powerful and ubiquitous as those two classic editors. But sine I wanted a change, I went back to VIM. I installed the MacVIM distribution from macports and I'm liking it. It feels fast, sleek and clean and editing files in it is pure fun. You don't need thousands of lines configuration to start typing and navigating away quickly. Using the right color theme (desert at the moment), you even get a Textmate look. VIM is a relief from Emacs. And not only my pinky thanks me for it. Old memories from my first Unix day become lively. Storm and stress, programming for fun. Just the right mood I need for learning some Python these days. Compiling VIM with the +python feature I can even extend the editor with Python and avoid the arcane Vimscript.&lt;br /&gt;&lt;br /&gt;My editor Odyssey is certainly not over yet. While I have wasted a lot of time for learning different editors and IDEs so far, I have also learned a lot of new things during that progress. It is true, that sometimes I have spent more time tweaking my editors than doing actual work. But tweaking isn't that what constitutes the excitement about computers anyway? At the moment I am using OpenOffice for word processing, Netbeans for Rails programing, Eclipse for Java and VIM for all other editing tasks. There is no swiss army editor for all my writing or editing tasks. So "religious" statements from fanatic editor disciples about extensive economics when learning a new editor are far more than dubious.&lt;br /&gt;&lt;br /&gt;Colophon: This blog entry was written with aforementioned MacVim with linebreak (:help linebreak) set, mapping of the cursor keys to move by visible rather than "physical" lines (:help 25.4) and spell checking enabled (:set spell) so that it almost feels like a real word processor ;)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-2953590765848026089?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/2953590765848026089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=2953590765848026089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2953590765848026089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2953590765848026089'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/my-editorssey.html' title='My Editorssey'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-4182827172443912042</id><published>2010-03-10T06:45:00.000-08:00</published><updated>2010-03-11T13:49:41.044-08:00</updated><title type='text'>Calculate total video duration</title><content type='html'>Here is a little python shell script that uses the "ffmpeg" program to calculate the total duration for specified movies on the command line. This can be quite useful to calculate the required bitrate for encoding a bunch of to fit on a DVD as described in my earlier &lt;a href="http://jinthing.blogspot.com/2010/02/how-to-archive-series-on-video-dvd-with.html" linkindex="17"&gt;post&lt;/a&gt;. The calculated bitrate is adjusted by a parameter called "extra" to give you an extra buffer for the VBR of MPEG2 stream. So here it is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint" name="code"&gt;&lt;span style="font-size: xx-small;"&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;"""calculates total movie length of all movies passed as parameters"""&lt;br /&gt;&lt;br /&gt;import sys, re, os, subprocess, getopt&lt;br /&gt;&lt;br /&gt;def main():&lt;br /&gt;    sum = 0&lt;br /&gt;    target_size = h2f("4.7G")&lt;br /&gt;    audio_rate = h2f("224k")&lt;br /&gt;    extra_rate = h2f("100k")&lt;br /&gt;&lt;br /&gt;    try:&lt;br /&gt;        opts, args = getopt.getopt(sys.argv[1:], "s:a:e:", ["size=", "audio-rate=", "extra"])&lt;br /&gt;    except getopt.GetoptError, err:&lt;br /&gt;        print str(err) # will print something like "option -a not recognized"&lt;br /&gt;        usage()&lt;br /&gt;        sys.exit(2)&lt;br /&gt;&lt;br /&gt;    for opt, arg in opts:&lt;br /&gt;        if opt in ("-s", "--size"):            &lt;br /&gt;            target_size=h2f(arg)&lt;br /&gt;        elif opt in ("-a", "--audio-rate"):&lt;br /&gt;            audio_rate=h2f(arg)&lt;br /&gt;        elif opt in ("-e", "--extra"):&lt;br /&gt;            extra_rate=h2f(arg)&lt;br /&gt;&lt;br /&gt;    for file in args:&lt;br /&gt;        len = get_movie_length(file)&lt;br /&gt;        print file, ":", len,"s"&lt;br /&gt;        sum += len&lt;br /&gt;          &lt;br /&gt;                 &lt;br /&gt;    print "total:", sum,"s"&lt;br /&gt;    print "video bitrate:", calc_bitrate(seconds=sum,target_size=target_size,audio_br=audio_rate,extra=extra_rate), "kbps"&lt;br /&gt;            &lt;br /&gt;&lt;br /&gt;def h2f(size):&lt;br /&gt;    d = {'k':1000, 'm':10**6,'g':10**9, 'K':8*1000, 'M':8*10**6, 'G':8*10**9}&lt;br /&gt;    lc = size[-1]&lt;br /&gt;    m = 1&lt;br /&gt;    if lc in d.keys():&lt;br /&gt;        m = d[lc]&lt;br /&gt;    n = float(re.split(r"[" + ''.join(d.keys()) + "]", size)[0])&lt;br /&gt;    return n*m&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;def get_movie_length(file):&lt;br /&gt;    """returns the movie length in seconds"""&lt;br /&gt;&lt;br /&gt;    len = 0&lt;br /&gt;    p = subprocess.Popen("ffmpeg -i '" + file + "'", shell=True,&lt;br /&gt;                     stdout=subprocess.PIPE, stderr=subprocess.PIPE)&lt;br /&gt;&lt;br /&gt;    for line in p.stderr:&lt;br /&gt;        if "Duration:" in line:&lt;br /&gt;            h,m,s = (float(x) for x in re.findall("Duration: (\d+):(\d+):(\d+\.\d+)", line)[0])&lt;br /&gt;            return h*3600+m*60+s&lt;br /&gt;            break&lt;br /&gt;    return 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def calc_bitrate(seconds, target_size,audio_br,extra):&lt;br /&gt;    """calculates the target bitrate in kbps for given target size and audio bitrate"""&lt;br /&gt;    return (target_size/seconds - audio_br - extra)/1000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if __name__ == "__main__":&lt;br /&gt;    main()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-4182827172443912042?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/4182827172443912042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=4182827172443912042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/4182827172443912042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/4182827172443912042'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/calculate-total-video-duration.html' title='Calculate total video duration'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-2932042146849455398</id><published>2010-03-10T05:19:00.000-08:00</published><updated>2010-03-10T05:19:08.602-08:00</updated><title type='text'>Python Script to create Python Scripts</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;This little python script is inspired from its ruby script equivalent found in the book &lt;a href="http://www.amazon.com/Practical-System-Administration-Experts-Source/dp/1590598210/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1268226759&amp;amp;sr=8-2" linkindex="18" target="_blank"&gt;Practical Ruby for System Administration&lt;/a&gt;, where the author created a script to create ruby scripts. The point of the script is to automate the tedious steps of creating a file, inserting the SHE-BANG line and making it executable. The original ruby version is more elegant, but I'm not that experienced in Python; so maybe there's room for improvements... suggestions welcome.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;import sys,os,tkFileDialog&lt;br /&gt;&lt;br /&gt;try:&amp;nbsp;&amp;nbsp;&amp;nbsp; path = sys.argv[1]&lt;br /&gt;except: path = tkFileDialog.asksaveasfilename()&lt;br /&gt;&lt;br /&gt;if not path:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "must specify a filename"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1)&lt;br /&gt;&lt;br /&gt;f = open(path, "w")&lt;br /&gt;f.write("#!/usr/bin/env python\n\n")&lt;br /&gt;os.fchmod(f.fileno(), 0755)&lt;br /&gt;f.close&lt;br /&gt;&lt;br /&gt;os.system("/usr/bin/open " + path)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=9769e137-80aa-887b-b288-9b88c154d0bb" /&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/5756706776038153768-2932042146849455398?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/2932042146849455398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=2932042146849455398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2932042146849455398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2932042146849455398'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/03/python-script-to-create-python-scripts.html' title='Python Script to create Python Scripts'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-6950627616675474524</id><published>2010-02-28T09:32:00.001-08:00</published><updated>2010-02-28T11:41:13.899-08:00</updated><title type='text'>How to archive series on a Video DVD with your mac</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Say you want to burn your series episodes you got lying on your hard disc to a DVD to enjoy them on your big TV screen or just archive them and free some space on your hard disc. For Mac OSX there are a lot of commercial (Roxio's Toast), and free programs (like iDVD)&amp;nbsp; out there, that will help you accomplish that task. But, most of them will not let you fit more than around 2 hours on a regular DVD+/-R for quality reasons. For series with 20 or more episodes, on the other hand, I'm willing to sacrifice some quality for space efficiency. The amount of video you can put on a DVD depends on the bitrate used for compressing the video. A lower bitrate comes at the price of lower video quality. But unless you have a high definition TV, compression settings for 7-10 hours still give you more than acceptable quality. In the following I will describe how you can achieve that with only open source quality on your mac. I'm gonna highlight some pitfalls I had on my MacBook Pro with OS X 10.6.2.&lt;br /&gt;&lt;br /&gt;I make use of the following open source command line tools.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;ffmpeg&lt;/b&gt;: helps you convert your videos to DVD mpg&lt;/li&gt;&lt;li&gt;&lt;b&gt;dvdauthor&lt;/b&gt;: authors a DVD file structure from DVD mpgs&lt;/li&gt;&lt;li&gt;&lt;b&gt;dvdrw-tools&lt;/b&gt;: helps you burn DVD images to a physical DVD; builds on cdrtools&lt;/li&gt;&lt;li&gt;&lt;b&gt;cdrtools&lt;/b&gt;: &lt;a href="http://cdrecord.berlios.de/private/cdrecord.html" linkindex="36" target="_blank"&gt;should&lt;/a&gt; contain the `mkisofs` program that creates iso CD/DVD images. &lt;i&gt;But for whatever reason, the mac port didn't include the mkisofs program! After several hours I gave up and took the mkisofs found in the &lt;a href="http://burn-osx.sourceforge.net/Pages/English/home.html" linkindex="37" target="_blank"&gt;Burn&lt;/a&gt; package.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;Having above program infrastructure you are ready to create your DVD.&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;big&gt;&lt;big&gt;Converting Video&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;First, you will need to convert your videos to the right mpg format used on DVDs. On a Video DVD MPEG2 and MPEG1 are possible, but need to have certain resolutions and parameters to be standard compliant. ffmpeg to the rescue: the neat program has a dvd target which takes care of all the right parameters. In it's simplest form you could just let it do all the work for you with the default parameters:&lt;i&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family: monospace;"&gt;ffmpeg -thread 8 -target dvd -i INPUT.AVI OUTPUT.mpg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;This will take the INPUT.AVI file and convert it to MPEG2 format with AC3 sound. With more threads you can achieve higher FPS for recoding. The default parameters will only fit around 2 hours on a DVD. What you wanna do is tweak bitrate and resolution. &lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;span style="font-family: monospace;"&gt;ffmpeg -thread 8 -target ntsc-dvd -aspect 4:3 -s 352x480 - b 1100k -acodec mp2 -ab 224000 -ac 2 -i INPUT.AVI&amp;nbsp; OUTPUT.mpg&lt;/span&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;This will give you around 7 hours per 4.7 GB DVD. Let's look at the parameters. First, ntsc-dvd should be used when you deal with ntsc content (29,7 fps). Aspect ratio is forced to 4:3 because the video is in 4:3 format. I use half resolution and a lower bitrate. Instead of AC3&amp;nbsp; stereo (2 audio channels) mp2 with 224kbs is used here. It is advisable to use lower resolution with lower bitrates. 1MB/s as in my setup is a pretty low bitrate compared to 4-5 MB/s found on commercial DVDs. But when combined with lower resolutions you can still achieve acceptable quality. According to &lt;a href="http://en.wikipedia.org/wiki/DVD-Video" linkindex="38" target="_blank"&gt;this&lt;/a&gt; Wikipedia article here, the following resolutions are possible on a DVD. &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;At 25&amp;nbsp;&lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Frames_per_second" linkindex="39" title="Frames per  second"&gt;frame/s&lt;/a&gt;, interlaced (used in regions  with 50&amp;nbsp;Hz image scanning frequency):&lt;br /&gt;&lt;dl&gt;&lt;dd&gt;720 × 576 pixels MPEG-2 (Called full &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/D1_%28Sony%29" linkindex="40" title="D1 (Sony)"&gt;D1&lt;/a&gt;)&lt;/dd&gt;&lt;dd&gt;704 × 576 pixels MPEG-2&lt;/dd&gt;&lt;dd&gt;352 × 576 pixels MPEG-2 (Called Half-D1, same as the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/China_Video_Disc" linkindex="41" title="China Video Disc"&gt;China Video Disc&lt;/a&gt;  standard)&lt;/dd&gt;&lt;/dl&gt;&lt;ul&gt;&lt;li&gt;At 29.97, interlaced (used in regions with 60&amp;nbsp;Hz image scanning  frequency):&lt;/li&gt;&lt;/ul&gt;&lt;dl&gt;&lt;dd&gt;720 × 480 pixels MPEG-2 (Called full &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/D1_%28Sony%29" linkindex="42" title="D1 (Sony)"&gt;D1&lt;/a&gt;)&lt;/dd&gt;&lt;dd&gt;704 × 480 pixels MPEG-2&lt;/dd&gt;&lt;dd&gt;352 × 480 pixels MPEG-2 (Called Half-D1, same as the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/China_Video_Disc" linkindex="43" title="China Video Disc"&gt;China Video Disc&lt;/a&gt;  standard)&lt;/dd&gt;&lt;/dl&gt;The following formats are allowed for MPEG-1 video:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;352 × 288 pixels MPEG-1 at 25&amp;nbsp;frame/s, progressive (Same as the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Video_cd" linkindex="44" title="Video cd"&gt;VCD&lt;/a&gt; Standard)&lt;/li&gt;&lt;li&gt;352 × 240 pixels MPEG-1 at 29.97&amp;nbsp;frame/s, progressive (Same as the &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/Video_cd" linkindex="45" title="Video cd"&gt;VCD&lt;/a&gt; Standard)&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Keeping a high resolution with a low bitrate will give you a lot of encoding artifacts (blocks). So for very long content it's best to go with the lowest resolution. If you have hardcoded subtitles in the video (like in many asian dramas), it's better to keep a high vertical resolution. That's why I am going with the HALF-D1 resolution in above's example. &lt;br /&gt;&lt;br /&gt;To batch encode a bunch of episodes use a for loop on the bash compatible shell:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;for i Episode-{01,02,03,04,05,06,07}.avi; do ffmpeg -threads 8 -i $i -target ntsc-dvd -aspect 4:3 -acodec mp2 -ab 224000 -ac 2 -b 1000k -s 352x480 mpg/${i%.avi}.mpg;&lt;br /&gt;done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will encode the avi files Episode-01, Episode-02, ... Episode-07 and save them into a mpg subfolder. If you have all files converted you are ready for authoring a DVD. &lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;big&gt;Author DVD&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;For authoring a DVD, the `dvdauthor` program is used. Since DVD authoring is quite a complex task, an XML file can be generated with all the menus, titles and whistles. But if you all you wanna have is the movie on the DVD, you can just supply command line parameters like this&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;dvdauthor -o MY_DVD -t -f Episode-01.mpg&lt;/span&gt; &lt;span style="font-family: monospace;"&gt;-f Episode-02.mpg &lt;/span&gt;&lt;span style="font-family: monospace;"&gt;-f Episode-03.mpg &lt;/span&gt;&lt;span style="font-family: monospace;"&gt;-f Episode-04.mpg &lt;/span&gt;&lt;span style="font-family: monospace;"&gt;-f Episode-05.mpg &lt;/span&gt;&lt;span style="font-family: monospace;"&gt;-f Episode-06.mpg &lt;/span&gt;&lt;span style="font-family: monospace;"&gt;-f Episode-07.mpg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;dvdauthor -o MY_DVD -T&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to author a DVD in the folder MY_DVD with a single title (-t) and episode being accessible as a different chapter on the DVD. Putting each episode in it's own title would be possible, but&amp;nbsp; on most DVD remotes players switching titles is either not possible or cumbersome, whereas skipping chapters is always possible. The -T command will create the table of contents and complete the DVD authoring. The MY_DVD folder contains an AUDIO_TS and VIDEO_TS folder. &lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;big&gt;Burn the DVD&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;The last step is burning your authored DVD. A Video DVD is not a Data DVD. So simply using the mac os function `burn folder to DVD` is not what you want because it will create a data DVD. Instead make use of the dvdrw-tools.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: monospace;"&gt;growisofs -dvd-compat -dvd-video -Z /dev/rdisk1 ./MY_DVD&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Will burn the contents from the MY_DVD as Video DVD. The DVD drive on my mac is /dev/rdisk1. If you go to disk utility you might see `/dev/disk1` instead, but you will not have permissions to use that drive on the command line. So use `/dev/rdisk`.&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;big&gt;Watch your DVD&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;You should end up with a standard conform Video DVD that is playable on virtually all DVD players. Holding a lot of video content you can save some discs and money. Although the quality is not as good as on commercial DVDs, it is still very watchable on regular TV sets. Even more so for series, where you watch an episode usually only once. &lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;big&gt;Outlook&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;It should be no problem to create a small shell or ruby script to automate above steps. I might even write one and publish it here on my blog some time later. Especially automation of the bitrate calculation would be very helpful as I used a lot of trial and error in my first attempt to fit the desired number of episodes on one DVD.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-6950627616675474524?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/6950627616675474524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=6950627616675474524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/6950627616675474524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/6950627616675474524'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/02/how-to-archive-series-on-video-dvd-with.html' title='How to archive series on a Video DVD with your mac'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-8627642455594108668</id><published>2010-02-26T12:50:00.000-08:00</published><updated>2010-02-28T11:45:52.869-08:00</updated><title type='text'>Some useful Firefox plugins</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Recently I have been playing with several browsers on my computer. There's the new Safari on my MacBook, Internet Explorer 8 on my virtual machine and finally the all new and lightning-fast Google Chrome browser. I had been a hardcore Firefox user before playing with those new browsers, but since all the browsers become more similar with every version (Tabbed browsing, smart address bar, etc.) I didn't miss my Firefox browser that much.&lt;br /&gt;&lt;br /&gt;Now I have come back to Firefox, though. The main reason for that is the huge number of useful plugins (or extensions as Firefox calls them) out there. I figured it might be a good thing to share which plugins I am currently using,&amp;nbsp; and maybe get some suggestions for other awesome plug-ins out there. &lt;br /&gt;&lt;br /&gt;First off are extensions that provide for a better browsing experience:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://adblockplus.org/en/" linkindex="46"&gt;Adblock Plus&lt;/a&gt; frees web sites from nagging advertisements&lt;/li&gt;&lt;li&gt;&lt;a href="http://delicious.com/" linkindex="47"&gt;Delicious Bookmarks&lt;/a&gt; best bookmark management plugin imho&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.feedly.com/" linkindex="48"&gt;feedly&lt;/a&gt; puts a sleek newspaper design around your google reader and integrates more social&amp;nbsp; functionality.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.kliu.org/quickdrag/" linkindex="49"&gt;Quickdrag&lt;/a&gt; assigns functions and shortcuts to drag actions.&lt;/li&gt;&lt;li&gt;&lt;a href="http://firefox.maltekraus.de/extensions/add-to-search-bar" linkindex="50"&gt;Addto Search Bar&lt;/a&gt; lets you extend the search bar by a simply right clicking the search box on a search site.&lt;/li&gt;&lt;li&gt;&lt;a href="http://noscript.net/" linkindex="51"&gt;NoScript&lt;/a&gt; protects you by allowing only white listed sites to execute java script code&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.coolpreviews.com/" linkindex="52"&gt;CoolPreview&lt;/a&gt; provides quick previews for links so that you don't have to clutter your browser with more tabs. It's called Picture-in-picture Browsing. &lt;/li&gt;&lt;li&gt; &lt;a href="http://www.skipscreen.com/" linkindex="53"&gt;SkipScreen&lt;/a&gt; skips annoying screens on suspicious download sites like rapidshare.com&lt;/li&gt;&lt;/ul&gt;For social networking I have found useful:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://www.chrisfinke.com/addons/twitterbar/" linkindex="54"&gt;TwitterBar&lt;/a&gt; let's you twitter right from your address bar.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scribefire.com/" linkindex="55"&gt;ScribeFire&lt;/a&gt; let's you write blogentries like for blogger.com&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;Now plugins for a better multimedia experience: &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.downloadhelper.net/" linkindex="56"&gt;DownloadHelper&lt;/a&gt; helps you download and convert videos from all the famous flash video sites.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.downthemall.net/" linkindex="57"&gt;DownThemAll&lt;/a&gt; is a very useful add-on for downloading galleries from web sites or any other linked mass files - a huge time saver &lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/firefm/" linkindex="58"&gt;fire.fm&lt;/a&gt; integrates gives you last.fm radio and functionality for free right beneath your address bar.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;And for development:&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://aws.amazon.com/ec2/" linkindex="59"&gt;Elasticfox&lt;/a&gt; gives you a GUI to your amazon EC2 services. very useful and time saving if you work with Amazon cloud services.&lt;/li&gt;&lt;li&gt;Similarly&lt;a href="http://www.s3fox.net/" linkindex="60"&gt; S3Fox&lt;/a&gt; facilitates management of Amazon's Simple Storage Service (Not working with Firefox 3.6 yet, though)&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;Those extensions make up my current selection on my Firefox installation. Although Chrome might be a little faster than Firefox, it is the amount of useful extensions and highly customizability that make&amp;nbsp; Firefox&amp;nbsp; my browser of choice once again.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img alt="" class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=d15f1f6c-1b9d-8cc9-b826-8f27fca1c9fd" /&gt;&lt;/div&gt;&lt;/ul&gt;&lt;/ul&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/5756706776038153768-8627642455594108668?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/8627642455594108668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=8627642455594108668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8627642455594108668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8627642455594108668'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2010/02/some-useful-firefox-plugins.html' title='Some useful Firefox plugins'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-3575129040521712954</id><published>2009-11-09T05:01:00.000-08:00</published><updated>2009-11-09T05:01:43.709-08:00</updated><title type='text'>First Lesson on Talkiv.com</title><content type='html'>Today we had our first lesson on &lt;a href="http://www.talkiv.com/"&gt;www.talkiv.com&lt;/a&gt;! It was a really successful lesson conducted by one of our selected tutors. Many more bookings for more lessons have been made already. We are looking forward to a lot more future lessons and will continuously improve&amp;nbsp; our platform.&amp;nbsp; A Korean version and integration of a payment system are on the way.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-3575129040521712954?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/3575129040521712954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=3575129040521712954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/3575129040521712954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/3575129040521712954'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/first-lesson-on-talkivcom.html' title='First Lesson on Talkiv.com'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-8958456636615110163</id><published>2009-11-04T21:38:00.000-08:00</published><updated>2009-11-04T21:42:14.968-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='i18n'/><title type='text'>Globalize2</title><content type='html'>We have started to adopt I18n for internationalizing our application. It was quite a hurdle and took almost 3 days to find all the plain-text used in our application and replace it with 'I18n.translate' calls. Unfortunately I18n doesn't come with content internationalization. You may want to have a list of countries being displayed in the users' language, for example. &lt;br /&gt;&lt;br /&gt;One way you could internationalize your content is putting the content that you need to internationalize into the internationalization YML file itself (i.e, en.yml). One catch is that your keys may not start with numbers. Having everything that needs to be translated in one file can be convenient if you delegate the translation to someone, because that person would have to only edit the text file you hand them. One downside is that your YML file grows extremely big. &lt;br /&gt;&lt;br /&gt;Now I found &lt;a href="http://github.com/joshmh/globalize2"&gt;Globalize2&lt;/a&gt;, a internationalization plugin that builds on I18n and provides content translation. It looks quite promising and more 'rail-ish' than putting your content into the YML file.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-8958456636615110163?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/8958456636615110163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=8958456636615110163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8958456636615110163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/8958456636615110163'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/globalize2.html' title='Globalize2'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-2159820394194942739</id><published>2009-11-03T23:00:00.000-08:00</published><updated>2009-11-03T06:07:01.634-08:00</updated><title type='text'>Backup Haven</title><content type='html'>The worst thing happened: I accidentally deleted all the user data on our server! I don't know how this could have happened, but instead of issuing a 'select * from users', the command I saw in the history was 'delete from users' ! -- all user data gone in less than a second -- worst nightmare come true!!!&lt;br /&gt;&lt;br /&gt;Fortunately, I had developed a backup script that would backup all the databases to our S3 server. What a blessing! Now I could restore all data with simply mounting the backup snapshot.&lt;br /&gt;&lt;br /&gt;Lesson learned? Amazon EC2 and S3 rock, and having a backup script is the i dot! Take a look &lt;a href="http://www.google.com/url?q=http%3A%2F%2Fdeveloper.amazonwebservices.com%2Fconnect%2Fentry!default.jspa%3FcategoryID%3D112%26externalID%3D1663%26printable%3Dtrue&amp;amp;sa=D&amp;amp;sntz=1&amp;amp;usg=AFrqEzdMcJ7clv4Jeh1oFQTnccp6GJR6Wg"&gt;here&lt;/a&gt;&amp;nbsp;for an introduction.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-2159820394194942739?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/2159820394194942739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=2159820394194942739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2159820394194942739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/2159820394194942739'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/backup-haven.html' title='Backup Haven'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-7034889358077028323</id><published>2009-11-03T15:06:00.000-08:00</published><updated>2009-11-02T22:06:48.561-08:00</updated><title type='text'>Blogger is simple, easy</title><content type='html'>The variety features that wordpress.com offers comes at the price of complexity. I tried to find a way where to put 'about this blog' information in the sidebar, but couldn't find it.  &lt;br /&gt;&lt;br /&gt;&lt;div&gt;Also, it Wordpress still seems kind of buggy to me. I tried to upload a custom header image, like i did with this blog here, but the image always disappeared after refreshing the site. Or yeah, and not every theme allows you to upload a header image, btw.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the good side, though, is the interface: it looks sleeker and more stylish. But what use is a good looking interface if it stays in your way and makes writing blog entries more complicated?&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/5756706776038153768-7034889358077028323?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/7034889358077028323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=7034889358077028323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7034889358077028323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7034889358077028323'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/blogger-is-simple-easy.html' title='Blogger is simple, easy'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-1182038620394807234</id><published>2009-11-02T18:09:00.001-08:00</published><updated>2009-11-02T18:13:27.951-08:00</updated><title type='text'>Wordpress?</title><content type='html'>I am thinking about moving my blog to&amp;nbsp;&lt;a href="http://www.wordpress.com/"&gt;wordpress&lt;/a&gt;. It provides a lot of more features than blogger.com&amp;nbsp;I feel.In fact&amp;nbsp;I have had&amp;nbsp;&amp;nbsp;a wordpress account for quite some while now. I will try out what interface and features I like better. So I might blog some other entry on &lt;a href="http://jinthing.wordpress.com/"&gt;jinthing.wordpress&lt;/a&gt;.com as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-1182038620394807234?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/1182038620394807234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=1182038620394807234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1182038620394807234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/1182038620394807234'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/wordpress.html' title='Wordpress?'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-7813058425056638288</id><published>2009-11-02T07:43:00.001-08:00</published><updated>2009-11-02T07:46:31.869-08:00</updated><title type='text'>ajuma and train (iPhone picture)</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jodAOXJ1AZ8/Su7-kWLFMKI/AAAAAAAAAvI/rRLQO0WzpQk/s1600-h/IMG_0397.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_jodAOXJ1AZ8/Su7-kWLFMKI/AAAAAAAAAvI/rRLQO0WzpQk/s400/IMG_0397.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;"&gt;I took this photo with my first generation iPhone and edited it with the iPhone App 'Best Camera'.&lt;br /&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 12px/normal Helvetica; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; min-height: 14px;"&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/5756706776038153768-7813058425056638288?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/7813058425056638288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=7813058425056638288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7813058425056638288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/7813058425056638288'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/ajuma-and-train-iphone-picture.html' title='ajuma and train (iPhone picture)'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jodAOXJ1AZ8/Su7-kWLFMKI/AAAAAAAAAvI/rRLQO0WzpQk/s72-c/IMG_0397.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-813433408156538081</id><published>2009-11-02T05:39:00.000-08:00</published><updated>2009-11-02T06:26:30.430-08:00</updated><title type='text'>Google Analytics During Development</title><content type='html'>&lt;a href="http://analytics.google.com"&gt;Google Analytics&lt;/a&gt; is an awesome service that gathers data about traffic data to and on your site and displays it in sweet fashion with graphs. The problem is that during your early deployment and or development phase you will be responsible for most of the traffic and distort the data by quite an amount. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Especially if you do offline advertisement (distributing flyers, posters, etc). you will want to an estimate idea how many people visit your website due to that (probably inefficient) advertisements. Under you google analytics account you will find the numbers under 'traffic sources/direct traffic'. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since most of the direct traffic, the one without referrers, will be generated directly from your development machine, I was wondering if there was a way to tag your own generated traffic or never gather it at all. Any ideas?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-813433408156538081?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/813433408156538081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=813433408156538081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/813433408156538081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/813433408156538081'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/google-analytics-during-development.html' title='Google Analytics During Development'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-448415585648650425</id><published>2009-10-25T04:58:00.000-07:00</published><updated>2009-11-02T05:13:15.798-08:00</updated><title type='text'>talkiv.com</title><content type='html'>Proud to announce that we put our new online tutoring site&lt;a href="http://www.talkiv.com/"&gt; www.talkiv.com&lt;/a&gt; finally online. We have four tutors from the states so far and several Korean students from the &lt;a href="http://snu.ac.kr/"&gt;Seoul National University&lt;/a&gt; (SNU). We are planning to expand our program further to other top universities in Korea - &lt;a href="http://yonsei.ac.kr/"&gt;Yeonsei University&lt;/a&gt; and &lt;a href="http://www.korea.ac.kr/"&gt;Korea University&lt;/a&gt; and &lt;a href="http://kaist.ac.kr/"&gt;KAIST&lt;/a&gt; are planned for the next weeks.&lt;br /&gt;&lt;br /&gt;At the moment we are working on a translation of our site to Korean. It should be available in a couple of days.&lt;br /&gt;&lt;br /&gt;Hope you take a look at our site and give us some feedback at &lt;a href="mailto:info@talkiv.com"&gt;info@talkiv.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-448415585648650425?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/448415585648650425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=448415585648650425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/448415585648650425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/448415585648650425'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2009/11/talkivcom.html' title='talkiv.com'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5756706776038153768.post-5888976634554592787</id><published>2008-10-17T02:52:00.001-07:00</published><updated>2008-10-17T02:52:48.049-07:00</updated><title type='text'>First Post</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;This here is the first Post of my block.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5756706776038153768-5888976634554592787?l=jinthing.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jinthing.blogspot.com/feeds/5888976634554592787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5756706776038153768&amp;postID=5888976634554592787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5888976634554592787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5756706776038153768/posts/default/5888976634554592787'/><link rel='alternate' type='text/html' href='http://jinthing.blogspot.com/2008/10/first-post.html' title='First Post'/><author><name>kagoru</name><uri>http://www.blogger.com/profile/12381709884887463724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
