Do not run after misleading benchmarks

10 07 2007

I just had to find some time to write about this. This post is aimed to help anyone who feels elevated and impressed by the trendy benchmarks between programming languages and/or frameworks. Benchmarks are tools to help us judge. They have a purpose to serve. But using them to their lowest significance and publishing those results to the community does not help anybody. I’d rather say misleads the rookies. And let’s face it, there are more rookies in the industry right now than anyother time. High level MVC frameworks are starting to get in good stable shapes, enabling the developers do more with less. But the problem is doing more with knowing less is not good and neither is sustainable.

Let’s have a look at some posts that proves the point. Someone benchmarked Code Igniter, Cake PHP and Symfony in this blog. All the fuss is about, these three framework printing “Hello World”. This benchmark uses artillary to kill mosquitos, then honours and ranks the million dollar artillaries for doing that better that each others. And then (the catch) gets great appreciation too. What is the point of printing Hello World with RAD tools? Do you benchmark a sniper rifle, a rail gun and an AK-47 in an indoor fight and rank them which one is better? Aren’t they built for long range?

Some people did mention in the reaction that  a benchmarks like this should involve practical use. Like DB operations, ORM use, to find them perform what they are built to perform and compare them there. My intention is not to blame efforts. My point is, how many rookies gets distracted by these type of benchmarks? I say, many. Just read the comments. There are lot more examples. This one is at least,  amongst PHP frameworks. People are compairing cross language and cross purpose tools like that.

If you are either impressed or repelled by the arguments up to now, I suggest you to listen to this speech of brian d foy about benchmarking, given in Nordic Perl Workshop 2007 a few months ago. This is one of the most interesting speech I ever heard. He starts by saying, why you should never use benchmarking ever in your life. Well not ever, but not while your brain is off, as he later clarifies. And also advices to use profiling, which will help you more than benchmarking.

And about speed; speed is a very relative metric for judgement. It is sensible that RAD tools give away little bit of execution speed for developement speed. Symfony guys posted a good explanation in their blog to clear what is how and why. My final thoughts: there are lot of good frameworks to choose from, choose depending on your particular needs. But above all, choose with realistic expectations.

Blogged with Flock

Tags: , , , , , , , , , ,





A research on Web 2.0 webserver demographics

8 06 2007

Background: I had an interesting chat with one of my friends about what technology Web 2.0 uses and promotes. Does it break any trend or at least started to break any in the field of web servers? So for the welfare of science, technology and humanity, I decided to do a research. I can knock all the Web 2.0 web sites to learn about their web servers info and analyze to find out if there is really any significant visible trend or not. Alexa pays their researchers a lot of money to do this type of research. Anyway I am doing it for free this time.

Plan: So, I had to write a web crawler that makes a list of all the web 2.0 sites some how and knocks all of them at the head (pulls the http header only) to know what web server they use. I chose eConsultants.com to create the list. They have a list of all Web 2.0 sites like quite a few sites do, as you may know. And they are easier to crawl as they are least bloated than the others (and I cannot pull data from websites made with flash).

Research: So crawl i did. And found a list of 1269 sites in total. So you know how many Web 2.0 web sites are there. Hang on a minute! What makes them qualified as Web 2.0 sites? Lets leave that responsibility on eConsultants.com. But if you want to know what I think about Web 2.0, here you go, I found these comments in a Digg story:

Digger X: What exactly is Web 2.0? What kind of features can I expect? I keep hearing about this buzz, but I’m not sure exactly what it is.
Digger Y: web 2.0 is a new buzz word that will allow startups to get funding again if they can tag themselves as web 2.0 If your website has gradient colors and uses ajax you’re already web 2.0 baby!!!

Okey, so our mind is clear again. Here is the list of Web 2.0 websites. And another web crawler retrieved web server info from all these sites and created a Web 2.0 list with webserver info. Then a text analyzer program I wrote, made me a sorted list of all the web servers.

Result: Final list is not that big, so I can post it here:

