TomatoTomatoe – a lightweight pomodoro timer for Windows with worklog.

tt_ss

Today, a little utility for your productivity needs – TomatoTomatoe, a little pomodoro timer for Windows. Check out the pomodoro technique – it’s a nifty lifehack!

The program sits in your system tray and allows you to launch a 20 minute pomodoro, which will count down in a little always-on-top window. At the end, it’ll ask you to describe and rate your pomodoro and write your notes together with the date and start/end time to a csv in a location of your choice (it’ll save your choice). So after a couple of weeks, you’ll be able to import your data into Excel and run the most amazing stats.

Let me know your thoughts! — DOWNLOAD TomatoTomatoe

HOWTO Pair Apple Bluetooth Keyboard with Windows 7

People on the internet (e.g. here and here) seem to have noticed that in Windows 7, pairing your Apple Bluetooth Keyboard is not an easy task.

If you find difficulties such as timeouts etc, there is a reason. Windows 7 wants to pair with the keyboard by giving you a code that you have to type on the keyboard, same procedure as in Mac OS X.

Now, the not-so-secret is: this does not work. After selecting the keyboard in the Add Bluetooth device wizard and clicking “forward”, you meet an eternally spinning waiting icon or some other error after a little while. Solution of the problem is to actually type a numeric code like “0000” or another one of your choice on the BT keyboard just after you clicked on “forward” and then hit enter (once or twice…). Windows 7 should ask you to confirm the key you just typed and voilá. If it does not work the first time, switch the keyboard on and off and give it another go.

Worked for me 🙂

Make keywurl 1.4 (beta 7) work with Safari 4.0.3 on Tiger

Keywurl is great. Safari is great. Tiger too. Leopard, too. Etc.

For those of us who still use Mac OS X Tiger (10.4), Apple was nice enough to give us a version of the new Safari (Safari 4 or 4.0.3, to be precise).

Keywurl on the other hand is THE must-have extension to Safari. Now, keywurl 1.4 adds Safari 4.0.3 compatibility. But only on Leopard. Thus, when updating Safari to its version 4 on Tiger, the old version of keywurl you installed will not load anymore. The new keywurl version (as mentioned, 1.4 beta 7) is compatible with Safari 4.0.3 but when trying to install the 1.4 beta 7 Keywurl.bundle on Tiger it does not work. So far, no surprise.

I found a quick fix to make the 1.4 beta 7 Keywurl.bundle for Safari 4.0.3 work in Tiger. To do this, show the Keywurl.bundle’s package content, open the “Contents” folder and open the Info.plist with an appropriate text editor (may I suggest Smultron?). The part that needs fixing is:

<key>SIMBLTargetApplications</key>
<array>
<dict>
<key>BundleIdentifier</key>
<string>com.apple.Safari</string>
<key>MaxBundleVersion</key>
<string>5531.9</string>
<key>MinBundleVersion</key>
<string>5530</string>
</dict>
</array>

Simply substitute under MaxBundleVersion and MinBundleversion the first 5 for a 4, i.e. 4531.9 and 4530 instead of 5531.9 and 5530. Save, close/reopen Safari in case and voilá, Keywurl loads (and works).

Obviously, this is a quick hack with no guarantees, there are no problems on my machine besides the keywurl configuration pane in Safari’s preferences not working. But you can manually edit the /Library/Application Support/Keywurl preferences file (Keywords.plist) and in every case your previous configuration should still work.

Generating naturally-sounding electronic instruments

As i was drifting off to sleep, my thoughts wandered to the topic of eletronically generated instrumental sounds. Think of a violin. Now, think of a soundwave that has (nearly) the same properties as a note played by that instrument. What sound will you “prefer”, i.e. what sound sounds more “natural”?

Do people tend to prefer real instruments over eletronically played versions? Why? What is the difference?

It could be that the subtle difference in the timbre (or the perception thereof) of the sound generated by the resonance of the body of the violin has a different shape than that generated by speakers. Or is the way the shape of the soundwave generated by the violin differs by small yet perceptible details from the eletronically generated one? Has the natural sound of a violin random influences such as the casual vibration of atoms that make up the string, influences that are beyond a trivial imitation by lines of program code and yet noticeable enought? Or is the difference only perceived when the listener know about the different origins of one same sound?

I will investigate this when i wake up.

Bloatware rebellion: JamFM.de again

In the third instalment of my war on bloatware series, the first and only enemy of hassle-free streaming pleasure returns. After being defeated the first time around, JamFM.de has risen up again. As you probably won’t have noticed, jamfm.php on phikappa.eu has stopped working – it can’t extract the token anymore. Why? The reason is simple. The address where the flash player is located has changed. I replaced it in the script and everything in good order again. [Edit, one minute later] You’d think! But no, seems as JamFM’s own player cannot find the mp3 file anymore. Booo! We’ll switch to Windows Media, then.

