9/27/08

A giant in the house - My own opinion about Microsoft

Some days ago we received Microsoft at school: they were recruiting students for internships and full time jobs. I decided to apply, and get an interview. I was a little skeptic about what the jobs were about and the process itself.

I've said bad things about Microsoft in the past. I must confess, when one is inexpert and biased by other people, giving partial opinions is easy (That's the good or bad thing about strong opinions weakly held). But now, after a few more years of experience using computers, and inevitably, its products, I feel obligated to give an opinion.

I use [other OS] for almost all my needs. Every time I boot into Windows, my friends and teammates won't let me lie, I spend the next thirty minutes ranting about how much I hate Windows. I stop ranting when Windows stops booting (including services and who the hell knows what else), and becomes almost fully usable. Thirty freaking minutes, you can't tell me that is not a waste of time. My [OS] boots in 5 minutes, 10 at most when I hadn't done any maintenance.

Is that really a problem of the software? Maybe. Do I have to hate Microsoft for that? Definitely not. Windows consumes resources like a monster, but definitely the computer I use isn't suited for that matter (BTW, I am talking of Win XP, my computer would commit suicide if I installed Vista). I am a software developer, and have .NET, VS, SQL Server and a hell lot more of services that are essential to my day-by-day work. My computer is a somewhat old Thinkpad T41 that I have pulled to its limits; Windows may be a good platform but surely requires a more robust equipment. I am not discussing here if that's actually good or bad for the common user, I'm just saying the cause of my frustration is that I have a small bad suited computer for all the work I have to do as developer.

Having said that, my main point: I still dislike Microsoft. To be more specific, I dislike monopolistic and uncompetitive behaviors. Yes, I am a big fan (in the good sense) of Open Source. I really believe in it as another way of doing software. I understand it's motivations and benefits, and respect them. What I really dislike is that, based on strength of market and current capabilities, one company can get all the cake and keep it out of reach of the rest of the world. That is what Microsoft does in many ways, some more evident than others.

I would give some examples, but for the brevity and partiality of this post I will just limit to say that there are many you can find discussions about around the web. Fortunately, not everything in Microsoft is that way. The bad thing about it is that the same inertia driving the software industry around the giant Microsoft has made that other platforms and products don't get as much attention -again, I understand, but not condone, the economical rationale-. Hard work has been done to push things in the other direction, and slowly but hardly getting results.



Would I want to work for Microsoft? Definitely. Would I do something to tie up the competence's freedom? No way, and I want to state this clearly from the beginning. Now, speaking from the other side of the coin, I really believe in Open Source, but I don't see it necessarily as antagonist. Is just that both approaches excel in one part or another -beware, because both have the potential to excel on the other's strengths-.

9/25/08

Don't let me singing alone - Karaoke Capitalism (review)

 
Accept no imitations - no limitations. You are here for a reason. You've got the power and the rights. It's your life - you decide. [...] Free your mind - and the rest will follow
Karaoke is about imitation. The whole metaphor about the karaoke club with the modern economy - or more accurately, what economy is and has stop being - takes us to the deepest roots of contemporary successful companies.

The book is about economy, politics, technology, sociology and business management; yet, it never touches a single bit on their underlying theories. What Ridderstråle and Nordström, the authors, describe us is the real world.

Karaoke Capitalism is not a guide, but an invitation. To explore, to free ourselves, to be aware of what is happening, to be confident in ourselves and in our ideas, to take risks, to confront failure and, ironically, to not embrace success. Within its pages, you can perfectly see the mechanisms of the world of today, and at the same time, get the insight of why is it happening.

It would not be hard to compress all the ideas of the book into a blog post; but is impossible to transmit that insight in a few lines. I will limit to say that the book emphasizes on individuality, in which talent is the new real value (besides money). Technology is now just enabling and empowering the individuals to grow. But we now live in a material world (whether we like it or not), and the market is a big, unstoppable mechanism, which is more than the sum of all of us. The world has, is and will keep changing, so the business models have to flow with it. Now, businesses are about innovation, which is far more complicated than just invention, and is a long path with ups and downs. Companies are not controlled by corporations anymore - they are driven by its people, the talented one. At the end, the successful companies are the ones that can engage the customer, provide the most valuable. The survival of the fittest - and the sexiest.

(C) The sinister idea, Felipe Morin


So, what does it has to do a book about markets, economy, globalization and management to us (at least to me), people on the IT? Well, I'm sorry, the answer is not highlighted and in bold font within the book. What it gives us, as I say, is a tour around the minds and souls of some of the most innovating companies - which gives the casualty that many of them are technological companies. It helps us see all those trees in the forest in front of our noses: the world is global. You cannot change it, but can change yourself. If you are lucky, you can excel. And, the most important, valuable lesson. Luck doesn't equal chance. Luck is for the people that expose to the opportunities, who know which to grab - and which to throw away-, who have aspirations, are pro-active and practice luck.

In short, this book is a whole manifesto, one that you shall embed into yourself, and put it into practice. Be sure not to miss it.

9/3/08

Riding the camel - OCaml opinion (i)

I have started just a few weeks ago using OCaml. My only serious experience with a functional programming language was with Erlang, but I really liked it. I liked the shift of paradigm (although I am such an OO progammer (learned to program with Ruby), it was not difficult at all). Here are some of my thoughts about it.

Being a strong typed language for being functional at first sight seems cool. You can have all the benefits of typedness without actually the blot of the extra typing. Actually, it is, but it has its cons.

I really have nothing to complain (yet) about OCaml except for it's output libraries. I really miss my [puts | print | Console.Print | even the fugly System.out.println]. Debugging is a pain not as easy as another languages, just because of the printing. Not debugging itself, but unit testing, as part of test driven development (TDD), something relatively new to my and which I'm falling in love with.

I don't know whose fault it is, if the language itself for not being flexible with the types (at least the very basic ones) or the libraries. I know about some external libraries (MetaOCAML, Sexp, extlib) that try to handle this, but having to rely on external libraries leaves much to desire of the language.

The other thing I find annoying is that the compiler just points the first error it encounters. It's trivial for small files, but I'm scared of what can happen with larger files. Fortunately, TDD helps you not to commit those mistakes, at least not catastrophically.

Maybe the OO part of OCaml has it's advantages, and I want to think it has because pure functional programming in OCaml is not the way one would like, at least not me. But I have not explored that yet. My next goal: functors.

CC by shamiska

Well, all of this is because we are developing a Web framework on school, which had to be done in a functional language. It seemed like the perfect opportunity to learn another language, so I decided to give it a shot. I don't post the link of the project (although it's GPL3), because I don't know if I am able to do it given it is a school project, but once I can I would share the result with you.