Mar '12
Unblock-us for Mac OS
by Frank Spychalski filed under Computer

I’ve been using unblock-us for some time (update: at the time I wrote this article I was creating a trial account every week, but after a few months of flawless service I decided it’s time to become a paying customer, which I am since April) and took only a few precautions like not signing in to any service but while using this other DNS service.

Yesterday Damon wrote a great article on how to secure your system for unblock-us and I followed his lead.

My only machine runs Mac OS, so I had to do a bit of research… Read the rest of this entry »

This post has moved to

Please update your bookmarks.
Read the rest of this entry »

Jul '11
Cups and duplex banner pages
by schlumpf filed under Computer
Comments Off

This post has moved to

Please update your bookmarks.
Read the rest of this entry »

Apr '11
New project at Google.
by Frank Spychalski filed under Work

For the last 3 years I was working in an area called Engineering Productivity at Google. This group builds internal tools for other engineers but sadly there is very little I can talk about, except for the obvious facts: it’s challenging, fun and at a scale I hadn’t seen before.

Well, a few weeks ago I switched projects and focus areas. Now for the first time in my career[1] at Google I work on a customer facing product: the Google Privacy dashboard. Obviously I can’t write about upcoming launches, but I can assure you that there are many cool new features in the making.

[1] This is not 100% true. A little over two years ago I did some 20% work on the dashboard, so there is already a tiny little bit of code online that yours truly wrote. In case you are curious, it’s the logic that makes sure you get to see the privacy statement for your country, e.g. or

Mar '11
Quickly convert images with ImageMagick
by Frank Spychalski filed under Braindump

I just spent a few minutes looking for a tool to convert a small number of PNG files to JPG on Mac OS. It was just a few dozen files but so in the end fell back to the good old command line because I don’t like graphical interfaces for these tasks.

For future reference:
for file in *.png; do jpg="$(basename \"$file\" .png).jpg"; convert "$file" "$jpg"; done

Yes, it’s that simple once you have installed ImageMagick.

May '10
Customize Chrome Omnibar
by Frank Spychalski filed under google

I love Chrome! But one thing drove me crazy: we have numerous internal web-apps running on different hosts. From Firefox was easy to get to these tools by just typing the toolname (not the FQDN) in the url bar. Chrome knows it better and assumes that I want to search for toolname. A moment later it asked me if I meant toolname/ and remebers this choice (at least it annoys me only once per tool).

Yesterday I I got an idea and tryed a snippet of javascript as a search engine and was happy to see that it worked as intended. A few minutes of javascript hacking later the omnibar behaved the way I like it:

  • multiple words are a search query
  • single words are URLs, even without the trailing slash, always!
  • fix broken http at the start of an URL (happens to me sometimes when I cut’n'paste)

This is the current version of my default search engine, feel free to criticize, I’m a JS noob:
javascript:query="%s"; if (\s/) != -1) { window.location="" + query; } else { query = query.replace(/^h?t?t?p?:///, ""); window.location="http://"+query; }

Enjoy and let me know if you have other ideas on how to improve this!

Feb '10
Dear Garmin…
by Frank Spychalski filed under outdoor, Rants

Dear Garmin,

I don’t know if anyone told you that you build pretty good hardware but your firmware SUCKS! It’s Nearly March 2010 and your customers still have to fight with an embarrassing Y2010 bug in your code, the UI is horrible and getting anything on or off the device is a pain. I am the not-so-proud owner of an eTrex HCx but I can’t remember the last time I actually used it. Why? Because a Nexus One with My Tracks is way better than anything you have to offer. No need to jump through hoops to get tracks off the device, no proprietary drivers that work with one and a half operating systems and I carry it anyway…

Do you want me back as a customer?

Build the eTrex Android.


  • rugged version of the Nexus One (same screen, processor, etc.)
  • replaceable batteries (with a tiny battery in the device to let me switch batteries without shutting it down)
  • better GPS antenna & chips
  • tiny solar panel on the back

If you or any other company would build a device like that, you could ask ANY price and I would buy it. So please build it. Please…

Feb '10
by Frank Spychalski filed under google, Work

This is mainly a test to see how adding this blog to my Buzz account works. Additionally I want to say how thrilled I am to finally buzz with people outside work ;-)

Jan '10
JRuby on appengine with Ubuntu
by Frank Spychalski filed under appengine, JRuby, Ruby

Overall the instructions on are really good, so this is just a dump to remind me of the Ubuntu specific stuff I did on a pristine Ubuntu installation…

sudo apt-get install sun-java6-jdk
sudo apt-get install ruby-full rubygems

This installs only rubygems 1.3.1 but appengine needs 1.3.5.

ERROR: Error installing google-appengine:
bundler requires RubyGems version >= 1.3.5

sudo gem install rubygems-update
sudo /var/lib/gems/1.8/bin/update_rubygems
sudo gem install google-appengine

Et voilà! Ten minutes later I have a running hello world in the cloud ;-)

Oct '09
pgrep or pkill sometimes do not find process
by Frank Spychalski filed under Computer, Work

The usual problem: you want to kill a process.

$ ps aux | grep randomprocessname
psycho 20429 0.0 0.0 11824 1580 pts/7 S+ 12:00 0:00 /bin/bash ./randomprocessname
psycho 20528 0.0 0.0 4188 740 pts/17 R+ 12:00 0:00 grep randomprocessname
$ pkill -9 randomprocessname
WTF? Kill that sucker!
$ pkill -9 randomprocessname
No typo... Am I crazy?
$ pgrep randomprocessname
What's wrong?
$ pgrep randomprocessna
$ pkill -9 randomprocessna

For some arcane reason pgrep/pkill matches only the first 15 characters.