What’s the difference?

31 March, 2008

Fully Functional Babbage Difference Machine

The following was posted to the Squeak-Dev Mailing list by Markus Denker. The quote speaks for itself and it does give one pause to consider the implications to our community. It also strikes me as relevant to a lot of other development communities too. Great ideas are still very powerful and inspiring, but the idea alone is still seen as only half the process. We all know that there is a lot of very interesting problems that arise while we transform our ideas into working code. We also know that it is much easier to build onto a working system, or take what we learned from the process of building a working system to the next generation. While the idea itself can be seen as a great accomplishment, the realization of the idea by itself confers even greater benefits to the community. What projects have you left undone? What’s the difference?

“One of the sad memories of my life is a visit to the celebrated mathematician and inventor, Mr Babbage. He was far advanced in age, but his mind was still as vigorous as ever. He took me through his work-rooms. In the first room I saw parts of the original Calculating Machine, which had been shown in an incomplete state many years before and had even been put to some use. I asked him about its present form.
‘I have not finished it because in working at it I came on the idea of my Analytical Machine, which would do all that it was capable of doing and much more. Indeed, the idea was so much simpler that it would have taken more work to complete the Calculating Machine than to design and construct the other in its entirety, so I turned my attention to the Analytical Machine.'”

“After a few minutes’ talk, we went into the next work-room, where he showed and explained to me the working of the elements of the Analytical Machine. I asked if I could see it. ‘I have never completed it,’ he said, ‘because I hit upon an idea of doing the same thing by a different and far more effective method, and this rendered it useless to proceed on the old lines.’ Then we went into the third room. There lay scattered bits of mechanism, but I saw no trace of any working machine. Very cautiously I approached the subject, and received the dreaded answer, ‘It is not constructed yet, but I am working on it, and it will take less time to construct it altogether than it would have token to complete the Analytical Machine from the stage in which I left it.’ I took leave of the old man with a heavy heart.”

— Lord Moulton

Marcus Denker http://www.iam.unibe.ch/~denker

Tunnel Vision? OLPC

5 January, 2008

Tunnel Vision OLPC

EDITORIAL By Ron Teitelbaum.

You get what you pay for. The world is much better for all the corporate contributions to end poverty and the huge commitment over the years to help educate the worlds children. There is no question that the world owes a huge debt to these companies. Now that corporations have made such great strides throughout the world they should be paid handsomely for their computers and software. After all, corporate resources can never be matched by a Non-Profit.

Read the rest of this entry »

Here it is. OLPC!!

22 December, 2007

Ron-Zoe from olpc

Now I know this computer is supposed to be for children, and I’ve really enjoyed seeing all the wonderful pictures of the children receiving their computers, but as an adult I really did not expect it to be this much fun.

I’m writing you from my olpc computer. I just received it from the Give 1 Get 1 program. I took this snapshot from the computer. Zoe was quite interested too and couldn’t resist getting in the picture.

I had no trouble getting on-line and figuring out the interface. I was quickly zooming around making music, guessing random numbers, finding matching tiles, and reading programs.  There are a lot of fun, interesting and educational activities to do.  I got to turtle art and had a blast creating my own turtle spirograph. I made the little turtle walk using the programming tiles in a repeating path, then turned it by 80 degrees and set up a repeat.  I was able to draw some very cool shapes.

What fun !! It is not too late, but time is running out fast. Give an Olpc XO computer to a needy child and get one that you can play with too! Now I guess maybe I’ll show it too wife and daughter. If I have too.

Demand OLPC

5 December, 2007

Non-Universal Learning

As they roll off the production line demand for the little education laptop is growing. The OLPC project, created by Nicholas Negroponte, to help teach the worlds children is starting to gain real traction. It sure didn’t take long to run through the first production run! The Give 1 Get 1 program appears to have been a big success. The program was extended through the end of 2007. Don’t wait get yours now!

