Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds

Wednesday, January 19, 2005

Is Entire Entity Body Is Preloaded?

Many years ago, in one of the best software houses of Karachi, somebody misspelled the name of a library method which was being used in a huge project. Due to intellisense nobody noticed. Somehow, I noticed it and as usual got anxious to fix it. But it was being used in so many different places that everyone was afraid of making the changes. More importantly, the attitude was "who cares?" Though it could have been fixed with a utility that replaced strings in files by going recursively into folders but I was the junior most programmer, and my opinion was hushed.

Recently, ASP.NET's file upload component is driving me nuts. According to Soft Artisans, "Testing has shown that a 200 MB file can crash a Windows 2000 system with 512 MB of RAM". True or not, there are several problems with one of the most acclaimed features of ASP.NET - built in file upload support.

And while working on a solution that doesn't use ASP.NET's HttpPostedFile class directly, I found this misspelled method of HttpWorkerRequest class:
IsEntireEntityBodyIsPreloaded
. Can you see what's wrong?

Monday, January 17, 2005

Stockholm: Been There, Seen That

I had a quick trip to Stockholm - the capital of Sweden - on 13th of this month. Thanks to Rent A Coder, which makes me earn a few bucks for non-budgeted activities like these.

Stockholm is a city of islands. There are 14 small town-sized islands connected with bridges. It's much bigger and densely populated than the second largest city, Göteborg (Gothenburg or Yootay-bori). Göteborg is small city having the looks of Islamabad/ Muree and everything is just at the walking distance. Stockholm, on the other hand, is a sea of people. It's modern in the style of its building and the traffic reminded me of Karachi.

So, why did I go there? 50% to see the city so that I can plan better the next trip (because that's the hub of software industry here) and 50% to meet Asim Ghaffar. The way I find and meet people seems strange to some - how will you feel if somebody calls you from a distance of more than 300km and says I want to meet you, and then travels for 7 hours, meets you and goes back?

Asim Ghaffar is a traveler like me. Suppose while traveling in a deserted place you come to know that there is another traveler somewhere close by. Given enough resources and the ability, won't you like to meet him? Just to see who the guy is, what he is doing, where he has reached and what he is heading towards?

And I wasn't disappointed. He is worth knowing!



School is starting today and this one is going to be the toughest term.

Sunday, January 09, 2005

Got My Result of 2nd Term!

In Sweden, you get grades in discrete numbers: 3, 4 or 5 where 5 is the highest and 3 is Pass. You have to pass the labs separately in addition to the final exam (some courses have an oral exam and some others may just have presentations). There is a slightly stricter grading criteria adopted by European Union countries, knows an ETCS, so that the grades from different universities and countries can be compared.

So, here in Chalmers, the result is put up on the notice-board before it becomes officially available in the student portal and before being sent to you via email. But there are no names on the posted result. Each student is given a code which he can get by logging into the student portal.

Enough with the boring background! I got an email from a friend, Danko Ilik, giving me his code and saying that I should check his result when I would go to check mine. I sent him this email:

I have some good news and some bad news for you. The good news is that you have got 23.5 which is a 5 and you are second in the list. The bad news is that I have got 24 and I am the first one.

Cheers!

/Ali


So, if you are not bored already and left my blog, I got 5's in the two courses I took in the 2nd term: Computer Security and Mathematical Logic, Alhumdo Lillah. The email is copied here just because I enjoyed writing it and he enjoyed reading it.

I intend to take Software Engineering Using Formal Methods, Parallel and Distributed Real-Time Systems and Concurrent Programming in the third term. I'll have my Swedish Language classes starting from 17th.

I studied a little bit during the vacations and I feel I am interested in Distributed Programming specifically Grid Computing, Transaction Processing and Workflow Engines more than anything else. Perhaps, my thesis will also be about one or more of these topics.

Regarding the push-ups, I have started cheating. Actually, I was going very fine but started getting a little pain in my shoulder joints, specially when I stretched my arms backwards. I realized that I should do more stretching or perhaps, should mix with other exercises. So, I had done 6106 pushups in 48 days till 31st Dec. But now I have started counting two reps of any other exercise, at the local gym, as 1 pushup. This way, the score till 8th Jan is 6933 and I am still lagging by 683 to maintain the required run rate! But the good thing is that I have started going to the local motionhall (Swedish word for fitness club for sports and weight training).

Friday, January 07, 2005

MS Releases Beta of Its Anti Spyware Solution

Microsoft released the beta of its anti-spyware solution on 6th January. Like always, MS folks didn't build this product from scratch. On December 16th, MS acquired GIANT Company Software, Inc. Pretty fast? Acquire a company and release a new product in 20 days!

There are two existing free products in this category, both of which are very good. LavaSoft gives Ad-Aware Personal Edition free of cost. By the way, LavaSoft is a Swedish company. The other complementary software is Spybot Search & Destory.

It's good to run these two from time to time, specially if you get annoying popups or other strange behavior on your machine.

Monday, January 03, 2005

GPL, LGPL and MPL

Perhaps the most important of the open source related licenses are GPL (GNU General Public License), LGPL (GNU Lesser General Public License) and MPL (Mozilla Public License). I'd try to give an overview of the licenses for a developer who wants to use some source code under one of these libraries but isn't sure what his obligations are.

GPL is viral in nature. All binaries must have the source code with them (or at least should point to some place from where the source code can be obtained). Source code under GPL can only be linked with other GPL code. For example, if you find an open source GPL image scaling library that you want to use in some proprietary application, you can't. Any modifications done to GPL code must also be GPLed, which means that you can't improve some code for binary redistribution only - you have to contribute back to the wide spread open source code pool.

LGPL isn't that viral. It allows you to link proprietary code with LGPLed code. That is, if the library mentioned in the last example was protected by LGPL, you could use it for your proprietary application. However, if you make modifications to the library itself, they must also have an LGPL license.

MPL is getting more common, in my opinion. It's the license for Mozilla source code. It's based on the concept that the source code is contained in files, which can either be covered or non-covered. The covered files need to remain under MPL and any modifications made to these files will remain MPL. On the other hand, the user contributed code can be put in non-covered files which need not be MPL based. Thus, in a way MPL is like LGPL. Yet, it's very controversial.

There are many other licenses out there (Apache License, BSD, Artistic License, etc.) And perhaps, it's extremely difficult to get a clear idea of the rights/ limits of the code itself (except for some really simple ones like BSD and Public Domain). You'll also find many contradictory statements on the web which adds more to the mayhem out there.

I believe that developers should be as much aware of the licensing requirements of the code they use as much they worry about the compatibility of the code with their own. Most of the GPL-incompatible licensing somehow show that the initial contributor, in one way or the other, puts some clause that will allow him to reap the benefits when the software is widely adopted.

An interesting rant about Open Source Licenses is available here.