Nokia and Qt, I Choose You!

Since I commented on this post about MeeGo here, I really should explain.

I went to a Wavefront/Nokia seminar about Nokia’s Qt and Ovi store on Friday.  Partially out of curiosity, partially to network and partially to perhaps win a brand new spanking N8.  Not that I want to hand in my N900, but I like new kit.  And as a research & development mobile developer it is my responsibility to learn about the whole of the mobile ecosystem.

First of all I want to say is that I am amazed by the pains that Nokia goes through to maintain being a market leader.  Not to sound like a PR person for Nokia, but the number of countries and languages that Ovi is available is astounding.  And for anyone wanting to integrate their app purchases with a carrier’s billing system Ovi is the only way to go.  Why?  The Google Market integrates with 2 carriers.  Nokia’s Ovi Store integrates with 99 carriers.  So while Apple iOS and Google Android do a remarkable job, they don’t scale like Ovi does.

Another thing that Nokia does well is compete in various markets against various vendors at the same time.  In the superphone market it is up against Apple, Samsung, HTC, Motorola, Microsoft, Google, etc.  In the business space against RIM’s BlackBerry.  And it wipes the floor in the feature phone market.  Yes, the superphone market is proving difficult for them.  Hopefully MeeGo will change all that.

Qt is amazing, and Nokia is pushing Qt hard.  Very, very hard.  This is awesome news for the KDE community.  And it also provides a glimmer of hope for developers who would love to learn one framework very, very well and use everywhere.  Java failed, and if Android (which ONLY works on smartphones or smartphone-like handsets) is the best we can do then we have failed.  This is coming from someone who earns his bread and butter as an Android developer.  I love working in Android, even with all of its quirks and oddities.  But Qt… thats a whole new level, especially if the market accepts MeeGo.

So know there is a bunch of speculation about Nokia CEO Stephen Elop dropping a platform and merging with something Microsoft.  And everyone is speculating Symbian, Symbian^3 or MeeGo.  Symbian is not going away.  And I don’t think MeeGo will go for three reasons: it took years to get MeeGo to where it is.  Second is that already most of the up and coming in-vehicle interface systems will run MeeGo.  And third is this interesting tidbit:

Audience: So when is the next Qt training session for Toronto?

Nokia Rep: There is one in March for Montreal.  There will be one in Vancouver in April.  And there will be a whole new set of sessions including Toronto, around MeeGo devices.

That and other comments at the seminars point to MeeGo device appearing sometime before May.  So what about this mysterious announcement?  Well everyone seems to have forgotten that Nokia has a gaming platform: NGage.  Yes, that NGage.  The one that is not doing so well.  So how will they compete in the mobile gaming space with the iPhone/iPad and Sony’s next PSP that is Android based?  How about bringing Microsoft’s XBox to mobile devices?  Hmm…

Discuss!

As a sidenote, I’m planning to learn Qt while working on my current work project.  I can’t wait.

The Day After

Today marks the first day of my 26th year of existence.  So far I feel quite pleased.  I have some progress in my various goals.  I go out more often.  I talk to more people.  I have found a few girls who have taken some sort of an interest in me.  Life goes on without missing a beat.  In my mind, my writing is shaping up nicely.  Programming is left to the side, for now.  But I plan on working on that fairly soon.  Getting a license and a car is within my reach.  For once I can see myself living an ordinary independent adult life.  For various reasons I’m doing anything crazy like moving out.  Or spending vast amounts of money, or doing silly things in general.  My time management, project management and organizational skills are far better than they were a year ago.  And most importantly, I still see a glimmer of hope of my eeking out a prosperous existence on this rock.  My situation is not the simplest or the easiest, butI still I have room for maneuvering.  All in all, the day after and the coming days looking promising.

I’m Hating it!

Humanity has a love-hate relationship with technology. Geeks like to take it to the extreme. Take the recent hub-bub in the blogosphere about the aptly named: Linux Hater’s Blog. In that blog, the anonymous blogger (or bloggers) rants about how BAD Linux is. Its entertaining and educational! Entertaining because rants and rabble-raising is fun… in a perverse sort of fashion.

This is not just a simply a rehash of Microsoftian propaganda; a machination of an ingenious marketing machine feeding FUD to an ignorant public. Rather the Linux Hater’s Blog (LHB) looks at the issues that Linux suffers from. Just like the Unix Hater’s Guide (thanks LH) before it, LHB satires the attitudes of the community, developers and companies in the Linux landscape. And hopeful as satire has done before, maybe better the Linux, Open Source and Software Libre ecosystem as a whole. Don’t be fooled. The Linux Hater is most likely an experience developer in the Linux world, and knows damn well what he is talking err… ranting about. And deep down inside he loves it.

