Comux 011001


When the Contribution Model Fails

I'm a big advocate of Open Source software. I feel that there really is no reason to close software source for the most part, and in general, closed libraries are very frustrating for me as a developer. However Open Source has it's flaws. The contribution model may be one of it's greatest strengths, but is also a big weakness.

What leads me to this "revelation" is an issue which i've been considering getting involved in and fixing. It's a Gimp enhancement request, which is probably the thing that annoys me most about Gimp at this moment. The "bug" is the lack of grouped layers in Gimp. Obviously, not having groups for layers can make a large document really convoluted, but more than that, i often find myself wanting to make modifications to multiple layers at once, such as opacity or translations. So what's the problem? Surely if they know about it and it's in their list, i should either do it myself or just be patient?

It's a 7 year old feature request.

I do understand that "implementing this feature is not trivial", but 7 years is not even close to acceptable. I realise they are suggesting it might make it to version 2.10, possibly in 2011 or 2012? Before the end of the world i'd hope. But seriously, in the commercial world, people lose their jobs for taking over a month to implement features like this. This is not easy to do, but in that time the KDE guys have written Krita from scratch, which may end up soon overtaking Gimp in features, and already has grouped layers. To me it almost seems like no one wants to take on the task.

What happened to open source being the cradle of innovation, instead of lagging behind commercial competitors? In Gimp, you have the Open Source stereotype. It's not as good as commercial counterparts, and lags several years behind in features. Some Open Source projects really seem to suffer from this. I'd suggest that X.org is another that just can't keep up with feature requests. Is it because of a poor codebase that people struggle to build on? Is it because of lack of interest in the project from outside devs? I'm not sure, but it really does bring down the quality of some big Open Source projects. 

On the other hand you have the entire KDE team as an example of real innovation. The KDE desktop is years ahead of any competitor, the codebase is beautifully clean, and they are churning out major features in just a few weeks. My example of Krita is a very pertinent one. It may turn out to be a big threat to Gimp in the long run, especially because it is now cross platform. The pace of development is clearly much faster, and it seems that it already has some of the modern features Gimp lacks.

In the end this does highlight some of the problems with the contribution model of Open Source software. Some projects fall behind, potentially become aged, while others forge ahead. How do you prevent a split like this? Should similar projects collaborate? Does that then remove an element of choice? The way i see it is that if it is needed enough, someone will do it. Maybe thats why Krita is moving so quickly, compensating for Gimp's inadequacies? It's probably also why Google are going to replace X.org in Chrome OS. After all sometimes its good to do some spring cleaning.


Opera does something right, again!

In KDE, i disabled the window border, and in Opera moved the tabs to the right... this is a browser experience i can certainly get used to!


Adding some shine to your Pepper

So, with my new domain, having my own wiki, part of the intention is to start a series of tutorials. The immediate focus is some simple tricks in Gimp for programmers, since programmer art generally has the rep for looking tacky and cheap. I don't claim to be an expert designer, but i do try and keep my art standard above a certain level. The first tutorial is a simple button with a bit of shine and can be found here:


But... i've embedded it below anyway :)

Creating a simple button with a bit of shine

  • Open Gimp and Create a new image with canvas size 128x128
  • Right click the Background layer, and click Add alpha channel
  • In the Select Menu -> All
  • Select -> Rounded Rectangle ( Set Radius = 50 )
  • Select -> Invert
  • Edit -> Clear ( or just press delete )


  • Select -> Invert
  • Use the Bucket Tool to Fill with color #3d3d85
  • Create a new layer above the background
  • Use the Ellipse Select Tool with Ctrl + Alt depressed. Using Ctrl + Alt creates an intersection with the existing selection created an intersection.
  • Select an ellipse like this:


  • Use the Gradient Tool with the Tool Options setup with a gradient from White to Alpha
  • On the new layer: Start far below the image ( 50 - 100px below ) and drag to a few pixels before the top of the icon, creating the gradient


  • Create a new layer between the background and the highlight layer ( Naming layers is good practice! )
  • Select Forground Color: #2a2a5a
  • Use the Gradient Tool with the Tool Options setup with a gradient from #2a2a5a to Alpha
  • On the new layer: Start just above image ( 10px ) and drag to just over half way down the selection


  • On the background layer in the toolbox, right click and select Alpha to Selection, thus selecting the nice rounded rectangle.
  • Create a new layer directly above background again
  • Setup a gradient from White to Alpha
  • Set the Gradient Shape to Radial
  • On new layer: Start just below top left rounded corner, and drag to just off ( 10px ) the bottom right corner.
  • Set layer opacity to roughly 50%


  • Create a new layer directly above the background again
  • Select the Paintbrush tool
  • Change the current brush tool option to Pepper ( yes the green pepper ) and set the scale to 1.70
  • Draw the pepper in the center of the new layer


A domain with a wiki

Apologies for the very extended AFK, work has been keeping me busy. However, to compensate, i have many fun things in store. Firstly, i have finally bought my own domain, and have some basic stuff set up, including a wiki. So without further ado,



"Microsoft Hatred is a Disease"

Thanks to @mjhutchinson on twitter for the screen shot.
Btw, sorry for all the AFK, will return shortly. ish. sometime. i hope. soon.


Game Review: Swords and Soldiers

