Playing DVD on Raspberry Pi

I’m using Raspberry Pi as a media center using raspmbc, which is amazing for streaming (bbc iplayer, 4od) and playing files from NAS and USB. For DVDs I still needed to connect my laptop to TV, which is just an unnecessary effort. Being geek I knew I have to enable RPi to play my DVDs.

First thing I discovered about RPi as DVD is that it let’s you skip all anti-piracy warnings!:

People say it will also ignore region protection (quite useful for my collection of dvds I bought in US)!

So what did I need?
* External DVD (I have actually bought a blu-ray external drive from ebay for 15.89GBP + 2.99P&P, which will work with my macbook air as well).
* Powered USB hub. Raspberry Pi won’t provide the drive with enough power. I’m actually connecting the DVD directly to RPi and using the hub to supply power only. It seems RPi can be powered from the same hub via normal USB connection, which eliminates a need for second power supply.
* A bit of the software:
** MPEG2 Licence – 2.4GBP from
** DVD plugin for XMBC (OOTB support doesn’t work good enough yet):

Et voila!

ps. when you buy stuff from ebay please check if the seller is paying taxes in your country (eg. is company registered in your country). If not, find another one even if you cost you a pound more. Thanks!

Three smart UI prototyping techniques

When designing a solution usually we need to show some slick and simple pictures showing user interface we plan to implement. This seems to be the only language both developers and customers seem to understand. Or maybe let me rephrase it to be more specific – screenshot has the highest likelihood that its interpretation by all parties will be similar. Preparing such images takes a long time – the most popular approaches I’ve seen so far are:

  • use your favorite graphic editor – e.q. Gimp,, Photoshop, Illustrator, etc. The result usually looks good, but is a nightmare to maintain, especially when you need big chunk of text or new large field.
  • mock the UI in Word – get a ugly wire-frame of the window only to forget to group the boxes and see them flying around the document after any change
  • … or Excel – Excel is good for everything, isn’t it?
  • create a form in html – happy styling, call me next week when you’re done!

The process was usually time consuming, but not any more! This week I’ve seen three smart prototyping approaches:

  • Balsamiq UI modeler – application to create any UI layout using drag&drop. The web-based demo (functional!) version is available
  • Microsoft Visual Studio Express – free, fully drag&drop RAD environment. It seems like an overkill to use it only for this reason, but consider the price tag!
  • Microsoft Visio – especially 2010 edition – nice, easy and integrated with Microsoft Office Suite

All above applications let you create both static window images and interactive UI prototypes. Next time you talk with your customer show him a “working” demo next day after you got first requirements – he will love you! And hopefully he will understand what you are actually trying to achieve.

Becoming a Wedding Software Developer

I’m currently preparing to become “a lawful wedded husband”, which involves buying tons of stuff. I was comparing various offers and one pattern emerged: if a thing X is renamed to “Wedding X” it automatically becomes at least two times as expensive. See for yourself: wedding photography costs 295-1500 GBP while corporate event photography 75-180 GBP for comparable time and effort. Wedding cakes are priced at 250-850 GBP vs event/birthday cake which can be bought for 10-80 GBP. So I decided: from today on I’m charging wedding software engineer rates!

You may ask what is a Wedding Software. I’ve analysed the differences between normal and wedding items and I found some common elements, which I intend to apply to software.

  • basic wedding offers are mediocre, so they enforce customizations and add-ons. For cakes you get a plain sponge cake with a white icing. You want some taste, maybe chocolate? No problem – just add +30% to the price :) Do you want some decorations? No problem, 25 milk chocolate stars pressed into the icing – +20 GBP! Or maybe you’d like to write something on the cake? No problem, …
  • customizations of wedding items are charge more for. The same text written on a birthday cake costs less than half of the price of the same text on wedding cake. Oh why?
  • you get a ribbon with everything. It’s a customization, but everyone is willing to provide you with this one for free.
  • you are not allowed to buy non-wedding items for wedding. They may fit, they may suit your needs, you may love it, but still your forced to buy something with a “wedding” tag
  • wedding items tell you that they are prepared for “your special day”, “most important day of your life” etc.

