Saturday, November 18, 2006

OLPC Close to Mass Production and Java Free Source



Two important events happened this week, the first is closer to my heart. The One Laptop Per Child hardware had first few hundreds laptops assembled by Quanta. The hardware and software contains some real innovation, it costs a third and uses a tenth of power compared to what the biggest companies can muster. Sure sign of a good thing when Microsoft and Intel complain about it. It also has Squeak and eToys installed! I love it.

Java went free source, and it was very wise from Sun to use GPL. I think that is the only way to prevent fragmentation. Also a good sign that IBM has already complained about Sun's use of licence!

Monday, September 25, 2006

Electrical Battery (sounds more like a Capacitor) for tomorrow.



If this turns out realistic....

http://money.cnn.com/2006/09/15/technology/disruptors_eestor.biz2/index.htm

But, we need to make sure to feed the power grids with non-CO2 ways to produce electricity, mostly nuclear or eventually fusion!

Update: May 2009 - does not seem like they got very far in almost 3 years...

Wednesday, August 30, 2006

Swarm of Artificial Flying and Cooperating Robotic Insects



Looks like The Guardian has a few peaceful usages I asked about for the artificial insects from my blog a few months back. This link here talks about autopilot airplanes, but the use can be similar: Monitor the environment, find shoals of fish (does not sound "environmental" to me), "aid the police in controlling crowds and traffic" (crowds, excuse me?) - well I will stop there, read it, it all sounds a bit lame, but they are trying. The article talks about such drones needing flight clearance etc. I wonder if insect-size drone would still need a flight clearance ....

Saturday, July 08, 2006

Short Roots of Human Tree



Once at it, there is another article related to another interest of mine: Whoever you are reading this, you and I share an ancestor who may have lived as late as 2 thousand years ago!

So if you consider to make a not-so-nice comment to this blog, beware: you are my dear relative!

Roots of human family tree are shallow

Swarm of Artificial Flying and Cooperating Robot Insect



This week I came across something that renewed my old dream to build, one day, a swarm of robotic flying, cooperating, self-sustaining insects. A dream as close as old-fashion cellulose. Apparently, cellulose is piezo-electric, and the pictures they show have a bonus - the insect is my favorite dragonfly (ok, perhaps dragonflies are not insects but they are super-cool)

The article describing it is here, the dragonflies are in a blog here.

What is boring about all these is everyone get immediately excited about a military use of those things. Can nobody think of a peaceful use? Protecting crops from insects? Monitoring wheather? Hey, swarm, get me some water , each a drop, into my glass :)

Saturday, June 17, 2006

Making a Website with Seaside on Squeak


Last month, the hockey team I play hockey with in a (low key) league, asked me to setup a website where players could register and mark themselves as "Available", or 'Not Available', so we can keep track how many players can make it for the next game, and someone does not have to spend time counting email responses before calling substitutes if too few players can make it.

While the user interface for such website is simple, websites that maintain persistent data are not completely trivial, for the simple fact of having to introduce persistence.

I decided to use Seaside for the job and I have to say, it was a super-pleasant experience from the start to the end!

I have not looked at much Seaside code before, and it took two late nights (about 15 hours), much of which was to learn seaside basics and then figure out how to force KomHttpServer load images. The result is a decent looking functional site with persistance, that already served the team well and helped us not to miss any games short of players.

To get the a few things out of the way, the code is not a pinnacle of software engineering, but is was not intended to be. The main thing I do not like the entanglement of "application code" and user interface I end up with in my HockeyWebsiteWAComponent>>renderContentOn:. But the business code amount to a few lines of code and I just wanted something simple, so I am excusing myself, and next will be architecturally sounder.