725 (57.13%) ==> Apache
176 (13.87%) ==> Microsoft-IIS
173 (13.63%) ==> unknown
52 (4.10%) ==> Lighttpd
37 (2.92%) ==> Apache-Coyote
25 (1.97%) ==> Mongrel
10 (0.79%) ==> nginx
7 (0.55%) ==> Zope
7 (0.55%) ==> Jetty
6 (0.47%) ==> GFE/1.3
6 (0.47%) ==> LiteSpeed
6 (0.47%) ==> Resin
4 (0.32%) ==> Oversee Webserver v1.3.18
3 (0.24%) ==> GWS/2.1
2 (0.16%) ==> AOLserver/4.0.10
2 (0.16%) ==> Apache-AdvancedExtranetServer
2 (0.16%) ==> SWS
2 (0.16%) ==> Zeus
1 (0.08%) ==> Web Crossing(r)
1 (0.08%) ==> Juniper Networks NitroCache/v1.0
1 (0.08%) ==> Japache/2.2.4
1 (0.08%) ==> AZTK – dido
1 (0.08%) ==> Web Server
1 (0.08%) ==> TwistedWeb/2.2.0
1 (0.08%) ==> JoyWeb 1.0b1
1 (0.08%) ==> Server
1 (0.08%) ==> LuMriX
1 (0.08%) ==> JWS 1.2
1 (0.08%) ==> Lotus-Domino
1 (0.08%) ==> mfe
1 (0.08%) ==> netvibes.com
1 (0.08%) ==> Concealed by Juniper Networks DX
1 (0.08%) ==> Sparky
1 (0.08%) ==> Sun Java System Application Server Platform Edition
1 (0.08%) ==> Mittwald HTTPD
1 (0.08%) ==> Yaws/1.65 Yet Another Web Server
1 (0.08%) ==> igfe
1 (0.08%) ==> Phillips Data v1
1 (0.08%) ==> bsfe
1 (0.08%) ==> SimplyServer 1.0
1 (0.08%) ==> DMS/1.0.42
1 (0.08%) ==> Sun-ONE-Web-Server/6.1

You can compare it with Netcraft’s research result of all web server. I won’t claim that mine is a very accurate research (does have some rubbish data), but it showes the picture more or less. You can see that Mongrel gets a greater share here than the general list. At least those are Rails sites (does anyone use Ruby without Rails as a web platform?). I am happy to see Lighttpd (lighty) getting a spot amongst top 4. If any web server goes up in that list significantly in the near future, it will be lighty. The “unknowns” listed in 3rd place did not give any web server info in their http header. So let us assume that they have the same demographics as the visible ones.

And Apache is the leader by far, IIS being the second biggest web server in the market.

I would be happier if more info could be retrieved this way. I will definitely try to know more about the other web servers here I did not hear of before. I would also love to take part in any research project of similar sort in the future. Finally, If you have any suggestion/critique to make this research any better, or just would like to let me know your appreciation, please drop me a line.

Update: I just found that the primary list has some duplications. Too bad. I just updated the post with the new data. Changed the bad list files with new ones too.

technorati tags:, , , , , , , , , , , ,

Blogged with Flock





An article about SQL injection

2 06 2007

This is a must read for anyone who ever coded any application that uses a database. The title says it:

SQL Injection Attacks by Example

Read on…

technorati tags:, , , , , , , ,

Blogged with Flock





Zamzar: online file conversion service and some thoughts about future

31 05 2007

If anybody is interested in online file conversion, I suggest a great service/website zamzar.com. It lets you convert files between most of the common text, document, image, audio and video formats. Just upload, select target format and give it your mail address, it will mail you the result instantly.

Let’s share a scenario with you. I didn’t install any office package in my new OS installation, partly out of laziness, partly out of scarcity of hard drive space.
Yesterday I had to edit and mail an important document file in a hurry. I thought that I can try google docs, instead of installing MS Office or Open Office, to eidt it. As I was ready to uploaded it to google docs, found out that it’s in docx format (introduced in office 11). Goggle docs doesn’t support docx. Then I found zamzar.com after googling. I thought it’s another freeware or shareware, that I have to download and install. But no, it’s an online utility. I converted docx to doc with zamza. And then edited the file in google docs. I saved hard drive space and installation time. And hey, I started thinking, what software I cannot replace with an online service within next two years? Hmm, operating system…… games (real ones)…. web browser…. hmm i keep thinking…\.

