Fun with phones and python
For a diversion from trying to get my head around the value or lack of value of WCF, I took up a project only a geek could love. I wanted to be able to manage my cell phone data from my computer, and it had to be with software that could run in debian linux because I didn't want to have to reboot to windows just to get something off my phone. Enter BitPim, an open source package that works with a variety of phones from a variety of carriers.
Though it's in release mode, bitpim is not the picture of polish. It tries to strike a balance between the IMPOSSIBLE US phone market where no two carriers will share any standard way of doing anything and users who might actually think they shouldn't have to get a different piece of software for every phone they buy. Bitpim has a gui that supports a kind of neutral view of a phone: numbers, contacts, calendars, ringtones, wallpaper, media and so on, and then supports adapters for each phone. You might imagine there are some challenges with that and there are.
My phone had a definition based on the Verizon phone but naturally my carrier had tweaked it their own special way. Pure hex dump binary hacking and I loved it. I created a new phone definition, subclassed from the Verizon version, tweaked the definitions, something the application design had made very centralized and clear and eventually got my calendar going back and forth with the phone, alarms, repeats, days of weeks and all.
A revelation about this to me occurred later. This was the first time I had ever done anything in python, but learning python was a total non factor. I found an online reference somewhere, looked up a few things, looked at working code for other phones, and just coded. I'm sure the overall design of the software helped, because I didn't have to deal with the integration with wxWidgets at all, and I would think that could require a bit more learning. But the fact I could just read the code and a little documentation and mostly focus on the application seems to be saying something to me about python. Hmmmm.....