Keeping an Open Mind

Reading my blog, most will find that I'm a Ruby and Java dude... While I often speak about having an open mind in my blog, for certain things, I have to say that my mind is not always open.

I've always kept my distances from Microsoft .Net. The main reason behind this is that I never felt that I would learn something from .Net. This framework has play catchup with Java for a long time. Now both Java and .Net are more or less equivalent beside the multi-vendor/multi-platform argument.

Recently, I was asked to help some of our teams on a fairly large C#.Net/MS-CRM project. They had huge performance issues and I'm quite good at solving these kind of issues.

While I never touched C# nor .Net before, I was pretty confident that I could at least be able to read and understand the code.

I accepted to give a hand. I picked up the code fairly quickly and after a few days I was proposing changes to the code to improve performance.

The first week, I spent essentially in learning basic C# (very similar to Java) and the .Net APIs.

By the second week, I was actively contributing and improving performance using more advanced C# features and getting comfortable with the APIs.

After that, I was demonstrating some features of the language that other team member did not know existed.

Was I right to keep my distance? Did I Not learned something? No and No.

While C# is very similar to Java, there are many more advanced features of the language that are very different. I have to say that after coding in C#, Java feel like an old language. I came to the conclusion that I like C# better than Java.

Why is that? Because I also like dynamic languages like Ruby. C# with features like lambdas, anonymous types, type inference, partial code block support (with the using(...) keyword), query syntax, object initializers and extension methods make it possible to implements things in a way that is more closely related to Ruby that to Java.

All these things I would like to be included in Java. But beside simple lambdas (with an ugly syntax) support slated for JDK 1.7, most of these features are not on the Java evolution time line.

All is not great with C# and .Net. By wanting to be similar to Java in the beginning, they copied a lot of the bad APIs that Java has. The monopolistic nature of the platform also shows in the IDE space. VisualStudio 2008 (I have 2010 installed but did not played a lot with it) is miles and miles away from NetBeans and Eclipse feature wise. And for a native application it is a lot more sluggish that any of the Java IDE. While you can extend this already expensive product with some other plugins like Resharper to make it more usable, it is still not a very good and usable IDE.

All in all, I glad I accepted this assignment. It did help me to open my mind a little bit more (and astonish some friends with this move to the "dark side"). While I don't feel like an expert in C#, I can now compare the .Net and Java platforms with a lot more insight than before. This will make me more valuable to my clients. This is a very good thing.

Keeping the mind open feels good!


Mocking me up!

I came by a nice little screen mocking tool. It's called Balsamiq Mockups.

The greatest thing about this tool is that your screen mockups will actually look like mockups. Making mockups with Visio or other tools will give the user a false impression of completeness. But with Balsamiq Mockups, it's clear that it does not represent the real thing... That there are still work to do.

While the result looks like a drawing, it still remains clean and readable.

This application is running under Adobe Air so it is available on any platform running Air (Linux, Mac, Windows). It is very easy to use and comes with a complete palette of widgets.

The only drawback I found was it's price... While at 79$ it is relatively cheap, as a Ruby and Java developer, I'm kinda used to free tools. However, there is really no equivalent for this tool in the free world and updates are free. So I guess this is a good investment.


_why programming is not so thankless

The Ruby world got shaken quite a bit last week. _why the lucky stiff, one of the most famous and productive member of the Ruby community, online persona vanished. Days later, little is know about the reason he's gone.

Many people are angry about this but most miss him.

The weird thing in all of this, is that _why is not his real identity. It's just the identity someone use to publish his work. Even when giving talks, he never used his real identity. While I guess it is a bit bizarre to be a public figure and making so much effort to hide one's real identity, it does gave him the power to completely vanish. And by the effect this has on the net, this is pretty amazing.

Programming is rather thankless. you see your works become replaced by superior ones in a year. unable to run at all in a few more. - _why

Being a software developer, this quote from _why rings a bell. It is true that the work we do is often replaced or deprecated in a very short time. But this does not mean that it was worthless. On the contrary our work, if being replaced or deprecated, does survive in many ways. At worst, it gave an example on how not to do things. At best, it inspired others and gave them ideas  on how to do things better, on how to improve our art.

Maybe _why felt strongly about how fast some of his code was replaced or became obsolete. But what I see is that his code is still wanted. The sites and repository he maintained have disappeared, but  the Internet is very resilient and the community help his code and his contribution survive. Many care about his work and this is something that will never disappear.

Is programming rather thankless? I don't think so!


Google Chrome OS vs Android => Coopetition

Google announced today that they are working on Google Chrome OS. A new operating system for the web.  While I'm a bit underwhelmed by the lack of details in their announcement (Linux Kernel + Chrome + new security paradigm), its hard not to be exited by this.

Some people say that Google will now have two competing operating system (Android and Chrome OS) and that this is not a good thing. I tend to disagree with this point of view. I feel that friendly competition within the same company is a good thing. I call that coopetition. This enable the company to evolve an idea through different path instead of relying on some external player to explore an alternate path. While this may divide the resource pool inside company, when you have enough resources (like Google), this is not a problem. In this case, the initial focus is different. Android is for mobile devices and Chrome OS for netbooks, laptops and desktops. While the line between mobile devices and netbooks may blur in the near future, today they are separate little beasts.

