Archive for the 'Musings' Category

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.

The Tychod

Tychod stands for Tycho debugger which is a reference to a story/article by Richard Stallman called “The road to Tycho” about a world where possession of a debugger has been made illegal to prevent people from working around DRM mechanisms.

An interesting point that Stallman discusses in another article “The GNU Project” is that popularity of free software is spreading faster than the philosophy of freedom that motivated it. This is what he says:

Estimates today are that there are ten million users of GNU/Linux systems such as Debian GNU/Linux and Red Hat “Linux”. Free software has developed such practical advantages that users are flocking to it for purely practical reasons.

The good consequences of this are evident: more interest in developing free software, more customers for free software businesses, and more ability to encourage companies to develop commercial free software instead of proprietary software products.

But interest in the software is growing faster than awareness of the philosophy it is based on, and this leads to trouble. Our ability to meet the challenges and threats described above depends on the will to stand firm for freedom. To make sure our community has this will, we need to spread the idea to the new users as they come into the community.

But we are failing to do so: the efforts to attract new users into our community are far outstripping the efforts to teach them the civics of our community. We need to do both, and we need to keep the two efforts in balance.

A Python Cyborg

Python is a kind of brain extension. With its help thoughts instantly become working programs.

« Previous PageNext Page »