Why this is important? Have you recently heard the term SAAS (Software As A Service). That is the future of software solutions. Within 2 years more or less we will be able to do most of our daily tasks without ever installing a software other than a web browser. Day by day web services like these will become powerful. And web browsers will become center of all tasks. Flock showed some creativity, opera pioneered some ideas. And as much as I know FireFox 3 will kill all other browsers. DOM will become even more powerful. Flex, Silverlight, JavaFX (hmm i am doubtful) and Apollo will create new standards. And most of them will be free. We will use on line file storage instead of “My Documents” or “home/”, just like we shifted towards web mail services over desktop clients. It’s true that there is probably a bubble forming somewhere in the Web 2.0 world, but at the same time Web 2.0 is changing our life forever. So lets get ready to embrace the change. And I will write about Web 3.0 some other day.

technorati tags:, , , , , , , , , ,

Blogged with Flock





About jobs, hiring and resumes

27 05 2007

I just woke up and had to read something to have my brain going and feel that the world haven’t gone past me by the time I slept. Joel Spolsky wrote a great article back in September on sorting resumes. Joel stresses on programming ability, passion for programming, likeliness of being able to pick up new technology/tools, good English (not necessarily as a medium of communication, but as a sign of care for correctness) etc. He also doesn’t believe in looking for list of alphabet based technologies in a resume which a lot of companies in my vicinity do.

There was another great article in the same domain which I read last week. Adrian Howard wrote in use perl about how not to advertise for a job (he actually recalled an original article he wrote long ago in perlmonks).

And lastly, I read Joel’s The Guerrilla Guide to Interviewing. It’s about , well, interviewing to find the right candidates. It’s pretty much worth reading too. Has an interesting categorization of candidates:

In principle, it’s simple. You’re looking for people who are

  1. Smart, and
  2. Get things done

His elaborations on “People who are Smart but don’t Get Things Done“, “People who Get Things Done but are not Smart” are so true. IMO everyone looks for the “right kind of brain” for a programmer position (here programmer loosely stands for brain workers, who solves problems in any position of a team), above anything else. Joel points out the stellar techniques of managing that.

technorati tags:, , , ,

Blogged with Flock





Softwares I cannot leave without: Episode 1

26 05 2007

I am someone who appreciates great softwares. Let it be a windows or Linux software, an web app or a tool for mobile, I try, judge them all and use the softwares I find best. I am a download junkie too. I download, in my honest opinion, more than anybody else in Bangladesh. I download via my download managers, bittorrent clients, Linux tools and finally my custom web crawlers written in Perl (that’s another story, which I will write in some other series of posts) 24/7. I find it my duty to remain cutting edge. If I do not use the best softwares, how can I create best ones, right? Enough prologue, here is the part of the post that may come of use to you. And I will keep the series going:

Wordweb (free edition): It’s a tiny dictionary that remains in your system tray. Select any text in any window/editor/software and hit ctrl+alt+w. The dictionary pops out with the definitions/synonyms. If find yourself caring for your English, don’t live without it. Cons: Does not find rare words, in free edition. But serves well for me ( I got 7.5 in IELTS ;) ).

DUMeter: Bandwidth monitor software for windows. It shows exactly what is happening with my Internet connection. If you have an Internet connection faster that you will ever need, you don’t need it. But I am someone who will, in my humble opinion, prove even few MBps connection slow. But anyway, in Bangladesh we don’t get fast enough Internet connections. And I feel blind if I do not get a measure of incoming and outgoing traffic of my PC.

That’s all for this episode. I would appreciate if anyone suggests any better alternatives or relevant info.

technorati tags:, , , , , , , , ,

Blogged with Flock





Software Review: HeidiSQL, you can get rid of phpMyAdmin now

24 05 2007

I found HeidiSQL today which blows away all other products in the category. It is a third party GUI management tool for MySQL, 100% free, 1.5MB download size for windows and takes only 2.4MB on hard drive, when installed.

