Managing files in the OLPC XO datastore

The only official way to get files in and out of the datastore is to drag and drop a single file at a time, and this only works on USB thumbdrives, not on the filesystem.

There is ticket for a workaround using a Python script; if you use an XO, please offer encouragement to get this functionality integrated with the XO.

Here is the ticket.

OLPC XO Answers about hardware

The OLPC XO Wiki has a questions and answers page. Today I took look at the hardware page and found a few important bits:

  • JFFS2 compresses your data, performs wear leveling, and manages bad blocks so you don’t need to worry about the fact you are writing to flash.
  • USB “thumbdrives” should be formatted to FAT32.
  • Although the CPU supports sleep mode, and the hardware detects the the lid closing, the XO will not automatically enter sleep mode on lid closing until some time next year.
  • The XO can remain plugged in constantly; the battery will not get overcharged.

CUFP 07 Write-Up now available

A write-up on the Commercial Users of Functional Programming 07 conference is now available here.

It is definitely worth a read for folks who wonder about the “real world” problems that are solved using functional programming. There is a nice mix of both languages and problem domains, and the tone is pretty laid back.

Code Generation and DSLs in Scheme

Over the years, I have heard some pretty outrageous and tantalizing claims made about the programming language Lisp. For example, “It will change you, forever.” and “You write code that writes code.”. Sadly, no further explanation is ever provided. Perhaps it is impossible to capture the essence of that to which these statements allude? This air of mystery around Lisp is both a blessing and a curse. Some folks will find this aura repugnant; others magical. For me, it was the latter. I wanted in on the secret!
Continue reading “Code Generation and DSLs in Scheme”

Fun read on the evolution of C++

Last June I read “The Evolution of C++”. I was pleasantly surprised by just how fun it was to read. If you’ve ever read Bjarne Stroustrup before you know that he has got a sense of humor and frankness that makes his work quite accessible and informative.

The article covers the origins, the process and evolution, critics, users, researchers, big changes, strengths, and weaknesses of C++. On top of that, there are interesting historical bits that really let you put things in perspective. Unless you were there when it happened, you will definitely be surprised about the world surrounding C++ back when it got started.

For someone pretty unfamiliar with C++, it was a lot of fun to read about its goals, what it does well, and even what it does not so well. In the examples presented in the paper, you get to see the elegance of generic programming and the STL. There is even an overview of exploring functional programming with C++.

The article is quite long, 57 dense pages fill it out quite well. It is so well written and entertaining, though, that it is well worth the read.

For any of you long time C++ developers out there, I would be interested to hear your take on it.

What is “real code”?

One common complaint about non-mainstream programming languages is that there hasn’t been any “real code” written in that particular language. One response to this is the Practical Common Lisp book.

Whether or not a MP3 database or a spam filter is “real code” is up for debate. Nonetheless, based on the success of the book, people clearly want to see “real code”.

In your mind, what is “real code”? What is it that you need to see in order to believe that a language can do “real work”?