Over the weekend Peru pushed the demand over the first run ordering 260,000 laptops. We are very happy that the huge potential is being recognized. The stories and pictures of the children around the world receiving their laptops are terrific.

We like to speculate about the benefits that these computers will bring to a world with such limited resources. How will these tools help to enhance the ability of teachers, provide access to materials and resources that help children learn, and eventually eliminate poverty in our world?

It is easy to get the wrong idea about what this computer is, just as it is easy to get the wrong idea of the benefit of the internet. There is so much of the internet that is not good for children. The explosion of new social media has many people asking if letting children on the internet at all is even a good idea. It is true that delivering access to basic software and the internet is of little value and could even be considered harmful. If the OLPC project was about delivering laptops there would really be no good reason to support it.

OLPC is not laptops, it’s software. It’s Squeak and EToys. It’s communications and collaboration. It’s coordination of lesson plans between teachers and with students. This is no regular computer, it’s an education platform geared to enhance the abilities of teachers to teach. To extend the reach of real educators, to provide a common platform so that the worlds brightest minds can reach across the great north-south divide and help teach children that have so little resources. It is a way to share the greatest discoveries of the past with the children of the future. There is no better way to fight violence and poverty than with education.

Children around the world will benefit from the extraordinary efforts of all the volunteers and participants in this very worthwhile project. Children that may even be in your own back yard. Like maybe Birmingham Alabama in the U.S.A. where the city just ordered 15,000 laptops for every child in grade 1 through 8.

It appears the questions about success are beginning to fade. The real question is can production keep up with demand. Demand OLPC today. There is no substitute for the little education laptop.

NetNeutrality

Net Neutrality is not just about money. It’s not just about power. It’s not about just about limiting what you can view. Or censoring your voice and freedom. IT’S ABOUT ALL THOSE THINGS!!

Are you ready to have FOX news streaming to your computer with lightning speeds and MSNBC unable to connect? Do you want to see a world where to get Google search you have to pay a premium fee to your ISP? Do you think it is ok to have to pay every ISP to carry the traffic from your website? “No, I’m sorry you can’t see my web site from there, I didn’t pay AT&T, so they censor my website from their customers! Oh you are not an AT&T subscriber, well they must support the traffic in your area with their cables, I’m sorry.”

Does anyone really think this is a good idea?? It’s no wonder Google is looking for way to get off the wire! The internet is a public utility, and it needs to be protected from schemes that will do nothing but squash your freedoms, create huge monopolies, and destroy our new electronic economy. Somebody should do something about this!!

Check out NNSquad! NNSquad was started by PFIR but look who else showed up! Bruce Schneier and David Reed! I couldn’t be happier to see these two names on the list.

Bruce is a cryptography hero, he speaks about common sense in security. He is not afraid to take a controversial stance and speak truth to power. If you have not signed up for his news letter, consider it, it is very interesting reading.

Of course everyone here knows who David Reed is. David is one of the principal architects of Croquet. He is also very well known for his work on Social Networks. If anyone knows about the Internet and it’s implications it is Daivd.

It’s exciting to see some movement around this issue. It is definitely time to make some noise before we all wake up and the world as we know it today has already been bought and sold. Get involved, say informed, support NNSquad!

Capturing Debug

20 October, 2007

Debug

Giles Bowkett sparked a bit of controversy. There have been some interesting responses from James and Avi. I figured I would just stay out of it, and I did a pretty good job resisting. Until now.

Giles is right. Tools do not make good programmers. Coding in a debugger has the tendency to create lava code. Some of the worst code I’ve ever seen was the result of one more patch on a mountain of crap. The code just grows and grows until what ever was originally intended is completely lost and nothing is understandable.

That said, if you try to take away my Smalltalk debugger I will break your arm. Why? Because tools do not make good programmers. Even the Smalltalk debugger which is way more then your ordinary debugger will not help you. It will not cause you to write better code but it won’t hurt either. Anyone that has used and understands the Smalltalk debugger knows that it is a very powerful tool to realize your design.