If both OSes evolve into the same markets, then at some point, Google may have to chose between the two (or let the user choose). But in the meantime, they'll have two options for two different market and this is a good thing.


Oracle buys Sun!

So it looks like Sun got a few billion more from Oracle than what they rejected from IBM. What could be said about IBM acquiring Sun could be also said about Oracle... At least, regarding software.

Is it a better thing having Oracle buy Sun instead of IBM... On the hardware side, it certainly is. On the Oracle announcement page, they clearly said that they will integrate Sun Hardware with their software to package complete solution.

On the software side, Solaris will continue to thrive. Oracle doesn't have any OSes. Java? I do not fear anything bad for Java, and if they do something bad, at least it is open sourced now and can be forked.

On the database side, I guess that MySQL will not be killed. Oracle have their on database, but MySQL can easily fit into their low end offering, even if MySQL can compete on the high end. They will probably integrate some of the Oracle SQl dialect into it so costumer can migrate more easily. They will probably also integrate MySQL dialect into Oracle to also easy that migration path.

On the app server side, I think it,s a bit less clear... But Glassfish is not really a significant competitor to any other app server on the market. They may keep it as the JEE reference implementation, but if they want to cut cost, they may aswell salvage part of it and let the rest die.

Overall, I think I prefer Sun to be acquired by Oracle instead of IBM... But Oracle has less interest toward open source than IBM, so it will be interesting to see how the merger will proceed and what will happen to Jonathan Schwartz who defined Sun's open source strategy.

The next few month will certainly be interesting.


Sony Playstation 3 (PS3) Blu-Ray failed

Last Friday, I had the unpleasant surprise of noticing the death of my PS3 blu-ray drive.

The last time I saw it alive, was the day before, when my 21 month old daughter played PS1 Dora The Explorer game on it (it does look better on the PS3 than on the PS1 or PS2 ;-) ). The same evening, I launched a software update to update the firmware to the latest 2.70 version. I let the firmware install and shutdown the PS3 when it was finished.

When I got back from work on Friday, my little baby wanted to play Dora again... So I booted up the PS3 and waited for the Dora game to appear in the menu... But when the little disk spinning icon in the top-right corner of the screen stopped spinning, the game did not appear in the menu.

I tried ejecting and reinserting the disk a few time to no avail. Just to confirm that the disk was not the issue, I put it in my PS2 and it worked... I let my little one play Dora and soon forgot about the issue.

Fast forward a few hours later, with two freshly rented blu-ray movie. None of them loaded. I then tried some of my PS3 games... Not working either. Back to the video rental store to exchange the blu-ray disks for DVDs.

On Saturday, I searched on the Internet in hope of finding others with the same issue after upgrading to 2.70. While I did find some problems with this update, none of them related to the blu-ray drive. When searching for ps3 blu-ray failure, I did find a lot of people having the same issue as I.

On Sunday, I decided to call costumer support. They where very friendly (I did made the mistake of asking for service in french, my native language, as they hook you with an English tech support rep and with a translator) but of no real help beside telling me that my warranty was expired (I got the PS3 as a gift in March 2008) and so that my blu-ray drive decided to go dead a few weeks too late. I mentioned that in the Province of Quebec, we have a consumer law that state "38. Goods forming the object of a contract must be durable in normal use for a reasonable length time, having regard to their price, the terms of the contract and the conditions of their use." It means that consumers can expect to be under warranty for a reasonable length of time (which may be greater that the warranty period offered by the manufacturer). The rep stayed silent when hearing this. Like he stayed silent when I specified that the failure happened after updating the firmware. The only thing that he was able to say was that it would cost me 169$CAN +TX to have it serviced and that the shipping will be free! They will send me a box to put the PS3 in and to ship it back to them. That is kind of costly... Almost half the price of the PS3. I could get an XBox 360 for just a little bit more.

So I guess I'll have to pay for the repair, if I want to play games in the near future, and then send them a nasty formal notice to ask them for my money back. I guess I'll have a great chance for winning a suit in the small claim court. There are plenty of jurisprudence and the claim that the PS3 has a 10 year lifespan in the eye of Sony would certainly not hurt!

Here is a Google Search for ps3 blu ray failure.
And here is a link to an Online petition demanding Sony to extend the warranty period for this issue.


Looks like IBM may acquire Sun... Is it bad for Java and Solaris?

It looks like IBM is in talk to acquire Sun. While I'm not very fond of Sun being swallowed by IBM, I have to say that I don't see that is a big deal now that it would have been few years ago.

The reason is not in hardware, but in software... In the past years, Sun open-sourced most of the software I care about (Java, Solaris, Glashfish, ...). So if IBM could have killed some of these if it acquired sun a while back (and there are reason to do it as they compete with their own stack of software), they can't do this today. This could even become the signal for some to begin forking Java (especially if IBM wants to get rid of the Java Community Process). It would be funny for the like of Oracle to now become a big IBM customer... But I doubt that Ellison would find it that funny (IMHO Oracle would benefit a lot more from acquiring Sun than IBM).

If this merger talk succeed, it will be interesting on how things unfold... What would IBM do with Solaris and Java (I'm pretty sure they will stop working on Glashfish). But whatever they do, both Solaris and Java are out in the open and if the community does not like IBM doing, these product will start to have a new life of their own. And I guess this would be a really good thing.

AdSense Links