Archive for the 'Musings' Category

Superman, Where Art Thou?

Two years late I have stumbled on this ongoing unreal Gotham style cyber crime - the Storm Botnet - An ants-nest like hydra made of 100,000 to 50,000,000 infected computers using p2p technology with enough combined power to knock countries off the Internet, involved in a variety of crimes and attacking any institute attempting to investigate it.

For two years security experts and law enforcement agencies have no clue how to handle it or who is behind it.

http://en.wikipedia.org/wiki/Storm_botnet
http://www.schneier.com/blog/archives/2007/10/the_storm_worm.html
http://www.secureworks.com/research/threats/storm-worm/

Elastic Plastic

Can someone enlighten me to the fundamental difference between Amazon’s EC2 service and a standard dedicated hosting service?

Today I chatted with a support person from Rackspace “cloud” servers and tried to figure out if there is any technical difference at all between their service and Slicehost’s VPS hosting. “No” she admitted, “They are identical”. They even use the same server specs.

The LAMP Engine

LAMP web hosting can evolve to offer the scalability of Google App Engine (GAE for short).

As discussed in the post “Google App Engine Limited”, GAE does not currently scale bigger than a dedicated server. What it offers is “natural” scalability up to that size and “pay for what you use” billing.

With traditional VPS hosting you can allocate resources manually. You do not have automatic resource provisioning, and as a result you either don’t have enough resources for your service or you pay for more than what you use.

However, Xen virtualization (used by VPS hosting) could evolve to offer automatic resource provisioning, and “pay for what you use” billing as well. It is already possible to move VM between physical servers with no service interruption. A controller could be designed to optimize resource allocation per server, migrating VM as required, for example migrating small services in response to slash-dotting, combining high-bandwidth low-CPU services with low-bandwidth high-CPU services, or automatically matching services which have complementary load patterns.

Google App Engine Limited

Some people are under the impression that the Google App Engine (GAE) will allow their application to scale as big as earth. However, if you read their quota document you will notice there are limits even for billing-enabled accounts which limit GAE to the scale of about 1 or 2 dedicated servers.

The CPU usage is limited to 72 CPU minutes per minute. A Google CPU is defined as 1.2GHz x86 CPU and since they are famous for using low cost commodity servers (probably focusing on energy efficiency) I estimate these 1.2GHz CPU are equivalent to 0.6GHz modern E54xx Xeon core and that therefore 72 Google CPU are roughly the equivalent of 2 modern 2.5GHz Xeon machines.

The service is also limited to about 500 requests (hits, not page views) per second which a single dedicated server should be able to handle. Google offers a form through which you can request additional quota, but I would not recommend anyone to base their business plan on begging Google for that extra quota.

