Category Archives: Techie stuff

Android: What are Google going to do with PIM?

From the early days of palm-top devices, through early smartphones like the Nokia Communicator, and up to all the iPhones, Androids and BlackBerrys of today, what the serious users have been looking for has always been PIM: Personal Information Management. They are looking to have their email, calendar, contacts and notes available at all times, on a small portable device. Indeed, as am I. I have been using my Nokia N95 for a couple of years now, and there really is something to be said for having my calendar with me at all times, just by the virtue of carrying my phone.

So what have Google done with Android? They’ve put Google Mail, Google Calendar and a Contacts synchronization to Google Mail in their fine mobile operating system, which goes some of the way. They have also, I am told, put in a regular IMAP client, for those people who don’t use Google Mail, for instance for corporate email. But, it seems, the fun ends there.

There’s no direct support for SyncML, and nothing, it seems, for Exchange. Sure, you can go through Google Calendar for your calendar syncs, and I presume you can forward your mail to Gmail – if your corporate policy permits that. But when it comes to direct sync for third party providers, no luck.

It’s starting to look a bit like what some of us have criticized Apple’s software for doing: If you don’t use it like Steve Jobs does, you’re out of luck. In this case though, even more so: If you don’t buy into Google’s services, no luck with Android’s default apps.

So someone could just develop a sync adapter for the built-in calendar. The source is available under the Apache license, so why not? Here’s why: Google have stated that the API for the built-in Calendar is not public and not going to be for 1.6 or 2.0, which leaves a worrying question: Are Google only going support their own services from the base OS?

It’s certainly not completely unthinkable, as Android has been hailed as an open platform, so anyone can just code a Calendar app, right. Right? Well, maybe. But selling smartphones with no proper PIM solution for anything else than a single provider doesn’t seem like a viable business to me, and I really do hope Google make up their mind to do things differently, and support direct over-the-air synchronization with SyncML, CalDav or even Exchange systems.

Xydroid – Xymon monitoring on Android phones

Finally, an update for the blog! Well, what has been going on with me? I’ve been busy at work, and perhaps even busier with my studies. I’m currently doing a course on Concurrency, which got me started on a bit of lovely threaded java programming again. It’s nice to be back to writing a bit of code, and boy have things gotten better over the few years since I last did anything major with it.

In other news, a couple of friends have bought themselves new Android phones, the HTC Hero. More and more of them are coming now, and it really looks like a wagon I’m liable to jump on any day now. They just need to release a new revision of the hardware, preferably something with one of the new Snapdragon CPUs in it …

So what could be more logical than to do a bit of programming for the Android platform? I struggled for a short while to figure out anything worthwhile to write, but then I came up with this: How nice would it be to get the status of your monitored systems direct on your phone? No more needing to browse to the hobbit Xymon system now, just a look at the phone to see how everything you care about is doing. Well, in theory. Except I don’t have the phone yet. Slight flaw in the plan.

None the less, I’ve made the software, in a sort of early beta version, and it’s available on a webpage of its own: Xydroid. Feel free to have a look .. if you want to actually use it, you should probably get in touch, and I’ll be sure to work on it enough that it will actually work properly as well.

After I’d started writing the software – actually, after I’d gotten quite far in the process – I found out that other’s have actually done the same as well, in the form of Xymon Monitor, for which they charge €2.99. Well, at least this might end up as the slightly cheaper alternative 🙂

Synchronizing Beehive 1.5.1 with Fedora Directory Server

The directory server we use at work is a Fedora Directory Server installation, running 4 nodes in a multi-master setup. We’ve been looking into migrating it to a Sun Java System Directory Server Enterprise Edition (sic) for a while, since I returned from the course in the US, but I haven’t had the time to get a proper test installation running yet. With Beehive 1.5.1 out, and given my enthusiasm for that, I decided to try and see if it would work with the Fedora Directory Server, even though it wasn’t supported.

