The future is distributed: Google App Engine

My love for Python begun many years ago, when a friend lent the Python Bible to my brother. After reading the first pages, I fall in love with this language. It was easy to read and didn't make me feel stupid, something I still feel when programming in Perl. Python is simple, powerful and displays a mathematical beauty. I considered it for the development of Blogalia but Python was not suitable for web programming at that time (end of 2001). Zope was around, but it was the 800-pound gorilla, with a steep learning curve. Then it came Ruby on Rails. At first, it was a shock for the Python community. Ruby wasn't a popular scripting language, but Rails was a killer app for it. Fortunately, Django and another Python web frameworks appeared shortly after.

Yesterday, Google presented its scalable app service, called Google App Engine. This platform allows to build a site a forget the scalability issues, and easier than anybody else. As Read Write Web says in Google App Engine: Cloud Control to Major Tom:

«Google App Engine is similar to the Amazon Web Services stack, which rolled out at the end of 2006 and has since gone on to be utilised by many startups for their infrastructure needs. But it is not a set of standalone services like Amazon's - which includes S3 for storage, EC2 for hosting and the SimpleDB database. Google App Engine is an end-to-end service and bundles everything into one package.»

At this moment, the only programming language available for Google App Engine is Python, and Django is one of the recommended frameworks. This is why so many Python fans are happy (just like me).

Let's see the big picture. This is one of the most exciting news about the future of the web I've seen in a long time. Now that web programming is very easy, the problem right now is not to how to be productive developing web applications.  Django and Rails allows it to do it fast. The issue is success: how to scale the app once it's done. That's was my main criticism about Django, Rails and other web frameworks: good improvement for development, but don't address how to grow. I experienced this on first person. TypePad grew from a few thousand users to millions of them and it supposed a huge invesment in programming, infrastructure and human resources for Six Apart. Django and Rails and similar frameworks just let the headaches happen in the deployment stage (remember Twitter issues?). To me, the ideal web frameworks is the one which makes easy development, deployment and scalability. Zope is close to this ideal, but is not easy to develop with.

Amazon saw a good opportunity in this field. S3, EC2 and Simple DB use Amazon's know-how in massive storage, virtualization and cloud computing and put them in the hands of the average joe. In a similar way, Facebook and Salesforce also do application hosting, and abstracts the hosting layer for the developers' benefit.

However, Google goes a step further. We just need to design and develop an application in Python (at this moment), and Google takes care of the rest. No need to fight against Xen or httpd.conf or MySQL optimizations. No more worries because Digg, TechCrunch and Slashdot have linked to your site. Google App Engine makes very easy to develop, to deploy and to scale.

Google App Engime are good to small developers. Not all programmers are good sysadmins, and not all good sysadmins are good PHP/Apache/SQL optimizers. So if a small company has a good idea, the consulting and hosting fee will be the most significant part of the business plan. Google App Engine, hopefully, will cut this expenses (at least, the IT headaches for sure). The services based on this scalable platform will have a serious competitive advantage.

Traditional hosting companies must move quickly. Six months ago, a friend asked me which project did I have in mind. To me, one of the most exciting was a data center to make the ideal web framework real. Most of hosting companies are still in the PC era, reting individual servers. But the future is distributed, not just data storage but also web applications. Right now, hosting customers must develop their in-house software solution for scalability and rent the servers to deploy it. But, why the wheel is re-invented over and over? Scalability must be a commodity. That's what Google has done. However, I think there is still room for many others. Hosting companies can offer a closer relationship and more personal service to companies and users. However hosting companies don't have a ready-to-use scalable solution: opportunity for software and hardware vendors.

I don't foresee any revolution in the short term. Applications for Google App Engine must be developed ad hoc. But they will appear and some of them will be open sourced, ready to be installed and used. Incarnations of Drupal, Joomla, WordPress, Movable Type for this platform will appear, as well as clones of your-favorite-social-network. This will force competition (Yahoo, Microsoft) to offer alternatives. i.e. Yahoo has been pushing Hadoop, an open source implementation of Google distributed APIs, but ATM doesn't offer it as a service (however, there exist HOWTOs for Amazon EC2). Yahoo, Microsoft and Amazon will offer similar services. We should be sure Google App Engine API doesn't become the new Win API, and that openness, standardization and data migration is still a priority.

Legal issues aside, the idea behind Google App Engine excites me. The most innovative times in computer history has been possible when a couple of guys in a garage could develop crazy ideas that challenged an entire industry. I'm happy if the web stays that way.