I read both of the Linux Hater’s Blog and Unix Hater’s Guide in their entirety. It changed my perspective. Linux and UNIX are not perfect. The design and implementation of both of them aren’t the shining gems of computer science. And for historical reasons, and laziness on the part of Linux/FOSS developers, just doesn’t cut it anymore.

I admit it. I still prefer Linux. I’ll continue using Linux with all its wrinkles and weirdness because it’s still the best OS out there. I’ll still think freedom in software is paramount. I’ll still advocate open source as the most ethical and efficient way of doing business in the software industry. And I’ll still write in C, C++ and its spawn Java. Cause Lisp is way too hard to do in my head.

Thanks Linux Hater.

The Open Source Gamer Looking for Work

I am currently looking for work, so if anyone is interested in a software developer or software engineer position please let me know. I have experience from university (finished my B.Sc. in Computer Science at the University of Toronto) and from my open source projects in:

  • Java development.
  • PHP and JSP scripting.
  • Database (MySQL and SQL Server) programming.
  • Technical, computer manual writing.
  • Graphics: mostly Java AWT and SDL.
  • Website development (XHTML, CSS and Javascript).

I am looking something that I can either do at home or commute to in Brampton, Mississauga or Toronto. So if anyone is interested please send me an email at:

dorian dot pula at gmail dot com.

Thanks in advance for all offers.

Harnessing Chaos: A Framework for Team Management

Programming is a misunderstood art. Unfortunately many commercial ventures treat programming like a science and managers treat programmers as engineers. Engineers build things based on repeatable technologies and designs. Programmers craft code, a process more akin to the unpredictable and unrepeatable production of art like writing. Companies get in trouble when they try to apply engineering best practises such as enforcing strict requirements, and tight predictable deadlines. A far better approach works by treating programming as an art, and applying artistic best practises.

The Problem of Creativity
One problem with creativity, is that is hard to predict and control. Creativity comes and goes, at a whim. Since artists work in a creative manner, they need a great degree of freedom in their work. Unfortunately the real world treats art in the same way as it does engineering. The real world expects predictable work schedules and techniques.

This becomes problematic when programmers work on a project as a team. The team needs to balance creativity with reliability. So artists and programmers need to build predictability into their projects. One way to create repeatable and scheduleable for creative work is to use a framework.

Team Frameworks
I am an extremely individualistic person. Yet, I will admit many projects simply take too long for a single person to do. Teams naturally alleviate this problem, by throwing more people at a task. But like Fred Brooks mentions in his The Mythical Man-Month, throwing more people at a team does not guarantee faster completion.

One of the reasons, I dislike teams is the problem of expectations. Before starting on a team project, I find it best to lay out “ground rules”. The rules include:

  1. Quality Expectations
  2. Communication
  3. Scheduling
  4. Individual Talents
  5. Work Synchronization
  6. Task and Job Division

It is important to work out these rules early on in a long term project. Without getting into specifics of each pint, I think everyone on the team needs to know what is expected of them. This saves the trouble of anguished team members when things go wrong, which in any project always does.

It is essential that these rules (not guidelines) be in place early on. Also every member of the team must follow these rules religiously. Sometimes the rules need changing, but if you did a good job on setting them up, the rules should not drastic changes.

Buffer Schedules
Programmers are notorious at underestimating the time required for work. The problem of “engineering” comes into play, and the result is delays in work. Instead when working on any creative project, you need to schedule in “thinking”, “wasted” and “oh crap, this is all going to heck” time.

The best of doing this is to schedule in a buffer. I usually work on a 1.5X buffer, (which probably is a very short buffer and 2X, even 3X are preferable). A 1.5X buffer basically adds an extra half “of time I think this will take me”. So if I think something takes 2 days to do, I try to schedule 3 days. This gives me room for error and I can finish ahead of time rather than “after-time”. Many successful programming groups also use buffers in scheduling.

Easter… and Life After School