I went with the template for synchronizing a Sun directory, as my sources had told me the two were very similar, in fact originally from the same source tree. The templates are pretty readable, but have manual handy for checking what some of the stuff means. One caveat: The attributes in the template are generally written like this:

<profile_name><enter profile name here></profile name>

What they expect you to write, is something like this:

<profile_name>Test profile</profile_name>

The extra angle brackets are just put there to confuse us 😉

My main concern at this point was that while I could define specific attribute values to mean external mail or not, it didn’t seem like this could be set merely by the presence of absence of attributes. I may have to re-think the directory structure slightly to address this.

When I added the profile using beectl, it turned out not to validate. Beehive was unable to find the directory server changelog. As it turns out, Beehive relies on an “old-fashioned” approach to synchronization between directory servers, and in fact one that can be enabled using a “Retro Changelog Plugin” for the Fedora Directory Server. So, if you’re on Google, trying to figure out how to make Beehive work with Fedora Directory Server: Use the Retro Changelog Plugin!

After setting this up, things seemed to just work. Now, there’s another little caveat: Beehive works with a concept of “principals”, that are your login credentials; In the default case your email for login and for instant messenging, and your phone number for voicemail. I changed the mail principal to be the user’s UID, but left them for IM and voicemail – meaning some users weren’t imported into Beehive, as it insists on the attributes used for this (mail and telephoneNumber) being unique in the directory. We have people who rightly have the same telephone number, for instance sharing an office, and Beehive doesn’t seem to like that. My idea of how to handle it: Make seperate attributes for voicemail-principals and instant messenging principals if you’re going to need those things, or disable them in the sync profile.

I would rather like for all our users to have an instant messenging principal that’s their UID @ some domain. I haven’t been able to find the option for it yet, and I’m not sure if it exists at all … if you know it doesn’t, and you’re a Beehive developer: Go fix this! 😉

Oracle Beehive course: The course

I happened to arrive rather early at the first day of the course, having gotten up very early due to a bit of jetlag. I’d met some of the other course participants in front of the hotel that morning, and we quickly got to talking about the course and our expectations. As it turned out, a large portion of the participants were from academia, either universities or in one case a research institution. There were a few people from real businesses as well – and over the course of the week, quite a few people from Oracle who were either in the course, or just popped in to say hi.

The location was a decent, not very conspicuous building on the edge of the Oracle campus – in fact, across a bridge over a small stream from the main Oracle campus. Free drinks and snacks were provided, which is always a nice bonus 😉

The course itself consisted of 20 lessons in all, ranging from architecture overview and installation tasks over how to use the system as an end-user, to system administrator tasks and backup. Most of the course lessons featured a practical exercise in addition to the traditional classroom slides and lecture-presentation. After going through the initial presentation of the course structure and the Beehive architecture, we proceeded to trying to install Beehive ourselves on our prebuilt OVM-machines. This turned out to be a bit more of a challenge than we had first expected.

The installation procedure for Oracle Beehive is quite simple – at least if you already have the database set up and preconfigured, which Oracle had kindly done for us. It’s a lot of clicking “next” and typing in well known information, such as your database server, and which system passwords you would like. You also have to decide on your “enterprise name” at this point, which seems to be a quite static and somewhat exposed parameter, so it’s probably something one would want to have thought about beforehand.

The actual installation process starts after these few windows of clicking “next” – and it’s quite a long procedure. Granted, we did run the databases and the Beehive instances on the same virtual machines – you might not want to do this, for several reasons – but it took about half a day. This would have been okay, if the installation had been just that – okay. But for a small number of the course participants, it didn’t go quite well – and for one, the one sitting next to me, it took several tries over the next days to get a working installation.

This experience of installations failing was not a new one for me – I had the same problem back in December, when I tried installing 1.4.1. We were running an internal 1.5.0 beta, though, and both the course lecturers as well as the visiting Oracle product managers ensured us that this was because we were running on low-spec uncertified Oracle Virtual Machines.