Movable Type Open Source in Spanish

I'm the mantainer of the Spanish translation for the european office of Six Apart. As you may know, the company launched Movable Type Open Source, the open source version (GPL2) of its blogging platform. I welcomed this as I've been fan and promoter of libre software since 1996 (the days were I installed my first Slackware distro).

Right now, MTOS is only available as nightly builds and through subversion, because of the early release of the software (yet beta). At this moment, they are working on the automation of the nightly builds and aren't available, and playing with subversion and makefiles is not for everyone. So, for the impatient people like me, I've build an unofficial package of MTOS-ES (Spanish), using last night's repository (Dec 14th).

The installation instructions are similar to those of MT4. (Warning: this package is beta software, don't install o upgrade it in production environments).

PS: Jan, 29th 2008 - Unofficial package of MT4.1-ES stable.

Installing Movable Type 4 (beta) in OSX

It's very easy to install MT4 (beta 1) in OSX 10.4.

1. Download MT.

2. Deploy MT files

$ mkdir -p ~/Sites/mt4/cgi-bin/
$ mkdir ~/Sites/mt4/static/
$ chmod 777 ~/Sites/mt4/cgi-bin/
$ chmod 777 ~/Sites/mt4/static/
$ tar xvzf mt-xxxxx.tar.gz

3. Install MySQL

4. Configure MySQL

$ mysql mysql
mysql> CREATE DATABASE 'mt4db';
mysql> GRANT ALL PRIVILEGES ON 'mt4user'@'locahost' IDENTIFIED BY 'mt4password';
mysql> FLUSH PRIVILEGES

4. Install CPAN modules

$ sudo perl -MCPAN -eshell
> install DBI
> install DBD::mysql

5. Configure Apache

- Activate it in System Preferences > Share > Share web
- Edit /etc/httpd/users/(my user).cfg
- Add this code using vim:

<Directory "/Users/<your OSX user>/Sites/mt4/cgi-bin">
        Options ExecCGI
        AddHandler cgi-script .pl .cgi
</Directory>

6. Restart Apache

$ sudo apachectl restart

7. Start MT4 install proccess

- Go to http://localhost/~<your OSX user>/mt4/
- There you are!
- Select MySQL as default database
- Type the correct MySQL settings (database, user and password)
- Use sendmail for email
- Create your personal account
- When the install proccess is over, fix the cgi permissions

$ chmod 755 ~/Sites/mt4/cgi-bin/

That's all folks!

Internet Blog Serial Number

This is the IBSN (Internet Blog Serial Number) I selected for this blog:

4321001234

A brief introduction: «The IBSN (Internet Blog Serial Number) was born on February 2nd, 2006, as an answer to the Spanish administration's negative to grant an ISSN to Internet blogs. The ISSN (International Standard Serial Number) and the ISBN (International Standard Book Number) are numeric identification codes».

Credits to: «Fernando Tricas García, fernand0, when he read the post in José Ángel García's blog explaining the institutional negative to grant an ISSN to blogs, thought of the IBSN».

Go, go, go! Get your own!

Les Blogs chat and tag cloud

I will be arriving to Paris this Sunday and will be attending Les Blogs 2.0 conference. If you want to meet online before the conference, I've created a chat room in Freenode: #lesblogs (irc.freenode.net). If you have Chatzilla installed go to irc://irc.freenode.net/lesblogs

By the way, I have also added a tag cloud and tag aggregation to Planet Les Blogs 2.0. The feature is not optimized and is a bit slow.

I will be in Paris for two weeks to work with my pals at Six Apart French office. I live in Canary Islands and we wear t-shirts almost all the year. The downside is I have few clothes for intense cold... I must buy some before the trip!

tags:

Planet Les Blogs 2.0

Based on a reincarnation of my Planet Express script and Stuart Mudie's feed list of Les Blogs 2.0 participants, I've setup Planet Les Blogs 2.0. It shows the entries posted in the last 24 hours, but the database contains several days now. The feeds are scanned every 15 minutes. This is my first app using Django, a Python web framework, similar to Ruby on Rails.

I think this is a great way to discover people and opinions in advance. See you all in Paris!

WebDosBeta is over

This Monday, 150 people gathered together in Madrid to  talk about web innovation in Spain. The event was organized by Enrique Dans (teacher at MBA school Instituto de Empresa), Albert Armengol (social network eConozco) and me (Six Apart). The main theme was "Is there innovation outside US?". The workshop was divided in two. In the morning, 10 innovative projects were presented, and in the afternoon, 3 panels debated different topics. IMHO, the event was successful in many ways, but the most visible one was to hit number one hot tags both in Technorati and Flickr that day. Of course, some bloggers wondered what means: Web 2.0 (beta) -dos is 2 in Spanish.

In the site, you can find the presentations (PDF) of the virtual and live conferences. We are working to publish the audio (but can take its time, so no guarantee).

If you want to read a good abstract of the conference, you can read Yannick Laclau's blog: «WebDosBeta is over; It was an intense day of startup presentations and panel discussions. More than 150 people from all over Spain attended. Interested in a snapshot of what Spain's internet community is up to?».

Thanks to all participants!

WebDosBeta: Web 2.0 workshop in Madrid

Does innovation exist beyond USA? We will address this issue on October, 24th. This date, the Spanish developers, entrepreneurs and investors have an unavoidable meeting in Madrid: WebDosBeta. Organized by Six Apart, Instituto de Empresa (MBA school) and eConozco (social network) it intends to show local and innovative projects related to Web 2.0.

Almost all the seats were sold just ten days after the first announcement and we are also happy with the response of the call for papers. More than 20 propositions were recevied, 10 of them will be presented on live on the workshop and the rest has the opportunity to be published in the virtual congress. The projects that will go analog are: Aud'asti, Roberto Abizanda; Blogómetro, JJ Merelo, Fernando Tricas and V. Ruiz; Compareblogs, Fernando Plaza; DiceLaRed, DiceLaRed; EyeOS, Pau Garcia-Milà; FON, Martin Varsavsky; MusicStrands, MusicStrands; NectarRSS, Juan J. Samper, Pedro Castillo and JJ Merelo; Tagzania, CodeSyntax; Tractis, Negonation Platform. Some of this projects have international scope and FON (already labelled as the "Skype of wifi") seems particularly big.

The presentations will be held in the morning and after the lunch, there will be three workshops (some BigCo's probably attending). For those of you which don't read Spanish, Yannick Laclau will be covering the event in English.

After that, Les Blogs 2.0 in Paris!

WSSE for JavaScript

The current default authentication method in TypePad and Movable Type's Atom implementation is WSSE. WSSE is a header containing a token based on username, password and date and looks like:

X-WSSE: UsernameToken Username="name", PasswordDigest="digest", Created="timestamp", Nonce="nonce"

I have implented a library in JavaScript to generate this header, quite useful for XmlHttpRequest and GM_XmlHttpRequest functions. An example of use:

<html>
<head>
  <script language="JavaScript1.2" src="wsse.js">
</head>
<body>
<script language="JavaScript1.2">
   var w = wsseHeader(Username, Password);
   alert('X-WSSE: ' + w);
</script>
</body>

This library uses code from Paul JohnstonJF Walker and  aardwulf systems.

Download wsse.js - version 1.0.

Tagzania: Folksonomies for Google Maps

20050720tagzaniaLuisxto Fernández wrote me yesterday to alert me the launch of  . It's a web app that merge two of the most exciting technologies: folksonomies and Google Maps. Tagzania is very similar to del.icio.us, but instead of bookmarking pages, it allows you to bookmark places in Google Maps.

20050722tagzaiAfter you sign up in Tagzania you can install a bookmarklet. Imagine that while browsing by Google Maps, I want to bookmark Plaza de Oriente in Madrid. I double click on it, click the bookmarklet and I get redirected to the new entries' page in Tagzania. On the left, the map is shown and on the right I fill the title, description and tags fields. Save and voilà.

As in del.icio.us, entries can be filtered by tag but they can also be displayed in Google Maps, i.e. all entried with tag «madrid» in list mode and in map mode. Tags are also syndicated.

It's a wonderful new world. Imagine that users bookmark restaurants all over the cities. Then, I could go to Tagzania and filter the restaurants in New York: tagzania.com/tag/ny+restaurants (anyone yet). Of course, in the description you could even add a comment about how good is it.

The enterprise that developed Tagzania is CodeSyntax, from Vasque Country. They are experts in Zope. and of course, Tagzania uses Python, Zope and MySQL. They also launched the Tagzania's weblog. Weeks ago they also presented another Google Map-based web app for San Fermines (famouse bull races in Pamplona).

Kudos for CodeSyntax. I really love the idea and implementation and I'm waiting the minutes before they get slashdotted.

Blog powered by TypePad

Flickr

  • www.flickr.com