So, applying the same rules should improve our margins dramatically. What’s more we it should increase customers satisfaction level. So:

  • wedding software should be usable, but ugly and limited as possible. Create a blackAndWhite.css and doNotScaleForMobile.css and apply it to any page you release. Basic version of apps should run up to 800×600 and play sound in mono only. But plan ahead for at least 2 customizations for each feature, including (mostly) irrelevant ones like ALHMMO “Advanced Left-Hand Mouse Movement Optimization”.
  • customizations are sometimes called “extras” for a reason, they should be extra pricey. Just remember to tell the user that the extra stands for extraordinary usable and smart.
  • excel kills millions of lines of custom code a year, wedding software should not allowed users to use multi purpose tools like that. All data should be exported in unportable formats and all 3rd party imports virtually impossible. Or at least customers should be educated that doing so it a very nasty behavior and they should never do it. Hint: avoid question “why?”.
  • software should no longer be commodity or necessity. Wedding software should be luxurious and exclusive. Buying software should be advertised as a transition from the dark times to enlightenment. People live to buy software. It will take some time for them to understand that, the only way is constant repetition.

It worked for wedding industry, it will work for software also!

ps. I still haven’t found what the software counterpart of a free ribbon may be…

How British police made me set up my next project on the cloud

Today British police made available their new service – a complete street level map of crimes in England and Wales. The webpage made to all possible headlines in daily papers, tv and radio. The effect is that the service is virtually down and won’t be usable until the novelty wears out.

All web pages have a peak from time to time. It can by due to various reasons – PR publication, Facebook craze, advertisement campaign, algorithm change at google or change of cosmic radiation. You can predict some peaks, some will come as a total surprise. In both cases the effect is the same – the system overloads and you’re starting losing users. That’s bad, really bad.

What could site owners do to prevent this? There are couple of options:

  • Scale IT infrastructure to handle the traffic during peaks. This sounds good until you start calculating cost. If you scale for a peak 10 times larger than normal traffic, you will spent 10 times more money. And how can you be sure the peak won’t be 11 times normal traffic? Or 101 times? Or 1001? And what would you do if when the peak is over? You can donate unused computing power to Seti@Home, but I doubt your CFO will appreciate this.
  • Deploy to a cloud. When your application is running in a cloud and you foreseen incoming peak, because you’ve bought nation wide TV ad campaign for exmaple, you allocate more resources for some time (for example start some new instances on Amazon EC2). And when the peak is unexpected? You allocate more resources when it happens! Or if you set up the cloud to allocate additional resources automatically for you, you just sit and monitor if everything works smoothly. When the traffic calms down, you just switch off unwanted resources and stop paying for them.

“What’s the catch?”, you may ask. There is none. The whole process just requires some planning in advance. Designing application for scalability is slightly tougher, but it’s not a black magic. And it’s not even rocket science. There are many infrastructure scalability patterns detailed on web. You will have to make some technical decisions on load balancing, session sharing, fallback procedures. The testing is also bit more complicated, but only due to fact of additional features. The rest will be exactly the same as normal design and development job.

I have always known that police is a useful force ;)

Hacking LG Blu-ray player

Exploiting errors in software and firmware is actually more fun that using the device in first place. Recently I’ve discovered that HB354BS has an error that let’s one skip unskippable parts on dvd. No more annoying ads when I want to see next episode of ‘Allo! ‘Allo!.

When you put dvd in the reader, the player starts with first title. You can’t stop, fast forward or pause it, but the firmware let’s you go to device’s main menu – using home button on remote or playing with Simplink on TV. When in Home menu press “play” and the devices skips to first title after menu. You can now sit and watch or move to dvd title menu!

Enable auto-complete in shell (command prompt) in Windows 2003 server

Out of the box, command prompt (cmd) in Windows 2003 Server has the auto-complete (tab-complete) feature disabled. To fix the problem open regedit and create following DWORD keys:

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]

Open new command window and your TAB completion is working!

Ultimate Scrambled Eggs for Geeks

I just invented An Ultimate Scrambled Eggs. Here comes the recipe:
1/2 red grilled pepper
1 slice of ham
100g of king prawns
Green Jalapeño peppers
1/2 lrg red onion
1 lrg carrot
1 lrg tomato
2 eggs.
Chop veggies and ham and fry with prawns and three drops of Tabasco until carrot is tender. Add eggs and fry a bit more.


Export Oracle Database to SQL

For those of us who have some experience with MySQL exporting the data to sql just just a normal way of working. No big fuss, just start phpmyadmin, select export and it’s done. With Oracle is not as easy – you can create dump using exp and import it using imp. Which is useless if you need to modify some data in between.
Google suggests many shareware tools to do the export, which will cost you at least $49. I, on the other hand, suggest using Free and supported SQL Developer from Oracle. It has tons of great features, one of which is Database Export. Just follow a simple creator and you’re done!