At first, the curriculum seemed very basic – the first chapters were installing the software itself and the management software, Beekeeper, which wasn’t very complicated. However, it quickly picked up on the second day, with in-depth coverage of areas like LDAP synchronisation and logging. We had a lot of material to get through, but the schedule was loose enough that we were allowed a full hour for lunch, frequent breaks and time to spare for when the several different product managers for parts of Beehive popped in to say hi.

A few of the lessons were not accompanied by practical exercises, in particular the Exchange coexistance part. While the theoretical coverage was good, anyone wishing to implement this should probably arrange for some hands-on practice in addition to this course before attempting. Most of the practical exercises were good, though they all had very explicit instructions, and didn’t require much on the part of the student to complete. Still, they allowed a good feel of how to work with Oracle Beehive.

In conclusion, I was very happy with the course, but in particular with the amount of contact with the product managers and developers – something that’s not likely to make it into the final curriculum 😉 Still, I wouldn’t hestitate to recommend this course to anyone, and I would also recommend taking a good look at Oracle Beehive when choosing your next collaboration software. More about the product itself in a later post.

Oracle Beehive course: The trip

A couple of weeks ago, one of my bosses came into my office with a curriculum description for a course on Oracle Beehive. He asked me to go it over, and tell me what I thought about it. After a quick flick through it, it seemed like a nice course to get some more information on the product, as it’s something we have been thinking about deploying. My boss asked me if I was available to go, March 9th through 13th. To California.

I left home at 3:00 on the 8th, where a nice friend of mine had agreed to look after my car for the week, meaning I could drive to the airport, and not have to get a bus there in the middle of the night. It turned out I was there rather too early, but early is better than late in these cases. So at just around 6:00, I was able to board an airplane for the very first time, for a quick hop to Amsterdam, but while I was on the plane I was wondering why is amsterdam movie rated r?

Yes, that’s right, I’d never flown before. And the flight didn’t start out too well, with what felt like rather a bumpy ride. The cabin crew seemed cheery enough, so at first I thought it was probably just normal, and wondered how I’d survive the trip across to the US – but then the captain turned on the fasten seatbelt sign, and mentioned that due to all the turbulence, he’d requested permission to fly a bit higher up. Phew! It turned out flying was a lot more comfortable than my first experience had shown, and we got to Amsterdam before time, at around 7:30.

Amsterdam airport, more correctly known as Schiphol, seemed like a nice place to be. It was certainly a lot nicer than Billund, and as I later found out, nicer than San Francisco Intl. After a couple of hours wandering about and using the wireless there (at €12/90 minutes) they finally let us board the plane – after a security check right at the gate, which seemed a very silly place to put it.

The plane for the second, much longer, half of my journey was a newly refurbished KLM MD-11. I was seated in economy, which didn’t bode well, but the plane was only about 2/3rds full, so almost noone had to sit directly next to anyone, meaning a bit more room to move about ones arms. The seats had screens in them, and once we’d gotten airborne and on the way, they were completely individual “entertainment systems”, capable of showing movies, episodes of tv-series, playing music, audio books or games, or following the in-flight tracking system.

I watched Quantum of Solace and WALL-E on the way, and enjoyed the food, snacks and drinks the very polite cabin crew were serving. The food wasn’t exactly excellent, but it was very decent, and we even got proper metal cutlery to eat it with. Sleeping wasn’t very easy, but I did manage to fall asleep for a couple of hours or so, before landing at San Francisco Intl. at about 14:25, only a short time after we’d taken off at 11:10. Okay okay, there was the small matter of the time difference on top, making it around 11 hours total … yawn.

The hotel, Sofitel San Francisco Bay, were nice enough to pick me up in their shuttle and save me the $30 cab ride, which was a nice touch. The hotel itself was very nice, and while my room wasn’t a lagoon-facing room, it still had an excellent eastward view of the sunrise over the mountains in the morning, and a by my standards huge King-size bed. Everything was nice and clean, and I even managed to unpack and hang my clothes before slipping into a more coma-like sleep.

