<?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-7865803374326096685</id><updated>2012-02-11T08:32:52.822-08:00</updated><category term='dotcloud'/><category term='logging'/><category term='localstorage'/><category term='cli'/><category term='joyent'/><category term='html5'/><category term='snow leopard'/><category term='encoding'/><category term='books'/><category term='audible'/><category term='pip'/><category term='mvim'/><category term='tiny url'/><category term='finder'/><category term='lion'/><category term='sed'/><category term='chrome'/><category term='escaping'/><category term='memory eaks'/><category term='applescript'/><category term='audio'/><category term='gitk'/><category term='base64'/><category term='tig'/><category term='iphone'/><category term='mouse'/><category term='css'/><category term='git'/><category term='window'/><category term='shortcuts'/><category term='video'/><category term='email'/><category term='cities'/><category term='vim'/><category term='eclipse'/><category term='colourlovers'/><category term='dtrace'/><category term='utility'/><category term='sort'/><category term='safari'/><category term='simulation'/><category term='sieve'/><category term='google maps'/><category term='java'/><category term='user agent'/><category term='trim'/><category term='textmate'/><category term='geo'/><category term='algorithm'/><category term='bash'/><category term='iterm2'/><category term='omnibox'/><category term='application cache'/><category term='timezone'/><category term='activemq'/><category term='android'/><category term='people'/><category term='xcode'/><category term='filesystem'/><category term='svg'/><category term='build'/><category term='tablets'/><category term='mac'/><category term='dropbox'/><category term='network'/><category term='coffeescript'/><category term='itunes'/><category term='google'/><category term='ruby'/><category term='launchd'/><category term='whitespace'/><category term='dom'/><category term='springsource'/><category term='javascript'/><category term='ejs'/><category term='kod'/><category term='ipad'/><category term='sort by column'/><category term='db46'/><category term='opensnoop'/><category term='github'/><category term='response time'/><category term='curl'/><category term='osx'/><category term='npm'/><category term='form'/><category term='webkit'/><category term='janus'/><category term='ios'/><category term='shell'/><category term='python'/><category term='browser'/><category term='nodejs'/><category term='spotlight'/><category term='imagemagick'/><category term='canvas'/><category term='qrcode'/><category term='productivity'/><category term='expressjs'/><category term='apache'/><category term='screen'/><category term='startup'/><category term='latlon'/><category term='1password'/><category term='jsp'/><category term='ssh'/><category term='principles'/><category term='h.264'/><category term='itunesconnect'/><category term='font'/><category term='mongodb'/><category term='openssh'/><category term='heading'/><category term='du'/><category term='jquery'/><category term='appengine'/><category term='bleak-house'/><category term='unix'/><category term='history'/><category term='search'/><category term='server'/><category term='converting video'/><category term='line break'/><category term='blame'/><category term='command line'/><category term='macports'/><category term='md5'/><category term='bounding box'/><category term='kicker'/><title type='text'>SaikoTroid</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default?start-index=101&amp;max-results=100'/><author><name>ZelenoglazoeTaxi</name><uri>http://www.blogger.com/profile/11503666927809156483</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>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-4928275451047430470</id><published>2012-02-11T08:31:00.000-08:00</published><updated>2012-02-11T08:32:52.836-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Changing the escape/command character in GNU Screen</title><content type='html'>&lt;script src="https://gist.github.com/1801841.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4928275451047430470?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4928275451047430470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/02/changing-escapecommand-character-in-gnu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4928275451047430470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4928275451047430470'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/02/changing-escapecommand-character-in-gnu.html' title='Changing the escape/command character in GNU Screen'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-738278506427340728</id><published>2012-02-11T08:10:00.000-08:00</published><updated>2012-02-11T08:14:50.223-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colourlovers'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Using Colourlovers.com API with NodeJS</title><content type='html'>&lt;a href="http://colourlovers.com"&gt;Colourlovers.com&lt;/a&gt; has a pretty good and straightforward &lt;a href="http://www.colourlovers.com/api"&gt;API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following snippet fetches the top palettes with the help of NodeJS&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1801533.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-738278506427340728?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/738278506427340728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/02/using-colourloverscom-api-with-nodejs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/738278506427340728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/738278506427340728'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/02/using-colourloverscom-api-with-nodejs.html' title='Using Colourlovers.com API with NodeJS'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2533212117674320045</id><published>2012-01-30T20:00:00.000-08:00</published><updated>2012-01-30T20:06:28.552-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Customizing The Mongodb Interactive Shell</title><content type='html'>When the shell is launched, it checks the user's home directory for a javascript file named &lt;strong&gt;.mongorc.js&lt;/strong&gt;.&lt;br /&gt;If this file is found, its contents are interpreted and run by the shell prior to displaying the prompt for the first time.&lt;br /&gt;This allows the user to define variables, customize the prompt, or update information that they would like updated every time they launch a shell.&lt;br /&gt;&lt;br /&gt;Here is my .mongorc.js&lt;br /&gt;&lt;script src="https://gist.github.com/1708712.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2533212117674320045?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2533212117674320045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/customizing-mongodb-interactive-shell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2533212117674320045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2533212117674320045'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/customizing-mongodb-interactive-shell.html' title='Customizing The Mongodb Interactive Shell'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-743915883338148352</id><published>2012-01-24T22:15:00.000-08:00</published><updated>2012-01-24T22:17:31.004-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tig'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gitk'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Show file history in git</title><content type='html'>There are two amazing tools to show a history of a file in git.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gitk /path/of/file&lt;/code&gt;&lt;br /&gt;or&lt;br /&gt;&lt;code&gt;tig /path/of/file&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-743915883338148352?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/743915883338148352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/show-file-history-in-git.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/743915883338148352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/743915883338148352'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/show-file-history-in-git.html' title='Show file history in git'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1814006637940811798</id><published>2012-01-21T01:01:00.000-08:00</published><updated>2012-01-21T01:05:04.782-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='lion'/><title type='text'>Google Chrome 'Confirm to Quit' on Lion</title><content type='html'>To avoid accidentally closing the browser, executing this line in Terminal makes Google Chrome require&lt;br&gt;Shift + Cmd + Q to quit. &lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1652069.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1814006637940811798?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1814006637940811798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/google-chrome-confirm-to-quit-on-lion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1814006637940811798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1814006637940811798'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/google-chrome-confirm-to-quit-on-lion.html' title='Google Chrome &apos;Confirm to Quit&apos; on Lion'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1880081436605456007</id><published>2012-01-19T23:05:00.000-08:00</published><updated>2012-01-19T23:15:50.365-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='localstorage'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><title type='text'>localStorage in iOS5 Private Browsing mode</title><content type='html'>Attempting to use localStorage.setItem in iOS5 Private Browsing mode will throw the exception&lt;br&gt;&lt;br /&gt;QUOTA_EXCEEDED_ERRROR DOM Exception 22.&lt;br /&gt;&lt;br /&gt;But getItem and removeItem calls do not throw.&lt;br /&gt;&lt;br /&gt;You can see some details about that in &lt;a href="https://github.com/andris9/jStorage/issues/17"&gt;the jStorage discussion&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1880081436605456007?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1880081436605456007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/localstorage-in-ios5-private-browsing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1880081436605456007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1880081436605456007'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/localstorage-in-ios5-private-browsing.html' title='localStorage in iOS5 Private Browsing mode'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-549070102927942456</id><published>2012-01-16T07:42:00.000-08:00</published><updated>2012-01-16T07:45:08.368-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Font smoothing on Webkit</title><content type='html'>I’m not a big fan of the default text rendering in WebKit, it looks heavy.  Fortunately there is a solution.&lt;br /&gt;&lt;script src="https://gist.github.com/1621443.js"&gt; &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;You can find here more examples &lt;a href="http://files.christophzillgens.com/webkit-font-smoothing.html"&gt;on Christoph Zillgen's site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-549070102927942456?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/549070102927942456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/font-smoothing-on-webkit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/549070102927942456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/549070102927942456'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/font-smoothing-on-webkit.html' title='Font smoothing on Webkit'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4838896101603440550</id><published>2012-01-11T03:39:00.000-08:00</published><updated>2012-01-11T03:40:41.925-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Gitignore for an iPhone (XCode) project</title><content type='html'>&lt;script src="https://gist.github.com/1594292.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4838896101603440550?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4838896101603440550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/gitignore-for-iphone-xcode-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4838896101603440550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4838896101603440550'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/gitignore-for-iphone-xcode-project.html' title='Gitignore for an iPhone (XCode) project'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-57969299382670370</id><published>2012-01-09T21:39:00.000-08:00</published><updated>2012-01-09T21:42:46.099-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>File changes since last week in a git repo</title><content type='html'>&lt;script src="https://gist.github.com/1587241.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-57969299382670370?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/57969299382670370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/file-changes-since-last-week-in-git.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/57969299382670370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/57969299382670370'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/file-changes-since-last-week-in-git.html' title='File changes since last week in a git repo'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2790513382649988456</id><published>2012-01-06T23:39:00.000-08:00</published><updated>2012-01-06T23:43:17.891-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='mvim'/><title type='text'>Sluggish scroll in MacVim</title><content type='html'>There can be several reasons for sluggish scroll.&lt;br /&gt;For me setting up 'ttyfast' solved the problem.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1574122.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2790513382649988456?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2790513382649988456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/sluggish-scroll-in-mvim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2790513382649988456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2790513382649988456'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/sluggish-scroll-in-mvim.html' title='Sluggish scroll in MacVim'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5079545573316494333</id><published>2012-01-06T20:18:00.000-08:00</published><updated>2012-01-06T23:39:03.056-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='whitespace'/><title type='text'>Delete all trailing whitespace in VIM</title><content type='html'>&lt;script src="https://gist.github.com/1573778.js"&gt; &lt;/script&gt;&lt;br /&gt;You can find more &lt;a href="http://vim.wikia.com/wiki/Remove_unwanted_spaces"&gt;information about VIM and whitespaces here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5079545573316494333?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5079545573316494333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/delete-all-trailing-whitespace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5079545573316494333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5079545573316494333'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/delete-all-trailing-whitespace.html' title='Delete all trailing whitespace in VIM'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1056328555357312609</id><published>2012-01-06T03:52:00.000-08:00</published><updated>2012-01-06T03:56:06.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='itunesconnect'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='itunes'/><title type='text'>Remove app from sale in iTunes Connect</title><content type='html'>It is not trivial.&lt;br /&gt;&lt;br /&gt;1. Select your app&lt;br /&gt;&lt;br /&gt;2. Click on Rights and Pricing&lt;br /&gt;&lt;br /&gt;3. There is a link 'Unless you select specific stores, your app will be for sale in all App Stores worldwide.', click on the 'specific stores'&lt;br /&gt;&lt;br /&gt;4. Deselect all locations&lt;br /&gt;&lt;br /&gt;5. Save&lt;br /&gt;&lt;br /&gt;Now, after removing the app form sale, you can remove it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1056328555357312609?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1056328555357312609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2012/01/remove-app-from-sale-in-itunes-connect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1056328555357312609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1056328555357312609'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2012/01/remove-app-from-sale-in-itunes-connect.html' title='Remove app from sale in iTunes Connect'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2145995436559215340</id><published>2011-12-25T07:12:00.001-08:00</published><updated>2011-12-29T19:52:29.306-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='audible'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><title type='text'>Favorite startup books on Audible</title><content type='html'>I'm a big fan of Audible.com, here are my favorites and my wish list.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=sr_1_1?asin=B005LXV0HI&amp;qid=1324825764&amp;sr=1-1"&gt;&lt;img style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51DdQM3TazL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses.&lt;/a&gt;&lt;br /&gt;by Eric Ries&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_14?asin=B002UZLE8K"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51SmVJhZLcL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;Positioning: The Battle for Your Mind&lt;/a&gt;&lt;br /&gt;by Al Ries , Jack Trout&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_13?asin=B002V5D3G0"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/4179Rx9UypL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;Differentiate or Die&lt;/a&gt;&lt;br /&gt;by Jack Trout , Steve Rivkin&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_12?asin=B002UUKSOQ"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51aZ62AWVOL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The 22 Immutable Laws of Marketing&lt;/a&gt;&lt;br /&gt;by Al Ries , Jack Trout&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_9?asin=B002V5GT02"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51EPGmjE89L._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;A Whole New Mind: Why Right-Brainers Will Rule the Future&lt;/a&gt;&lt;br /&gt;by Daniel Pink&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_10?asin=B004N1VQ2I"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/518gpbpJvUL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;Drive: The Surprising Truth about What Motivates Us&lt;/a&gt;&lt;br /&gt;by Daniel Pink&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_7?asin=B0036FLXLQ"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/419y9OCQnML._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;Rework&lt;/a&gt;&lt;br /&gt;by Jason Fried , David Heinemeier Hansson&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_6?asin=B002V57O5Q"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/41TtWhyuauL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;Dot.Bomb&lt;/a&gt;&lt;br /&gt;by J. David Kuo&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_5?asin=B002UZMXFI"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/41ttrm-6vNL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The New New Thing: A Silicon Valley Story&lt;/a&gt;&lt;br /&gt;by Michael Lewis&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_4?asin=B002UZKX4G"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/419jxWFUwOL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The Anatomy of Buzz&lt;/a&gt;&lt;br /&gt;by Emanuel Rosen&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_3?asin=B002V0K54I"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/41cPuTr3IRL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The Search: How Google &amp; Its Rivals Rewrote the Rules of Business &amp; Transformed Our Culture&lt;/a&gt;&lt;br /&gt;by John Battelle&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_2?asin=B002V5BV96"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51I8ShdAE-L._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;How to Win Friends &amp; Influence People&lt;/a&gt;&lt;br /&gt;by Dale Carnegie&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_16?asin=B0032N8PRM"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/415JDZHeWqL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The Tipping Point: How Little Things Can Make a Big Difference&lt;/a&gt;&lt;br /&gt;by Malcolm Gladwell&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.audible.com/pd/ref=wl_17?asin=B002V0M6D6"&gt;&lt;img  style="float: left;margin-right: 10px;" src="http://ecx.images-amazon.com/images/I/51HUN-DO3NL._SL175_.jpg"&gt;&lt;/img&gt;&lt;br /&gt;The Innovator's Solution: Creating and Sustaining Successful Growth&lt;/a&gt;&lt;br /&gt;by Clayton M. Christensen , Michael E. Raynor&lt;br /&gt;&lt;br clear="both"&gt;&lt;br /&gt;&lt;br /&gt;If you need more books you can follow &lt;a href="http://www.joelonsoftware.com/articles/FogCreekMBACurriculum.html"&gt;Joel Spolsky's list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2145995436559215340?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2145995436559215340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/favorite-audio-books.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2145995436559215340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2145995436559215340'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/favorite-audio-books.html' title='Favorite startup books on Audible'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-3925400135900701235</id><published>2011-12-23T00:15:00.000-08:00</published><updated>2011-12-23T00:19:02.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Bash script can tell its location</title><content type='html'>You can get the path of the directory in which a bash script is located FROM that bash script.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1513563.js"&gt; &lt;/script&gt;&lt;br /&gt;Read more about this problem &lt;a href="http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in"&gt;on stackoverflow&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-3925400135900701235?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/3925400135900701235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/bash-script-can-tell-its-location.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3925400135900701235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3925400135900701235'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/bash-script-can-tell-its-location.html' title='Bash script can tell its location'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7487095082033827320</id><published>2011-12-22T00:24:00.000-08:00</published><updated>2011-12-22T00:27:36.540-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Loading an agent on OSX</title><content type='html'>&lt;script src="https://gist.github.com/1509501.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7487095082033827320?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7487095082033827320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/loading-agent-on-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7487095082033827320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7487095082033827320'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/loading-agent-on-osx.html' title='Loading an agent on OSX'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7133965846840259414</id><published>2011-12-20T19:28:00.000-08:00</published><updated>2011-12-20T19:32:03.631-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><title type='text'>Print out more than 20 items in mongodb shell</title><content type='html'>When you're listing a large dataset in the shell you'll only see 20 items by default and a 'has more' text indicating that there are more.&lt;br /&gt;If you want to change this limit you can use&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DBQuery.shellBatchSize = 300&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;in the shell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7133965846840259414?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7133965846840259414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/print-out-more-than-20-items-in-mongodb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7133965846840259414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7133965846840259414'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/print-out-more-than-20-items-in-mongodb.html' title='Print out more than 20 items in mongodb shell'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1956757589681294237</id><published>2011-12-17T19:34:00.000-08:00</published><updated>2011-12-17T19:39:06.587-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Loading CDN hosted jQuery with local fallback</title><content type='html'>I found this piece of art in &lt;a href="http://html5boilerplate.com/"&gt;html5boilerplate&lt;/a&gt;.&lt;br /&gt;It tries to load jQuery from a CDN and if it fails for whatever reason it tries a local one.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1492280.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1956757589681294237?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1956757589681294237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/loading-cdn-hosted-jquery-with-local.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1956757589681294237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1956757589681294237'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/loading-cdn-hosted-jquery-with-local.html' title='Loading CDN hosted jQuery with local fallback'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-9111726543182216428</id><published>2011-12-12T19:55:00.000-08:00</published><updated>2011-12-12T20:04:31.553-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='line break'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Replace line break with comma in bash</title><content type='html'>&lt;script src="https://gist.github.com/1470513.js"&gt; &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-9111726543182216428?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/9111726543182216428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/replace-line-break-with-comma-in-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9111726543182216428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9111726543182216428'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/replace-line-break-with-comma-in-bash.html' title='Replace line break with comma in bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-225748055884886369</id><published>2011-12-09T07:25:00.000-08:00</published><updated>2011-12-09T07:30:18.443-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Creating a custom google maps marker with canvas</title><content type='html'>Generating a custom marker with canvas is handy when you want to change the marker size/color dynamically.&lt;br /&gt;&lt;br /&gt;The following code snippet contains a 'createMarker' function that creates a canvas, draws the marker graphics and returns back the Data URL encoded version of that canvas which can be used as an input at the marker creation.&lt;br /&gt;&lt;br /&gt;See the example below.&lt;br /&gt;&lt;script src="https://gist.github.com/1451945.js?file=Custom%20canvas%20google%20maps%20marker"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-225748055884886369?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/225748055884886369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/12/creating-custom-google-maps-marker-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/225748055884886369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/225748055884886369'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/12/creating-custom-google-maps-marker-with.html' title='Creating a custom google maps marker with canvas'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1999918566083723167</id><published>2011-11-03T03:52:00.000-07:00</published><updated>2011-12-10T02:28:24.104-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='coffeescript'/><category scheme='http://www.blogger.com/atom/ns#' term='trim'/><title type='text'>String trimming in Javascript</title><content type='html'>Here is a simple trim function to remove leading and trailing whitespaces.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;function trim(s) {&lt;br /&gt;  return s.replace(/^\s*|\s*$/g, '');&lt;br /&gt;}&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;and in CoffeeScript&lt;code&gt;&lt;pre&gt;trim = (s) -&gt;&lt;br /&gt;  s.replace /^\s*|\s*$/g, ''&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can check &lt;a href="http://blog.stevenlevithan.com/archives/faster-trim-javascript"&gt;Steven Levithan's collection of trim functions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1999918566083723167?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1999918566083723167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/11/string-trimming-in-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1999918566083723167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1999918566083723167'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/11/string-trimming-in-javascript.html' title='String trimming in Javascript'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-87015855481432778</id><published>2011-10-29T06:43:00.000-07:00</published><updated>2011-10-29T06:50:50.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='janus'/><title type='text'>'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.' error in MacVim (Janus)</title><content type='html'>After launching MacVim you may get this annoying error message:&lt;br /&gt;&lt;code&gt;'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To remove this you have to install ctags which you can download from &lt;a href="http://ctags.sf.net"&gt;http://ctags.sf.net&lt;/a&gt;.&lt;br /&gt;After you unziped it, you have to set the Tlist_Ctags_Cmd variable in the .vimrc file to point to the ctags folder.&lt;code&gt;&lt;pre&gt;&lt;br /&gt;let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;After that you have to restart vim and the message should not pop up again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-87015855481432778?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/87015855481432778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/10/taglist-exuberant-ctags-httpctagssfnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/87015855481432778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/87015855481432778'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/10/taglist-exuberant-ctags-httpctagssfnet.html' title='&apos;Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.&apos; error in MacVim (Janus)'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-711530054842211350</id><published>2011-10-25T08:21:00.001-07:00</published><updated>2011-10-29T06:43:07.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Launching MacVim from Command line</title><content type='html'>Put this into your &lt;i&gt;.profile&lt;/i&gt; or &lt;i&gt;.zshrc&lt;/i&gt; file&lt;br /&gt;&lt;code&gt;&lt;pre&gt;function mvim { /Applications/MacVim.app/Contents/MacOS/Vim -g $*; } &lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Then you can use 'mvim' in the command line.&lt;br /&gt;&lt;br /&gt;The full explanation is in the &lt;a href="http://groups.google.com/group/vim_mac/browse_thread/thread/e3323212b9baeb9d/df93c64d9e1c0a76?lnk=gst&amp;q=command+line#df93c64d9e1c0a76"&gt;MacVim Google Groups&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-711530054842211350?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/711530054842211350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/10/launching-macvim-from-command-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/711530054842211350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/711530054842211350'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/10/launching-macvim-from-command-line.html' title='Launching MacVim from Command line'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7136817806557962246</id><published>2011-09-27T23:33:00.000-07:00</published><updated>2011-09-27T23:36:29.082-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Simulating slow network connection in OSX</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Setup&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw pipe 1 config bw 16Kbit/s delay 350ms&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw add 1 pipe 1 src-port 80&lt;/code&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw add 2 pipe 1 dst-port 80&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Remove&lt;/span&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw delete 1&lt;/code&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw delete 2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo ipfw pipe 1 delete&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7136817806557962246?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7136817806557962246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/09/simulating-slow-network-connection-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7136817806557962246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7136817806557962246'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/09/simulating-slow-network-connection-in.html' title='Simulating slow network connection in OSX'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5639315003894098291</id><published>2011-09-21T04:00:00.000-07:00</published><updated>2011-09-21T04:02:09.000-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spotlight'/><category scheme='http://www.blogger.com/atom/ns#' term='snow leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Disable spotlight</title><content type='html'>Disable Spotlight&lt;br /&gt;&lt;code&gt;sudo mdutil -a -i off&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Enable Spotlight&lt;br /&gt;&lt;code&gt;sudo mdutil -a -i on&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5639315003894098291?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5639315003894098291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/09/disable-spotlight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5639315003894098291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5639315003894098291'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/09/disable-spotlight.html' title='Disable spotlight'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1687845417869406188</id><published>2011-09-20T01:41:00.000-07:00</published><updated>2011-09-20T01:49:00.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='form'/><title type='text'>Tapping on &lt;label&gt; in Mobile Safari</title><content type='html'>Tapping on &amp;lt;label&amp;gt; does not auto-focus linked in Mobile Safari but If we add an empty function as clickhandler it works fine.&lt;code&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;input type="checkbox" id="test" name="test"&amp;gt;&lt;br /&gt;&amp;lt;label for="test" id="test_label"&amp;gt;This is the label&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;script&amp;gt;&lt;br /&gt;  document.getElementById("test_label").onclick = function () {};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;This is the releated &lt;a href="http://stackoverflow.com/questions/7358781/tapping-on-label-in-mobile-safari"&gt;Stackoverflow discussion&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1687845417869406188?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1687845417869406188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/09/tapping-on-in-mobile-safari.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1687845417869406188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1687845417869406188'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/09/tapping-on-in-mobile-safari.html' title='Tapping on &amp;lt;label&amp;gt; in Mobile Safari'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8124800563414832686</id><published>2011-09-08T00:55:00.001-07:00</published><updated>2011-09-08T00:56:12.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Checkbox/Radio button size on Android Safari</title><content type='html'>You cannot change checkbox/radio button width/height on Android in Safari because it is tied to the OS.&lt;br /&gt;&lt;br /&gt;But since the default ones are so tiny that you may need bigger buttons.&lt;br /&gt;Here is a simple trick:&lt;code&gt;&lt;pre&gt;&lt;br /&gt;input[type=checkbox] {&lt;br /&gt;  -webkit-transform: scale(2,2);&lt;br /&gt;}&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Please note that if you set up values bigger than ~2 then the yellow outline will look weird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8124800563414832686?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8124800563414832686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/09/checkboxradio-button-size-on-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8124800563414832686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8124800563414832686'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/09/checkboxradio-button-size-on-android.html' title='Checkbox/Radio button size on Android Safari'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4750343173227197195</id><published>2011-07-29T01:50:00.000-07:00</published><updated>2011-07-29T01:55:39.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Get links from a page with bash</title><content type='html'>Get anchor elements from a webpage can be done with&lt;br /&gt;&lt;br /&gt;&lt;code&gt;curl URL 2&gt;&amp;1 | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;where you replace URL with your choice, just like here:&lt;br /&gt;&lt;code&gt;curl http://cookpad.com 2&gt;&amp;1 | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4750343173227197195?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4750343173227197195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/07/get-links-from-page-with-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4750343173227197195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4750343173227197195'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/07/get-links-from-page-with-bash.html' title='Get links from a page with bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-347813228482055293</id><published>2011-07-26T23:07:00.001-07:00</published><updated>2011-07-26T23:10:22.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>Switching back to the previous application with AppleScript</title><content type='html'>If you want to simulate cmd + tab with AppleScript, here it is&lt;code&gt;&lt;pre&gt;&lt;br /&gt;tell application "System Events"&lt;br /&gt;  tell process "finder"&lt;br /&gt;    activate&lt;br /&gt;    keystroke tab using {command down}&lt;br /&gt;  end tell&lt;br /&gt;end tell&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can use the same thing in bash&lt;code&gt;&lt;pre&gt;&lt;br /&gt;echo 'tell application "System Events"&lt;br /&gt;  tell process "finder"&lt;br /&gt;    activate&lt;br /&gt;    keystroke tab using {command down}&lt;br /&gt;  end tell&lt;br /&gt;end tell' | osascript&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-347813228482055293?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/347813228482055293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/07/switching-back-to-previous-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/347813228482055293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/347813228482055293'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/07/switching-back-to-previous-application.html' title='Switching back to the previous application with AppleScript'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1623984489529920626</id><published>2011-07-14T01:16:00.001-07:00</published><updated>2011-07-14T01:18:44.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Show Git Commits By Author</title><content type='html'>It is as simply as&lt;br /&gt;&lt;code&gt;git log --author=&amp;lt;PATTERN&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;for example&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git log --author=viktor&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1623984489529920626?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1623984489529920626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/07/show-git-commits-by-author.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1623984489529920626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1623984489529920626'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/07/show-git-commits-by-author.html' title='Show Git Commits By Author'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8564791719662228912</id><published>2011-07-05T22:25:00.000-07:00</published><updated>2011-07-26T23:11:59.987-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><category scheme='http://www.blogger.com/atom/ns#' term='window'/><title type='text'>Resize and position windows with AppleScript</title><content type='html'>&lt;code&gt;&lt;pre&gt;&lt;br /&gt;-- get the dimensions of the desktop, set up few variables&lt;br /&gt;tell application "Finder"&lt;br /&gt; set displayAreaDimensions to bounds of window of desktop&lt;br /&gt; set x1 to item 1 of displayAreaDimensions&lt;br /&gt; set y1 to item 2 of displayAreaDimensions&lt;br /&gt; set x2 to item 3 of displayAreaDimensions&lt;br /&gt; set y2 to item 4 of displayAreaDimensions&lt;br /&gt;end tell&lt;br /&gt;&lt;br /&gt;set width to x2 - x1&lt;br /&gt;set height to y2 - y1&lt;br /&gt;&lt;br /&gt;-- positioning iTunes, make it fullscreen&lt;br /&gt;tell application "iTunes"&lt;br /&gt; set the bounds of the first window to {x1, y1, x2, y2}&lt;br /&gt;end tell&lt;br /&gt;&lt;br /&gt;-- positioning Safari, halfwidth on the right&lt;br /&gt;tell application "Safari"&lt;br /&gt; set the bounds of the first window to {x1 + width / 2, y1, x2, y2}&lt;br /&gt;end tell&lt;br /&gt;&lt;br /&gt;-- positioning iTerm&lt;br /&gt;tell application "iTerm"&lt;br /&gt; set the bounds of the first window to {x1, y1, x1 + 1000, y1 + 600}&lt;br /&gt;end tell&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;There are few useful blogposts about the topic.&lt;br /&gt;&lt;a href="http://www.ithug.com/2007/09/applescript-moving-and-resizing-windows/"&gt;www.ithug.com/2007/09/applescript-moving-and-resizing-windows&lt;/a&gt; or&lt;br&gt; &lt;a href="http://www.ithug.com/2008/12/applescript-arranging-multiple-windows/"&gt;www.ithug.com/2008/12/applescript-arranging-multiple-windows/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;or you can use &lt;a href="http://mizage.com/divvy/"&gt;Divvy&lt;/a&gt;, which is an amazing window management app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8564791719662228912?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8564791719662228912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/07/resize-and-position-windows-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8564791719662228912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8564791719662228912'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/07/resize-and-position-windows-with.html' title='Resize and position windows with AppleScript'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2750722574127351737</id><published>2011-07-05T07:40:00.000-07:00</published><updated>2011-07-05T07:45:44.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qrcode'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Generating QR Codes with Google</title><content type='html'>The google chart API has this feature.&lt;code&gt;&lt;br /&gt;http://chart.apis.google.com/chart?cht=qr&amp;chl="+[YOUR_TEXT]+"&amp;chs=[XSIZE]x[YSIZE]"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;For instance&lt;code&gt;&lt;br /&gt;http://chart.apis.google.com/chart?cht=qr&amp;chl="Hello World"&amp;chs=120x120"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;will generate this&lt;br /&gt;&lt;img src="http://chart.apis.google.com/chart?cht=qr&amp;chl=Hello World&amp;chs=120x120" width="120" height="120"&gt;&lt;/img&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2750722574127351737?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2750722574127351737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/07/generating-qr-codes-with-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2750722574127351737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2750722574127351737'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/07/generating-qr-codes-with-google.html' title='Generating QR Codes with Google'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8995766632136118532</id><published>2011-06-30T19:53:00.000-07:00</published><updated>2011-12-25T20:00:28.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Changing the default google domain in Chrome</title><content type='html'>On a mac, make sure that you closed the Chrome browser.&lt;br /&gt;&lt;br /&gt;Go to&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cd ~/Library/Application\ Support/Google/Chrome &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and edit the 'Local State' file, &lt;br /&gt;change the following lines to whatever google domain you want.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;"last_known_google_url": "http://www.google.com/",    &lt;br /&gt;"last_prompted_google_url": "http://www.google.com/",&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;start the browser.&lt;br /&gt;&lt;br /&gt;If you use profiles you have to go to that profile folder and change the 'Local State' file there&lt;code&gt;&lt;br /&gt;cd ~/Library/Application\ Support/Google/Chrome/[PROFILE NAME] &lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8995766632136118532?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8995766632136118532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/06/changing-default-google-domain-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8995766632136118532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8995766632136118532'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/06/changing-default-google-domain-in.html' title='Changing the default google domain in Chrome'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-146780915752137026</id><published>2011-06-30T09:09:00.000-07:00</published><updated>2011-07-05T19:50:59.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application cache'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><title type='text'>Application Cache whitelisting the master entry</title><content type='html'>An application cache is a set of cached resources consisting of:&lt;br /&gt;&lt;br /&gt;Master entries&lt;br /&gt;These are documents that were added to the cache because a browsing context was navigated to that document and the document indicated that this was its cache, using the manifest attribute.&lt;br /&gt;&lt;br /&gt;Explicit entries&lt;br /&gt;These are the resources that were listed in the cache's manifest in an&lt;br /&gt;explicit section (CACHE).&lt;br /&gt;&lt;br /&gt;Fallback entries&lt;br /&gt;These are the resources that were listed in the cache's manifest in a fallback section.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The resource that declares the manifest (with the manifest attribute) will always get taken from the cache, whether it is listed in the cache or not, even if it is listed in an online whitelist namespace. &lt;/b&gt;&lt;br /&gt;This means that your HTML that includes the manifest file will be always a master entry which is cached and accessed from the cache even the client is online.&lt;br /&gt;Let's face it, this is a pain in the neck in same cases.&lt;br /&gt;&lt;br /&gt;There is a simple workaround&lt;br /&gt;1. create an OTHER HTML that will include the manifest file&lt;br /&gt;2. from the ORIGINAL HTML remove the manifest include and create an iframe that includes the OTHER HTML&lt;br /&gt;&lt;br /&gt;In this case the master entry will be this OTHER HTML, which does not affect whitelisting the ORIGINAL HTML.&lt;br /&gt;&lt;br /&gt;I'd like to emphases that this is just a workaround and i'd like to have a better solution.&lt;br /&gt;&lt;br /&gt;You can also follow the related &lt;a href="http://comments.gmane.org/gmane.org.w3c.whatwg.discuss/30139"&gt;whatwg discussion&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-146780915752137026?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/146780915752137026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/06/application-cache-whitelisting-master.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/146780915752137026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/146780915752137026'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/06/application-cache-whitelisting-master.html' title='Application Cache whitelisting the master entry'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-6668422971838670284</id><published>2011-06-28T08:45:00.000-07:00</published><updated>2011-06-28T09:02:10.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pip'/><category scheme='http://www.blogger.com/atom/ns#' term='dotcloud'/><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><title type='text'>Migrating to Dotcloud CLI 0.4.x with 'pip: error: no such option: -u'</title><content type='html'>Checking the version number&lt;code&gt;&lt;br /&gt;$ dotcloud --version&lt;br /&gt;DotCloud CLI version 0.3.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Installing Pip (it is a tool for installing and managing Python packages)&lt;code&gt;&lt;br /&gt;$ sudo easy_install pip&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Installing the dotcloud CLI 0.4.x&lt;code&gt;&lt;br /&gt;$ sudo pip install --upgrade dotcloud&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In the &lt;a href="https://docs.dotcloud.com/#migration.html"&gt;dotcloud migration document&lt;/a&gt; they use &lt;em&gt;pip -U&lt;/em&gt; but in Pip version 1.0.1 there is no such an option.&lt;br /&gt;&lt;br /&gt;Checking the version number again.&lt;code&gt;&lt;br /&gt;$ dotcloud --version&lt;br /&gt;DotCloud CLI version 0.4.0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;All right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6668422971838670284?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6668422971838670284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/06/migrating-to-dotcloud-cli-04x-with-pip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6668422971838670284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6668422971838670284'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/06/migrating-to-dotcloud-cli-04x-with-pip.html' title='Migrating to Dotcloud CLI 0.4.x with &apos;pip: error: no such option: -u&apos;'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7296736976385562677</id><published>2011-06-24T00:59:00.000-07:00</published><updated>2011-07-01T05:44:49.876-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='imagemagick'/><title type='text'>Image width/height with Imagemagick in Command line</title><content type='html'>Imagemagick comes handy when you need information from an image.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;# width&lt;br /&gt;w=`identify -format "%w" image.png`&lt;br /&gt;&lt;br /&gt;# height&lt;br /&gt;h=`identify -format "%h" image.png`&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;More information on &lt;a href="http://www.imagemagick.org/script/identify.php"&gt;Imagemagick's identify&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7296736976385562677?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7296736976385562677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/06/image-widthheight-with-imagemagick-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7296736976385562677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7296736976385562677'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/06/image-widthheight-with-imagemagick-in.html' title='Image width/height with Imagemagick in Command line'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-60157283448022914</id><published>2011-06-03T08:39:00.000-07:00</published><updated>2011-06-03T08:54:09.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithm'/><category scheme='http://www.blogger.com/atom/ns#' term='tiny url'/><title type='text'>URL shortener algorithm</title><content type='html'>I have a database table with three columns:&lt;br /&gt;&lt;br /&gt;1. id, integer, auto-increment&lt;br /&gt;2. long, string, the long URL the user entered&lt;br /&gt;3. short, string, the shortened URL (or just the six characters)&lt;br /&gt;I would then insert the long URL into the table. Then I would select the auto-increment value for "id" and build a hash of it. This hash should then be inserted as "short". But what sort of hash should I build?&lt;br /&gt;&lt;br /&gt;We've to convert a string (id converted into a string) that uses [0-9] alphabet into a string that uses [a-zA-Z0-9].&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;var codeset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";&lt;br /&gt;var base = codeset.length;&lt;br /&gt;&lt;br /&gt;function encode(n) {&lt;br /&gt;&lt;br /&gt; var converted = "";&lt;br /&gt;&lt;br /&gt; while (n &gt; 0) {&lt;br /&gt;   converted = converted + codeset[n%base];&lt;br /&gt;   n = Math.floor(n/base);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return converted;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;and&lt;code&gt;&lt;pre&gt;&lt;br /&gt;function decode(converted) {&lt;br /&gt;&lt;br /&gt; var c = 0, ind;&lt;br /&gt;&lt;br /&gt; for (var i = converted.length-1; i &gt;= 0; i--) {&lt;br /&gt;  c += (codeset.indexOf(converted[i])) * Math.pow(base, i);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return c;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;console.log("Test #1: ", 125 == decode(encode(125)));&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;more on that on &lt;a href="http://stackoverflow.com/questions/742013/how-to-code-a-url-shortener"&gt;stackoverflow&lt;/a&gt; or on &lt;a href="http://snook.ca/archives/php/url-shortener"&gt;snook.ca&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-60157283448022914?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/60157283448022914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/06/url-shortener-algorithm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/60157283448022914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/60157283448022914'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/06/url-shortener-algorithm.html' title='URL shortener algorithm'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4536152564003896706</id><published>2011-05-30T23:25:00.000-07:00</published><updated>2011-05-30T23:33:43.705-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iterm2'/><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>useful iterm2 shortcuts</title><content type='html'>&lt;a href="http://www.iterm2.com/"&gt;iTerm2&lt;/a&gt; is a good replacement for Terminal on OS X&lt;br /&gt;&lt;br /&gt;Splitting the window: Command+D to split the window vertically, or Command+Shift+D to split the window horizontally. &lt;br /&gt;&lt;br /&gt;Switching between the sub-windows: Command+[ or Command+] or Command+Opt+arrows&lt;br /&gt;&lt;br /&gt;Fullscreen: Command+Enter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4536152564003896706?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4536152564003896706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/05/useful-iterm2-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4536152564003896706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4536152564003896706'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/05/useful-iterm2-shortcuts.html' title='useful iterm2 shortcuts'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5972707941215849397</id><published>2011-05-21T05:49:00.000-07:00</published><updated>2011-05-21T05:54:38.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='expressjs'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>req.body undefined in POST request in Express js</title><content type='html'>You have to use a bodyparser to process the body of a POST request&lt;br /&gt;&lt;br /&gt;&lt;code&gt;app.use(express.bodyParser());&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and put this before the routing definition, like this&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;app.configure('development', function() {&lt;br /&gt;&lt;br /&gt; console.log("Development mode");&lt;br /&gt;&lt;br /&gt; app.configure(function() {&lt;br /&gt;    app.use(express.bodyParser());&lt;br /&gt;    app.use(app.router);&lt;br /&gt;    .....&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;here is the &lt;a href="http://groups.google.com/group/express-js/browse_thread/thread/fa7a2c9c3ff33d04/d6e3462934f4086d"&gt;related google groups thread&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5972707941215849397?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5972707941215849397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/05/reqbody-undefined-in-post-request-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5972707941215849397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5972707941215849397'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/05/reqbody-undefined-in-post-request-in.html' title='req.body undefined in POST request in Express js'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-6308142600672121918</id><published>2011-05-15T18:35:00.000-07:00</published><updated>2011-05-15T18:37:29.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>bash history</title><content type='html'>Bash history preserved in ~/.bash_history there are a few ways to search it.&lt;br /&gt;&lt;code&gt;history | grep &lt;keyword&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;history | grep git&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;the output would be like that&lt;code&gt;&lt;br /&gt;475  git checkout -f&lt;br /&gt;479  gitx&lt;br /&gt;481  git co sp/sprint1&lt;br /&gt;487  git co master&lt;br /&gt;488  git branch -D sp/sprint1&lt;br /&gt;489  git br&lt;br /&gt;491  git co sp/sprint1&lt;br /&gt;496  git diff | gitx&lt;br /&gt;502  git st&lt;br /&gt;510  history | grep git&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;the followings will reference to line '502 git st'&lt;code&gt;&lt;br /&gt;&gt; !502&lt;br /&gt;&lt;br /&gt;# counting back from the last one&lt;br /&gt;&gt; !-1&lt;br /&gt;&lt;br /&gt;# same as !-1&lt;br /&gt;&gt; !!&lt;br /&gt;&lt;br /&gt;using the last event starting with 'git'&lt;br /&gt;&gt; !git&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Or press Ctrl-R, and as you start typing the search goes back in reverse order to the first command that matches the letters you’ve typed.&lt;br /&gt;&lt;br /&gt;Once you’ve found the command you have several options:&lt;br /&gt;&lt;br /&gt;- Run it verbatim – just press Enter&lt;br /&gt;- Cycle through other commands that match the letters you’ve typed – press Ctrl-R successively&lt;br /&gt;- Quit the search and back to the command line empty-handed – press Ctrl-G&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if you're using the history a lot you may want to add these line to your bash init file (~/.bash_profile)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# remove duplicates from the history&lt;br /&gt;export HISTCONTROL=erasedups&lt;br /&gt;&lt;br /&gt;# increases the history size&lt;br /&gt;export HISTSIZE=10000&lt;br /&gt;&lt;br /&gt;# ensures that when you exit a shell, the history from the session is appended to bash_history&lt;br /&gt;shopt -s histappend&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I copy and pasted from the following articles&lt;br /&gt;&lt;a href="http://blog.macromates.com/2008/working-with-history-in-bash/"&gt;working-with-history-in-bash&lt;/a&gt;, &lt;a href="http://ruslanspivak.com/2010/11/20/bash-history-reverse-intelligent-search/"&gt;bash-history-reverse-intelligent-search&lt;/a&gt;, &lt;a href="http://ss64.com/bash/history.html"&gt;man history&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;i like Bash a lot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6308142600672121918?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6308142600672121918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/05/bash-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6308142600672121918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6308142600672121918'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/05/bash-history.html' title='bash history'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7751151894177059980</id><published>2011-05-15T18:32:00.000-07:00</published><updated>2011-05-15T18:35:01.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>top commiters on a git branch</title><content type='html'>You want to have a list of contributors sorted by number of commits?&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git log --format=format:%an | sort | uniq -c | sort -r&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;will output something like that&lt;br /&gt;&lt;code&gt;&lt;br /&gt;1081 Mito&lt;br /&gt;1033 sudo&lt;br /&gt;872 Yusuke&lt;br /&gt;478 morita&lt;br /&gt;423 Yuki&lt;br /&gt;396 Takahiro&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7751151894177059980?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7751151894177059980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/05/top-commiters-on-git-branch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7751151894177059980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7751151894177059980'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/05/top-commiters-on-git-branch.html' title='top commiters on a git branch'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5356483098249767602</id><published>2011-05-08T21:09:00.001-07:00</published><updated>2011-05-08T21:12:36.107-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='user agent'/><category scheme='http://www.blogger.com/atom/ns#' term='tablets'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Sniffing Android Tablets</title><content type='html'>On Android devices the "Mobile" string in the User Agent indicates that the device would prefer a version of the website optimized for Mobile (small form factor devices).&lt;br /&gt;Tablets don't have this, for example&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; device Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;unlike phones&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This can be used to detect Android tablet devices&lt;br /&gt;&lt;code&gt;&lt;br /&gt;is_androidmobile = request.user_agent =~ /android/i &amp;&amp; request.user_agent =~ /mobile/i&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;in context&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;def is_mobile?&lt;br /&gt;    is_iosmobile = request.user_agent =~ /iphone|ipod/i&lt;br /&gt;    is_androidmobile = request.user_agent =~ /android/i &amp;&amp; request.user_agent =~ /mobile/i&lt;br /&gt;&lt;br /&gt;    return is_iosmobile || is_androidmobile&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;more on that here, &lt;br /&gt;&lt;a href="http://android-developers.blogspot.com/2010/12/android-browser-user-agent-issues.html"&gt;android-browser-user-agent-issues&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5356483098249767602?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5356483098249767602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/05/sniffing-android-tablets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5356483098249767602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5356483098249767602'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/05/sniffing-android-tablets.html' title='Sniffing Android Tablets'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6801730995901849686</id><published>2011-04-26T20:14:00.000-07:00</published><updated>2011-04-26T21:08:55.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>my ~/.gitconfig file</title><content type='html'>&lt;pre&gt;&lt;code&gt;[user]&lt;br /&gt;    name = Viktor Kelemen&lt;br /&gt;&lt;br /&gt;[color]&lt;br /&gt;    diff = auto&lt;br /&gt;    status = auto&lt;br /&gt;    branch = auto&lt;br /&gt;    interactive = auto&lt;br /&gt;    ui = true&lt;br /&gt;    pager = true&lt;br /&gt;&lt;br /&gt;[color "status"]&lt;br /&gt;    added = yellow&lt;br /&gt;    changed = green&lt;br /&gt;    untracked = cyan&lt;br /&gt;&lt;br /&gt;[core]&lt;br /&gt;    pager = less -FRSX&lt;br /&gt;    whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol&lt;br /&gt;&lt;br /&gt;[alias]&lt;br /&gt;    co = checkout&lt;br /&gt;    st = status&lt;br /&gt;    ci = commit&lt;br /&gt;    co = checkout&lt;br /&gt;    w = whatchanged&lt;br /&gt; lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)&lt;%an&gt;%Creset' --abbrev-commit --date=relative&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can find more about .gitconfig customization on &lt;a href="http://news.ycombinator.com/item?id=2480522"&gt;Hackernews&lt;/a&gt; or on &lt;a href="http://stackoverflow.com/questions/267761/what-does-your-gitconfig-contain"&gt;Stackoverflow&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6801730995901849686?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6801730995901849686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/04/my-gitfconfig-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6801730995901849686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6801730995901849686'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/04/my-gitfconfig-file.html' title='my ~/.gitconfig file'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-3689077447726611909</id><published>2011-04-21T22:33:00.000-07:00</published><updated>2011-06-03T00:55:14.735-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='curl'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Get HTTP status code with curl in bash</title><content type='html'>&lt;code&gt;&lt;br /&gt;curl --write-out %{http_code} --silent --output /dev/null URL&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and then wrapping it into a function&lt;code&gt;&lt;pre&gt;&lt;br /&gt;getHTTPCode () {&lt;br /&gt;    echo $(curl --write-out %{http_code} --silent --output /dev/null $1)&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;code&gt;&lt;br /&gt;response=$(getHTTPCode URL)&lt;br /&gt;echo $response&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-3689077447726611909?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/3689077447726611909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/04/get-http-response-code-with-curl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3689077447726611909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3689077447726611909'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/04/get-http-response-code-with-curl.html' title='Get HTTP status code with curl in bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1766420751146986479</id><published>2011-04-18T22:07:00.000-07:00</published><updated>2011-04-18T22:16:16.833-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macports'/><category scheme='http://www.blogger.com/atom/ns#' term='db46'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Failed to install db46 on Snow Leopard</title><content type='html'>I have a brand new macbook (2011/04/19) and have some trouble with installing db46 with ports&lt;br /&gt;&lt;code&gt;&lt;br /&gt;port install db46&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;fails badly and complains about dependencies.&lt;br /&gt;&lt;br /&gt;The easiest fix is to install it without java (and you don't need java)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo port -v selfupdate&lt;br /&gt;port clean db46&lt;br /&gt;port install db46 +no_java&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There are other articles about this problem, &lt;a href="http://yoodey.com/how-fix-db46-problem-macport-installation-or-install-db46-mac-os-x-1065"&gt;How to fix db46 problem macport installation&lt;/a&gt; &lt;br /&gt;or &lt;a href="http://stackoverflow.com/questions/2838008/macports-1-8-2-fails-to-build-db46-on-mac-os-x-1-6-3"&gt;MacPorts 1.8.2 fails to build db46 on Mac OS X 1.6.3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1766420751146986479?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1766420751146986479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/04/failed-to-install-db46-on-snow-leopard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1766420751146986479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1766420751146986479'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/04/failed-to-install-db46-on-snow-leopard.html' title='Failed to install db46 on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-737448558739462195</id><published>2011-04-15T23:48:00.001-07:00</published><updated>2011-04-15T23:48:46.874-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joyent'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Joyent Smartmachine Nodejs log</title><content type='html'>&lt;code&gt;&lt;br /&gt;tail -f /var/svc/log/site-node-service\:default.log&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-737448558739462195?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/737448558739462195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/04/joyent-smartmachine-nodejs-log.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/737448558739462195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/737448558739462195'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/04/joyent-smartmachine-nodejs-log.html' title='Joyent Smartmachine Nodejs log'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7360146480425122451</id><published>2011-04-14T04:30:00.000-07:00</published><updated>2011-04-14T04:41:57.214-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joyent'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Reset Joyent Smartmachine Nodejs git repo</title><content type='html'>&lt;code&gt;&lt;br /&gt;cd ~&lt;br /&gt;rm -rf repo&lt;br /&gt;mkdir repo&lt;br /&gt;cd repo&lt;br /&gt;git --bare init&lt;br /&gt;cp /opt/nodejs/post-receive* hooks/&lt;br /&gt;cd ~&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Deleting the old repo, creating a new one and then copy the post-recieve hooks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7360146480425122451?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7360146480425122451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/04/reset-joyent-smartmachine-git-repo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7360146480425122451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7360146480425122451'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/04/reset-joyent-smartmachine-git-repo.html' title='Reset Joyent Smartmachine Nodejs git repo'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-488759960692941282</id><published>2011-03-26T03:36:00.000-07:00</published><updated>2011-03-26T03:42:42.626-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cli'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Turning off case-sensitive tab completion in bash</title><content type='html'>/etc/inputrc deals with the mapping of the keyboard for certain situations.&lt;br /&gt;&lt;br /&gt;Adding&lt;br /&gt;&lt;code&gt;&lt;br /&gt;set completion-ignore-case on&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;to the file turns off case-sensitivity in tab completion.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;echo set completion-ignore-case on | sudo tee -a /etc/inputrc&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-488759960692941282?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/488759960692941282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/03/turning-off-case-sensitive-tab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/488759960692941282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/488759960692941282'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/03/turning-off-case-sensitive-tab.html' title='Turning off case-sensitive tab completion in bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2183484683207357760</id><published>2011-03-10T07:07:00.001-08:00</published><updated>2011-03-10T07:08:50.333-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Disable the text-highlighting magnifier on touch-hold on Mobile Safari / Webkit</title><content type='html'>&lt;pre&gt;&amp;lt;style&amp;gt;&lt;br /&gt; * {&lt;br /&gt;      -webkit-user-select: none;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2183484683207357760?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2183484683207357760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/03/isable-text-highlighting-magnifier-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2183484683207357760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2183484683207357760'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/03/isable-text-highlighting-magnifier-on.html' title='Disable the text-highlighting magnifier on touch-hold on Mobile Safari / Webkit'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-1982522448989127482</id><published>2011-03-05T23:50:00.001-08:00</published><updated>2011-03-05T23:50:56.486-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Building Xcode Projects From the Command Line</title><content type='html'>&lt;code&gt;xcodebuild -project myProject.xcodeproj -alltargets&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1982522448989127482?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1982522448989127482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/03/building-xcode-projects-from-command.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1982522448989127482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1982522448989127482'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/03/building-xcode-projects-from-command.html' title='Building Xcode Projects From the Command Line'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2932065394968915959</id><published>2011-03-05T05:18:00.000-08:00</published><updated>2011-03-05T05:21:37.581-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snow leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='md5'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>md5sum on Snow Leopard</title><content type='html'>The MD5 hash (or checksum) functions as a compact digital fingerprint of a file.&lt;br /&gt;&lt;br /&gt;You can check the md5 hash of a file with the md5 command&lt;br /&gt;&lt;code&gt;md5 test.txt&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The output looks like this&lt;br /&gt;MD5 (test.txt) = ab41fdba223f971be13b1845122353cb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2932065394968915959?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2932065394968915959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/03/md5sum-on-snow-leopard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2932065394968915959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2932065394968915959'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/03/md5sum-on-snow-leopard.html' title='md5sum on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-9026817462224992695</id><published>2011-03-01T18:23:00.000-08:00</published><updated>2011-03-01T18:27:04.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='dropbox'/><title type='text'>Dropbox as a git repo</title><content type='html'>In your Dropbox folder&lt;code&gt;&lt;br /&gt;mkdir Repositories&lt;br /&gt;cd Repositories&lt;br /&gt;mkdir myNewProject.git&lt;br /&gt;cd myNewProject.git&lt;br /&gt;git init --bare&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In your project&lt;code&gt;&lt;br /&gt;cd ~/workspace/MyNewProject&lt;br /&gt;git remote add origin ~/Dropbox/Repositories/myNewProject.git&lt;br /&gt;git push origin master&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;more on this topic, &lt;a href="http://stackoverflow.com/questions/1960799/using-gitdropbox-together-effectively"&gt;using-gitdropbox-together-effectively&lt;/a&gt; or &lt;a href="http://www.intermediaware.com/blog/1085"&gt;How to use Dropbox as a git repository&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-9026817462224992695?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/9026817462224992695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/03/dropbox-as-git-repo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9026817462224992695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9026817462224992695'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/03/dropbox-as-git-repo.html' title='Dropbox as a git repo'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-690142919544431550</id><published>2011-02-28T23:03:00.000-08:00</published><updated>2011-02-28T23:07:39.100-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Supervisor for NodeJS</title><content type='html'>Supervisor runs your nodejs programs and restarts them when a *.js file changes&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;npm install supervisor&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&lt;br /&gt;supervisor -p server.js -w .&lt;br /&gt;&lt;/code&gt;This example runs server.js and watches the current folder, if a js file changes in this folder it restarts the server.js&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-690142919544431550?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/690142919544431550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/supervisor-for-nodejs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/690142919544431550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/690142919544431550'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/supervisor-for-nodejs.html' title='Supervisor for NodeJS'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7418577681258786471</id><published>2011-02-28T22:43:00.000-08:00</published><updated>2011-02-28T22:47:14.052-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Installing NodeJS from source on Snow Leopard</title><content type='html'>&lt;code&gt;&lt;br /&gt;git clone https://github.com/joyent/node.git&lt;br /&gt;cd node&lt;br /&gt;&lt;br /&gt;mkdir ~/local&lt;br /&gt;./configure --prefix=$HOME/local/node&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;export PATH=$HOME/local/node/bin:$PATH&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now if you open a new terminal window&lt;br /&gt;&lt;code&gt;&lt;br /&gt;node --version&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;you should see the new version number.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7418577681258786471?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7418577681258786471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/installing-node-from-source-on-snow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7418577681258786471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7418577681258786471'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/installing-node-from-source-on-snow.html' title='Installing NodeJS from source on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1310615319762248434</id><published>2011-02-28T19:57:00.000-08:00</published><updated>2011-02-28T19:59:53.265-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='response time'/><title type='text'>Get page response time with bash</title><content type='html'>&lt;code&gt;&lt;br /&gt;(time curl URL --head) 2&gt;&amp;1 | grep real | cut -c 6-&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;for instance&lt;br /&gt;&lt;code&gt;&lt;br /&gt;(time curl http://google.com --head) 2&gt;&amp;1 | grep real | cut -c 6-&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;the response is something like  this&lt;br /&gt;&lt;code&gt;0m0.072s&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1310615319762248434?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1310615319762248434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/get-page-response-time-with-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1310615319762248434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1310615319762248434'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/get-page-response-time-with-bash.html' title='Get page response time with bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2504830560840659139</id><published>2011-02-13T07:47:00.000-08:00</published><updated>2011-02-14T04:48:00.559-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coffeescript'/><category scheme='http://www.blogger.com/atom/ns#' term='textmate'/><title type='text'>CoffeeScript Syntax Checker Textmate Bundle</title><content type='html'>Here is a rudimentary version of my CoffeeScript bundle that performs a quick syntax check.&lt;br /&gt;You can bind this command to CMD + S, so it runs after save.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/yikulju/CoffeeScript-Syntax-Checker-Textmate-Bundle"&gt;CoffeeScript-Syntax-Checker-Textmate-Bundle on Github&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2504830560840659139?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2504830560840659139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/coffeescript-lint-textmate-bundle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2504830560840659139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2504830560840659139'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/coffeescript-lint-textmate-bundle.html' title='CoffeeScript Syntax Checker Textmate Bundle'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5450109651873805409</id><published>2011-02-13T05:01:00.000-08:00</published><updated>2011-02-13T05:10:44.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coffeescript'/><category scheme='http://www.blogger.com/atom/ns#' term='build'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Building CoffeeScript from source</title><content type='html'>CoffeeScript includes a simple build system similar to Make and Rake. Naturally, it's called Cake, and is used for the build and test tasks for the CoffeeScript language itself.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git clone https://github.com/jashkenas/coffee-script.git&lt;br /&gt;cd coffee-script&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To build the whole system&lt;code&gt;&lt;br /&gt;bin/cake build:full&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To build the script for inclusion in the browser&lt;code&gt;&lt;br /&gt;bin/cake build:browser&lt;br /&gt;&lt;/code&gt;or&lt;code&gt;&lt;br /&gt;MINIFY=false bin/cake build:browser&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;you may need to install uglify-js as well&lt;br /&gt;&lt;code&gt;npm install uglify-js&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5450109651873805409?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5450109651873805409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/building-coffeescript-from-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5450109651873805409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5450109651873805409'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/building-coffeescript-from-source.html' title='Building CoffeeScript from source'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8819152030735645537</id><published>2011-02-11T08:05:00.000-08:00</published><updated>2011-02-11T08:09:06.876-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Infinite webkit keyframe animation</title><content type='html'>Here is a simple example of an infinite animation.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;style&amp;gt;&lt;br /&gt;        @-webkit-keyframes infinite-spinning {&lt;br /&gt;            from {&lt;br /&gt;                -webkit-transform: rotate(0deg);&lt;br /&gt;            }&lt;br /&gt;            to {&lt;br /&gt;                -webkit-transform: rotate(360deg);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        #box {&lt;br /&gt;             -webkit-animation-name: infinite-spinning;&lt;br /&gt;             -webkit-animation-duration: 1s;&lt;br /&gt;             -webkit-animation-iteration-count: infinite;&lt;br /&gt;             -webkit-animation-timing-function: linear;&lt;br /&gt;             width: 100px;&lt;br /&gt;             height: 100px;&lt;br /&gt;             background: #00f;&lt;br /&gt;        }  &lt;br /&gt;    &amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;div id="box"&amp;gt;&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8819152030735645537?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8819152030735645537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/infinite-webkit-keyframe-animation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8819152030735645537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8819152030735645537'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/infinite-webkit-keyframe-animation.html' title='Infinite webkit keyframe animation'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7994397811761383071</id><published>2011-02-10T21:58:00.000-08:00</published><updated>2011-02-14T01:42:47.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><title type='text'>Janus vs 'unable to determine script type'</title><content type='html'>&lt;strong&gt;Update 2011/02/14&lt;/strong&gt;&lt;br /&gt;Janus developers pulled my changes so if you checkout the latest code you won't see this problem.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;Janus is a basic distribution of vim plugins and tools intended to be run on top of the latest MacVIM snapshot.&lt;br /&gt;&lt;br /&gt;I tried to install it today but i got this &lt;a href="https://gist.github.com/821880"&gt;'unable to determine script type' error&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I opened the Rakefile and figured out that the problem is that the vim.org/scripts does not response. &lt;br /&gt;&lt;br /&gt;I looked for mirrors and found one on github,  git://github.com/vim-scripts/&lt;br /&gt;I replaced all the vim.org lines with github.com/vim-scripts, it seems working now.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="https://github.com/yikulju/janus/commit/03a3952669c72e43a31a7efe030a4254dedbb200"&gt;diff for the Rakefile&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7994397811761383071?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7994397811761383071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/janus-vs-unable-to-determine-script.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7994397811761383071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7994397811761383071'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/janus-vs-unable-to-determine-script.html' title='Janus vs &apos;unable to determine script type&apos;'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8818356843318661518</id><published>2011-02-09T23:53:00.000-08:00</published><updated>2011-02-09T23:57:01.293-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='du'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Get folder size on OSX</title><content type='html'>Haruka had this problem, here is a simple solution&lt;br /&gt;&lt;code&gt;du -sh FOLDER_NAME&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;du (abbreviated from disk usage) is a standard Unix program used to estimate the file space usage—space used under a particular directory or files on a file system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8818356843318661518?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8818356843318661518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/get-folder-size-on-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8818356843318661518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8818356843318661518'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/get-folder-size-on-osx.html' title='Get folder size on OSX'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-790565085602245908</id><published>2011-02-08T17:49:00.000-08:00</published><updated>2011-02-08T23:19:24.784-08:00</updated><title type='text'>You want to attend GoogleIO 2011?</title><content type='html'>I'm sorry, but you cant! &lt;br /&gt;It was sold out in the first hour after the&lt;a href="http://www.google.com/events/io/2011/register.html"&gt; registration &lt;/a&gt;&lt;br /&gt; opened. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Good luck in 2012 ;)&lt;br /&gt;&lt;br /&gt;The good news is that the GoogleIO 2011 will be live-streamed and the videos will be available from the &lt;a href="http://www.google.com/events/io/2011/"&gt;WebSite&lt;/a&gt; later. &lt;br /&gt;Stay &lt;a href="http://twitter.com/GoogleIO"&gt;tuned!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-790565085602245908?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/790565085602245908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/you-want-to-attend-googleio-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/790565085602245908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/790565085602245908'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/you-want-to-attend-googleio-2011.html' title='You want to attend GoogleIO 2011?'/><author><name>ZelenoglazoeTaxi</name><uri>http://www.blogger.com/profile/11503666927809156483</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-7865803374326096685.post-6570297207410073463</id><published>2011-02-07T23:56:00.000-08:00</published><updated>2011-09-23T00:08:09.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Customized google maps</title><content type='html'>You change the look and feel of google maps easily.&lt;br /&gt;&lt;br /&gt;Here is a simple example that turns off all labels on the map&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;map = new google.maps.Map(mapContainer, {}));&lt;br /&gt;&lt;br /&gt;var noLabelStyle = new google.maps.StyledMapType([ {&lt;br /&gt;        featureType: "all",&lt;br /&gt;        elementType: "labels",&lt;br /&gt;        stylers: [&lt;br /&gt;            { visibility: "off" }&lt;br /&gt;        ]&lt;br /&gt;    }], {&lt;br /&gt;        name: "no_labels_style"&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;map.mapTypes.set('stylename', noLabelStyle);&lt;br /&gt;map.setMapTypeId('stylename');&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The most important part is the google.maps.StyledMapType class.&lt;br /&gt;Its constructor expects an array, and that describes which element should be visible and how.&lt;br /&gt;&lt;br /&gt;You can find the details documentation in the &lt;a href="http://code.google.com/apis/maps/documentation/javascript/reference.html#MapTypeStyle"&gt;API reference&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6570297207410073463?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6570297207410073463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/customized-google-maps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6570297207410073463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6570297207410073463'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/customized-google-maps.html' title='Customized google maps'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6081952164218461390</id><published>2011-02-07T22:12:00.001-08:00</published><updated>2011-02-07T22:17:24.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Editing files in the user's path</title><content type='html'>I have lots of scripts in my path but the actual location differs.&lt;br /&gt;&lt;br /&gt;If i have to edit them i often do&lt;br /&gt;&lt;code&gt;vim `which FILE_NAME`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;for example&lt;br /&gt;&lt;code&gt;vim `which port_utility`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The which utility takes a command name and searches the path for each executable file that would be run had this commands actually been invoke.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6081952164218461390?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6081952164218461390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/editing-files-in-users-path.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6081952164218461390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6081952164218461390'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/editing-files-in-users-path.html' title='Editing files in the user&apos;s path'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7039525781752956763</id><published>2011-02-07T21:54:00.000-08:00</published><updated>2011-02-07T21:59:45.298-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='snow leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Apache on Snow Leopard, "ulimit: open files: cannot modify limit: Invalid argument"</title><content type='html'>When I started apache on my Snow Leopard i got a weird exception&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So I opened the script and found that there is something wrong with $ULIMIT_MAX_FILES&lt;br /&gt;&lt;br /&gt;The error message says that 'cannot modify limit' so i changed its value to empty string&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"&lt;br /&gt;ULIMIT_MAX_FILES=""&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Voila, it works, but deeper investigation need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7039525781752956763?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7039525781752956763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/apache-on-snow-leopard-ulimit-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7039525781752956763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7039525781752956763'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/apache-on-snow-leopard-ulimit-open.html' title='Apache on Snow Leopard, &quot;ulimit: open files: cannot modify limit: Invalid argument&quot;'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6544621933688200906</id><published>2011-02-07T19:16:00.000-08:00</published><updated>2011-02-07T19:23:12.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openssh'/><category scheme='http://www.blogger.com/atom/ns#' term='base64'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Base64 encoding</title><content type='html'>Base64 is a group of similar encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation.&lt;br /&gt;Base64 encoding schemes are commonly used when there is a need to encode binary data that needs be stored and transferred over media that are designed to deal with textual data.&lt;br /&gt;&lt;br /&gt;to encode&lt;br /&gt;&lt;br /&gt;&lt;code&gt;openssl base64 -in INPUT_FILE -out OUTPUT_FILE&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and to decode from Base64:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;openssl base64 -d -in INPUT_FILE -out OUTPUT_FILE&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6544621933688200906?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6544621933688200906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/base64-encoding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6544621933688200906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6544621933688200906'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/base64-encoding.html' title='Base64 encoding'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-5026840113847996962</id><published>2011-02-06T19:48:00.000-08:00</published><updated>2011-02-06T19:53:31.404-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='sieve'/><title type='text'>Email filtering with Sieve</title><content type='html'>Sieve is a programming language that can be used to create filters for email.&lt;br /&gt;&lt;br /&gt;I use Sieve to manage my emails on the company's IMAP server.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require "fileinto";&lt;br /&gt;&lt;br /&gt;if address :is "From" "support@company.jp" {&lt;br /&gt;    fileinto "Support";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;elsif header :contains "Subject" ["Develop", "Codereview"] {&lt;br /&gt;    fileinto "Develop"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;else {&lt;br /&gt;    redirect "other.email@company.com";&lt;br /&gt;    keep;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-5026840113847996962?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/5026840113847996962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/email-filtering-with-sieve.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5026840113847996962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/5026840113847996962'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/email-filtering-with-sieve.html' title='Email filtering with Sieve'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1589669779759473967</id><published>2011-02-05T03:50:00.001-08:00</published><updated>2011-02-07T19:23:46.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finder'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='shortcuts'/><title type='text'>Finder shortcuts</title><content type='html'>Today I realized that i don't know enough Finder shortcuts, here you are.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Command-A Select All Items&lt;br /&gt;Command-C Copy Selected Items&lt;br /&gt;Command-D Duplicate Selected Items&lt;br /&gt;Command-F Search with Spotlight&lt;br /&gt;Command-H Hide Window&lt;br /&gt;Command-I Open Get Info (Property) Pane&lt;br /&gt;&lt;br /&gt;Command-M Minimize Window&lt;br /&gt;Command-N Open New Window&lt;br /&gt;Command-O Open Selected Items&lt;br /&gt;Command-V Paste Items&lt;br /&gt;Command-W Close Finder Window&lt;br /&gt;&lt;br /&gt;Command-1 View as Icons&lt;br /&gt;Command-2 View as Lists&lt;br /&gt;Command-3 View as Columns&lt;br /&gt;Command-4 View as Coverflow&lt;br /&gt;&lt;br /&gt;Command-Shift-A Go to Application Folder&lt;br /&gt;Command-Shift-H Go to Home Folder&lt;br /&gt;Command-Shift-N Create New Folder&lt;br /&gt;Command-Option-O Open File and Close Finder&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1589669779759473967?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1589669779759473967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/finder-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1589669779759473967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1589669779759473967'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/finder-shortcuts.html' title='Finder shortcuts'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4236043510145429737</id><published>2011-02-04T02:15:00.000-08:00</published><updated>2011-02-28T23:02:24.302-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='npm'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><title type='text'>Creating a NPM package</title><content type='html'>&lt;a href="http://npmjs.org/"&gt;NPM&lt;/a&gt; is a package manager for node.&lt;br /&gt;&lt;br /&gt;Creating packages with NPM is not difficult so here are the steps.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;1. Creating the package.json&lt;/h3&gt;&lt;br /&gt;Here is an example&lt;br /&gt;&lt;code&gt;{&lt;br /&gt;   "name": "packagename",&lt;br /&gt;   "version": "0.0.1",&lt;br /&gt;   "description": "Package description",&lt;br /&gt;   "main": "package.js",&lt;br /&gt;   "keywords": [&lt;br /&gt;       "foursquare",&lt;br /&gt;       "4sq"&lt;br /&gt;   ],&lt;br /&gt;   "repository" : {&lt;br /&gt;       "type" : "git",&lt;br /&gt;       "url" : "https://yikulju@github.com/yikulju/Foursquare-on-node.git"&lt;br /&gt;    }  &lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;2. Linking it with NPM&lt;/h3&gt;&lt;br /&gt;&lt;code&gt;npm link&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3. Publishing the package&lt;/h3&gt;&lt;br /&gt;First, you have to create a user in the repo.&lt;br /&gt;&lt;code&gt;npm adduser&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then you can publishing the package&lt;br /&gt;&lt;code&gt;npm publish&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a good resource (&lt;a href="http://howtonode.org/introduction-to-npm"&gt;Introduction to npm&lt;/a&gt;) but for some strange reason it was difficult to read, maybe the writing style.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4236043510145429737?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4236043510145429737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/creating-npm-package.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4236043510145429737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4236043510145429737'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/creating-npm-package.html' title='Creating a NPM package'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8608686476876554406</id><published>2011-02-02T18:41:00.000-08:00</published><updated>2011-02-02T19:08:16.716-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><category scheme='http://www.blogger.com/atom/ns#' term='kicker'/><category scheme='http://www.blogger.com/atom/ns#' term='utility'/><title type='text'>Reload the browser when files change on OSX</title><content type='html'>Web front-end development often looks like this, you change the code, which can be HTML, CSS, JavaScript, Ruby whatever and then you head over to the browser and reload it to see the changes.&lt;br /&gt;&lt;br /&gt;This is not a big deal, but what if the browser could automatically does the reload.&lt;br /&gt;&lt;br /&gt;My solution has three parts.&lt;ol&gt;&lt;li&gt;You can detect file change with &lt;a href="https://github.com/alloy/kicker"&gt;Kicker&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Set the focus to the browser and reload it with AppleScript.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Set the focus back to your texteditor.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;Let's combine these&lt;br /&gt;&lt;code&gt;&lt;br /&gt;kicker -e "osascript reload-browser.applescript;focus-textmate.applescript" FOLDER_TO_WATCH&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In my case this looks like this&lt;br /&gt;&lt;code&gt;&lt;br /&gt;kicker -e "osascript ~/workspace/MacGyver/reload-browser.applescript;osascript ~/workspace/MacGyver/focus-textmate.applescript" src/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can find the &lt;a href="https://github.com/yikulju/MacGyver/blob/master/reload-browser.applescript"&gt; reload_browser.applescript here&lt;/a&gt; and the &lt;a href="https://github.com/yikulju/MacGyver/blob/master/focus-textmate.applescript"&gt;focus-textmate.applescript here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8608686476876554406?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8608686476876554406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/02/reload-browser-when-files-change-on-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8608686476876554406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8608686476876554406'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/02/reload-browser-when-files-change-on-osx.html' title='Reload the browser when files change on OSX'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4926260166427590744</id><published>2011-01-28T00:27:00.000-08:00</published><updated>2011-01-28T00:33:31.204-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='kod'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Changing the default style in Kod</title><content type='html'>&lt;a href="http://kodapp.com/"&gt;Kod&lt;/a&gt; is a promising text editor for OS X.&lt;br /&gt;&lt;br /&gt;One of the great things is that, you can style the editor with CSS.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mkdir ~/.kod&lt;br /&gt;cp /Applications/Kod.app/Contents/Resources/style/default.css ~/.kod/&lt;br /&gt;&lt;br /&gt;defaults write se.hunch.kod style/url ~/.kod/default.css&lt;br /&gt;&lt;br /&gt;kod ~/.kod/default.css&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;then don't forget to reload the style in Kod, View menu/Reload style&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4926260166427590744?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4926260166427590744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/changing-default-style-in-kod.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4926260166427590744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4926260166427590744'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/changing-default-style-in-kod.html' title='Changing the default style in Kod'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1806839466600415051</id><published>2011-01-27T01:07:00.000-08:00</published><updated>2011-01-27T01:16:11.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mouse'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><title type='text'>Simulating mouse click on Snow Leopard</title><content type='html'>After googling for 1 hour i came up with the following python script.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;import sys&lt;br /&gt;import time&lt;br /&gt;from Quartz import *&lt;br /&gt;&lt;br /&gt;def createMouseEvent(type, posx, posy):&lt;br /&gt; theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft)&lt;br /&gt; CGEventPost(kCGHIDEventTap, theEvent)&lt;br /&gt;&lt;br /&gt;if __name__ == '__main__':&lt;br /&gt; x = int(sys.argv[1])&lt;br /&gt; y = int(sys.argv[2])&lt;br /&gt;&lt;br /&gt; createMouseEvent(kCGEventLeftMouseDown, x, y);&lt;br /&gt; createMouseEvent(kCGEventLeftMouseUp, x, y);&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Usage: &lt;code&gt;python script.py 100 100&lt;/code&gt;&lt;br /&gt;It'll move the mouse to (100, 100)&lt;br /&gt;&lt;br /&gt;Here is the same script on github. &lt;a href="https://github.com/yikulju/MacGyver/blob/master/click.py"&gt;click.py&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used the following sources&lt;br /&gt;&lt;a href="http://metapep.wordpress.com/2009/07/10/control-the-mouse-on-mac-with-python/"&gt;metapep's blogpost&lt;/a&gt;&lt;br /&gt;&lt;a href="https://github.com/pepijndevos/PyMouse/blob/master/pymouse/mac.py"&gt;pepijndevos's PyMouse&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.geekorgy.com/index.php/2010/06/python-mouse-click-and-move-mouse-in-apple-mac-osx-snow-leopard-10-6-x/"&gt;GeekOrgy's Python script&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1483567/cgpostmouseevent-replacement-on-snow-leopard"&gt;a stackoverflow entry&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1806839466600415051?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1806839466600415051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/simulating-mouse-click-on-snow-leopard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1806839466600415051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1806839466600415051'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/simulating-mouse-click-on-snow-leopard.html' title='Simulating mouse click on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6518622137143744758</id><published>2011-01-25T22:47:00.001-08:00</published><updated>2011-01-25T23:16:20.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timezone'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Telling time in different timezones with bash on OSX</title><content type='html'>You can use the TZ variable to affect the execution of date command.&lt;br /&gt;&lt;br /&gt;Current time in Japan Standard Time (JST)&lt;br /&gt;&lt;code&gt;TZ=Asia/Tokyo date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pacific Standard Time (PST)&lt;br /&gt;&lt;code&gt;TZ=America/Los_Angeles date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Eastern Standard Time (EST)&lt;br /&gt;&lt;code&gt;TZ=America/New_York date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Central Standard Time (CST)&lt;br /&gt;&lt;code&gt;TZ=America/Chicago date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Coordinated Universal Time (UTC) / Greenwich Mean Time (GMT)&lt;br /&gt;&lt;code&gt;TZ=Europe/London date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Central European Time (CET)&lt;br /&gt;&lt;code&gt;TZ=Europe/Budapest date&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is how i use it. &lt;a href="https://github.com/yikulju/MacGyver/blob/master/telltime.sh"&gt;telltime.sh&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6518622137143744758?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6518622137143744758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/telling-time-in-different-timezones.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6518622137143744758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6518622137143744758'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/telling-time-in-different-timezones.html' title='Telling time in different timezones with bash on OSX'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-1370017526079726717</id><published>2011-01-25T18:24:00.000-08:00</published><updated>2011-01-25T18:33:46.515-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jsp'/><category scheme='http://www.blogger.com/atom/ns#' term='escaping'/><title type='text'>Escaping special HTML characters in JSP</title><content type='html'>If you have a string that contains special characters such as '&amp;' and you want to display this in a JSP page, you may get a  ' The content of elements must consist of well-formed character data or markup.'&lt;br /&gt;&lt;br /&gt;This code will fail if linkParm contains a '&amp;'&lt;code&gt;&lt;br /&gt;&amp;lt;a href="main.do${userBean.linkParm}"&amp;gt;&lt;br /&gt;    main link&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The short answer is&lt;code&gt;&lt;br /&gt;&amp;lt;a href="main.do&amp;lt;c:out value='${userBean.linkParm}'/&amp;gt;"&amp;gt;&lt;br /&gt;    main link&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This seems overkill, indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1370017526079726717?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1370017526079726717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/escaping-special-html-characters-in-jsp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1370017526079726717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1370017526079726717'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/escaping-special-html-characters-in-jsp.html' title='Escaping special HTML characters in JSP'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-798186849063901591</id><published>2011-01-20T01:50:00.000-08:00</published><updated>2011-01-20T01:56:49.547-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='expressjs'/><category scheme='http://www.blogger.com/atom/ns#' term='nodejs'/><category scheme='http://www.blogger.com/atom/ns#' term='ejs'/><title type='text'>EJS default escaping</title><content type='html'>In EJS (Embedded JavaScript) escaping is a default behaviour.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// escape by default &lt;br /&gt;&lt;%= VARIABLE_NAME %&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This can easily mess up a couple of things (including JSON, HTML rendering), luckily you can turn it off by using&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// render out string &lt;br /&gt;&lt;%- VARIABLE_NAME %&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-798186849063901591?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/798186849063901591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/ejs-default-escaping.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/798186849063901591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/798186849063901591'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/ejs-default-escaping.html' title='EJS default escaping'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-7553658092353050596</id><published>2011-01-17T22:12:00.000-08:00</published><updated>2011-01-17T22:16:47.829-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><title type='text'>Drop a MongoDB database from command line</title><content type='html'>&lt;code&gt;mongo DB_NAME --eval 'db.dropDatabase();'&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7553658092353050596?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7553658092353050596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/drop-mongodb-database-from-command-line.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7553658092353050596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7553658092353050596'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/drop-mongodb-database-from-command-line.html' title='Drop a MongoDB database from command line'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1409263369522805543</id><published>2011-01-06T23:13:00.000-08:00</published><updated>2011-01-06T23:15:43.418-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Iterating through an array in bash</title><content type='html'>&lt;code&gt;&lt;pre&gt;locations=( Roppongi Shibuya Ebisu )&lt;br /&gt;&lt;br /&gt;for name in ${locations[@]}&lt;br /&gt;do&lt;br /&gt;  echo $name&lt;br /&gt;done&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/7865803374326096685-1409263369522805543?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1409263369522805543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/iterating-through-array-in-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1409263369522805543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1409263369522805543'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/iterating-through-array-in-bash.html' title='Iterating through an array in bash'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6271191028849838680</id><published>2011-01-06T00:47:00.000-08:00</published><updated>2011-01-06T00:48:39.774-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latlon'/><category scheme='http://www.blogger.com/atom/ns#' term='geo'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Generating random locations around a location</title><content type='html'>Handy.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;def generateLocation(startlat, startlon, maxdist):&lt;br /&gt;&lt;br /&gt; # converting them radians&lt;br /&gt; startlat *= pi / 180&lt;br /&gt; startlon *= pi / 180&lt;br /&gt; rand1 = random.random()&lt;br /&gt; rand2 = random.random()&lt;br /&gt;&lt;br /&gt; maxdist = maxdist / earthradius&lt;br /&gt; dist = acos(rand1*(cos(maxdist) - 1) + 1)&lt;br /&gt; brg = 2*pi*rand2&lt;br /&gt;&lt;br /&gt; lat = asin(sin(startlat)*cos(dist) + cos(startlat)*sin(dist)*cos(brg))&lt;br /&gt; lon = startlon + atan2(sin(brg)*sin(dist)*cos(startlat), cos(dist)-sin(startlat)*sin(lat))&lt;br /&gt;&lt;br /&gt; if lon &lt; -pi:&lt;br /&gt;  lon = lon + 2 * pi&lt;br /&gt;&lt;br /&gt; if lon &gt; pi:&lt;br /&gt;  lon = lon - 2 * pi&lt;br /&gt;&lt;br /&gt; lat *= 180 / pi&lt;br /&gt; lon *= 180 / pi&lt;br /&gt;&lt;br /&gt; return [lat, lon]&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6271191028849838680?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6271191028849838680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/generating-random-locations-around.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6271191028849838680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6271191028849838680'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/generating-random-locations-around.html' title='Generating random locations around a location'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1079614791341789037</id><published>2011-01-04T00:12:00.000-08:00</published><updated>2011-01-04T00:17:46.752-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='springsource'/><title type='text'>Turn off SpringSource Tool Suite Dashboard</title><content type='html'>SpringSource Tool Suite 2.3.2 boots really slowly and it can be even slower if it opens the Dashboard at startup.&lt;br /&gt;Lucky you can turn it off, not trivial though.&lt;br /&gt;&lt;br /&gt;Dashboard has 4 tabs on the bottom (Dashboard, Knowledge Base, Extensions and Configuration).&lt;br /&gt;At the Configuration tab there is a checkbox, Show On Startup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1079614791341789037?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1079614791341789037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2011/01/turn-off-springsource-tool-suite.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1079614791341789037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1079614791341789037'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2011/01/turn-off-springsource-tool-suite.html' title='Turn off SpringSource Tool Suite Dashboard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7189538362084277418</id><published>2010-12-26T04:31:00.001-08:00</published><updated>2010-12-26T04:38:26.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='snow leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Command-line tools on Mac OS X, Snow Leopard</title><content type='html'>&lt;b&gt;allmemory&lt;/b&gt;, &lt;b&gt;fs_usage&lt;/b&gt;, &lt;b&gt;fuser&lt;/b&gt;, &lt;b&gt;latency&lt;/b&gt;, &lt;b&gt;sar&lt;/b&gt;, &lt;b&gt;sc_usage&lt;/b&gt;, &lt;b&gt;spindump&lt;/b&gt;: Display various system usage statistics.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;bless&lt;/b&gt;, &lt;b&gt;disklabel&lt;/b&gt;, &lt;b&gt;disktool&lt;/b&gt;, &lt;b&gt;diskutil&lt;/b&gt;, &lt;b&gt;drutil&lt;/b&gt;, &lt;b&gt;fsck&lt;/b&gt;, &lt;b&gt;hdiutil&lt;/b&gt;, &lt;b&gt;pdisk&lt;/b&gt;: Create, identify, manage, and fix Mac OS X disks, file systems, and disk images.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ioreg&lt;/b&gt;, &lt;b&gt;kextstat&lt;/b&gt;: Show device drivers and other kernel extensions in use.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mDNS&lt;/b&gt;, &lt;b&gt;dns-sd&lt;/b&gt;: Test Bonjour service discovery with these diagnostic tools.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;open&lt;/b&gt;: Invoke launch services on an arbitrary document or application as if doubleclicking it in the Finder.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;pbcopy&lt;/b&gt;, &lt;b&gt;pbpaste&lt;/b&gt;: Move data between stdin/stdout and the Mac OS X pasteboard.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;say&lt;/b&gt;: Convert text to audio output or a file via Speech Synthesizer.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;shasum&lt;/b&gt;: Compute or validate SHA message digests.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sips&lt;/b&gt;: Manipulate the format and color space of bitmap images (for example, rotate,&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sw_vers&lt;/b&gt;, &lt;b&gt;uname&lt;/b&gt;: Display Mac OS X version information.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;syslog&lt;/b&gt; and &lt;b&gt;logger&lt;/b&gt;: Send, view, and manage system log messages with these modern&lt;br /&gt;&lt;br /&gt;&lt;b&gt;xattr&lt;/b&gt;: List, display, set, and delete file system extended attributes&lt;br /&gt;&lt;br /&gt;You can find more information on apple.com in this &lt;a href="http://images.apple.com/macosx/technology/docs/L416017A_UNIX_TB_FF.pdf"&gt;documentation&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7189538362084277418?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7189538362084277418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/command-line-tools-on-mac-os-x-snow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7189538362084277418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7189538362084277418'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/command-line-tools-on-mac-os-x-snow.html' title='Command-line tools on Mac OS X, Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-8520120965892297106</id><published>2010-12-21T22:57:00.000-08:00</published><updated>2010-12-21T22:59:48.105-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='opensnoop'/><category scheme='http://www.blogger.com/atom/ns#' term='dtrace'/><title type='text'>snoop file opens on Snow Leopard</title><content type='html'>Opensnoop tracks file opens.&lt;br /&gt;&lt;code&gt;sudo opensnoop&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;or you can watch only a process&lt;br /&gt;&lt;code&gt;sudo opensnoop -n Google Chrome&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-8520120965892297106?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/8520120965892297106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/snoop-file-opens-on-snow-leopard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8520120965892297106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/8520120965892297106'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/snoop-file-opens-on-snow-leopard.html' title='snoop file opens on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2481302429239868944</id><published>2010-12-21T19:51:00.000-08:00</published><updated>2010-12-21T22:56:56.494-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='heading'/><category scheme='http://www.blogger.com/atom/ns#' term='html5'/><title type='text'>HTML5 heading elements</title><content type='html'>&lt;p&gt;"In HTML 4, the only way to create a document outline was with the &amp;lt;h1&amp;gt;–&amp;lt;h6&amp;gt; elements. If you only wanted one root node in your outline, you had to limit yourself to one &amp;lt;h1&amp;gt; in your markup.&lt;br&gt; But the HTML5 specification defines an algorithm for generating a document outline that incorporates the new semantic elements in HTML5.&lt;br&gt; The HTML5 algorithm says that an &amp;lt;article&amp;gt; element creates a new section, that is, a new node in the document outline. And in HTML5, each section can have its own &amp;lt;h1&amp;gt; element."&lt;/p&gt;&lt;br /&gt;more of &lt;a href="http://diveintohtml5.org/semantics.html#article-element"&gt;Pilgrimさん's Dive into HTML5&lt;/a&gt;&lt;br /&gt;or check the outline of your document with the &lt;a href="http://gsnedders.html5.org/outliner/"&gt;HTML5 Outliner&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2481302429239868944?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2481302429239868944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/html5-heading-elements.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2481302429239868944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2481302429239868944'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/html5-heading-elements.html' title='HTML5 heading elements'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-3461852220122336726</id><published>2010-12-21T18:50:00.000-08:00</published><updated>2010-12-21T18:58:17.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='activemq'/><title type='text'>activemq and the java.io.EOFException: Chunk stream does not exist at page: 0</title><content type='html'>If you start activemq and get an error like that&lt;pre&gt;&lt;br /&gt;INFO | Scheduler using directory: activemq-data/localhost/scheduler&lt;br /&gt;ERROR | Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException: Chunk stream does not exist at page: 0&lt;br /&gt;java.io.EOFException: Chunk stream does not exist at page: 0&lt;/pre&gt;&lt;br /&gt;It means that there is something wrong with the scheduler. &lt;br /&gt;&lt;br /&gt;If you don't use the built in persisten scheduler you can easily turn it off by changing the activemq.xml config file (/opt/local/share/java/activemq/conf/activemq.xml)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;broker xmlns="http://activemq.apache.org/schema/core" .... &lt;/code&gt;&lt;br /&gt;to&lt;br /&gt;&lt;code&gt;&amp;lt;broker xmlns="http://activemq.apache.org/schema/core"  schedulerSupport="false"&amp;gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-3461852220122336726?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/3461852220122336726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/activemq-and-javaioeofexception-chunk.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3461852220122336726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3461852220122336726'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/activemq-and-javaioeofexception-chunk.html' title='activemq and the java.io.EOFException: Chunk stream does not exist at page: 0'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-973592816430335562</id><published>2010-12-20T23:19:00.003-08:00</published><updated>2010-12-20T23:24:41.234-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><title type='text'>Open a new tab with AppleScript in Chrome</title><content type='html'>&lt;code&gt;&lt;pre&gt;tell application "Google Chrome"&lt;br /&gt; set myTab to make new tab at end of tabs of window 1&lt;br /&gt; set URL of myTab to "http://google.com"&lt;br /&gt;end tell&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;more AppleScript Chrome goodies at &lt;a href="http://laclefyoshi.blogspot.com/2010/10/google-chrome-ver.html"&gt;http://laclefyoshi.blogspot.com/2010/10/google-chrome-ver.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-973592816430335562?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/973592816430335562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/open-new-tab-with-applescript-in-chrome.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/973592816430335562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/973592816430335562'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/open-new-tab-with-applescript-in-chrome.html' title='Open a new tab with AppleScript in Chrome'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-9146256550416739541</id><published>2010-12-20T22:23:00.000-08:00</published><updated>2010-12-20T23:23:18.652-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><title type='text'>Get user id on a remote server</title><content type='html'>you have to use SSH public/private key pairs to make this work.&lt;code&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;uid=`ssh &amp;lt;your.server&amp;gt; 'id -u'&lt;br /&gt;echo $uid&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;more stuff here &lt;a href="http://bashcurescancer.com/run_remote_commands_with_ssh.html"&gt;http://bashcurescancer.com/run_remote_commands_with_ssh.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-9146256550416739541?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/9146256550416739541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/get-user-id-on-remote-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9146256550416739541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/9146256550416739541'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/get-user-id-on-remote-server.html' title='Get user id on a remote server'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4352460363882209225</id><published>2010-12-20T01:08:00.000-08:00</published><updated>2010-12-20T01:13:23.067-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='appengine'/><title type='text'>Google App Engine Development Console from command line</title><content type='html'>When you develop on localhost the interactive console that Google provides is not convenient.&lt;br /&gt;In my project I had to run few scripts in the console quite often, so instead of going to the interactive console all the time I could do it from command line.&lt;br /&gt;&lt;br /&gt;This example executes the 'gen_pilot_data.py' script on the interactive console.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;curl --data-urlencode "code=`cat src/gen_pilot_data.py`" http://localhost:8079/_ah/admin/interactive/execute&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Please notice that you may have to the change the port number.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4352460363882209225?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4352460363882209225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/google-app-engine-development-console.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4352460363882209225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4352460363882209225'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/google-app-engine-development-console.html' title='Google App Engine Development Console from command line'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4211914354696460040</id><published>2010-12-19T18:45:00.000-08:00</published><updated>2010-12-19T21:52:38.651-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geo'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='cities'/><title type='text'>Latitude and longitude of cities</title><content type='html'>&lt;a href="http://www.getlatlon.com/"&gt;http://www.getlatlon.com&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt; cities = [&lt;br /&gt;  { 'name': 'Tokyo', 'lat': 35.6894875, 'lon': 139.6917064 },&lt;br /&gt;  { 'name': 'Seoul', 'lat': 37.566535, 'lon': 126.9779692 },&lt;br /&gt;  { 'name': 'Beijing', 'lat': 39.904214, 'lon': 116.407413 },&lt;br /&gt;  { 'name': 'New Delhi', 'lat': 28.635308, 'lon': 77.22496 },&lt;br /&gt;  { 'name': 'Moscow', 'lat': 55.755786, 'lon': 37.617633 },&lt;br /&gt;  { 'name': 'Kiev', 'lat': 50.45, 'lon': 30.5233333 },&lt;br /&gt;  { 'name': 'Budapest', 'lat': 47.4984056, 'lon': 19.0407578 },&lt;br /&gt;  { 'name': 'Berlin', 'lat': 52.5234051, 'lon': 13.4113999 },&lt;br /&gt;&lt;br /&gt;  { 'name': 'Paris', 'lat': 48.8566667, 'lon': 2.3509871 },&lt;br /&gt;  { 'name': 'Madrid', 'lat': 40.4166909, 'lon': -3.7003454 },&lt;br /&gt;  { 'name': 'New York', 'lat': 40.7143528, 'lon': -74.0059731 },&lt;br /&gt;&lt;br /&gt;  { 'name': 'Mexico City', 'lat': 19.4270499, 'lon': -99.1275711 },&lt;br /&gt;  { 'name': 'Honolulu', 'lat': 21.3069444, 'lon': -157.8583333 },&lt;br /&gt;&lt;br /&gt;  { 'name': 'Sydney', 'lat': -33.8599722, 'lon': 151.2111111 },&lt;br /&gt;  { 'name': 'Taipei', 'lat': 25.091075, 'lon': 121.5598345 }&lt;br /&gt; ]&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4211914354696460040?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4211914354696460040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/latlon-of-cities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4211914354696460040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4211914354696460040'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/latlon-of-cities.html' title='Latitude and longitude of cities'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7927297210454492779</id><published>2010-12-17T02:22:00.000-08:00</published><updated>2011-06-04T00:19:32.799-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='bounding box'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>Zoom to fit all markers with Google Maps V3</title><content type='html'>&lt;code&gt;&lt;pre&gt;&lt;br /&gt;// creating the map&lt;br /&gt;var map = new google.maps.Map(document.getElementById("map_canvas"), {&lt;br /&gt;  mapTypeId: google.maps.MapTypeId.ROADMAP&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;// latitude, longitude values&lt;br /&gt;var latLons = [ { lat: 35.6453962, lon: 139.7117893 }, &lt;br /&gt;                           { lat: 35.645076, lon: 139.709183 }  ];&lt;br /&gt;&lt;br /&gt;// this is the bounding box container&lt;br /&gt;var bounds = new google.maps.LatLngBounds();&lt;br /&gt;&lt;br /&gt;// iterating through the points&lt;br /&gt;latLons.forEach( function (element, index, array) {&lt;br /&gt;&lt;br /&gt;  var point = new google.maps.LatLng(element.lat,element.lon);&lt;br /&gt;  &lt;br /&gt;  // extending the bounding box&lt;br /&gt;  bounds.extend(point);&lt;br /&gt;&lt;br /&gt;  // creating the marker on the map&lt;br /&gt;  var marker = new google.maps.Marker({&lt;br /&gt;        position: point,&lt;br /&gt;        map: map&lt;br /&gt;    });&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;// zooming on the map&lt;br /&gt;map.fitBounds(bounds);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7927297210454492779?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7927297210454492779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/zoom-to-fit-all-markers-with-google.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7927297210454492779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7927297210454492779'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/zoom-to-fit-all-markers-with-google.html' title='Zoom to fit all markers with Google Maps V3'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-6063728862343715266</id><published>2010-12-14T19:03:00.000-08:00</published><updated>2010-12-14T19:06:31.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='applescript'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Reload the browser with AppleScript</title><content type='html'>AppleScript is a weird language but you still can do cool things with it.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;tell application "Google Chrome"&lt;br /&gt;        activate&lt;br /&gt;end tell&lt;br /&gt;&lt;br /&gt;tell application "System Events"&lt;br /&gt; tell process "Google Chrome"&lt;br /&gt;  keystroke "r" using {command down}&lt;br /&gt; end tell&lt;br /&gt;end tell&lt;/pre&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Please feel free to replace "Google Chrome" with your choice.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/yikulju/MacGyver/blob/master/reload-browser.applescript"&gt;https://github.com/yikulju/MacGyver/blob/master/reload-browser.applescript&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6063728862343715266?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6063728862343715266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/reload-browser-with-applescript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6063728862343715266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6063728862343715266'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/reload-browser-with-applescript.html' title='Reload the browser with AppleScript'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-3439446856751663120</id><published>2010-12-14T18:56:00.000-08:00</published><updated>2010-12-14T18:58:21.041-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whitespace'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>removing trailing whitespace with sed</title><content type='html'>&lt;code&gt;&lt;br /&gt;sed -i '' -e's/[ \t]*$//' $1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;the full script can be found here&lt;br /&gt;&lt;a href="https://github.com/yikulju/MacGyver/blob/master/rwh.sh"&gt;https://github.com/yikulju/MacGyver/blob/master/rwh.sh&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-3439446856751663120?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/3439446856751663120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/12/removing-trailing-whitespace-with-sed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3439446856751663120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3439446856751663120'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/12/removing-trailing-whitespace-with-sed.html' title='removing trailing whitespace with sed'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2408697714575815534</id><published>2010-11-30T21:53:00.000-08:00</published><updated>2010-11-30T21:56:32.080-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='activemq'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>is activemq running?</title><content type='html'>Activemq is listening on the 61616 port so a simple telnet can help us.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;telnet localhost 61616&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;If you get a response that starts with '?ActiveMQ?' it means that activemq is running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2408697714575815534?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2408697714575815534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/is-activemq-running.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2408697714575815534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2408697714575815534'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/is-activemq-running.html' title='is activemq running?'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-356517913913599654</id><published>2010-11-30T18:39:00.000-08:00</published><updated>2010-11-30T18:40:59.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Simulating cellular network bandwith</title><content type='html'>To turn it on&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo su&lt;br /&gt;ipfw add pipe 1 src-port http&lt;br /&gt;ipfw pipe 1 config delay 200 bw 700kbit/s&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To reset&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ipfw flush&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-356517913913599654?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/356517913913599654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/simulating-cellular-network-bandwith.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/356517913913599654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/356517913913599654'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/simulating-cellular-network-bandwith.html' title='Simulating cellular network bandwith'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2564782373075103558</id><published>2010-11-29T22:34:00.001-08:00</published><updated>2010-11-30T18:34:08.917-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Infinite blinking effect with jQuery</title><content type='html'>I'm not sure this is the shortest way to do this but it works.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;setInterval( function () {&lt;br /&gt;&lt;br /&gt; // this is the element you want to blink&lt;br /&gt; var box = $(".blinking_thing");&lt;br /&gt;   &lt;br /&gt; if (box.data("fade") === 1) {&lt;br /&gt;      box.fadeIn().data("fade", 2);&lt;br /&gt; } else {&lt;br /&gt;      box.fadeOut().data("fade", 1);&lt;br /&gt; }&lt;br /&gt;}, 800)&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2564782373075103558?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2564782373075103558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/infinite-blinking-effect-with-jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2564782373075103558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2564782373075103558'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/infinite-blinking-effect-with-jquery.html' title='Infinite blinking effect with jQuery'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-3354775107436147611</id><published>2010-11-25T17:50:00.000-08:00</published><updated>2010-12-21T18:50:42.567-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='activemq'/><title type='text'>activemq and the java.io.EOFException: Chunk stream does not exist at page on broker start</title><content type='html'>Deleting the activemq-data directory seems to be the only recovery solution (which is not an option in production)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;rm -rf /opt/local/share/java/activemq/data&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-3354775107436147611?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/3354775107436147611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/activemq-and-javaioeofexception-chunk.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3354775107436147611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/3354775107436147611'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/activemq-and-javaioeofexception-chunk.html' title='activemq and the java.io.EOFException: Chunk stream does not exist at page on broker start'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-844628856115999382</id><published>2010-11-18T23:05:00.000-08:00</published><updated>2010-11-18T23:07:59.122-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Changing the computer name on terminal</title><content type='html'>&lt;code&gt;&lt;br /&gt;sudo scutil --set HostName [NewMacComputerName]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Next flush the DNS cache on the Mac by entering the command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;dscacheutil -flushcache&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-844628856115999382?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/844628856115999382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/changing-computer-name-on-terminal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/844628856115999382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/844628856115999382'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/changing-computer-name-on-terminal.html' title='Changing the computer name on terminal'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-7438298584513864719</id><published>2010-11-11T19:26:00.000-08:00</published><updated>2010-11-11T19:34:03.032-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1password'/><category scheme='http://www.blogger.com/atom/ns#' term='launchd'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>Removing 1Password agent on Snow Leopard</title><content type='html'>&lt;div&gt;months after i uninstalled 1Password something was still spamming my log files.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qs4WZEpStwk/TNy0kFSzcjI/AAAAAAAAAJY/sJ_72eujztg/s1600/Screen%2Bshot%2B2010-11-12%2Bat%2B12.16.38%2BPM.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 176px;" src="http://2.bp.blogspot.com/_qs4WZEpStwk/TNy0kFSzcjI/AAAAAAAAAJY/sJ_72eujztg/s320/Screen%2Bshot%2B2010-11-12%2Bat%2B12.16.38%2BPM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5538500173748204082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seemed like launchd has some problems, so i headed over one of the following folders&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/System/Library/LaunchDaemons&lt;br /&gt;/System/Library/LaunchAgents&lt;br /&gt;/Library/LaunchDaemons&lt;br /&gt;/Library/LaunchAgents&lt;br /&gt;~/Library/LaunchAgents&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I found this entry&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ws.agile.1PasswordAgent.plist&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;let's delete it and refresh launchd&lt;br /&gt;&lt;code&gt;&lt;br /&gt;launchctl remove ws.agile.1PasswordAgent&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and the problem has gone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7438298584513864719?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7438298584513864719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/11/removing-1password-agent-on-snow.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7438298584513864719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7438298584513864719'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/11/removing-1password-agent-on-snow.html' title='Removing 1Password agent on Snow Leopard'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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/_qs4WZEpStwk/TNy0kFSzcjI/AAAAAAAAAJY/sJ_72eujztg/s72-c/Screen%2Bshot%2B2010-11-12%2Bat%2B12.16.38%2BPM.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7865803374326096685.post-7766156461133603812</id><published>2010-10-23T18:14:00.000-07:00</published><updated>2011-05-23T01:51:52.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='itunes'/><title type='text'>iTunes search with command f</title><content type='html'>To use Command-F to get to the search field in iTunes you have to execute the following in Terminal.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;defaults write com.apple.iTunes NSUserKeyEquivalents -dict-add "Target Search Field" "@F"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You have to restart iTunes to make it work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-7766156461133603812?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/7766156461133603812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/10/itunes-search-with-command-f.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7766156461133603812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/7766156461133603812'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/10/itunes-search-with-command-f.html' title='iTunes search with command f'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-6643300235617992743</id><published>2010-10-19T00:59:00.000-07:00</published><updated>2010-10-19T01:02:51.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><title type='text'>gitignore and already tracked files</title><content type='html'>If a file is already being tracked by Git, adding the file to .gitignore won’t stop Git from tracking it.&lt;br /&gt;&lt;br /&gt;You’ll need to do&lt;br /&gt;&lt;code&gt;&lt;br /&gt;git rm --cached &amp;lt;file&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;to keep the file in your tree and then ignore it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-6643300235617992743?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/6643300235617992743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/10/gitignore-and-already-tracked-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6643300235617992743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/6643300235617992743'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/10/gitignore-and-already-tracked-files.html' title='gitignore and already tracked files'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-4840889683616673436</id><published>2010-10-17T22:45:00.000-07:00</published><updated>2010-10-17T22:54:56.421-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><title type='text'>SVG JavaScript Libraries</title><content type='html'>SVG has been in development since 1999 and in 2010 we can say that all major modern web browsers except Microsoft Internet Explorer, support and render SVG markup directly. The Internet Explorer 9 beta supports SVG.&lt;br /&gt;&lt;br /&gt;But dealing with SVG documents remained painful, don't despair there are JavaScript libraries to help.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vis.stanford.edu/protovis"&gt;Protovis&lt;/a&gt;&lt;br /&gt;Great for data visualization.&lt;br /&gt;It only works in browsers that have native SVG support.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://raphaeljs.com"&gt;Raphael&lt;/a&gt;&lt;br /&gt;It's a good starter library, easy to do a LOT of things with SVG quickly. Well written and documented. Lots of examples and Demos. Very extensible architecture. Great with animation.&lt;br /&gt;&lt;br /&gt;But note that there are ways of expressing things in SVG that are not possible in Raphael. There are no "groups". This implies that you can't implement layers of Coordinate Transfomations. Instead there is only one coordinate transform available.&lt;br /&gt;If your design depends on nested coordinate transforms, Raphael is not for you.&lt;br /&gt;&lt;br /&gt;It supports Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ and Internet Explorer 6.0+.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://keith-wood.name/svg.html"&gt;jQuery SVG&lt;/a&gt;&lt;br /&gt;Well written and documented. Lots of examples and demos. Supports most SVG elements, allows native access to elements easily.&lt;br /&gt;&lt;br /&gt;It only works in browsers that have native SVG support.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/svgweb"&gt;SVG Web&lt;/a&gt;&lt;br /&gt;It uses flash to render in non-SVG compliant browsers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-4840889683616673436?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/4840889683616673436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/10/svg-javascript-libraries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4840889683616673436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/4840889683616673436'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/10/svg-javascript-libraries.html' title='SVG JavaScript Libraries'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-2391544721530054608</id><published>2010-10-04T19:05:00.000-07:00</published><updated>2010-10-04T19:09:33.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>List open ports on Mac OS X</title><content type='html'>sudo lsof -i -P | grep -i "listen"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-2391544721530054608?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/2391544721530054608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/10/list-open-ports-on-mac-os-x.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2391544721530054608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/2391544721530054608'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/10/list-open-ports-on-mac-os-x.html' title='List open ports on Mac OS X'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1298724185761803988</id><published>2010-09-20T19:11:00.000-07:00</published><updated>2010-09-20T19:24:18.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><title type='text'>FDTG Principles for Developers</title><content type='html'>this is a small reminder for me no to forget these principles.&lt;br /&gt;&lt;br /&gt;Flexibility&lt;br /&gt;Be ready to change your plans when they’re not working the way you expected; don’t count on things remaining stable.&lt;br /&gt;&lt;br /&gt;Decentralization&lt;br /&gt;Centralized systems look strong, but when they fail, they fail catastrophically.&lt;br /&gt;&lt;br /&gt;Transparency&lt;br /&gt;Don’t hide your systems; transparency makes it easier to figure out where a problem may lie. Share your plans and preparations, and listen when people point out flaws.&lt;br /&gt;&lt;br /&gt;Graceful Failure&lt;br /&gt;Failure happens, so make sure that a failure state won’t make things worse than they are already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1298724185761803988?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1298724185761803988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/09/fdtg-principles-for-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1298724185761803988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1298724185761803988'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/09/fdtg-principles-for-developers.html' title='FDTG Principles for Developers'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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-7865803374326096685.post-1783440339883878232</id><published>2010-08-23T10:03:00.000-07:00</published><updated>2010-08-23T10:22:53.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='dom'/><title type='text'>HTML Comments as strings</title><content type='html'>Reading HTML comments from a DOM tree with JavaScript is easy.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;var nodes = document.body.childNodes,&lt;br /&gt;    comments = [];&lt;br /&gt;&lt;br /&gt;for (var i = 0; i &lt; nodes.length; i++) {&lt;br /&gt;&lt;br /&gt;    // if the nodeType is 8&lt;br /&gt;    if (nodes[i].nodeType == 8) {&lt;br /&gt;          &lt;br /&gt;          // this is a comment&lt;br /&gt;          comments.push(nodes[i]);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Let's say that the comments array is not empty, so the type of comments[0] is a Comment. That's great but how can you read its content?&lt;br /&gt;&lt;br /&gt;This is what the W3C DOM-Level-1 spec says. It implements the Comment interface.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;interface Comment : CharacterData {&lt;br /&gt;};&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;This does not really help us but don't despair. It also implements the Node interface.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;  ...&lt;br /&gt;  readonly attribute  DOMString            nodeName;&lt;br /&gt;           attribute  DOMString            nodeValue;&lt;br /&gt;  ...&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;Yes, it's read-only but you can get the comment as a string by using its nodeValue.&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;comments[0].nodeValue&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;W3C DOM-Level 3 specifies something called textContent. This can also do the job, you can read about them here,  &lt;a href="http://ecmanaut.blogspot.com/2007/02/domnodetextcontent-and-nodeinnertext.html"&gt;textContent vs. innerText&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7865803374326096685-1783440339883878232?l=saikotroid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saikotroid.blogspot.com/feeds/1783440339883878232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://saikotroid.blogspot.com/2010/08/html-comments-as-strings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1783440339883878232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7865803374326096685/posts/default/1783440339883878232'/><link rel='alternate' type='text/html' href='http://saikotroid.blogspot.com/2010/08/html-comments-as-strings.html' title='HTML Comments as strings'/><author><name>grasshopper rtultatj</name><uri>http://www.blogger.com/profile/03473958194082705731</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>