I found HeidiSQL on www.osalt.com. Somebody commented that, “Better functionality than phpmyadmin”. I wasn’t too optimistic before I used it. And now I agree with him big time. I was looking for something like this for months. I use phpMyAdmin, wanted to switch to a faster alternative, but could not find a good one.

  • I tried MySQL Control Center (mysqlcc), which I feel has freaky MDI.
  • Tried trial version of MySQLyog, which was kind of OK, but not free.
  • Tried MySQL Toad. Many people I know uses that, But I found it cumbersome to use.
  • Tried MySQL Administrator, which is not a product in the same domain. It helps you manage the server rather than managing tables and data on it quick and fast.

So I had to fall back to phpMyAdmin which is complete but slow because of web interface and can never beat a native windows software. But now HeidiSQL proves itself as good in usability, simplicity and feature set. And As a bonus think of how light it is. I ready to use a 5 to 10 times heavier application as smart as this. I tested first of all it’s large SQL file import ability. It imports 20MB SQL without any problem. Has csv, html and xml export feature. On the spot editing in tables, like MS Access. Can import files as blob directly. And the help file is another excellent feature quoth smart SQL references with examples. It will make you refer to it for most day to day MySQL activities. Features quick filters which is great to use.Only feature I can ask for is, ability to remove some columns from the views, which mysqlcc has.

Feature list from their site:

* generate nice SQL-exports
* synchronize tables between two databases
* manage user-privileges
* import text-files
* export table-data as CSV, HTML and XML
* browse and edit table-data using a comfortable grid
* batch-insert ascii or binary files into tables
* write queries with syntax-highlighting (next version will have also code-completion)
* monitor and kill client-processes
* and much more

I am looking forward to see more intuitive improvements in the future versions. Lets wrap up with some screen shots.



Please feel free to drop your suggestions to help me improve my reviews.

technorati tags:, , , , , , , , , , , ,

Blogged with Flock





Language war: real stuff

23 05 2007

One of the bright side of flame wars between the languages is, they gives the community some real stuff at the end. We love it when people who really knows the ins and outs of the languages/platforms speaks up and one can actually get to know the gotchas and strengths of the languages and the tools.

One of my friends was researching for quite some times about what development medium to choose for their new top secret startup. He is a Python guy, but initially was very interested with Ruby on Rails (RoR) for speedy development and easier maintainability in mind. Then the twitter debate came up and people spoke about the scalability and other issues with RoR. Now he is thinking of going after Django or TurboGears.

And now there is another controversy (if I may call it that. or, “friendly discussion” perhaps?) going on about Perl. Bugzilla, the largest open source project that uses Perl, has announced that they might move to some other medium rather than Perl, because they think Perl is less maintainable! Then chromatic from onLamp followed up. The debate and related articles is really worth following. The comments and replies to these posts are more important for me. IMO the community is helping itself to find out the right tools for the right trades. I read for long. I think I will follow up this post with another one later to write my perceptions and findings. Readers, keep exploring!

technorati tags:, , , , , , , , ,

Blogged with Flock





I am the 21st century brain worker…

7 10 2006

Found something very interesting. The writer of this “legendary” article about a simple web crawler wrote about himself,

Mike Thomas is an Internet application developer working for a consulting firm in Saskatchewan, Canada. Mike lives in Massachusetts and uses two Linux systems to telecommute 2000 miles to his job and to Graduate School at the University of Regina. He can be reached by e-mail at thomas@javanet.com.

I had to ask myself: How many miles I do? Lets check in Google Earth. Its 7,850 Miles or 12,634 KM. So I guess I am one the longest mile workers ;) . His article is really very helpful anyway, and legendary too (read the comments there, you will know). I bookmarked this site 4/5 months ago just to add this story in my blog.





18 Ways to Stay Focused at Work

4 10 2006

Sometimes articles like this one comes useful…

Find the best time to do repetitive and boring tasks. No matter how much you try to avoid it, you’re going to have to face doing things which are either repetitive or boring. For these tasks, I find it is best to choose a time in the day to work on them. For example, I’m more alert at the start of the day, so it’s better to work on things which require brain power early. Working on boring tasks that can be done via auto-pilot are better left towards the end of the day when I’m usually tired.

18 Ways to Stay Focused at Work