Google Search via IPv6 in Firefox

I’ve been on a bit of a roll with my IPv6’ing the last few days, getting reverse DNS up and running, the mail server set up properly and so on. So by now, you should be able to reach me at mihtjel@mihtjel.dk – if you have IPv6.

The last thing that really bothered me was that despite having the IPv6 Google as my start page in Firefox, all my searches were still IPv4. That is, until I found out how to create an “Open Search Description”-document. If you want, you can add Google IPv6 search – or view the file yourself before doing it.

Getting back on the IPv6 wagon

Over the last 7 years or so, I’ve played with IPv6 from time to time. I’ve had tunnels set up several times, and they’ve fallen over again due to kernel upgrades, or just because I didn’t really use them. Now I’ve set up another one, but this time, I have found some actual uses for it – sort of, anyway:

1) My web server runs IPv6, and DNS works for it. This blog now works with IPv6 access. I’ve already had a couple of hits on that connection, but not very many. From earlier experiences, I know that this means some people will have a hard time getting to it, due to having a non-working IPv6 setup, and browsers prefering IPv6. Well, if that’s you: Get with the programme, and get your IPv6 fixed.

2) I made my phone – a Nokia N95 – work with IPv6. Actually, I’m bragging where I shouldn’t be: I figured out how to get my wireless network to accept the phone, and as soon as that worked, the phone picked up an IPv6 address, and I could access the test site I’ve been using, http://ipv6.beijing2008.cn/.

I was a bit surprised at how easy it was, but it seems that the consumer end of electronics is really getting ready for IPv6, even though various routers and ADSL-modems aren’t. Next step must be to convince the boss to let an IPv6 VLAN close to the servers so people can start using it for something.

EVE Online – an exploration site

I’ve been playing some EVE Online, though recently, I’ve not been on there too much due to work and other stuff taking up my time. However, I thought I should document some of my experiences in there here.

One of the latest things I’ve picked up on is exploration. The idea is that you drop some probes from your spaceship, use a scanner on them, and try to figure out the location of hidden sites in the various solar systems. It sounds amazing, if you’re among the types who’d try to go across the edge of the map in games like World of Warcraft, and it is quite fun – though, in the areas I’ve been working, not as cool as I would’ve wanted. I’ve found identical sites countless times, and while that’s of course the nature of the beast in games like this, it is a bit of a letdown.

I did however get an escalation from one of the sites I found. Escalations send you on to other solar systems, to continue the battle you’ve been doing. The one I did was called Mindflood, and I’ve documented what I found there. Even though I didn’t make much money – I ended up losing the most valuable item I found two days later from a really stupid decision in battle – it was lots of fun, quite exciting, and showed that someone had really cared about the experience for the players.

In the near future, I’ll try to write some more on the things I like and dislike about EVE Online on this blog, so stay tuned.

NVIDIA and their crappy drivers

I upgraded to the latest drivers for my otherwise lovely NVIDIA 8800GTS graphics card. And of course, it had to break something, didn’t it? This time, it made video playback do a lot of tearing, due to the (sudden) lack of vertical sync support for regular DirectX playback. I think I’ve managed some settings for my player that sort of minimizes it, but it’s bloody annoying that NVIDIAs idea of quality control seems to be closing their eyes and ears to avoid listening to their users, and just releasing more crappy “updates” that break more than they fix.

I shan’t be buying any more of their hardware.

By popular demand: Nokia N95 Review (part 1)

Since radiac asked me to, I’ll post a sort of review of my phone, the Nokia N95. Before I got mine, I read a bunch of reviews, that mostly mentioned all of the features of the phone, and the stuff it did – and then, in the last two paragraphs, listed that by-the-way, the reviewer hadn’t had that good battery time on his phone.

