Earlier this year (see here and here) I made an integration between the JAlbum Chameleon skin and Google Maps. This would show an in-page Google Map for pictures that have GPS coordinates. Works really nice. Recently I wanted to create an RSS feed of my webalbums and noticed that the latest JAlbum version did support this. Nice, so I decided to upgrade JAlbum to version 8.1 and as part of that also had to tweak my enhancements to the Chameleon skin a bit.

If you're interested... you need to copy the following two files to the JAlbum/skins/Chameleon directory:

You also have to set the following two user variables (Settings/Advanced/User Variables):

# The root where the webalbum will be hosted
webroot=/webalbums/gero
# The location of the HTML page that displays the map and
# has the Google Maps code in it
# This location is bound to the Google Maps API key.
googlemapIframe=/webalbums/googlemap.html

For a full description on what how to use the Google Maps - JAlbum integration refer to the earlier posts (here and here).

Now there was one dissapointment... the feed generated by JAlbum cannot be handled by Google Reader and NetNewsWire. Will try and tweak the JAlbum template that generates the feed such that it works correct and post the results here.

Earlier this year (see here and here) I made an integration between the JAlbum Chameleon skin and Google Maps. This would show an in-page Google Map for pictures that have GPS coordinates. Works really nice. Recently I wanted to create an RSS feed of my webalbums and notices that the latest JAlbum versions did support this. Nice, so I decided to upgrade JAlbum to version 8.1 and as part of that also had to tweak my enhancements to the Chameleon skin a bit.

If you're interested... you need to copy the following two files to the JAlbum/skins/Chameleon directory:

  • index.htt
  • slide.htt

 

You also have to set the following two user variables (Settings/Advanced/User Variables):
# The root where the webalbum will be hosted
skin.webroot=/webalbums/gero
# The location of the HTML page that displays the map and
# has the Google Maps code in it
# This location is bound to the Google Maps API key.
skin.map.iframe=/webalbums/googlemap.html

 

For a full description on what how to use the Google Maps - JAlbum integration refer to the earliers posts (here and here).

Now there was one dissapointment... the feed generated by JAlbum cannot be handled by Google Reader and NetNewsWire. Will try and tweak the JAlbum template that generates the feed such that it works correct and post the results here.

The example meditation benchIn IT we all know these cartoons where the first picture shows what the customer asked for, the second how the analyst interpreted it, etc. The last picture shows what was actually delivered to the client. Working in IT I'm sure I also made this mistake, but last week found myself making the same mistake outside IT. My girlfriend asked me if I could make a little meditation bench. To illustrate what she meant, she showed borrowed meditation bench and explained that she'd like one minor change: it would be nice if it was possible to fold the bench legs so that it would take less space when it was not in use. No problem! Finally a chance to show off some 'real' craftmenship.

So saturday morning I measured the sizes of the borrowed meditation bench, grabbed some wood from the garage, sawed it, bought a couple of hinges and screwed it all together. I tried the bench and then my analysis kicked in: "the bench legs could spontaneously fold in while sitting on the bench causing an abrupt end of the meditation and some pain in the rear end". Of course I had to solve this and turn this risky bench into a rock solid bench. To achieve this a removable support bar was placed between the legs ensuring that the legs could not spontaneously fold in. Because it was removable, you could still fold the legs when storing the bench away. Perfect! Right?

The way to sit on it... Completely happy with my craftmenship I showed the bench to my girlfriend. She took a close look, liked the way the legs folded in and the stability when the support bar was inserted and then tried to sit on it... in a way I had not envisioned. When I tried it out I sat on it like on a normal bench with my legs forward, perfect, no problem. However, the meditation way to sit on it is with the your legs bend under the bench.... and my beautiful support bar made that impossible. Ouch!

What did I do wrong? I clearly did not ask enough questions. When people ask you to create something for them you should always make sure that you understand how they are planning to use it. Ask questions, let them demo or illustrate it, ... and be very cautious when they say something like "I want a copy of that one with just one minor adjustment". If you don't understand how they're planning to use it, it's hard to see the consequences of that minor adjustment and the impact it has on the set of valid solutions.