Happy Easter! I would say more, but it seems awkward. I’m try not to flow all over the place with emotions if I can (Yeah, whatever dude one glance at your blog is like listening to a emo-kid.), and so… If you are not the religious type, I hope you enjoy your time off and that one day you find the meaning for life. If you are religious, I hope you find the way for a peace-filled, prosperous and happy life. If you are Christian (just like me bro…) well we already know about God and Jesus, and how cool He is, and is love… in that case may He bless you and keep you this coming year. After all Easter is about His undying love for humanity. (And if you feel awkward, and are looking at me awkward, then go read G.K. Chesterton’s Orthodoxy. And stop looking at me that way.)

This Easter was a time of contemplation, self-reflection (Hey, its dark and empty in here!) and a soul-washing. Needless to say, after some scowling from my folks for past wrongs, an awkward confession with a priest, and some quality sulking (And depression) I feel much more empowered and tranquil. I know exactly what I need to do and how about dealing with my issues. So I’m in a bit of zen-like state. Only its not Zen, Buddism or anything resembling an Eastern philosophy. Nope, it good ole’ bible thumping (As if he reads the Holy Scripture.) Christianity. Now if only I could stop feeding myself on cake, and bouncing of the walls long enough to actually, like concentrate on prayer and stuff…

Its been 6 days since the last day of classes, and 5 since my last assignments. I feel very, very relaxed by those thoughts. I mean I just have 3 exams to deal with and then I will be done by Computer Science major. I’m debating whether or not to do either a major in Biology or a specialist in Bioinformatics or just finish university already. I’m leaning toward bioinformatics though… cause micro/cellular is flipping cool.

I actually have done work since my last post. I’m so impressed. I am productive, things are getting done, and my boss (and good friend) Keith is no longer unimpressed. I just need to keep this up. I got a unique job at my previous employer. Its not a development position, rather an office-rat job but I can try my wings at living/working in an office. Fortunately I already am familiar with the people I will be working with/under, so I will feel like a pea-in-a-pod. Awesome. I am thinking of getting a future job as a part developer/specialist in biology. I think that a synergy of biology, informatics, cybernetics and engineering will happen real soon in the future. I want to be part of it. Either that or get a job at NASA as a mission specialist/drone consultant. 😉

OK, this being my last semester of computing, programming has reached the natural and normal peak of being enjoyable work. I’m no longer obsessed by coding, yet I am still willing to develop useful applications as a hobby. I final realized what I thought was unobtainable. I’m competent in a number of languages, both ordinary and exotic. I can develop complex applications in the fields of Web, Internet, database, graphics and entertainment programming. I can think methodically, in a mathematical manner. I’m organized enough handle various styles of development. However, I still think my talents in biology, and communication could definitely use some work. And my personal and business skills need some polishing.

Talking about personal skills, I’ve picked up some tips and hints about dating. Definitely want to try those out sometime. I may not be a Don Juan (yet), but I think I have enough charm to keep a girl distracted long enough that she might tag along with me. (My calmer and less clingy self has gotten more looks, even from Kat… which she will deny to no end.)

In other news… Rudy wrecked his old Saturn and recently bought a “newer” Saturn wagon. Now the questions are has he learned his lesson (turned over car and upset but mostly unhurt friends inside) about “racing”, will those 6 demerit points make him a cooler headed driver, and how long will his new set of wheels live? My friends are begging me to enroll in a summer course with them, cause I would be ever so cool to be with. My financial outlook is looking very good, meaning I’m seriously looking into getting a car and pay for the insurance myself. I’m going to triumphantly return back to developing one of my started open source projects. Also plans are underway to finally write one or two novels this summer. So things should get interesting very, VERY soon.

Finally a shout to shaka0070. Thanks for telling me about Content-Type.com I will definitely take a look at that site. And thanks for reading! Now I got to run, I need to prepare for tomorrows’ Operating Systems exams. [Dramatic music.]

To be continued…

Last Work Night Week

Yay!!! My last week of nights begins today. Wow this summer did go by fairly fast. And unproductively (on the part of my pet projects). But that is about to change.

As for house work today: washed dishes, dug a frozen dinner out of the freezer, and cut the hedge (really proud of that last one). Anyways, I also finished up all the blogs that I missed out on. So go ahead and read through the archive. If you dare.

I plan to get some justCheckers, Insomia, Palm programming and writing work done. But I don’t know in which order. I guess I will work on that sci-fi novel I started recently, xNihlo. It is a mix of my short stories, and a story of a Terran inflitration officer on board one of the deep sea trinit-ships looking for an Neurocis saboteur at work. The whole story will takes place in the far future after the Great Soliation (whats that you say?) in the strange sea world inbetween the ice sheet and unforgiving depths of an ice giant, Trinik Prime. (Got your attention yet? Good!)