Kids should learn programming!

Blogger Nico Lumma recently published a rant on Handelsblatt about Germany (and probably other countries) are wasting time by not letting children learn to program in school.

There have been initiatives like to promote »coding« as a basic skill of the future:

… or a recent German version »Jeder kann programmieren«

And maybe in 20 years from now kids will be creating interactive toys like these gloves of musician Imogen Heap:

Some even provide interactive tutorials for starters (more here).

Actually there are not many things that you can learn so well online like coding…

But why coding?

In the information age, being able to code turns you from a consumer into a producer. If software defines what you can do, then creating software is a way to of doing things for your own way.

This is not meant to be turning kids into software developers: Programming is a way to be able to experiment with information and data. In a world of data it teaches how to think about machines, processes, data and communication. It makes you aware of what technology can do and thus could become. Maybe for your personal profit, maybe for the profit of many.

A society where only few people can program a computer is unthinkable!

iPhone SDK – a complete solution?

iPhone SDK – a complete solution?

Apple has released the iPhone SDK. The 2.1 gigabyte download is free after registration and includes the latest Developer Tools as well.

I personally don’t use an iPhone. Being able to hack it (or get third party software for it) was a stopper for me. Another argument against the iPhone was the rather limited storage space — 4 and 8 gigs simply did not seem enough space.

Apple still wants to retain some control over which apps are pushed on the phone, but it seems the upcoming operating system of the iPhone has already been hacked. People may be able to install software independently from Apple (e.g. to remove a SIM card lock) on a hacked phone.

But looking at the developer site for the iPhone simply does it right. I get a clear product, a very readable documentation and easy to digest tutorials – developing hardware and software together again pays out in a consistent product.

The Android SDK on the other hand is lacking the simple question: How can I get started (I mean really)? What devices can I deploy an Android application on? In fact the Android FAQ states that there are no phones that Android is running on. So who is supporting Android? Why should I spend time on developing for a theoretical market? Android is nothing more than an approach to an upcoming problem that Apple has already solved from A-Z.

That is the reason why Apple is succsessful: They offer solutions – not concepts.

People that think the stylishness of their products are key to Apple’s success don’t know much about Design.

Experimenting with Tinderbox XML

After I sucessfully imported some parts of my old weblog I reconsidered the idea to publish with Tinderbox to a database instead of using it to render HTML. Here is the current idea:

  • A Python script will read the Tinderbox file and publish this into a MySQL database
  • The database will be synchronized with a copy on the server
  • The server uses Zope to publish content (but can use anything that works with MySQL)
  • Server will use meta data, link data and possibly other things to create the site

Some advantages:

  • No need for agents anymore, the searching/collecting is done entirely on the server
  • No need for export and rendering from Tinderbox
  • A wider range of possibilities when translating data to HTML (full scripting)
  • Agents and HTML export is still possible – e.g. to keep a “internal work site”
  • Can possibly be extended to work for other environments
  • Possibly opens a way to use other ways of translating ASCII text to HTML (e.g. ReStructuredText or Textile)
  • Could allow many authors to contribute to one site (but not edit content created by others)

Some disadvantages:

  • Obviously there is code needed
  • Needs Python and MySQL on the client and MySQL on the server
  • Concept for a database structure and content specifications needed (how to use actually information from the Tinderbox file in the site)
  • A great deal of development needed on the server to turn the database into a site
  • Changing the Tinderbox file a lot could break the system
  • It is a one-way process – so no edits on the server travel back to Tinderbox

I investigated PyXML and elementtree which I found via Uche Ogbujis article on I also found this XML & Python tutorial by Alexandre Fyolle very helpful. This Devshed tutorial on MySQL & Python reminded me about how to connect to the database. All this worked pretty well in first experiments.

The translation script will have to do some heavy work:

  • Translate Tinderbox commands (or invent own)
  • Maybe convert links and styles
  • manage images that are inside the Tinderbox file