Since the Wii has hit the market i've been saying that it is the console that will allow for decent strategy play. And so far there have been very few attempts to make it work. That said my understanding of Wii sales is that the console, Nintendo, Sega games and Guitar Hero have made up most of the sales, and everything else has been gimmicky nonsense. Wiiware is really populated with a lot of mini-games, and this may or may not reflect exactly on the demographic that own Nintendo Wiis. But then there is Swords and Soldiers. As a strategy fan, it had to be bought.

The thing that interested and worried me the most about this game was the fact that it is side scrolling strategy. I'd never heard of that concept before this, so i was very wary of the 1000 Wii points i spent. At first the game strikes you with the great visual style. Cartoony interface and fun sounds and music make a good first impression, however you instantly know this isn't going to be a hardcore 100+ unit strat game. I wasn't expecting depth at first glance, but it is true that a good strat game doesn't need complexity. And the gameplay really illustrates that.

The single player storyline is ridiculous, but tongue in cheek from the start. You're a Viking, preparing a BBQ and your butcher is attacked. You then need to send troops to save him. Hilariously thought at, and at no point meant to be serious. The feel of the game fits in perfectly with the story and makes for an enjoyable laugh.

But this still doesn't tell you how a side scrolling strategy holds up. Gameplay is vital in a strat game, which is why most strat gamers are still playing Starcraft and not any of the newer games. So here's the deal: Its good. At first it's odd with minimal micro management, but you grow used to the fact that you don't control individual units. To upgrade your tech tree ( which has about 10 options depending on race ), you spend gold. This normally unlocks new units and abilities. To build a unit you just click on the icon, and instantly the unit heads off to fight or mine. There is no micro of units. the maps are normally linear, so the fighting units just walk continuously in the direction of the enemy. Abilities are cast from a global mana pool ( which auto regen's and some abilities add to it ), and these give you some micro control over the battles. Dropping Aztec cages on enemies, casting Viking lighting or sending a massive Chinese Dragon across the entire battlefield are just some options you have, and they really add depth to the game. The game is well balanced with costs and cooldown times, for example, the Chinese have very slow mana regen ( unless you build a really expensive tech 3 tower ), and the Dragon costs a lot of mana, but does an immense amount of damage.

All 3 races seem to have been thought through carefully and have enough variation to feel different. Each have their own abilities, variations in tech trees and order of unlocking items that you find yourself preferring one due to personality and feel of play rather than how strong they are, which is the sign of a well balanced game.

The multiplayer is enjoyable, and although my wife is beating me on average ( this reminds me of our early Starcraft games ), i'm still excited to try and challenge her, and feel like every game has been close. The average game lasts between 3 and 10 minutes, which although short, is just long enough to not get bored with the limited choices.

Overall, a top game production, making it the most fun i've had with Wii Ware. It's not as hardcore strategy as i might like, but it is really fun and has some longevity in gameplay.


  • Really good humour
  • Well balanced gameplay
  • Multiplayer is enjoyable
  • New concept in side scrolling strategy, done very well


  • Limited number of maps
  • Not for very serious strategy


Opera's Brick Walls

Today Opera announced something amazing. Unite. The basis is a webserver in a browser. It allows you to share your music, images, files, and host chatrooms with anyone you choose, whether or not they use Opera. Futhermore, the APIs for writing your own services are available now. And the press has jumped onto this. Even Slashdot incorrectly reported it as the 10.0 release. However, will this actually get them users? In truth i doubt it.

Here's my theory, most Firefox users are using Firefox either because they have it installed on their machine by a sys admin or family member, or because they are religiously bound to Firefox ( oddly, in my opinion, this is very much like Ubuntu users ). Most internet explorer users just use it out of convenience or because they don't know of an alternative. This leaves very little space for other browsers.

But what about Chrome? Chrome has not done that well, even though it has the might of Google behind it. Less than 2% market share in over a year with the search giant punting it instead of Firefox at every turn, that doesn't impress me. And i like Chrome, its way ahead of Firefox on my browser preference list. But the world doesn't really care. They have IE8 with tabs by big evil Microsoft* ( which honestly, is a whole pile better than IE7 ), or they have Firefox which is open source and completely pluggable. I don't talk about Mac users.

So what am i trying to say? The average non technical user doesn't know anything beyond their desktop. And until such a time as the average user becomes technical enough, the only reason people will change their browsers, is if sites stop supporting them. If everyone stopped supporting IE 6 years ago, Microsoft would be out of the browser market. This is the same argument that can be applied to Flash, that it is no where near superior technology, but everyone supports it, so it gets used.

Opera won't get picked up in the main stream, until there is a killer app or function which makes it a necessity. And they are close. Opera Link is really an amazing service, i can't live without it. Turbo is incredible for anyone who uses internet via Wifi or mobile connections on a regular basis. And now, Unite, which has more innovation in 1 service than i've seen from Firefox since its launch. But still this isn't enough. And if this isn't, then honestly, will anything ever be?

* i don't think they're evil, but a know lots of Firefox users who do

Comux 011000


Xorg, a stumbling stone?

Statement: Xorg is a stumbling stone in the advancement of desktop linux, discuss.

This may seem like a university essay, but there's a valid point hiding in there somewhere. Xorg is bigger, slower and more complicated than the graphical servers of other operating systems. One of the reasons is that it lives in user space and, thus, is not part of the kernel. This has massive advantages for stability, but does mean that getting flickerless boot is somewhat complicated ( Fedora have been trying for a while now and are getting close ). It also means that driver problems within Xorg are often harder to diagnose from the start. 

Here's a little example, i've just bought a Dell Optiplex G280 to use as a media center. It has a Radeon X300 graphics card, and while it works perfectly on my 19" monitor, it refuses to work on my TV, no matter what driver i have installed. There is no feedback, it locks up the entire system, and i can't find anything in the log files. Several different Linux distributions with several different kernels have exactly the same problem. What makes it really frustrating is that i get full graphical boot and have no problems getting to the point where X initialises. Dual screen even refuses to work. And this is not the first rough encounter i've had with X. In fact since i've used Linux ( ~12 years now ), i can remember always having to edit the X config file manually. This is one thing which has never worked properly, and the only config file that i have consistently had to mess around with for 12 years.

My question is why? Firstly, do we need X in it's current form. Yes it's really advanced and has some amazing functionality, but does the average desktop user need that. Would it not make sense to rewrite ( much like Apple did with OS X ), a smaller, faster graphical server which may be part of the kernel? Something dedicated to being primarily a desktop graphical server, and secondarily an advanced server. If linux is to be taken up in the public at large, we can't have people struggling to attach an external monitor, since that is becoming a far more common task. Also, surely taking it into the kernel would make sure its extremely well maintained? Correct me if i'm wrong, but there are far more active and willing kernel developers than there are X developers?

Surely something as old as the X server needs a code over haul anyway? I've heard that there are plans afoot, but i'm not convinced that its anything more than a big extension of some code from 1992. To me, everything about X seems old and archaic, from their code base to their website ( which is just lacking a spinning under construction gif and some marquee text ). I can't believe that something which has never had a complete overhaul for that long is really built to handle modern graphics cards, 3D rendering and all the new input methods like tablets and multitouch very well without some major hack work. And hack work is _NEVER_ a good thing. And seriously, for a graphical server, i do expect a little bling on the web page.

I'm not sure exactly how i would go about it, and maybe it hasn't really been done because it's not something many people know how to do. Yes, i've heard of Wayland, which is NOT meant to ever be an X replacement ( read the FAQ ), and Project Looking Glass, but my stance on Java is a big firm no. What i want to know, is why isn't there a bigger effort by either the Linux Foundation or some big company like Novell, Red Hat or Canonical to actually make a big difference?

And in truth, if Windows works on my media PC, then i'll have a Windows media center. Because sometimes, it's about what works, and not what's got the better theory behind it. And no, i still won't get a mac tv. ever.


A Note As A Gamer

To put the below review in context. I am not a constant hardcore gamer. In fact, i generally don't get hauled into many games... i got bored of WoW within a month or two. A game really needs something special to keep my attention. I appreciate seeing that the developer has cared about the product, and this is normally obvious. Something like Portal was made as much for the developers as it was for the players, and when you play the game, you can tell it was enjoyable to make. As a developer i try to put some of myself into the game, and i expect no less of other developers. Games need personality and originality, if not in concept, then in humour and style. I just hope good gaming stays alive.

Game Review: Mechanics Touch ( Android )

Mechanics Touch from a dutch studio Orange Pixel caught my eye on the Android market one day. Not because i'm also in the Netherlands, but because it struck me as a game on Android market that didn't look atrocious. There are a few decent games on there, Cestos is definitely one, but as far as the paid stuff goes, there hasn't really been much to talk about. Not many original ideas being used, and not enough taking advantage of the fact that its more than just a phone.

The game itself has style, something often lacking from many modern games. From starting the game through playing and unlocking the levels ( there are 45 of them, not that i'm there yet ), the game comes across as distinctly quirky and fun. The music is really enjoyable, and made me laugh the first time i heard a few tracks. The graphics are generally crisp ( although a few of the sprites looked a little rough, even though it is sort of the style ). And the idea is good.

Basically similar to Lemmings, but far more interactive. You guide the characters from an entrance point on the screen to an exit point, in a very similar fashion to Lemmings, excepting that there are many aspects of the environment that need to be modified instead of the characters themselves. Tapping some platforms can make them fall, tapping teleporters activates them and tapping doors opens them, and so forth. The levels are built very well around these aspects, and often force you to react quickly while still trying to think of the next step. There are some traps, and the game does require some thought, while still being a casual puzzle game.

The game also features online high scores, and an achievement setup! Achievements always make small games like this much more enjoyable, and definitely add to the replayability ( at least until you've unlocked them all ).

Of all the games that i've downloaded and played, this really stands up as polished, something i can't say for many of the others. Guitar Hero mobile is put to shame by Mechanics Touch, and i'm more than willing to pay for something which clearly has received some care and attention. Some of the big companies could really learn something from Orange Pixel.


  •  Polished. Extremely finely polished
  •  Fun to play, and enough levels and extra challenges to keep you busy
  •  Sound and music are really entertaining


  •  Graphics could be better
  •  Possibly a bit expensive. Maybe.

Rating: 4/5


Predictions of the future and stuff

Not having much free time ( amongst my TF2 play, work and Howler ) i haven't had time to formulate a decent blog post out of this, but i have a quick prediction. Android will become the most used Desktop Linux distribution. It has a simple interface and a very standard development toolchain which can be used by anyone on any platform. All parts of the toolchain are free, and the centralised market could potentially replace the standard Linux distribution systems as the most used Linux packaging system. I'm not saying people will ditch Ubuntu or openSUSE for Android, but i am suggesting people will buy android netbooks instead of Windows ones. And thats all i have to say about that. Feel free to discuss and flame as the linux community so love to do ;)


Comux 010111


Update notice

My feeds have now been moved across to feedburner, apologies if this has caused some inconvenience. More changes to come, and i'm planning on actually setting up a personal page. Also there are a few blog entries that really need time to write, but will come soon.

Slashdot Slashdot It!


Comux 010110

Slashdot Slashdot It!


Comux 010101

Hope it's not too obscure :)

Slashdot Slashdot It!


TF2 Stats

Some of you might know that i'm a somewhat avid TF2 player... so here's my current stats for anyone who is interested:
On a side note, i have learnt a lot about Game Design over the last year, and i feel a blog post about that coming along soon :)


Comux 010100

Either you like it, or it drives you criminally insane. I fall in the latter category.


Cupcake's European Spring Tour!

Since Cupcake, aka Android 1.5, is due to be released via over-the-air ( OTA ) updates any time now, a lot of ppl are getting more anxious! Apparently official rollout has started in the UK and will start soon in the rest of the world. However, here in the Netherlands, i had not recieved any update when i saw the news this morning. The news that 1.5 european radio firmware was available!

Thanks to AndroidPlanet.nl for hosting the article on where to get it and how to install it, however i have some appendices and an english version. Being stuck without my cable or a micro sd card reader, i had to improvise to make it work. So here is how to do cake u're phone without pc access:

  1. Install ( free from Android Market ), ASTRO file manager and Download Crutch. If you use another filemanager that has the abilities to move/copy and rename files then use whatever you feel better with. Download Crutch basically makes the phone download any file you select in phone browser. Without this ( or a suitable application that associates itself with this sort of file ), you cannot download some filetypes.
  2. Download this update zip file in the browser. Because you have Download Crutch it will not fail.
  3. Open the file manager and go to /sdcard/downloads and move the file named signed-CRB17-from-TMI-RC9-eu.17667e06.zip to /sdcard
  4. Rename the file to update.zip using your file manager. In ASTRO the rename and move commands are under the edit menu when you long press on the file.
  5. Turn your phone off.
  6. Turn it on, and press Alt + l
  7. It should give you a list of options including pressing Alt + s to install the update found on the SD card.
  8. Be patient and ye shall have Cake!

Slashdot Slashdot It!


Comux 010011

Linux market share hits a somewhat official 1%


Comux 010010

I see a jackelope and i want to paint it brown?

Slashdot Slashdot It!


Comux 010001



Comux 010000

This is not actually why Twitter is so slow and has high down time. The truth is: Stephen Fry and his followers. They go around the internet taking down websites faster than RIAA and MPAA ( i'm sensing a potential business partnership here ). I'm just waiting for the day when the great leader, Mr Fry himself ( aka Lord Melchy ), suggests that everyone drink the grape cool-aid.

Slashdot Slashdot It!


I, Android

The T-Mobile G1 is an interesting introduction to Android. On first glance, the phone doesn't ooze any sort of charm, except maybe to the tech enthusiast. Deeper than this there is a whole layer of interest, and overall the experience is something more than a phone. There are a lot of features that would appeal to a non-tech user, and tonnes that would appeal to the geek. There are also several large stumbling blocks, which damage the user experience for everyone.

Hardware feels a little chunky, but the keyboard is definitely usable ( especially if you've used a EEE ). The shape, albeit very practical, lacks the sleekness of the to-be-released HTC Magic. The track ball feels good at first glance, although i find myself not using it often and it sometimes becomes a hindrance. Being someone who doesn't use the phone much for music, the lack of 3.5mm audio jack really isn't an issue. But you aren't reading a tech blog review of the G1 to hear about hardware...

Android firmly comes across as a Google product. The basics are simple enough for anyone to use, but if you want more, it is there. The basic Home Screen is simple enough, and adding icons to it is logical. The applications bar ( which you can pull up from the bottom of the screen ) very quickly gets filled with everything you download, easily becoming the mess that the average PC user's desktop is. It would be nice to have a built in filter to narrow down the applications, or possibly even a way to organize them, maybe a folder or sub-menu construct. The more applications you have, the slower the home screen becomes, and the scrolling down through the app list becomes jerky. The interface never feels as smooth as the iPhone interface ( i'd suggest that it's due to running on a GC'd VM language in combination with background services ), however it doesn't feel bad. The touch experience requires more accuracy than the iPhone, which possibly shows how late in development an actual device came in, given that developing in a simulator doesn't really give the right feel for finger touches. Integration with Google services is brilliant, and the background services really make the OS a great end user experience. But of course, a modern smartphone isn't the same without the application market.

The Android Market is an interesting place. There are a lot of applications which is both a blessing and a curse. As an open source enthusiast, i love seeing a lot of available applications, and many choices in application for a given task. Currently i'm using Twidroid for Twitter, aHome Lite as a Home Replacement and Hi MSN as an MSN chat client. Currently paid applications are not available in the Netherlands, so i'm settling for aHome Lite until they are. This said, the vast array of choice might scare the new users. Which brings me to a point which can be said as a commercial developer.

iPhone as a platform is currently a difficult entry point, due to the amount of applications on the App Store. To produce a game for it, you really need exposure in terms of the "Highlighted Apps" and the "What's new" or "What we're playing" sections. If you don't get these, you aren't going to hit target sales, due to the tonnes of random rubbish on the store ( unless you are using a well known IP, in which case you're pretty much guaranteed to get one of the "Highlighted Apps" slots ). When it comes to putting an app in the store, Apple have a certification process. I won't speculate as to why they do it but the point is that they do. All apps on the store have passed this process. This guarantees at least 1 thing, the app runs. Google have no process for the Android market. Once registered, you just have to sign and upload your app, and it is instantly there. Which is where the problem comes in.

There are so many apps on the Android Market that are utter crap. Some of them explicitly state in the app description that the app does not work yet. This is complete rubbish. I'm very shocked that Google are happy to let this happen. The app store is not meant to be an online storage space, it is meant to store apps for end users. As a developer, i can't even wrap my head around wanting to do this! Firstly it gives instantly bad exposure, and because it is not a new app, it doesn't get noticed as easily. When commenting on this and rating the app down, other users defend it saying that the description warns you. If you thought fart apps and soundboards were bad, these are much worse. The situation is just ridiculous. Having a Android developer account means that you have a Google account, which means that you have a Google site, which means that you have free online storage space. The Android Market should not be used to host pre-alpha junk! As a developer, this angers me, since valid apps are losing exposure due to the amount of junk flooding the market. Google need to step in and confirm that the apps at least run and do more than a "Hello World" sort of message.

This all said, Android is firmly a Google product. It is, like GMail, a usable Beta, which feels more like a Beta some days, and more like "by far the best" thing on others. As usual, Google's approach to release early and integrate well seems to be working. There is a lot of potential, and i can see it eventually consume the market and become a true competitor in terms of sales to the likes of the iPhone and Symbian, in the same way that GMail took away much of Hotmail and Yahoo! mail's userbase.

Slashdot Slashdot It!


Silence due to Howling

These last few weeks have been full of silence, from my side at least. Other than the weekly comic ( i try hard, sometimes fail ), there hasn't been a post. There are however very good ( in my opinion at least ) reasons for this.

  1.  I bought a T-Mobile G1. Yes, i took the plunge to be an Android "early adopter" ( always wanted to use that ), and it has been a great success so far. The lack of paid applications here in the Netherlands, and eagerly awaiting the next OTA update are by far the most frustrating things, but otherwise the phone is a dream. Obviously, having such a piece of hardware uses up a lot of my time ( i wouldn't be a tech geek if it didn't )... Review to follow soon, i hope. [edit: it's over here]
  2.  In having bought a G1, the app i mentioned and made in Abstruse Goose and Prime Riddles is now on the app store. If anyone is interested, it's called PrimeFinder. So far, people haven't really rated it highly ( i'd guess they didn't try the riddle which i linked to in the description of the app ), but there have been over 200 installs, almost half of which are still active ( according to the stats my android market account ). Not saying it's a good app, just glad that some people appreciated it.
  3. Mysterious project X. Indeed, there is another private project with which i have been occupying my time. The time for a more formal announcement will come, even though my twitter followers have been getting an insight into what it is. Progress is fast, and it is an open-source ( LGPL ) project. It's an app i wish for everyday, which is possibly what is driving progress the most. There are several more features i am going to add before i attempt to rally up support and drive a strong community project, but until that time all i will give is some tech details. It's cross platform, written in C# (on top of Mono), using Qt. Currently it runs out of the box on Linux ( with Mono ) and Windows ( with .Net ) and the issues running on the Mac are related to not being able to load a third party dll for some reason. So anyone who is actually interested, be patient or follow me on twitter ;)

Slashdot Slashdot It!

Comux 001111

Not to say there's no merit in these rumours, i'd just rather hear news than speculation.

Slashdot Slashdot It!


Comux 001110

Yes, i took the plunge and now i am a really proud owner of the T-Mobile G1. And all i can say is i'm not sure how the hardware survives oozing that much awesomeness!

Slashdot Slashdot It!


Comux 001101

This isn't really a joke.

Slashdot Slashdot It!



Comux 001011


Abstruse Goose and Prime Riddles

So i'm a real maths geek. And seeing the latest Abstruse Goose comic on Saturday morning lead me to solving a math problem with code. By the time i got to the last piece of the riddle ( it's a 3 parter ), i decided that looking and guessing would take too long, so i figured that it was an easy enough problem to solve in code. Less than an hour later, i had a quick C# program that solved the problem. It took considerably longer than it would for me in C++, mainly because there were many things i needed to look up. So here it is:

using System;

public class MainClass


 public static void Main (string[] args)


 if( args.Length != 2 )


  Console.WriteLine("Usage: PrimeFinder <n> <digits>");

  Console.WriteLine("where n is the length of the prime you are looking for and digits is the search space" );




 int count = Convert.ToInt32( args[0] );


 if( count > args[1].Length )


  Console.WriteLine("Number of digits was longer then the search space");





 for( int i =0; i<=args[1].Length-count; i++ )


  string current = args[1].Substring( i, count );

  Int64 toCheck = Convert.ToInt64( current );

  if( isPrime( toCheck ) )


   Console.Write("Found Prime: ");

   Console.WriteLine( toCheck );





 Console.WriteLine("No primes found");



 public static bool isPrime( Int64 numberToCheck )


 Int64 limit = (Int64)Math.Ceiling( Math.Sqrt( numberToCheck ) );



 for( Int64 i = 2; i <= limit; i++ )


  Int64 rem;

  Math.DivRem( numberToCheck, i, out rem );


  if( rem == 0 )


   return false;



 return true;



Basically, you specify a search space of numbers and the length of the prime you are looking for and it will return the first prime of that size in the search space.

Now that was fun! Furthermore, i did a quick port of that code to Android with a simple ui. In the end, i have to say that MonoDevelop was far nicer to work with than Eclipse has ever been, and i don't feel like my pc is struggling to allocate free memory for the IDE.

As for the Android app, it will eventually make its way to the Android market as soon as i get around to paying the $25 ( Maybe when the HTC magic arrives here in the Netherlands? ).


Comux 001010

Slashdot Slashdot It!


Music Tax and the Plight of Freedom

Recently there has been much talk about a proposed music tax. Seems that a certain organisation wants to implement a mandatory download taxation on internet bills, allowing for unlimited music downloads. While some people may welcome this, justifying it with their greed for music downloads, a question of freedom arises. Discussing it recently with my wife got her somewhat angry, and she wrote this story, which i feel raises many valid points about the concept of any entertainment tax. So here goes:

I was talking about the new, up-and-coming, hyped about tax thingy with my better half the other night. I'm pretty much against this Golden Lifeline idea and I thought of this nice analogy for the tax.

Let's say there is an imaginary store called RuzgIxtA. And they sell lots and lots of types of chocolate. And almost everyone loves these chocolates. These people love it, they must have it, everyone has heard of it in all corners of the world. Obviously they have not tried or bought each and every type of RuzgIxtA chocolate but what can you say, some chocolates are really in demand.

Now let's say that I am a fan of some chocolate varieties of this brand name. I don't buy that much and not a huge load in a short period of time. After all, I do like other chocolate makers' brands. And I've been a tad too busy to go chocolate browsing of late. But I agree, they are nice and buying one once in a while is a delight.

Ok, but the good folk at RuzgIxtA have been plagued with problems. See, some dodgy nasty shoplifters have been stealing their chocolates. It didn't matter that the company hired new security or new CCTV. Things just got nicked. As the measures got tougher, these thieves got more creative. Sometimes they wold target the chocolate transfer routes. Sometimes they got a friend of a friend who bought a chocolate to actually make the chocolate from scratch and gave it away for free.

Ahh the employees and workers were hard hit. The Christmas trees looked a bit more measly at the end of the year; they had to introduce low quality milk for some chocolates; the wrapping looked a bit tackier. It took money to make these chocolates and stealing created huge losses.

I suppose there was a number of things they could have done. They could have dealt with it in a number of ways. But let's say, in the face of overwhelming theft, RuzgIxtA came up with the idea of a tax. Somewhere, somehow someone came up with this idea of charging a tax. See, their argument seemed to be "The RuzgIxtA chocolates are so so popular that someone somewhere is almost always buying a RuzgIxtA chocolate. Someone at regular intervals in his/her life will buy a RuzgIxtA chocolate. So why don't we simply implement a tax? Everyone will pay this tax. We get our money's worth and all taxpayers can come in and take all the chocolate they want from our stores. After all, you paid for it now."

Must have sounded nice to a lot of people. Unlimited RuzgIxtA chocolate for a minimal amount? It's a dream come true. Think about it, this is the best way to deal with theft, they said eagerly whilst gripping the latest RuzgIxtA chocolate in their hands.

Meanwhile I was reading this lastest development (in this imaginary scenario) and thinking "Oi, hold on!". What if I only buy RuzgIxtA chocolate every other month? Or on a special occasion? I don't wanna pay continuously for something I may or may not use that month. That's why I didn't opt for the super-duper delux cable option, for meatball's sake.

Plus, as a a fan of other chocolate brands I was a bit miffed. It's a tad arrogant to think everyone must be using this brand. Somewhere sometime in their lives. Is there abolutely no way someone might not ever eat their brand? Quite presumptuous isn't it? Meanwhile, other companies in the chocolate making industry are thinking "Why can't our business get a 'secure for life' card?" That's not my worry. I wonder if any business is entitled to a 'Make money no matter what we do' option.

As it is I was against a few varieties of RuzgIxtA chocolate. Some people liked it, it was a free country so I was not going to say don't make that brand. It was just something I did not like. Ugh as means of an example, I thought about RuzgIxtA, the 90s remix. It was a mixture of nuts and raisins made to imitate RuzgIxtA the early 60s Slicky chocolate ... without the tasty flavor or psychedelic cover art. It had liquorice and anchovies as was the taste of the younger crowd. Not to mention the artwork of the woman in a suggestive pose. I liked the 60s Slicky and was quite upset with these recent changes. But I figured, hey if I don't like it, I don't have to buy it. Others who like it can enjoy it. That's where you get to live and let live, right?

And another thing. The celestial uber 20s RuzgIxtA chocolate was a bit of a dodgy one. At least in my opinion. The recipe maker for that one had said a few things in news recently that offended my personal beliefs. About zappers and fish tentacle omens and what not. I didn't agree with that. And I didn't like the fact that he wanted to ban the use of non-stick pans from cooking classes. Just use the lifter as the fish-deity intended, he said on telly. And kid should learn early on, why lifters + tons of butter is so much better than a lifter, was what he said. Bollocks! And did you know, the brand of chocolate he made for RuzgIxtA also had these annoying sayings about lifter uses and belief in fish-deities on the wrapper. I was not going to buy that! Heck, I was not going to buy that for younger folk in family. No way I was gonna give money to something that went against my beliefs. As it is, this fella was known to contribute tons of money he made to the Annual Lifter Champion Races.

By the bye, lately RuzgIxtA chocolate makers have been in the news for the wrong reasons. In one or two cases they have stuck their tongue out at customers, showed them the finger or just told them to bugger off. This was all at big public events. It was quite upsetting. Things settled down a bit when the little old ladies and their etiquette society staged a protest outside the shop threatening a boycott. The nasty lads were told off after which they announced a public apology and took a number of pictures whilst shaking the hands of the previously affronted customers. Admittedly, one of the reasons the chocolate makers were so dreadfully sorry was the threat to boycott their goodies.

So, if I was paying this stupid tax my money was going to a) fund more tardy remakes of the RuzgIxtA classic chocolates,  and b) also double as annoying lifter man's salary and leisure activities? And let's not forget, no matter how these chocolate makers acted or how atrocious their products became,  they could kiss bye-bye to customer care and satisfaction since they get this nice little tax income from each and every fan and non-fan.

And where did that leave my freedom to choose? Can I just promise to never buy RuzgIxtA chocolate and be exempt from the tax? So that I can opt to buy other chocolates based on how well I like them?

Hey if I pay a tax, I should have a say in what kind of chocolates can or cannot be made. Surely? You know what they say ... no taxation without representation, or something to that effect.


Linux Development, Pushing Forward

A few weeks on from questioning the viability of main stream Linux Development, and i have learnt much. I still feel that there are many hurdles for new-comers, but i finally feel confident that i can step over the next sets of hurdles. As with any new toolchain, the initial set up is the worst, from there on, it is relatively smooth sailing. And while there are certain aspects of the toolchain that are a complete mess, i turn again to Miguel de Icaza and the Mono team as a beacon of light in the quest to make Linux a step closer to the main stream.

KDE development is not enjoyable. Well, possibly this is a bit harsh. I very much did enjoy making something ( all i did was modify a widget at my wife's request ), but one of the reasons i enjoyed it so much is because i fought so hard to set up the development environment that once something was achieved, it felt like a miracle. First thing that was learnt ( and i've tried it 3 times, all with similar result ), was that development from trunk is not worth it. The amount of time spent just to make a particular set of the trunk ( perhaps a widget or application ) build, is enormous. What is much simpler, is using the KDE-Devel packages from your distribution, learning a bit of CMakeFile syntax, and doing CMake builds against the part of the KDE trunk you are trying to work on. The example that i worked with was a Plasma widget. Pulling down just the widgets, and via command line changing to the directory of the one i wanted to build, and running "cmake -DCMAKE_INSTALL_PREFIX=/usr". From then on using Code::Blocks as my IDE, and running "make && sudo make install && plasmoidviewer my_applet" to do all the dirty work. After an hour or so, i became rather efficient at switching between my terminal and my coding environment. This is still not even close to satisfactory. It may work, and Code::Blocks was fantastic for maintaining my sanity ( which fades with a significant amount of Mac development ), but other than that and the brilliance of the plasmoidviewer there was little convenience. 

Qt Software are busy working on an IDE/Designer called QtCreator, which does show some promise, but is more of a designer than a solid IDE. Playing around with it was somewhat satisfactory, but again it was not packed full of features one might expect on a full blown IDE. There are also many limitations, and it is purely geared toward Qt development ( and apparently KDE development, however i couldn't get this working ). This said, it does what it claims to very well, that is being a GUI designer with some coding features.

MonoDevelop is an interesting one. In playing around with it before, i have been very disappointed, however trying it again ( making an effort to get used to C#1 ), i am somewhat impressed. It still crashes pretty occasionally ( especially when it comes to things form/dialog related ), however, in a normal usage case, it feels good. It is very responsive and fast, which always pleases me ( it is far from the slugs that are Eclipse and Netbeans ). Code complete and parameter listing is as it should be. In my opinion, an IDE is worthless without decent code completion, suggestion and parameter listing. Looking in header files to see the method declaration is something that people shouldn't have to do, that is what the IDE is for. Code::Blocks is relatively good in this respect ( far outpacing some commercial IDE's like XCode ), but MonoDevelop is up there with Visual Studio, which i still think is the best IDE at the moment.

Free flowing code is what i strive for. Frustration caused by waiting unnecessarily for standard IDE features will drive a developer insane. The more streamlined the IDE, the more streamlined the development process. The more complicated the primary toolchain ( KDE style ), the further we are from getting new developers interested and the harder it is to make a good IDE that deals well with them. My suggestion of a way forward would be this:

It pains me to do this, but i think that MonoDevelop is the way forward. While Code::Blocks is fantastic, it is based on old technology ( wxWidgets ) and although has amazing support for different project templates, it does lack support for different languages. MonoDevelop has relatively poor C++ support at the moment, however it does have an amazing feature set and should be expanded as much as possible. At this point, a large percent of the "hardcore" Linux/OSS evangelists are about to open up the comment box and give me a lashing about how bad and evil Mono is, but at some point we need to accept that if we are to attract developers from a Windows environment, some Windows tools ( along with cross platform support ) might not be a bad idea. I think that pushing MonoDevelop development forward, adding solid C++ and Java support, and potentially long term support for Qt widgets would make development on Linux a dream.


1Why C# you say? I am a relatively confident C++ developer, and love the speed of the language, however, there are some advantages to other languages. I would like to give Garbage Collection a chance. I know from the start that it will not be as quick, but there are many advantages to not having to worry about cleaning up. Many modern language features are very convenient ( i won't get into details, there are enough forum discussions about this ). It is Windows and Linux ( like Steve Ballmer, i have less interest in Apple ) compatible, one single executable two platforms. And to be honest, i see Microsoft as a lesser evil than Sun.


Comux 001001

Mark Shuttleworth draws Karmic Koala.


Opera, all prettied up with nowhere to go

Anyone who has read a few of my posts, or even looked at my blog page will know that i am an Opera user. In general i find Opera to be a far superior browsing experience to any other browser at the moment, however, its failures are a reflection of the current market in which it is fighting. It has been a while since i have made significant comment on Opera, or the state of the web, and so i felt it was about time to throw something out there. In a way, this is an open letter to Opera Software, and a comment on the "browser wars".

While people in the open source world have been talking about browser competition for many years, it has only really been affecting the main stream for the last two or three. And while this may have been sparked by the superiority of Firefox over IE 6 in the eyes of many, what has really made the main stream realise the existence of competition is the aggressive way in which Google are trying to push Chrome. So much so, that the market share of Chrome has over shadowed that of Opera. And while Opera may be pleased that the marketing power of Google is helping enlighten many consumers, their desktop growth is not performing as well as it could. They mostly dominate the mobile market, and Opera link has encouraged many users to switch to Opera desktop, but there is still a big chunk of users that seem resistant to desktop browser change. Why? What does Chrome have that has given it 1% market share under 12 months, and Firefox almost an extra 4% in the same period?

Some strong OSS activists might attribute it to the fact that both Firefox and Chrome are open source or at least have underlying open source projects. And while i believe that to be a part of it, there is a lot more there. Both Chrome and Firefox are fast, but the average end user doesn't notice the difference. I feel that Chrome has gained market share through aggressive marketing and a technical user base jumping from Firefox to Chrome ( due to speed and the fact that tabs run in separate process threads ). And, in my opinion, Firefox is still gaining market share due to every security vulnerability found in IE. Yes, my implication is that Firefox is become the Corporate desktop browser of choice. It's a dream to manage on the network ( due to the built in updater ) and it is more secure than IE, so IT managers are more likely to recommend it. This is my general feeling on the browser market at the moment, so where does Opera factor in, and how can they take their rightful place?

Opera has a very odd relationship with the tech community. In this part of the browser conscious market ( maybe 30% of the total market? ), you get the Opera lovers and the people who prefer Firefox. While i fall into the Opera lovers, most of my friends and colleagues fall into the latter category. And being the confrontational, querying mind that i hope i am, i have dug deep ( sometimes into dangerous territory ) about why the aforementioned latter group prefer Firefox. This is what i generally got back:

"Last time i used it, it wasn't very good" or "i've never tried it" - the problem with the "Last time" is that it normally refers to pre-firefox, and although Opera was still great back then, now it is really the most forward thinking of all the browsers. Most of these users, have been impressed with what i have shown them of modern Opera, many have even changed browser. This is a market share that Opera could get if marketing was directed toward this group, but sadly, they are a minority, and marketing engines are always directed at the mainstream.

"It's not Open Source" - this group is also a minority, and while they strike up a point, Opera is not convinced it's a valid one. And i can understand why Opera would want to protect their source code, even if i would prefer them to be open source. Opera are an interesting company in this way. While they feel the need to push open standards and build a strong community, the still feel the need to protect their source, even if it isn't the community they fear. They have the makings of an amazing open source company, without the open source. Maybe there is a compromise to come? Well, at least i have a suggestion which relates to the next group:

"Plugin <x> <y> and <z> are amazing and i can't live without them" - fair enough. I can accept the killer app arguement because i live it everyday. Being a Linux user at home and at work switching between Windows and Mac, i feel the pain related to killer apps. My ideal platform would be a Linux system with KDE Desktop, Visual Studio 2008, XNA Game Studio, and XCode's analytical tools. Every time auto complete with C++ fails in XCode reminds me of the frustration faced by missing apps that you have become used to. So being able to understand the pain, suffering and depravity caused by not having your plugins, leads me to this.

Firefox is an open source project under a permissive triple license ( MPL, GPL 2, LGPL 2.1 ), so why not port their plugin architecture, or at least write a compatible plugin architecture. This way there is an available plugin API and the amount of people able and willing to try Opera could potentially double. Yes i can accept that it is a monster of a project to do this, but it is the kind of thing that can be done. This part could even be a community project by providing the community with the function callbacks and class structure available to Opera desktop. And no, Opera widgets are not currently a replacement. They are glorified, separate window web apps. Compatible plugin architectures are a progressive way forward, as can be seen by the amount of abstraction layers in a modern Linux system. Why not? Well, i can suggest a few reasons that i wouldn't want a plugin architecture like that of Firefox ( for example, plugins with that much power can mask malicious software ), but i feel that the advantages in terms of attracting a considerably larger user base would be huge.


Comux 001000

Just a wild shot at what these guys retail stores may look like... as much as bottom right looks cool, i honestly have no clue how it works and there is something slightly... religious looking about it.


Comux 000111