Games + Web = Flash

Or the other way around. I’m not a big gamer, at least not in the last years (heh, the Fallout and Warcraft era has fallen) but one of the games I have played and enjoyes was StarCraft. Not the campaigns or the single scenarios, but for its multiplayer. Although, one has to admit that the campaigns were quite fun too.

Now, back on track. Some guys over at amorgames thought the same on StarCraft and used Flash to create a little clone. It is somewhat limited but it can help the addicts of this game get a quick fix at the office ;). Just point the browser here. This goes to prove that when it comes to games the small (and mostly boring) little apps started to grow. And perhaps we’ll see some multiplayer soon (using remoting or the new Flex Data Services from Adobe).

Keep it up guys! (and also let me play with the Protoss 🙂 )


Thou shalt test your software or else …

Or else your users will find your bugs the hard way – by crashing into them. And I don’t think anyone wants to see its app go up in flames because of some sloppy developer that forgot to test its library.

For some time now I have been working to fix some bugs and add enhancements to a library which makes use of Javascript. And now that it’s done it’s also time to test it. And when I say test it I mean serious tests. Regressions and test cases put together by our quality engineer. Manual tests have been run in a continuous manner throughout development, as each problem was tackled. And now we decided we want to implement some automated testing.

Automated tests are a good thing because they can be ran on their own – either fully automatic, like when you check in a new part of your project, or with a single command by the user. They are repetitive, deterministic and, hopefully can provide with a simple passed / failed result. The problem right now was to find a framework that could take care of creating the test harness, so we could only throw test-cases at it and check out the results. And the winner was JSUnit, which, albeit some time lost because we didn’t RTFM, proved to do everything we wanted:

  • It has a Java component which allowed us to set up the tests to kick-start with a simple ANT task.
  • Its build.xml file allowed easy setup of the machines on which to run the tests and the paths to the browsers in which to test (yes, you can call different machines with different browsers).
  • It automatically saves each browser’s result as an XML file which can be parsed / checked later on. This seems to be a great thing, as it allows us to integrate with the existing test suites which use JUnit.

What this does not do is test the UI for you. It is built on the principles of JUnit, with the differences inherent to the programming language it addresses. So you can have test pages and test suites. A test suite is composed of multiple test cases, each on its own page. And to drill it down, each test is in fact a function – which must have its name start off with test.

All in one it is a nice testing framework as it allows running individual tests or suites, manually – via the testRunner page – or automatically – from within your Java program or a simple ANT task – and it provides both visual feedback and reporting. So if you are working on some JavaScript stuff and need to test it out, give JSUnit a try.

Command history

Today I found out from Ha neat trick in Windows XP’s command line console (cmd for friends): it has a built-in history of commands. If you open up the console and issue some commands, and then later on you hit F7 you will be prompted with a MS-DOS style window. From this window you can choose one of the previously issued commands and run it again.

This just goes to prove that you can use the same OS for a few years and still discover new things.

Giveaway software

Today I stumbled into an applied example of an old marketing principle: give something out for free for a while, hook users onto it and then, if they want it they will pay for it. You would think that applied to software it means demos and trials. So did I until today when I stumbled [via Lifehacker] upon the Giveaway of the day site. On this site you get one free program each day – they get to choose it though. And when I mean free I mean you get a software with a valid license, for which you would otherwise have to pay money. What’s the catch? Here it goes:

  1. You must download and INSTALL the very same day you see the software. Once the day passes the activation doesn’t work and you’re stuck with trial software.
  2. You cannot reinstall the software, even if your PC dies a very horrible (and sad) death. This means that if you get addicted to one of these programs and want to use it after Windows died you will have to buy it.

Until now the site has featured mostly low-cost software and games, but you might find a small app that just does the trick for you. So their RSS feed will get a place in my reader so that I can check for interesting apps to download.

The virtual office

I’ve read before some posts on this topic – mostly on Lifehacker, as an informative tidbit. And lately I have had the opportunity to put that into practice for a small project on which some friends are starting work (no, I won’t expose it yet 🙂 ). They are a small team – only three people, but which do not work, or sometime even live in the same area. So the web is the greatest medium to work on, and it provides all the tools to keep the project going:

  • Nothing works if the team cannot communicate in an efficient manner. This is where Gmail comes in – you can access it from anywhere via web (or a POP account if you really are an Outlook/ Thunderbird addict) and it allows you to keep track of conversations in an orderly fashion.
  • Instant messaging – however fun e-mailing is, if you get to have 3-4 e-mails back and forth on a single topic, you’d better get on Yahoo! Messenger and talk it out. It can sort some very nasty misunderstandings.
  • Phone – talking is even better. Team members can keep in touch via classic phone (mobile mostly) or Skype -VoIP at its finest.
  • Source control -subversion is my favourite candidate. However I could not setup a private SVN server for this particular project, so I searched a little on the web and found some free (as in beer) SVN servers. The choice fell on They allow you to have whatever project you wish – including private ones (unlike Google code where you MUST have an open-source project), no space limit and some other interesting tools.
  • Bug tracking – this is important especially when you finish the first10 lines of code (and added the first 30 bugs 😀 ). It will let other team-mates check your code and submit their findings/ideas. Assembla came in handy here too, as it provides Trac – a way to add tickets for your bugs. You can even assign them to a team-member, pick milestones and such.
  • Collaboration – this is easy: wiki, wiki and more wiki. Also on Assembla, integrated with Trac.
  • Project management- this area is not very well covered since the project is small. Since it only required a basic roadmap, the features in Trac were sufficient.

What I am curious now is what other virtual office setups are used? Perhaps some comments will clear this out (hint hint 😉 )

Microsoft hoax – the new M$ Firefox

As noted yesterday by Ionut (in romanian), The Register pulled a nice one on Microsoft and made public a news on the aquisition and subsequent release of the Microsoft Firefox 2007 browser. Hey, even the website has some of the Microsoft characteristics – a constant push to upgrade to the professional version. Overall, a nice site where you can also find the Akobe Plash plugin for the new browser. Way to go guys and bring us more such fun stuff.

YANB – short for Yet Another Blog

Aafter being a while on blogspot and Yahoo 360 I have decided to get a fresh, clean start with a blog engine that I personally like. And since at the moment I do not have the time (and mood) to put up my own server I opted for the wordpress hosted blogs. I hope I’ll just be able to keep on posting at regular times, and bring some informative stuff here.

Cya in the next posts.