Friday, December 11, 2009

Release early, release often!

Remember that mantra, known in the Open Source world? Well, it's a core part of Agile Methodologies for software development, for precisely the same reason: getting the feel on how your project/product/app is behaving in the real environment and getting feedback from your customer. Feedback is especially important, as the requirements for the project might change (and they usually do!) - you need to be aware of that!

But requirements are not the only ones that change; so does the environment in which your product is supposed to be running and used. While you might have total control over the development and test environments, you usually don't have little or no control over the live (production) environment. That environment is handled by some dedicated person or people.

Keep in mind that those people have their own schedule (backlog if you wish) by which they operate the environment under their control. Systems are upgraded or reinstalled, new versions of services get installed and so forth. Usually, you, the developer, are the last one to find out about that. You find out about those changes when your app is being deployed and (oddly!) doesn't work.

We all tried to talk to those people, hoping they will keep us in sync with the changes they make, but frankly (and I'm talking from personal expirience) that rarely goes as well as you think it would. So, make sure your product owners understand this as well, and push for releases as often as possible. That way, not only you'll be getting (great!) feedback from your owners, but will be able to keep tabs on your environment as well.

This post reflects thoughts, problems (and frustration) over the last week, while trying to get our (quite complex) project into production. While we were really trying to be agile and follow all (or most) of the principles during development, we still managed to fail to deliver our project often to the production environment.

What product owners sometimes fail to understand is that you must follow all of the principles, and follow them well. The developers often fail to help them understand. We must all learn from that, I say.

Wednesday, November 25, 2009

Andri Luka 2 years old && Erlang/OTP R13B03 released

This day is very special and remarkable - our son, Andri Luka was born on this day 2 years ago! Happy 2nd Birthday, dear son!

Also, on the other side, Erlang/OTP R13B03 is released. With this release comes the GIT (mirror) repository of Erlang/OTP source code (available here) to enable people to send in contributions. That is awesome! The release also marks the introduction of NIFs (Native Implemented Functions), but that's still in experimental stage.

Saturday, November 7, 2009

Icelandic Gaming Industry

Just came back from the first IGI workshop, first workshop for the IGIA10, the Icelandic Gaming Industry Awards competition.. It was an excellent starting point for icelandic indie game developers to meet and network. I came a bit late so I missed few talks, but the rest was really good. The talks were held by representatives from companies that are already established game developers (ie. CCP, Gogogic, Dexoris, etc). It was nice of them to share their expirience in their road to success.

I asked couple of questions, mainly focusing on getting more information on how to get connected to artists and/or designers that want to bring their talent into the gaming industry. Lots of indie developers (such as yours truly) have zero-to-none artistic (design) skills. In my opinion, IGI initiative should also focus on that talent, as well as developers.

As we all know, eye-candy and content is a huge help to make it in this business. I am close to a point where I would definitely need an artist to join me, otherwise it might be very difficult to get players to play the game. Not to mention possible funding :)

Next to come, a bit of introduction to the game itself.

p.s. I encourage you, dear reader, to check the Icelandic Gaming Industry website and join me and others in very interesting endeavour of bringing more games in the future..

Saturday, July 11, 2009

Check if an application is running

I'm working on a utility application for Mac OS X, which will display the currently played song in iTunes on the OS X status bar. While working on it, I've made a small utility method to check if a program (identified by BundleID) is running or not.

Here it is:

-(BOOL)isRunning:(NSString *)programBundleId {
return [[[NSWorkspace sharedWorkspace]
valueForKeyPath:@"launchedApplications.NSApplicationBundleIdentifier"]
containsObject:programBundleId] ? YES : NO;
}


The method returns YES if an application is running - in my case, it was useful to check if iTunes is running or not.

Monday, June 29, 2009

TinyURLs reloaded, now with Python3

Few days ago, very smart and great people behind Python project released stable version of Python 3.1; that brings bunch of improvements (including performance ones) and new features. You can check what's new in this release right here, if you wish.

I was quite impressed by the speed improvements over the 3.0.1 version of Python. It's quite fast and comparable to Python 2.6 version (which is pretty damn fast). Running few of my sources with the new version (to test speed and comformance) I noticed that my TinyURL example doesn't work anymore.

The string.letters is gone, and print is (as mentioned before) no longer a statement; it's a function. The updated function now looks like this:

import random
import string

def short_id(num): return "".join(random.sample(string.digits + string.ascii_letters, num))

print(short_id(6))


The only noticable change in the function itself is use of string.ascii_letters. There you have it - now Py3 compliant! :)

Friday, January 30, 2009

Tiny URLs

Want tinyurl.com-style links in your application? Need to generate a random sequence of alphanumerics? Here's a quick function in Python:

import random
import string

def short_id(num): return "".join(random.sample(string.digits + string.letters, num))

print short_id(6)

It will return something like AnLrJl or 9mLXut, or even bK5D4O. Simple and powerful.

Wednesday, January 7, 2009

Христос се роди! Срећан Божић!

To all the people that celebrate Christmas today, we wish you a Merry Christmas and that you and your family are healthy, happy and wealthy!