June 30, 2009

Gerardo Richarte has confirmed that the SqueakNOS project will be presented at the next ESUG innovation Technology awards. If the project is selected to be the prize winner, the money will be used to award the people who develop new features for SqueakNOS, such as device drivers, protocols, utilities and others.

ClubSmalltalk supports this initiative and wish the best of lucks for the project!

June 20, 2009

Gerardo Richarte is a well know smalltalker in the community. He has contributed with a lot of interesting works, one of the most interesting and famous is SqueakNOS project and he has been working in computer security for many years.

CS: You work for a company that has a history between hackers, security and other very interesting stuff. Where does Squeak fits in that puzzle?

Not much... sadly. A few years ago, when we were starting developing what is now our main product, we had to decide what VM based language we were going to use and Luciano [Notarfrancesco] and I preached for Smalltalk. Actually, the first prototype of what now is part of the product, was implemented in Squeak (and assembly), and it did work quite well, but we later decided to reimplement it in C++ and chose python as VM based language. I think that if ruby had had been big at the time we would have chosen it. We dropped Smalltalk early, pretty much because we wanted to create a framework and development environment, and we feared how well it could be accepted by the security community if they had to learn Smalltalk to use it.
At some other time we started actually developing a full product in Squeak (CORE WISDOM) but although it was sold at least once and we love it and consider it was ground breaking in the security visualization area, it pretty much fell into oblivion. You can still download it and cry with us for a big loss...
In any case, I still think and hope there's a space for Smalltalk at Core, because I truly believe Smalltalk helps you understand things from a very rich and interesting point of view.

CS: How was your first approach to the Smalltalk culture?

Leandro [Caniglia] was the one who definitively introduced me to Smalltalk and the joy of it. It was back in 1997, when I was a mathematician wannabe at the Universidad de Buenos Aires, and he was a professor there. He'd put together a wonderful course entitled "Mathematical Objects in Smalltalk", that's where the MathMorphs team was born, and where lots of great ideas originally came from (http://mate.dm.uba.ar/~caniglia/mathMorphs.html). Squeak was very new at the time, and we started using some version of Digitalk Smalltalk, but we very quickly switched to the younger and incredibly active Squeak, after Luciano [Notarfrancesco] came one day with the news that the Original Team was giving birth to a new son (or daughter maybe).
My first approach to Smalltalk was fun and happy, inspiring and creative. Smalltalk made me feel again what I had felt with a few other programming styles, it slowly settled in, it absolutely changed my way of approaching computing, and the world. Relationships between things, how they are defined by the way they interface with the world, how they talk to each other, that's how everything goes, the language may vary, Messages, in any level of communication, are of the at most importance.

CS: Richie, You have been working behind the SqueakNOS project for several years now. Could you tell us a little about the history behind the project?

Sure, I like to remember the first day, when four of us (Luciano, Leandro, Valeria [Murgia], Andrés [Valloud] and me) where in Mar del Plata, in a Smalltalk conference. All of us had a history doing Assembly and low level stuff, and we started playing with the idea of doing an OS in Smalltalk.
I think it was when we were experimenting with Celeste (http://wiki.squeak.org/squeak/1467) as mail reader, and we really just wanted to bring everything into the Image, and make everything else disappear. We started approaching the idea, until one of us actually said "it's possible, I think we can do it!"... and we went back home.
At the time we used to do the SqueakNicks, and in the next weekend we got together after the conference, a couple of us just brought a working
first booting version of SqueakNOS... it was just amazing! We actually did it!
On the technical side, this first version was a big hack, a stripped down interpreter, based on a headless version of Squeak, using a mini.image, we probably had no keyboard and no graphics, but it was starting to interpret, and #startUp actually worked and printed "Hello from Squeak!" on the text screen... it was all a feat! :)

CS: How could the Smalltalk community help you to leverage this project to the next phase?

It already did, our work is absolutely standing on the shoulders of giants, we just wrapped it in a different package, and gave it a twist and a nice bow. Also all the happy faces we saw last year at the ESUG, and all the encouraging words I've got before, the random encounter with two squeakers at a security conference who actually were waiting for SqueakNOS to be usable, everything helped a lot, and each time gave us a kind push forward.
And then, of course, there's a huge lot to do and experiment. From simple things to big things... it's kind of weird, but we truly feel alone, although lots of people would like to see SqueakNOS working. Maybe everybody thinks it's complicated to help, but it truly is not.
Support for more hardware is of course needed, and the harder part of doing it is getting the right documentation, because after that, it's just a matter of translating it into Smalltalk... no assembly or C is required for anything, at least not until you want to go deeper.
Then, the networking part is very important too. Luciano has made and incredibly legible TCP/IP implementation, and although we think it's complete, we can't call victory until it's tested further: it needs testing, and it can be in a regular Squeak, if it really makes any difference.
Then we also need to plug this TCP/IP implementation to Squeak's sockets, but then, it already has some sort of streams, so it's just a matter of making the interfaces correctly tessellate.
What else? oh, of course we could try to port it to other platforms (PowerPC? ARM? bare FPGAs? XO/OLPC?) And of course there are lots of ideas and plenty of room for experimentation!

CS: What are the plans for the future?

Plans? oh, of course, rule the world! What else? heh, no seriously: change the world :-)
This is just an experiment, we dream of producing something actually useful, but during the last ESUG (2008), when we were back into it, we started dreaming awake and plotting for making SqueakNOS the main OS in the XO/OLPC, we just couldn't stop repeating to everybody who bumped into us "Can you imagine what could happen if you put this in the OLPC and kids, at least some, started discovering they could completely understand and change ALL the software in their computers? What could happen if they started seeing, for example, the ProcessScheduler as a little bit more complex eToys activity? How would anything built by this kids look like?! it would truly be amazing, it could truly change the world!!!" wow, sorry, I just got exited again...
So yes, we actually do still plan to change the world, it's only we are preparing to jump :-)
Oh, you meant more real plans? Personally I would like to see, and work, on trying to put SqueakNOS on bare hardware. Quite a significant number of people from the hardware world approached me saying they'd like to try SqueakNOS on their own hardware systems, and I'd love to give it a try. And truly, no kidding, I would also like to see it working on the OLPC, with a complete OLPC system on top of it... just to see if we could convince "someone" to actually give it a real try with kids.
But well... you know, we've only get one life at a time, all this could only be possible if a good bunch of us seriously get together and contribute... even the smallest contribution is more than no contribution, right? :-)

About

Since 2004, ClubSmalltalk is a non-profit organization which congregates Smalltalk programmers and enthusiastics. The big idea behind this website is to provide a source of information about Smalltalk in general.
The Smalltalk community has not good sources of information, or they're all over the net, and sometimes it's difficult to find them.
If you want to contribute, you're welcome!