If your design sucks then Giles is right a debugger is not going to help and will probably make things worse. If on the other hand you are a good programmer a debugger as capable as the Smalltalk debugger is extremely liberating.

I can understand why some people do not appreciate the power of the Smalltalk debugger. Most people think of debuggers as a way to watch a value or set a break point. They do not understand that Smalltalk is different and miss the point. As a live system that doesn’t need to be recompiled, a system that is running while you program, the Smalltalk debugger gives the developer unprecedented access to the heart of the language.

We have access to everything that is Smalltalk in that debugger. We can change running programs and step right into the code we just typed. We can view the whole running stack and full context. We can change data in objects, create new objects, do anything that can be done in Smalltalk right from the debugger!

Ever wanted to step through a loop? You need to see how the system handles the 57th item. You could add code to break at that point. You could write tests that isolate that data and run it separately. You could use aspects to keep from having to change the code but you are really working hard to do something pretty simple. The worst possible solution is hitting step until you get there! Since everything is live and dynamic in Smalltalk I just change the index to 56 and step from there! See it’s pretty simple in Smalltalk!

Yes tests are good and there is no substitution for good design. That doesn’t change with a powerful debugger. Powerful tools can enable bad programmers to program badly, but that doesn’t counter the argument that good programmers benefit from complete access to a dynamic running system.

Ok so break your arm is a bit strong, but I hope you understand that the debugger is our window into the heart of Smalltalk, maybe we should name it something else because it does way more then capturing debug.

– Ron Teitelbaum * President / Principal Software Engineer * US Medical Record Specialists

OLPC Interface

David Pogue at NYTimes reviews the One Laptop Per Child computer.  Don’t miss the video clip, it’s very cool.

OLPC on TV

20 August, 2007

OLPC Size

From: Michael Haupt,

The German/Swiss/Austrian TV station 3sat has a weekly 30-minute show called “neues” (roughly translated “new things”) which deals with IT-related information. Yesterday’s show was focusing on bringing IT to isolated regions and emerging nations as well as developing countries. The show featured an article on mesh networks in Ecuador and the Linux4Africa project.

Linux4Africa is a German project collecting old but functional hardware. The components are cleaned, repaired (if necessary), bestowed with an Edubuntu Linux installation, and sent to Tanzania and Moçambique.

12 of the show’s 30 minutes were dedicated to an extensive coverage of the OLPC project. Etoys and Squeak were mentioned several times during the feature. The project itself was introduced, and Bert Freudenberg was interviewed about the technical features of the XO laptop, which was presented in detail.

There were also two interviews in the studio. Two members of GTZ (Deutsche Gesellschaft für Technische Zusammenarbeit; German Society for Technical Cooperation) responsible for XO distribution in Ethiopia talked about the project in general and about the impressive progress children made when working with the XO.

The other interview – which filled the first slot in the OLPC coverage – featured two students from Hasso Plattner Institute, Potsdam, who have developed strategic and skill-improving games for the XO in the Software Architecture Group‘s course on software architectures.

All in all, the editorial staff at 3sat did a tremendous job in preparing this show. To the writer’s knowledge, this was the first time the OLPC project was presented at such a level of detail in German television. Germany being a country where the the project has no actual lobby, it is important to have such media coverage – it would be nice to see much, much more of it.

The entire show can be watched online (in German).

Thinking Objects

12 August, 2007

I Object

When I was much younger then I am now, before I knew much about computers, except that I didn’t like them, I was given a copy of Symphony. The original owner didn’t really have much use for the spread sheet / database programming language. It was the first program that I’d ever seen.

At the time I owned a business and was doing data processing by hand. The program was a miracle. I started by writing a full reporting engine. It calculated the size of the header and footer, the size of the begin and end groups and then it figured out how much data and padding would fit in between so I could print pages. Ok I know, this was overkill for a spread sheet, but at the time I had no idea other languages existed.