Maybe the Google App Engine can not safely scale any bigger for an arbitrary application. It is one thing to distribute a well designed algorithm using the MapReduce methodology over 1,000 servers, but it is another thing to distribute an arbitrary application. For scalability you ideally want an application designed according to the shared-nothing principle (http://en.wikipedia.org/wiki/Shared_nothing_architecture) and what is more shared-nothing than two different and separate small web applications? Keeping these applications small allows Google to distribute their processing efficiently.

References
http://code.google.com/appengine/docs/quotas.html
http://code.google.com/appengine/docs/billing.html
http://news.cnet.com/8301-1001_3-10209580-92.html
http://www.gigabyte.com.tw/Products/Networking/Products_Spec.aspx?ProductID=1075
http://elnexus.com/articles/2004-2008.aspx
http://2bits.com/articles/can-a-drupal-web-site-handle-a-million-page-views-a-day.html

define:irony

This is from the Linux magazine: “Just days after Stallman finished celebrating the 25th anniversary of his GNU Open Source project, the controversial free software activist was again making headlines.”
www.linux-magazine.com/online/news/richard_stallman_cloud_computing_a_trap

Hopeful Again

I hope no one who implemented CSS support into IE6 works in the software industry anymore.

End of the Editor Wars

My search for the perfect editor has finally come to an end. Yesterday I found it and it is called NetBeans IDE 6.5.

I downloaded and installed the package for PHP development. It simply does so much right. Its project management, symbol lookups, code completion, in-file searches, across-files searches and source navigation are superb. Using its PHP debugger to debug my local apache server was a breeze and its MySQL client is excellent.

If you come across the strange JDK rendering problem you can find the fix here: http://forums.netbeans.org/topic4851-0-asc-15.html

Free Ignorance

Here is my five-months-late take on the Negroponte-Microsoft love story announcement. It is an ironic story in which the FLOSS community is harnessed to pull the OLPC wagon to Africa and goes ballistic when told that they have to carry Microsoft in that wagon as well. I say that anyone in that community feeling betrayed can only complain of his or her own ignorance.

Take a look at Negroponte’s announcement (http://www.olpcnews.com/people/negroponte/nicholas_negroponte_sugar_olpc.html): The term Open Source appears 27 times in the announcement and comments while Free Software appears in one comment only where it is being slammed. Take a look at the Wikipedia article on OLPC (http://en.wikipedia.org/wiki/Olpc): The term Open Source appears 7 times but nothing there on Free Software.

Well, isn’t Open Source all about that corporate-friendly magical method for creating high quality software? Not about user freedoms or hating a particular corporate. You would think the FLOSS community members who feel strongly about something would actually know what it means, right? wrong.

And guess what, there is a two years old interview with Stallman on YouTube in which he warns of such an occurrence (http://www.youtube.com/watch?v=fBogiLGPMwA). This is what he says beginning on minute 08:45: “I ask you to please always call it Free Software because that way you will encourage other people to pay attention to the question of freedom. The term Open Source was formulated by people who did not want to talk about freedom and that is the stupidest thing any people can do. If people don’t talk about freedom it gets forgotten and then somebody says ‘if you will just accept these little restrictions, here is this convenient pleasure you can have’, essentially saying ‘we will sell you something in exchange for your freedom’. And if you have not been thinking about freedom and realizing what freedom means, you might accept that poisonous deal and then your freedom is gone.”

GPL and the Copyright Problem

First I chose GPL for Winpdb, then only 2 years later I actually discovered Free Software, what it stands for and the fascinating universe behind these two words, but now a year later I have stumbled on a problem.

GPL is a tool that uses copyright to enforce software freedom, but… in order to be able to enforce that there must be a copyright holder that can take action. The FSF is aware of this and is carefully requiring contributors and their employers (!) to sign legal papers of copyright transfer: http://www.fsf.org/licensing/licenses/why-assign.html

The problem is that most GPL projects can not afford to force potential contributors to get their employers to sign legal papers as it will reduce the number of contributions to 0 and therefore the copyright to their projects is either dispersed among the different contributors or even worse, is questionably held by a single person or entity (with emphasis on questionably).

What does that practically imply on GPL?

On my search for answers I stumbled upon an interesting article from the year 2000 in Advogato (A recommended site). It became even more interesting when I spied a comment by one Bram Cohen who at the time was little known in the Universe as he did not yet leave his job to write BitTorrent: http://www.advogato.org/article/183.html

I would appreciate your educated opinion or a reference to articles on this subject.

Quiet

It has been rather quiet lately with Winpdb. I have been gradually getting less and less feedback, bug reports and requests either here or in the sourceforge pages. Since it is being downloaded as usual I can only assume it is a sign of maturity. Maybe it just works.

On the other hand I have been contemplating lately the social phenomena of user community indifference. A piece of software can have tens of thousands of users and still generate negligible collaboration activity. It is a mystery. I mean, given this behavior what makes the Wikipedia concept work? What makes one project a collaboration party and another a single person effort?

In any case, this silence on the Python desktop front coincides with my personal shift into the grazing grounds of web development. Finally. Probably one of the last in the herd of software developers, late to get out of bed as usual, I lifted my head from the desktop grass and started marching in search of some XHTML. The first pasture I found by recommendation was of Ruby and RoR. I found the grass over there totally indigestible. Every one says how wonderful and natural it is and that Ruby is actually a lost twin sister of Python. Sorry, but I could see no resemblance what so ever. Sure, Python is not a perfect language but the beautiful thing about it is that it magically disappears and quickly becomes second nature, an extension of your brain. Trying to program in Ruby felt like eating lunch full of sand. I therefore marched on and this time I decided to start from the basics with PHP, XHTML, CSS, SQL, JavaScript, AJAX etc… PHP is another curiosity. It is the most terrible language I ever stumbled upon. How it has become such a corner stone of web development is a mystery. But I decided to give it a serious try this time. After all, the other grazers on that pasture told me PHP programmers are in high demand.

To get PHP, SQL, and the rest into my system I am writing a small and simple MVC framework from scratch. It is called Bolepo and I will soon put it online. Probably in this website initially until it starts crying that it wants its own space. It already has a cute and useful ORM library. I swear.

« Previous PageNext Page »