(Outdated) Please find the new version where the old one was: http://phikappa.eu/jamfm.php (this does not work, but may at some point in the future

You can display an URL to paste to VLC or your mms:// capable player of choice here:

http://phikappa.eu/jamfm_asx.php

[Edit] Please find a script at http://phikappa.eu/jamfm/jamfm_wm.php that generates an .asx you can directly open with your Windows Media Audio-capable player of choice from the browser.

[Edit 2] Well, somebody already discovered the same “sikkrit” things on the nacamar server i did… so the next steps i’d have done just became redundant. Have fun with http://www.project-fx.de/tiscali/

Update: Circumventing bloatware – the jamfm.de web stream

Here we are.

By going to http://phikappa.eu/jamfm.php you will be promted to save a *.pls file (or it will download automatically, depending on your browser settings).

You can open this pls file in your audio player of choice and it will start streaming the 96 kbps MP3 stream. 🙂

Even if you stop the playback and then get start it again, it should work – however, if you get an 401 error or a password request, just generate a new pls again.

Free the streams – against bloatware. 

Here’s the source code: jamfm.php code as a ZIP file.

Getting streams from bloatwaring internet radios: jamfm.de

Some Internet Radios are not their listener’s friend.

In the case of jamfm.de, the radio is not your friend on so many levels. visit their webstream selector at http://www.jamfm.de/cms/streams-playlist/stream-playlist/stream-playlist.html and you get a choice between MP3 or WMA streaming. Nothing exeptional, you’d think. But no. Instead of a pristine mms://, .asx or .pls all you get is a bloatware html/flash page with no apparent controls. Flash-Ads before playback. POPUPS! URGH! No me gusta. No gusta my iTunes, either.

Ok, let’s dig a bit deeper, maybe there is some way to get to the stream. Peeking inside the HTML of the page(s) http://213.200.64.229/freestream/download/jamfm/frameset_mp3.html and http://213.200.64.229/freestream/download/jamfm/frameset.html (mp3 and wma, respectively) we find a clue that the answer to the question at hand my lie somewhere close.

I’ll now proceed separately, first detailing the results for the mp3 stream and then for the WMA stream.

1) MP3

Ok, the http://213.200.64.229/freestream/download/jamfm/frameset_mp3.html wants us to go to http://213.200.64.229/freestream/download/jamfm/forwarder_mp3.html which redirects to http://213.200.64.229/sltokens/flashplayer/stream-mp3-player.php?stream=jamfm/livestream.mp3 which is a really small flash player. Much improvement, but still we’d need a flash-capable browser to listen to the stream (hello iPhone, waving at you). So, the flash applet does accesses this file: http://62.144.180.170:80/jamfm/livestream.mp3?token=e5d5816ce89fe048baa280725383bfb9. Not good. Not good at all. Dynamically generated token. When inserting this URI into VLC or iTunes, you get the stream, BUT. Once you stop the stream and then try to restart it, you get a password request for “Icecast2 Server on 62.144.180.170”. Same thing when opening the URI inside Firefox. So everytime you want to access the mp3 stream, you need to go to the flash player (and here to you’ll be asked a password sometimes, just reload it and it will work), get the MP3 file with token and insert it into itunes. Not really practical, as you may agree. There are two options here: 1) finding out the password asked or 2) writing a script that somehow gets a correct token from the flash player page and writes a pls with the correct mp3 or, even better, a script that relays the stream so that e.g. iTunes can accept the URL right away. Both options go beyond the scope of this article at the moment.

2) WMA

http://213.200.64.229/freestream/download/jamfm/frameset.html sends us to http://213.200.64.229/freestream/download/jamfm/forwarder.html like the mp3 does. This forwarder.html sends us to http://213.200.64.229/sltokens/stream-radio-player.php?stream=jamfm/livestream.wma. The Activity tabs of Safari does not help here, so off we go to firefox. Going to “Media” in the “Show page info” (get to url, you’ll hear the music start or a small controller (much like the mp3, at the end)) and we get this URL called by the stream-radio-player.php: http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=0&stream=jamfm/livestream.wma&content=live&media=ms&token=e665919ce58c3422a2f953a4f18040fbs

Saving the redirect.lsc file and looking at it with a text editor, we get something which (result!!) yields the WMA stream. It is: mms://62.26.161.89/jamfm$livestream.wma?token=665919ce58c3422a2f953a4f18040fbs. Not better than mp3. Same caveats apply. Damn token. Inserting this URL into VLC only results in a 401 Access denied. Here too, there are only two options: break the password or get the token from somewhere and add it dynamically.

This is not over.

Update CURL http://213.200.64.229/sltokens/flashplayer/stream-mp3-player.php?stream=jamfm/livestream.mp3 and the token is in the javascript: var token = “xxx”;

Add the xxx to http://62.144.180.170:80/jamfm/livestream.mp3?token=xxx and you’re ready to go. I guess i’ll learn PHP tonight.