I moved from reporting into invoicing. I had to bill my customers for number of different workers unions. Most of the basic rules were the same, but each union had their own payment rules. What I needed was to specialize pieces of the program but leave most of the code alone. I programmed my spread sheet to reference a cell that said what union it was, then read the union from the data and off I went programming my specialized components.

Once I had a major bug in the program I just couldn’t figure out. So I printed my spread sheet code. I taped them all together, cleared room and spread the whole thing out on my office floor. I found the code after hours of walking on my spread sheet from place to place until it clicked.

Later as I discovered other languages, I had another problem. I was building an application that was very dynamic. We had a group of nurses that were building a risk assessment program for pregnant women. I wanted to build a program that would allow the users to define not only what the program did but how it flowed. They entered the specs in data and the system read that data to produce the code. I was using a database program that really didn’t support what I needed to do. What I wanted to do was create a system that could flow down from higher components to more specialized components. A change in the base component would effect everything below it.

I was talking with one of my programmers and he said, “I know how you can do that”. He knew of a pre-compiler. We could identify and replace code with symbols. Then when we were generating the code we just ran the code through the pre-compiler to replace the pieces we needed. It was wonderful!

I was hired for a Smalltalk Job by my old boss after an ugly merger. I had never seen smalltalk before. The language was VisualWorks and all I had was a book that had the checkbook example. In 2 days I had learned smalltalk and was writing production code. Within a week I was designing and delivering huge modules.

I know this is not normal for learning Smalltalk. My reaction to Smalltalk was like someone removing handcuffs. I could accomplish anything. I thought wow I can do that without having to jump through all these hoops first! I don’t need a pre-compiler to do inheritance. I can program a concept and use it somewhere else. I really don’t need a reference cell and an if-statement to control flow I can just subclass and specialize my objects instead. The best part was I didn’t need a bigger and bigger floor because browsers could bring the components to me! It was a terrific experience.

Now I look at everything through the eyes of Smalltalk. It’s really hard not too. When I learned Java the first thing I did was write the collection methods I knew so well and depended on. “What you can’t do that, your kidding!”, I thought and so I wrote it.

There is nothing that Smalltalk can do that other languages can not copy. You can accomplish everything that Smalltalk does in a SPREAD SHEET! (believe it or not) But Smalltalk does it in a natural way. The concepts you need are built right into the language and into Objects!! As the world changes, computing changes, what we can accomplish electronically changes, it is becoming more and more clear, that the concepts of Smalltalk were right all along. If you want to understand other languages, and be extremly productive in todays computing environment, consider studying Smalltalk. Everything you need to know is right there.

Anyone that believes that Smalltalk is dead or dying really doesn’t understand Smalltalk. You can see its influence everywhere. The requirements for todays systems, dynamic computing, distributed processing, are all in there. Smalltalk clears away all the clutter so that you can build tomorrows systems today. Actually you could have built tomorrows system yesterday!!

I’m sorry to hear about Dolphin, but Smalltalk and Squeak are alive and well. If anyone says anything to the contrary, I object!

Ron Teitelbaum * President / Principal Software Engineer * US Medical Record Specialists * www.USMedRec.com

Squeak Tale

30 June, 2007

Squeak Tale

A history of Squeak that is still being written, the following is a Squeak Tale by Göran Krampe.

Let me tell you a story…

I was around… when King Dan ruled the Land of the Mice, his court the “SqC” was strong and the stream was flowing smoothly. It was a glorious and joyous time and I were there to see sir PWS, sir Comanche and princess Swiki being born as children of Socket. The wizard Morphic was still young and agile at that time…

Things were well, but not everyone were happy in the Land of the Mice – the population grew quickly and only the fortunate ones to enter the castle Image could have their fields fully prosper and not wither and die in the harsh outbacks of the Internet. Read the rest of this entry »