Apart from that, everything was very simple. While working on it,


  • I had these sites opened in browser at all times:

    David Shaffer's Seaside Tutorial here.
    The Seaside main site.
    The tutorial linked from the above site.


  • I kept hese classes in Squeak browser to find how to generate html tags:

    WAAbstractHtmlBuilder
    WAHtmlRenderer


  • From the tutorial, I figured the best way to build a simple site is to subclass WAComponent and override it's WAComponent>>renderContentOn: method. From there, it was just to work out the details of writing the html tags and adding the (simple) application code in blocks. I was surprised how "easy going and natural" (at least to my brain) it was to work it out in Seaside.

  • For persistence, I simply store the image every 60 minutes (can be made more frequent). This is just one of many great things that Smalltalk having an image is so cool for - I think that for 90% of applications this is perfectly sufficient, and developer has persistence virtually for free. The code is borrowed from an older Goran Krampe's email on squeak-dev (See HockeyUtilities.st)

  • For data structures, I simply populate a singleton (for example, HockeyPlayers class>>getInstance, GameDates class>>getInstance serve as "players table" and "gameDates table".



  • A few comments at the end:
    ==========================

    a) I used Seaside 2.5, and when writing the html the HTML code kept going a bit mure cluttered then I liked, yet on Google I kept coming up with results that showed more elegant API that would not clutter. I think this is Seaside 2.6, so anyone reading this about to learn Seaside I think it makes sense to start with Seaside 2.6 http://www.seaside.st/Download/Images/

    b) It would be good to have a (x)html to Seaside converter. One reason is that some companies designers use html/css to for initial design, expecting the resulting page will use the html code they created.

    c) You can look at the site (with removed players personal info) is here.

    d) Notes on how to create and run the application


    e) The classes can be downloaded here:

    HockeyWebsiteWAComponent
    HockeyPlayers
    Utilities (persistence)
    HockeyPlayer
    GameDates

    Hope this helps .. and I had to share how good Seaside on Squeak is :)

    Monday, March 27, 2006

    Software Industry / Computer Science Forgetting it's History. (Albert Einstein and Alan Kay)



    It is now about 35 years since the term Object Oriented was coined, and first implementations of an Object Oriented system started to be built in the Xerox-PARC research group. It is amazing what this group achieved in the 10 years between 1970 and 1980:


    • - For all practical purposes, invented personal computing, including what later became "the laptop".

    • - Built implementations of Smalltalk, first Object system, Late-bound, using a Virtual Machine, Collection library etc (stuff that Java took and brought to the masses).

    • - Overlapping windows, method to put graphics on the screen was invented and implemented.

    • - First Laser printer was built.



    This research did rest on shoulders of other giants, underlying reseach and ideas were developed in the 1960s in Lisp, Simula and other languages, people like Sutherland, Engelbart, and others, but most of these things have one name on it:


    Alan Kay


    What is interesting to me, is a comparison of general awareness of how much Alan Kay ment for "Computer Science" with what people like Einstein, Pauli, Heisenberg and others ment to physics at the beginning of the 20th century.


    35 years after special theory of relativity was about 1940, 35 years after beginnings of Quantum Theory was roughly 1955-1960. I am sure in 1940 any physics university student knew who Einstein was, and I am sure in 1955 any physics student knew the names of Pauli and Heisenberg and their contribution to physics. In fact, I would bet many high school students those years knew these names and had some idea what these people did.


    Yet, 35 years after these ideas were gelled, I am yet to find a workplace, with computer development professionals using "Object Oriented Technologies" who would not wonder "Alan Kay who?". At the best people have some idea Smalltalk existed (and mostly think it's dead). All people know is Bill Gates and Steve Jobs, who both just borrowed his stuff... Engelbart, at best is remembered as "inventor of the mouse" yet he did so much more.


    I do not know what this ignorance means, perhaps just that the mainstream computing is not much of a science but more or less a glorified fashion industry (well, not even glorified)!


    PS: Also amusing is that in 2006 that I am manually entering < p > <b> and other symbols (as at-ld-semicolon if I want to show them) right into the blog text to format it.

    A few of my friends were following my blog when I started but I let them down by not writing :( so I will try to post more often.