Things are going to be a little different in this review – I expect that you’ll have read a bunch of feature lists, so I’ll focus on what the phone doesn’t do:

Battery time
There’s no way around this. Oh my. The phone has a 900 mAh Lithium-polymer single-cell 3.7 volt battery. You could use such a battery to power model airplanes; I have a couple a bit like it for that purpose. It’s probably great for a phone, too. In this phone, on an average day for me, it will run out after about 24 hours. 24 hours. Don’t expect to get more battery time than this if you use it’s email fetching, power up the web browser a bunch of times to check things on Wikipedia, send a few text messages, and call for 10 or so minutes.

If you plan to use the GPS: Get a car-charger. I have used the GPS in the field for geocaching – I have a review of that elsewhere on this blog – and it seems to keep its charge fine when in the field. But invariably, when I get home, I have to charge it up. The car-charger isn’t really that expensive, I paid around £7 for it.

Recharge the phone every night. I’ve once had the phone run out of battery for me during the day, after I’d been using it quite a bit for web browsing, but mostly, It’ll work just fine all through the day on the nightly charge.

Camera quality
This is really the party piece of the phone, according to many reviews. A 5-megapixel camera with Carl Zeiss optics. Wow. Don’t be fooled. This is a mobile phone, not a camera. The camera is great, for a mobile phone, and probably passable compared to that of a compact camera of the same dimensions. But it is absolutely no match for my 6 megapixel (only a bit more) Dynax 7D SLR. The compression, especially, is terrible! It’s great for little snapshots, and it does fit my pocket better than my SLR-and-6-lenses, but I’d never use it for anything I really cared about.

All that said, I like that it has two camera, so you don’t have to be awkward if you ever video phone (I don’t), and I like that there’s a decent flash on the main camera. I don’t like the shutter thing you slide in front of the camera – it comes open in my pocket a bit too often, which unlocks the phone and starts the camera software – even if it’s only half way open.

GPS navigation
Reviews have proclaimed that this phone has turn by turn navigation. Nokia has wisely steered clear of such claims. Let’s set it straight:
This phone does not have built-in turn by turn navigation

Important part: Built in. You buy it. It costs a fee. It’s available as a 3-year subscription, and it isn’t expensive – but it isn’t included. But there’s a trick. Using the built-in maps, you can ask it to plot a route for you – that’s a free service, and it works. Preload the maps onto your phone, and it doesn’t even have to use the net connection for it. You can also – with firmware 11.0.026 at the least – ask it to track you as you travel along the route. Doesn’t cost anything, but it doesn’t tell you to turn either – you have to figure that out on your own.

Supposedly, the navigation you buy is really good, and works great, and the maps are updated free of charge, and all is good. I tried out Tomtom, couldn’t get it to work with the built in GPS. Someone mentioned that there is other stuff coming out that’ll do turn by turn navigation – but none of it is free. So, if you buy this phone, beware that you need to pay an additional fee for the navigation.

Software stability
The firmware I have on my phone is version 11.0.026, I think. Presumably, Nokia has gone through some 11 versions of the firmware, polishing it, weeding out the bugs, making it stable and nice.

They’re not very good at it.

They’ve ended up with a phone that I had to do a hard reset on (*#7780#) after owning it for some 27 hours. The web browser refused to start. It worked fine afterwards, and restoring my settings from the microSD was fine as well. But it isn’t really a sign of stable software.

I have also experienced the web browser crashing, or running out of memory, all to often for an “Internet Phone”. There also seems to be some kind of garbage collection running, picking up things like the GPS program that I had left running because I wanted to check a web-page while still knowing where I was… Not good.

It isn’t terrible, and it works most of the time – not worse than most other phones, I’m told. But it definitely doesn’t look like something that’s gone through 11 rounds of stability improvements.

To be continued…
I can’t really come up with more right now – I wanted to write all the positive stuff as well, but I will have to do that some other time…