The corporations and me

The other day I was listening to the Linux Outlaws podcast during my commute; it was a special episode to look back on the year 2010. At the end of the episode Dan, Fab and their guest Ade Bradshaw each picked something they will remember this year by, and Dan said for him it was the ” [...] year of mergers and lawsuits and aquisitions [...]“. Thinking back on these things it suddenly hit me: my life as a software engineer in Hungary is surprisingly strongly affected by large US-based corporations.

I’m making a living developing Java applications, and the current turmoil around Java worries me somewhat. Hopefully Oracle will learn from its recent mistakes that upset a big part of the community, and Java will continue to thrive. However, I’m actively looking at languages and technologies beyond Java, so as not to put all my eggs in Oracle’s basket.

I’m using several bits of Apple hardware: a home MacBook, a work MacBook Pro and an iPod Classic. Both laptops are running Mac OS X, and I haven’t hacked the iPod either, so there is definitely a strong link to Cupertino. However, I just couldn’t bring myself to buy an iPhone, when Android started catching up.

This brings us to the next West Coast company I’m relying on: Google. I have three Google accounts (two personal, one work), all linked to my Android phone. Although I do have a fairly up-to-date offline backup of my mailboxes, a disturbingly significant part of my online communication and identity relies on Google not being evil or not screwing up.

I could go on and mention Microsoft, Facebook, Twitter and all the rest, but I think I have made my point. Part of me thinks it’s amazing, that we have all these great companies and services we can use to learn, communicate and create in ways previous generations would have never imagined. On the other hand it’s somewhat unsettling to think of the implications of placing so much of our data, money and career in the hands of executive committees thousands of miles away.

Developing an XBMC plugin — Part 2: The anatomy of an XBMC plugin

This post is the second part of my series on XBMC plugin development. In Part 1 — Documentation and tools I discussed the documentation and tools necessary to get started. If you haven’t read that, I suggest to do so.
In this installment I will go over the steps of importing a simple example project into PyDev, and walk you through the actual Python code.

Getting the source

You can get the source code from GitHub, or you can simply download this ZIPped Eclipse PyDev project. Either way, the first step is to put the files in the addons folder of your XBMC installation. The location of this folder depends on your operating system:

  • Linux: ~/.xbmc/addons
  • Mac OS X: ~/Library/Application Support/XBMC/addons
  • Windows: C:\Program Files\XBMC\addons

Using Git

Creating a new folder called plugin.audio.tutorial, and run git checkout from there. The repository location is: git://github.com/zstorok/xbmc-soundcloud-plugin.git.

Using the ZIP file

If you are using the ZIP file, you can simply extract it in the addons folder, since it already includes the plugin.audio.tutorial folder.

Testing with XBMC

Although the location of the addon folders should be unambiguous, it’s best to make sure and check if XBMC actually finds the newly added plugin. Launch XBMC and go to Music | Music Add-ons to see if the plugin is picked up by XBMC. You should see an XBMC Plugin Tutorial item in the list, just like in the screenshot below. Go ahead and explore the tutorial plugin to explore what it does.

» Read more…

Developing an XBMC plugin — Part 1: Documentation and tools

In one of my previous posts I wrote about learning up-and-coming programming languages and listed a few I was particularly interested in. One of these languages was Python, and in the last few weeks I spent a couple of hours getting familiar with the language and the built-in class library. Being an avid Eclipse user I installed PyDev, which was a great help with its content assist and syntax checking.

However, I prefer learning by doing, so after a while I started thinking about a real-life problem to solve with Python. Being a fan of the XBMC cross-platform media center application — which can be extended with Python scripts — and the SoundCloud music sharing website — which exposes a nicely designed RESTful API — I decided to develop a music plugin for XBMC to access music shared on SoundCloud.

In the first post of this multi-part series I will provide an overview of the documentation and tools available at the time of writing. Stay tuned for the next parts, where I will go into more detail and post some actual code. The outline of things to come:

» Read more…

How to identify a counterfeit Nokia BP-6MT battery

A few weeks ago I purchased a Nokia BP-6MT battery at a mobile phone shop (Fortuna GSM) in a local shopping mall (Pólus Center). I was looking for a replacement battery for my Nokia N82, because the battery I’ve been using for more than 2 years started to swell and even slightly deformed the back cover of the phone. The official Nokia store in the same mall didn’t have this particular battery in stock, but I kept looking around in other stores nearby, and eventually stumbled upon one in the above mentioned store. The packaging looked good, it even had a Nokia hologram — albeit a bit darker than the one on my original battery, but I haven’t noticed that in the store.
When I took it home and opened the packaging, I decided to google for instructions on how to check the authenticity of a Nokia battery. The hologram obviously failed the test, as you will see from my photos below. After that I started to notice other small signs, like the low quality printing of the included package insert. I decided not to risk damaging my phone or myself by using a counterfeit Nokia battery — they have the reputation to explode —, so I went out and bought an original from an official Nokia shop in a different shopping mall. The differences were painfully obvious after comparing the counterfeit and the original battery, so I decided to take a few pictures and post them here, maybe I can save somebody from buying a counterfeit Nokia BP-6MT battery. » Read more…

How to load and compare arbitrary XML files with EMF

If you are somewhat familiar with the Eclipse Modeling Framework (EMF) you might know, that you can generate Ecore meta-models from UML, XSD and annotated Java interfaces. This feature is well-documented and it is a great way to lower the barrier of entry for new users. However, the textbook approach requires you to generate an Ecore meta-model, and the corresponding Java implementation.
In this article I will show you how to load an arbitrary XML file — provided you have the schema for it — into EMF, without generating any additional artifacts. Why would anyone want to do that, and deal with instances of DynamicEObjectImpls as opposed to meaningfully named domain model classes? In my case I only needed a way to feed the loaded objects directly into EMF Compare, in order to compare two XML files by content, as opposed to textual representation.

» Read more…

Great news for Android and Maven fans

Although the official Android SDK caters for most needs of Android developers, it seems that the Android community is willing to improve the existing tools to suit their taste. A prime example of this is the m2eclipse Android integration and the addition of Android artifacts to the Maven Central repository (see Jason van Zyl’s post at the Sonatype blog for more information).

Looks like it’s easier than ever to get started with Android development in Eclipse, I will have to try that for myself this weekend…

Android and OSGi

It’s official: I *want* an Android phone. I’ve spent quite some time eyeballing the most recently released ones, but haven’t made up my mind yet. One of my colleagues got an HTC Desire recently, so I will wait a bit and see how well it works for him. His biggest gripe so far – in line with most opinions I read online – seems to be the battery life: it needs to be charged every day. Also – he explained to me – you don’t really quit Android apps when you close them, they hang around in the background, ready to be reactivated. This strange behaviour got me intrigued, so I did some online research on this topic. » Read more…

Venturing beyond Java

Lately I’ve been thinking about doing something a bit adventurous: venturing into the land of the “cool” programming languages.

I really like programming in Java. However, after all the time I spent learning various aspects of the language itself and numerous useful third-party libraries, I would like to broaden my horizons. After looking around on the web I found a great summary of various methods to measure the popularity of programming languages. » Read more…

Unofficial Eclipse client for StackOverflow.com

A few weeks ago I gave a quick demo of the new RESTful capabilities of the Eclipse Communication Framework (ECF) at the Eclipse Helios DemoCamp in Budapest.

Screenshot of the unofficial StackExchange Eclipse client plug-in


» Read more…

Bad Behavior has blocked 1434 access attempts in the last 7 days.