(It was possible to change the 'stability solution' to one that did allow for putting your legs below the bench, everybody happy in the end).

For the last 6 years or so I've been hosting my own IMAP mail server and this evolved from just running an IMAP server on Linux to having a the full Zimbra collaboration suite in the end. Of course it is fun to do this, you learn a bit. However, it does take time and resources to do it properly and the guys at Google can all do that for you: Google Apps. You can use Google Apps for free for your familily and get Email, Calendar and much more functionality. And what's best: you don't have to do any maintenance, simple use it. One point to take note of, you do need a domainname, but who does not own a domainname nowedays?

Of course there was the migration question... there was close to 10G of mail stored in my server (split over multiple accounts) and we did not want to loose that. How to get this into GMail? Several blogs posts suggest to simple use your desktop mail client (Mail.app on OS X, or Thunderbird) and then simple copy the mail (folders) from one IMAP account to the other. Sure works, but when I tried the copy process stopped several times due to a time-out... and then it was not clear what was copied and what was not copied yet. Time for a more robust and scriptable solution, enter imapsync. Imapsysc is a Perl script that can keep two IMAP accounts in-sync. It can be run multiple times and then will only copy the messages not available on the target server yet. So that also makes it perfects to do a phase by phase migration (first copy all existing mail and then just before you switch over to the new IMAP server, do a last - quick - run to copy the few remaining messages.

I've been using Google Apps for ~2 weeks now, am I happy with it? Definitely, here a couple of reasons:

  • the web ui for mail is great and I'm more productive processing tons of mail. After setting up some filters it is much easier to quickly archive mail and by assigning colors to filters I can quickly spot the important new mails. And of course, searching is a breeze... I have hardly used my regular mail client (Mail.app on OS X) since I switched.
  • Using SpanningSyncI can perfectly sync my Google Calendar with iCal on multiple Macs and keep them in sync with my iPhone. With Zimbra I also managed to sync them (see earlier post) but one big drawback was that the calendars hosted on Zimbra were read-only on iPhone... not very convenient when you have to move an appointment.
  • We can easily share calendars within the familily
  • I have to worry less about making backups (although to be honest, I do consider to set up something... better safe than sorry)
  • You can manage multiple mail accounts from 1 Google Mail account (but... see wishes below).

Wishes:

  • When using Google Mail to send mail from another account it includes a header saying "gero@googleapps.com On Behalf of gero@othermaildomain.com" (where googleapps.com would be the primary domain on Google Apps that you registered and gero@othermaildomain.com some other mail account). The annoying thing is that some mail clients (Outlook of course, who else...), show this header to the user. According to Google they do it this way to prevent mail from being tagged as spam. And although there is definitely truth in that I would like ot have a setting to enable/disable this behaviour. Escpecially when managing multiple domains on Google Apps it should be possible to get rid of this message. The problem is that Google tags one of you domainnames as primary and the when sending mail from another domainname (that is hosted on the same Google Apps mail account) it also includes the "On Behalf of" header.
  • Todo list support in Calendar would be nice.
  • I still need to using my regular Google account for services like Google Reader, iGoogle, etc. The list of services for which you can use your Google Apps account is less than the list of available services to regular Google accounts.

For the last 6 years or so I've been hosting my own IMAP mail server and this evolved from just running an IMAP server on Linux to having a the full Zimbra collaboration suite in the end. Of course it is fun to do this, you learn a bit. However, it does take time and resources to do it properly and the guys at Google can all do that for you: Google Apps. You can use Google Apps for free for your familily and get Email, Calendar and much more functionality. And what's best: you don't have to do any maintenance, simple use it. One point to take note of, you do need a domainname, but who does not own a domainname nowedays?

Of course there was the migration question... there was close to 10G of mail stored in my server (split over multiple accounts) and we did not want to loose that. How to get this into GMail? Several blogs posts suggest to simple use your desktop mail client (Mail.app on OS X, or Thunderbird) and then simple copy the mail (folders) from one IMAP account to the other. Sure works, but when I tried the copy process stopped several times due to a time-out... and then it was not clear what was copied and what was not copied yet. Time for a more robust and scriptable solution, enter imapsync. Imapsysc is a perl script that can keep two IMAP accounts in-sync. It can be run multiple times and then will only copy the messages not available on the target server yet. So that also makes it perfects to do a phase by phase migration (first copy all existing mail and then just before you switch over to the new IMAP server, do a last - quick - run to copy the few remaining messages.

I've been using Google Apps for ~2 weeks now, am I happy with it? Definitely, here a couple of reasons:
- the web ui for mail is great and I'm more productive processing tons of mail. After setting up some filters it is much easier to quickly archive mail and by assigning colors to filters I can quickly spot the important new mails. And of course, searching is a breeze... I have hardly used my regular mail client (Mail.app on OS X) since I switched.
- Using SpanningSync I can perfectly sync my Google Calendar with iCal on multiple Macs and keep them in sync with my iPhone. With Zimbra I also managed to sync them (see earlier post) but one big drawback was that the calendars hosted on Zimbra were read-only on iPhone... not very convenient when you have to move an appointment.
- We can easily share calendars within the familily
- I have to worry less about making backups (although to be honest, I do consider to set up something... better safe than sorry)
- You can manage multiple mail accounts from 1 Google Mail account (but... see wishes below).

Wishes:
- When using Google Mail to send mail from another account it includes a header saying "gero@googleapps.com On Behalf of gero@othermaildomain.com" (where googleapps.com would be the primary domain on Google Apps that you registered and gero@othermaildomain.com some other mail account). The annoying thing is that some mail clients (Outlook of course, who else...), show this header to the user. According to Google they do it this way to prevent mail from being tagged as spam. And although there is definitely truth in that I would like ot have a setting to enable/disable this behaviour. Escpecially when managing multiple domains on Google Apps it should be possible to get rid of this message. The problem is that Google tags one of you domainnames as primary and the when sending mail from another domainname (that is hosted on the same Google Apps mail account) it also includes the "On Behalf of" header.
- Todo list support in Calendar would be nice.
- I still need to using my regular Google account for services like Google Reader, iGoogle, etc. The list of services for which you can use your Google Apps account is less than the list of available services to regular Google accounts.

iPhone firmware 2.0 has been out for a while (2.0.2 already) now. A while back I posted my favorite 1.0 firmware apps and now seems to be a good time to compare that favorites list with my 2.0 firmware favorites. Back in the 1.0 days all apps were jailbreak apps, but now it's a mix of jailbreak apps and 'official' apps from the Apple AppStore. All jailbreak apps are installed using Cydia (see iphone-dev team). Looking at the list you can see that most apps are from the AppStore, so the iPhone SDK makes it possible to create usefull apps.

  1. IntelliScreen (Cydia, commercial): Provides an overview of your upcoming appointments, sms-es, mails, etc on the "Slide to unlock" screen. Hands down my favorite app, having 1 click access to this overview is really convenient.
  2. EasyTask (AppStore, free): Manage your ToDo's and sync them with the EasyTask (and iCal) application on the Mac. The iPhone application is free, but the Mac apps is commercial (~$20). It's not the perfect app, but does the job. OmniFocus is an alternative, but both the iPhone and Mac app are commercial and you'll have to pay a bit more for that combination. By the way, why on earth doesn't Apple support this out of the box???
  3. Twinkle: (AppStore, free): Was already my favorite Twitter app in the 1.0 days and is now available through the AppStore. What I like about it is that you can see tweets of people in your area.
  4. WifiToggle (Cydia, free): Toggle Wifi connection on/off with one click.
  5. Dock (Cydia, free): An alternative way to navigate through all the apps installed and quickly start them. Especially easy if you have many apps installed and get tired of swiping through all springboard pages and reorganizing the apps on the pages. It does require some practice...
  6. NetNewsWire (AppStore, free): Nice RSS feed reader that syncs with NewsGator and NetNewsWire apps on Mac.
  7. Palringo (AppStore, free): Chat application that supports many protocols (AIM, Jabber, MSN, ....). Works really nice.
  8. Wikipanion (AppStore, free): Quick access to Wikipedia, easier than using the Safari browser.
  9. Remote (AppStore, free): Control iTunes on the Mac with you iPhone. Great fun!
  10. BuienRadar.nl (AppStore, free): Want to know where the rain is and if it's coming your way. This app shows you (only interesting for The Netherlands though). Used it during our lats holiday to find out that the only rainclouds in The Netherlands were right above us :-(
  11. Teletekst (AppStore, free): Access Dutch Teletekst in a convenient way.
  12. MobileTerminal (Cydia, free): Terminal apps that I typically use to log into my server @ home if I need to restart something (and there's no other way to log in). Don't use it often, but it did save me a couple of times.
And then there is a bunch of funny apps that do not really add that much value on top of the above ones, but it just fun to show off:
  • Twittervision (AppStore, free): Shows Twitter Tweets on worlmap as the occur in realtime. (and acts as a Twitter client.)
  • Labyrinth (AppStore, free): Move the ball through the labyrinth with dropping it in the holes (uses the accelorometer of course)
  • PhoneSaber (AppStore, free): Turns your iPhone into a light sabor... well sort off. It was pulled from the AppStore.

I currently own a KiSS DP-558 and although I'm quite impressed with the features included I'm not so happy with the overall stability and quality of the device. I've got it for less then 3 years and did have several defects and recordings often fail. Recently it also started mixing random colors while playing back a recording. About time to replace it.... preferable with something that has similar functionality, which is:

  • Record TV (also while watching another channel. I'm adding this remark because when using putting a recording device behind a single tuner SettopBox you only get one channel out of the settopbox which you can then watch and record and I want to be able to watch 1 channel and record another)
  • Stream music from Mac Mini over network connection
  • Stream movies from Mac Mini (many formats) over network connection
  • Stream photos from Mac Mini over network connction
  • EPG with option to select programs for recording and also to specify which programs show always be recorded
  • Play DVDs and CDs
(For streaming from the Mac Mini I'm using the KiSS MacLink software)

On top of the above requirements I'd like to switch from analogue TV to digital. I checked if may cable provider (Ziggo) has a settopbox that would match all above requirements, but unfortunately not...

After some googling it appeared to be not so easy to find a similar device... The TiVo2 boxes in the US look really interesting, but TiVo2
  • is only available in US in NTSC format (need PAL in The Netherlands)
  • require a service subscription (which I would seriously consider to subscribe to if it was available in NL), luckily the Dutch TiVo community has a way to get it to work in NL, but only for TiVo1 boxes. But t looks as if TiVo1 boxes can't stream media from a computer.
Another option would be a Dreambox, but the lack of documentation makes me wonder what functionality is really included out of the box. Looks like it needs some additional work to be able to stream media from a computer.

Apple TV is also an options, but that would only cover the streaming requirements and not the recording and DVD/CD playing...

And lastly I could build a mini PC myself that has all I need, but I'd prefer an out the box (or boxes) solution that does not require me to hack something together and support it for the rest of the family. Ease of use is also a requirement...

In summary... looks like this is going to take at least 2 devices to realize the same functionality now provided by the KiSS DP-558
  • twin tuner settopbox/PVR
  • device for the streaming from computer and playback of DVD/CDs
But which ones??? Any suggestions or recommendations? 

[English below]

Voor het grootste gedeelte lekker asfalt en mooie rechte stukken. Het viaduct van Harmelen richting Montfoort over de A12 kun je lekker op volle snelheid afdalen: mooi glad en geen kruizingen onderaan. Verderop richting Montfoort zit wel een stukje met slecht asfalt, het fietspad is wel redelijk glad, maar te smal om je te skeeleren. Langs de provenciale weg van Montfoort naar Woerden is het weer heerlijk skeeleren. De route kan gecombineerd worden met de routes die langs Oudewater gaan.

Mostly well paved and long straight roads. The descend off the viaduct from Harmelen to Montfoort can be done at full speed. Well paved cyclepath and no crossings at the bottom. Close to Montfoort there is a section with bad roads, the cyclepath on the side is OK but unfortunately too small to strech out. This route can be combined with the routes that pass through Oudewater.



[English below]
Mooie route over goede wegen die lekker door de polder gaan. In Hekendorp ziet een echt fietserscafe, waar je als skeeleraar ook prima terecht kunt. En Oudewater is ook erg leuk natuurlijk. Als je de route wat wilt verlengen kun je hem prima met de andere route combineren die door Oudewater gaat.

Nice route over quiet well paved roads. Hekerdorp has nice cylcecafe in which skaters are also more then welcome. And if you'd want to take you pitstop a but later, Oudewater is also on the route. To extend the route a little bit, you can combine it with the other route that passes through Oudewater.

Three months of iPhone usage and with the new 2.0 firmware coming out just over a week from now, it's good to look back and see what my favorite 3rd party apps are. My favorites are:

  1. Twinkle: Twitter client that allows you to include picture and location info in tweets.
  2. AutoMode: Put the iPhone to airplane mode at night and wakeup from airplane mode in the morning. Saves some battery and on the side gives you undisturbed nights.
  3. IntelliScreen: View your next appointments, SMSs, news headlines, etc. at a glimpse in the "Slide to unlock" screen.
  4. Finder: An OS X like finder to navigate the file system
  5. Terminal: Terminal clients that allows me to ssh into other machines remotely (already saved my a couple of times when I had no other way to ssh into my server to fix stuff)
  6. ParkingLot: Nice puzzle game to kill time
  7. ContraSense: Car racing game to show off the accelorometer
I wonder which of these apps will become available from the AppStore and if there will remain a market for  apps that can only be installed if you jailbreak the iPhone. I suspect there will remain such a market because some of the apps installed via the jailbreak path run in the background and that's a feature which is not allowed for apps in the AppStore.

What am I missing?
Number one missing feature for me is a ToDo list that is integrated with iCal on OS X. I've looked at a couple of other options but found nothing that integrates with iCal. The MobileToDo app was promising to do this, but they quit development and referred to OmniFocus as the app to use. However, you'd also need to buy the OmniFocus desktop app at $79 and buy the iPhone app separately (price unknown yet) and IMO that's way to much money for simple to do list requirements that I have. I'm hoping the guys behind MobileToDo will pick up the work again. I don't mind paying, but it should be in the $20 range for me.

I've been using the iPhone for a couple of months now and one thing that kept bugging me was that iTunes does not allow you to specify a server based calendar as the calendar to sync events created on the iPhone to. It only allows to sync events created on the iPhone to local calendars in iCal. Since I'm using Zimbra as my server for mail, calendar, etc. and I want to be able to update it also when I'm not near my MacBook Pro that becomes pretty annoying. In OS X Leopards iCal you can subscribe to server based calendar and also update them, so it's a mistery to my why the iPhone events can't be synced to a CalDAV server.

Anyways, a nice challenge to solve and it's actually pretty easy using Applescript. I've set up iCal to subscribe to the CalDAV server. So from iCal (and the Zimbra web client) I'm working on the same data. Then there an iCal local calendar defined (named iPhone) and in iTunes this calendar is specified as the one where new events created on the iPhone should be stored. The server based Calendar that iCal is subscribed to is also selected in iTunes to be sync to the iPhone.

So now the only we need to accomplish is get the events created on the iPhone into the CalDAV server. The following Applescript does this for me:

tell application "iCal"
set allEvents to every event in calendar "iPhone"
repeat with theEvent in allEvents
make new event at end of events of calendar "Calendar"
with data theEvent
delete theEvent
end repeat
reload calendars
end tell

 

This script is scheduled to run eveny 15 minutes and simply copies all events found in the iPhone calendar to the server Calendar and then removes it from the iPhone. Works nicely and the only drawback left is that events are not sync-ed in realtime, I have to do a sync between the MacBook and the iPhone... but who knows, maybe that can be improved using the push capabilities that are part of iPhone 2.0.

[English below]
Sinds een poosje gebruik ik OpenGTS om routes op te nemen (zie eerdere blog) en daarmee kan ik dus ook skeeler routes vastleggen. Leek me leuk om deze te delen met anderen en dat ga ik dus doen via m'n blog. In eerste instantie wilde ik alleen wat statische pagina's met de routes op internet zetten, maar het leek me uiteindelijk toch leuker als mensen ook commentaar kunnen toevoegen etc. En daar is een blog meer geschikt voor.

De blog entry die je nu leest bevat een overzicht van de routes die ik in de omgeving van Woerden rij.  Door op het skeelerwiel in een route te klikken, krijg je meer details over een route en van daaruit kun je weer doorklikken naar de route details.

I've been using OpenGTS for a while to track skeeler routes and it seemed like fin to share these using my blog. Advantage (compared to static HTML pages) is that you can leave comments and suggestions.

This blog entry provides and overview of all skeeler routes around Woerden, The Netherlands. Click on one of the skeelerwheels to get a description of the route and from thereon you can jump to the route details.

[English below]
Op de fiets noemde ik deze ronde vroeger "de hel van het Noorden", het ligt immers te noorden van Woerden en ik had altijd het gevoel tegenwind te  hebben op het stuk van Zegveld naar Woerdense Verlaat. Deze keer op skeelers had ik dat stuk een stevige wind mee en liep de snelheid lekker op.  Net uit Woerden richting Zegveld en de eerste KM uit Zegveld naar Woerdense Verlaat is het wegdek wat minder, maar verder goed.

When I did this route by bike years ago I always had headwinds on the part from Zegveld to Woerdense Verlaat. This time on skeelers I was surprised by a nice supporting wind and could reach nice speeds. Leaving Woerden towards Zegveld en just outside Zegveld the road is a bit bumpy but for the rest  the road is good.

[English below]
Lekker snel rondje waar je op de heenweg veel lange rechte stukken hebt en op de terugweg van Oudewater via Linschotensebos naar Woerden langs het water slingerd. Oudewater ligt in het midden van de route en in het centrum is het altijd gezellig op de terrasjes met mooi weer. Deze route is ook een populair fietsrondje dus met mooi weer heb je steeds een prooi voor je om naartoe te racen ;-)

Fast rountip with long straigt parts in the first half and nice curves alongside a small river in the second part. Oudewater is halfway the route and has some nice opportunities to relax and have a drink on one of the terasses on sunny days. It is also a popular cycling route on sunny days,
so if you want to challenge yourself there always a cycler to chase ahead of you ;-)

[English below]

Mooie ronde qua afstand en lekker door de polder heen. Niet veel kruizingen, dus je kan lekker snelheid maken en van de wind genieten of er tegenin vechten. Er zit 1 slecht stuk in de route, 1 km na Kockengen wordt het wegdek bar slecht en dat blijft een km of 4 zo. Je hebt dan echt het gevoel alsof je op een trilplaat rijdt en dat gaat na een km of 2 wel wat vervelen ;-)

Nice roundtrip though the country side. Not many crossing, so lot's of opportunities to make some speed and either enjoy or fight the wind. There's one really bad section in the route, about 1 km out of Kockengen the road gets really bad and that lasts for ~4 km. It feels like riding on a powerplate and I can assure you that gets pretty boring after a while.

After the "big" Apple event beginning of March where the iPhone SDK was announced I decided that I waited long enough. I had been patient for 9 months since the launch in the US and still there was no view any official launch in The Netherlands. No other option left then to get one directly from the US. With the current $-Euro exchange rate the price would be nice also (compared to prices in for example the UK, Germany and France).

Reading the title you may think: what happened in Take I? Well, it "disappeared" at DHL in The Netherlands because a gang of DHL employees was steeling iPhones. Not quite what you'd expect from a shipper like DHL. Rumors are that the gang managed to steel over a 100 iPhones that were shipped to NL. Some arrests have been done, but my iPhone did not turn up... probably already sold on eBay or something similar.

What to do?

Apple only ships to US addresses from the online Apple store, so what's the trick to get one when you're not living in the US? Obvious solution, get yourself a US address, have Apple ship the iPhone to that address and from there ship it to any place on earth. There are multiple companies in the US were you can 'rent' an address. I did it at myus.com and that worked out smoothly. For example, when the first iPhone got stolen they claimed the insurance money at DHL and within a week I had the money on my account. Thumbs up for myus.com.  When 'renting' an address in the US, make sure it is a regular address and not a PO Box because Apple will not ship to PO Boxes.

Now that you have the address, order the iPhone on the Apple Store and have it shipped to your 'rented' address. You can use a non-US credit card for that. Apple will sent you a confirmation mail with a link to an order page. The moment the iPhone is on it's way to your US address, you can track it using the FedEx tracking website.

After it has arrived at your rented address, you request myus.com to ship the package to your home address. At myus.com you can specify shipment instructions like:

  • The shipper you'd want to use (I used FedEx the second time)
  • The amount for which the shipment should be insured. Given the experience I had with my first attempt I would definitely insure it for the full amount. It does pay of if things go bad. A slight disadvantage can be that 'customs' in your country is going to charge you more import taxes, but hey, that's better than loosing the shipment. (till now I have to received an invoice for import taxes but that may come later)
After that it took only 3 days before I had it in my hands. Ready to make the first call? Not yet, Apple still locks the iPhones down to their official operators so you have to use a tool like Ziphone to unlock it. This is a very simple and convenient process, simply press the button, wait ~ 4 minutes and done. While it is doing the unlocking it will reboot the iPhone a couple of times and you'll see all kinds of interesting message scroll over the iPhone screen. When done you can slide in your SIM and make your first call. Dead simple. Start having fun and install additional apps using the installed (installed by Ziphone), my current favorites are Twinkle (Twitter client) and Navizon (determines GPS coordinates using GSM and Wifi cells).

While the iPhone was traveling from China (they're manufactured there) to the US and to NL I recorded times and dates on a Google Map. Interesting to see the distance it traveled. The blue pinpoints and lines are the trip from China to the US, the green ones are the US to NL trip. If you look closely there is an optimization possible, on the flight from the China to the US and from the US to NL it passes through Memphis, renting an address in the Memphis area might save you an additional day...

A couple of weeks ago we had a "Join Twitter" storm at Xebia. After the Linked-in, Plaxo, Hyves, Facebook and probably a dozen of other social network storms I initially decided to pass on Twitter. But then by colleague JCP Colleague & Friend Andreas posted an entry about twitter and that convinced me to join. Why? This sentence basically did it: "Twitter can promote your blog by sending out new blog posts." This could help to draw some extra traffic to the blog...

I immediately checked if there already was a plug-in for Pebble (the webapp that hosts this blog) that would allow me link my blog to Twitter. SinceI could not find something quickly and the functionality would be really simple I decided to create the plug-in for Pebble myself. So If all goes well each blog entry that I'll post or update to my blog will result in a Twitter update. And this blog entry should be the first proof of that ;-)

In case you're interested in including this in your own Pebble blog:

  • Download the TwitterTweeter.java source and compile it against your Pebble code
  • Add the resulting class (jar) to the classpath of your servlet container
  • Restart the servlet container.
  • Add net.vermaas.TwitterTweeter in the Blog Plug-in configuration as Blog Entry Listener and Comment Listener.
  • Add the following three properties in the Blog Plug-in configuration as Properties
    TwitterTweeter.password=[your Twitter password]
    TwitterTweeter.twitterUrl=https://twitter.com/statuses/update.xml
    TwitterTweeter.userName=[your twitter user name]

    ** UPDATE **:
    Sending out tweets on each publish, update, delete and each and every comment being posted proved to be a bit of an overkill. Therefore 2 additional properties are added:
    TwitterTweeter.blog.entry.tweets=[Determines on what blog entry actions to sent a tweet]
    TwitterTweeter.comment.tweets=[Determines on what comment actions to sent a tweet]
    (See comments in source for valid values for these last two settings)
    ** EO UPDATE **
  • Restart your servlet container
That should do the trick... I initially though that username/password had to travel unencrypted over the Net, but as you can see in the above properties list the TwitterTweeter.twitterUrl has a https prefix so username and password will be encrypted... no security constraints so what is stopping you from using this plug-in ;-)

A while back I blogged about OpenGTS and the masterplan was to use while riding the Eleven Cities Skating Tour. So winter came and went this year and unfortunately no serious freezing. We did have a couple of day with ice, but too little. Even the white Easter last week did not help. So this weekend I changed the skating blades for skeeler wheels and did my first skeeler trip and recording it using OpenGTS. I was a windy day so I expected to see significant speeds differences but the difference was only 5KM/Hour.

Below is the route, click on the pinpoints to see speeds, etc.
Skeeler route Woerden - Oudewater - Woerden

Last month the OSS/J Discovery API (JSR254) passed the final JCP approval. Just like the Order Management and Fault Management APIs, the TCK for the Discovery API is based on the OSS/J TCK Foundation. As explained here the OSS/J TCK Foundation makes the life of OSS/J TCK developers a lot easier and helps them to create better quality TCKs for their APIs.

The nice point about this particular TCK is that the Discovery TCK team was able to develop the Discovery TCK without me supporting them. I accidentally discovered that they released the TCK and that it used the OSS/J TCK Foundation and was pleasantly surprised. I hope it's a sign a maturity that teams are able to use the TCK Foundation without asking me for support once :-)

A while ago I described a nice way to integrate Google maps in the JAlbum Chameleon skin. One of the readers of that blog entry tried it on JAlbum version 7.4.1 and too my surprise it did not work. It appeared that the way I was retrieving the two extra variables from the JAlbum album project file was not forward compatible with version 7.4.1 (I developed it using JAlbum 7.3). With some help in the Chameleon skin forum I've now fixed it.

To use it you can still follow the description in the original post, but use the following two files:

Also the names of the variables in the JAlbum project file have been renamed:
# The root where the webalbum will be hosted
user.webroot=/webalbums/gero
# The location of the HTML page that displays the map and
# has the Google Maps code in it
# This location is bound to the Google Maps API key.
user.map.iframe=/webalbums/googlemap.html

A while back I was searching of a way to record the skeeler routes I was making. I own a Treo 650 and Bluetooth GPS mouse so the basic ingredients are in place. Reason for recording those routes was that I wanted to know the distance and was curious about the speed. This week I stumbled upon OpenDMTP and that does the trick.

OpenDMTP provides a J2ME application (other clients also available) that runs on the Treo and picks up the GPS info from the GPS Mouse. It then sends this information to the OpenDMTP server via a TCP connection. The OpenDMTP server is running on my server at home and records the GPS info in a CSV file (mysql DB also possible). This way you get the raw data. OpenGTS adds some more functionality.

OpenGTS includes the OpenDMTP server, but adds two webapps that you can deploy on a TomCat server. The first webapp (Events) can be used to retrieve the GPS info in a number of different formats (CSV, KML, etc). You can for example use this to integrate the data directly into GoogleMaps or GoogleEarth. On the URL you can include filtering criteria (e.g. on date).

The second webapp (Track) provides a nice web interface to the same data. It integrates with GoogleMaps and provides a live view on the GPS info. Really nice.

Both OpenDMTP and OpenGTS are Apache 2.0 license, so you can simple download it and use it. Both are Java apps so you cna run them on any platform. Once again I'm impressed with all the good OpenSource stuff that's available for free!

The only drawback of this setup is that you always need a network connection to be able to send the GPS data to the server. It would be nice if there was a way to simple record the data on the Treo and transmit it to your computer later... any suggestions are welcome ;-)