Oracle open-sourced TopLink last week. For those who dont know: TopLink is a object-relational mapping framework (that lets developers work cleanly at the object level rather than in relational tables). TopLink is now part of Oracles application server.
As many other notable technologies TopLink was invented and marketed in Smalltalk first and later ported to Java. The first version was written by Jon Hylands at The Object People (TOP). There is a nice summary of the history at the Oracle website.
As you may know The Object People got diverted into doing mostly Java work, and were eventually bought and split into two pieces (WebGain got the TOPLink piece, and BEA got the services piece). WebGain is now out of business, and TOPLink was sold to Oracle.
While Java people may be satisfied with TopLink any informed Smalltalker know that there is a more enhanced successor written by Alan Knight: GLORP (Generic Lightweight Object-Relational Persistence). Alan was also working at TOPLink and is now working for Cincom.
James Robertson recorded a nice podcast last week talking with Alan Knight and Michael Lucas-Smith on GLORP and about O/R mapping in general. Thanks James, for making this available!
BTW: Jon Hylands is building autonomous controllers today using Squeak Smalltalk.
Monday, March 12, 2007
Tuesday, March 06, 2007
Old dude T-Shirts
As Wayne Beaton reports there are some old dudes who know smalltalk at EclipseCon conference.
It looks like Instantiations is already designing some T-shirts for "old dudes".

I already warned you that I'm infected with Smalltalk and pure OO since years. For me it is to late. ;)
So stop reading this blog - otherwise you may get the Smalltalk virus too!
It looks like Instantiations is already designing some T-shirts for "old dudes".
I already warned you that I'm infected with Smalltalk and pure OO since years. For me it is to late. ;)
So stop reading this blog - otherwise you may get the Smalltalk virus too!
Thursday, February 22, 2007
New tools for Squeak
Romain announced some updates for two new tools: BrowserBooster and SpyWare for Squeak Smalltalk.
OK - lets check how usefull they are ...
OK - lets check how usefull they are ...
Take care with math in Java
Doing some math these days with Java. As you may already guessed doing math in Java is ugly and circumstantial compared to Smalltalk.
Especially take care if you use double values. Class BigDecimal can help here - but there are pitfalls, especially when using the wrong constructor.
Especially take care if you use double values. Class BigDecimal can help here - but there are pitfalls, especially when using the wrong constructor.
Tuesday, February 20, 2007
Pen Interaction For Authoring 3D Worlds in Croquet
The homepage of Michael Kleiber includes informations about his Master's thesis on pen Interaction For Authoring 3D Worlds. The technology used: Squeak Smalltalk and OpenCroquet
You will find the thesis, screenshots and videos.
You will find the thesis, screenshots and videos.
Croquet website
Looks like the http://opencroquet.org website has a new look.
Let's throw away HTML, JSP/ASP, Flex, ... and start with the future.
Let's throw away HTML, JSP/ASP, Flex, ... and start with the future.
Thursday, January 25, 2007
Run Basic in web using Smalltalk
As Carl Gundel, author of Liberty BASIC announced on the seaside mailinglist there is a Seaside app to bring BASIC programming to the web:
http://www.runbasic.com
Yet another nice Smalltalk application that shows the power of the Seaside Smalltalk web application framework...
http://www.runbasic.com
Yet another nice Smalltalk application that shows the power of the Seaside Smalltalk web application framework...
Thursday, January 18, 2007
AIDA Web app server
Janko Mivsek announced that the AIDA Smalltalk webserver now has an own website at: http://www.aidaweb.si
Tuesday, January 16, 2007
Blog conversion and Planet Smalltalk
I converted my Blog to the new Blogger.com release. Looks like this automated conversion made some (if not all) of the postings reappear on http://planet.smalltalk.org. Sorry for any inconvenience ...
RCP Plugin startup in 3.3M4
This evening I'm updating some old code I've written in Java/Eclipse RCP to be prepared for the new Eclipse Europa release (successor of Callisto).
As you can read on the "News and Noteworthy" of Eclipse 3.3M4 a new Application Model is introduced. Eclipse now implements the Application Admin Service from the OSGi specification.
When building RCP applications with Eclipse that means that the old IPlatformRunnable interface is deprecated and you should now use org.eclipse.equinox.app.IApplication. Instead of run() we should now provide a start() and stop() method.
To fix your main RCP plugin you may want to change your application class to
look like this:
As you can read on the "News and Noteworthy" of Eclipse 3.3M4 a new Application Model is introduced. Eclipse now implements the Application Admin Service from the OSGi specification.
When building RCP applications with Eclipse that means that the old IPlatformRunnable interface is deprecated and you should now use org.eclipse.equinox.app.IApplication. Instead of run() we should now provide a start() and stop() method.
To fix your main RCP plugin you may want to change your application class to
look like this:
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
/**
* This class controls all aspects of the application's execution
*/
public class Application implements IApplication {
/*
* (non-Javadoc)
*
* @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
*/
public Object start(IApplicationContext context) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display,
new ApplicationWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART) {
return IApplication.EXIT_RESTART;
}
return IApplication.EXIT_OK;
} finally {
display.dispose();
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.equinox.app.IApplication#stop()
*/
public void stop() {
final IWorkbench workbench = PlatformUI.getWorkbench();
if (workbench == null)
return;
final Display display = workbench.getDisplay();
display.syncExec(new Runnable() {
public void run() {
if (!display.isDisposed())
workbench.close();
}
});
}
}
Wednesday, January 10, 2007
Thursday, January 04, 2007
Disappointing Swing
Wrote yet another small utility today.
Since I wanted to reuse a lib written in Java I decided against a the most productive OO System and also came over other temptations. Call me nuts but I wanted to build the user interface in Java with Swing...
I had installed the "Java Mustang" (JDK 1.6 release) last month to play with the new Scripting support (Java now includes the Rhino JavaScript implementation). So I had the latest and greatest Swing on my machine - time for Desktop Java. At that time I was also eager to play with the promised new Desktop integration. Unfortunately this "integration" was nothing more than open the web browser, open mail, and open/edit a document with the associated program. Something the Win32 API had since the days of the ShellExecute() function. But that's another story.
Back to my little Swing utility: I started Eclipse since the IDE supports Swing, SWT and AWT GUI building with the VisualEditor project.
I easily generated a simple JFrame window together with some code for a simple application menu. Some typing here, some coding there I managed to complete my small tool. Work was done so I decided to beautify the UI.
First I switched to the correct Windows L&F since the tool is used "Win only":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel")
After that I wanted to add icons to the menu items. So I imported a gif into a package and added it as menu icon resource using the property palette.
When I hit the "Run" button I was surprised that the image was too close to the text.

What a waste of space on the left side. I think it is intended for menu items with check boxes (JCheckBoxMenuItem) and an additional image. But I have no checked menu item here. Also not very "winlike". I would have expected something like this (screenshot from a native application):

I played with setHorizontalTextAlignment() to align the text to the right. But the situation got worse:

The image disappeared. Time for Google: Ahhh - Bug 6385358
revealed it: in JDK 1.5. the text overlaps the shortcut text and in the latest Mustang build, ONLY the shortcut text appears (without the menu item text).
The bug was submitted 14-FEB-2006 and in 2007 it is still in progress! Maybe they have to fix the other 222+221+216+214+213+211+210+29+27+26+23+22+20 bugs first.
How sad - have to move on without menu icons or switch to SWT. Very disappointing! Anything I wanted was a simple windows like UI in Swing ...
Since I wanted to reuse a lib written in Java I decided against a the most productive OO System and also came over other temptations. Call me nuts but I wanted to build the user interface in Java with Swing...
I had installed the "Java Mustang" (JDK 1.6 release) last month to play with the new Scripting support (Java now includes the Rhino JavaScript implementation). So I had the latest and greatest Swing on my machine - time for Desktop Java. At that time I was also eager to play with the promised new Desktop integration. Unfortunately this "integration" was nothing more than open the web browser, open mail, and open/edit a document with the associated program. Something the Win32 API had since the days of the ShellExecute() function. But that's another story.
Back to my little Swing utility: I started Eclipse since the IDE supports Swing, SWT and AWT GUI building with the VisualEditor project.
I easily generated a simple JFrame window together with some code for a simple application menu. Some typing here, some coding there I managed to complete my small tool. Work was done so I decided to beautify the UI.
First I switched to the correct Windows L&F since the tool is used "Win only":
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel")
After that I wanted to add icons to the menu items. So I imported a gif into a package and added it as menu icon resource using the property palette.
When I hit the "Run" button I was surprised that the image was too close to the text.
What a waste of space on the left side. I think it is intended for menu items with check boxes (JCheckBoxMenuItem) and an additional image. But I have no checked menu item here. Also not very "winlike". I would have expected something like this (screenshot from a native application):
I played with setHorizontalTextAlignment() to align the text to the right. But the situation got worse:
The image disappeared. Time for Google: Ahhh - Bug 6385358
revealed it: in JDK 1.5. the text overlaps the shortcut text and in the latest Mustang build, ONLY the shortcut text appears (without the menu item text).
The bug was submitted 14-FEB-2006 and in 2007 it is still in progress! Maybe they have to fix the other 222+221+216+214+213+211+210+29+27+26+23+22+20 bugs first.
How sad - have to move on without menu icons or switch to SWT. Very disappointing! Anything I wanted was a simple windows like UI in Swing ...
The language (and IDE) is built in
Huw and Demot talking about OOP. They also talk about Smalltalk.
I agree - in Smalltalk, the code and its environment work together.
Thats why you are so productive with it and why so many things have their roots in Smalltalk. You can easily extend both: the language and the IDE.
Most people do not understand that Smalltalk is not only a language. They see the syntax and compare it to curly brace languages.
But Smalltalk is a dynamic object system with a language built in. Everything is an object, even the language is implemented using objects and messages. Control structures are just messages. Classes are objects as well, therefore they understand messages (a "static" construct is not necessary) implemented in class methods.
Unfortunately most "modern" language designer missed this opportunity (otherwise we wouldnt have a debate about complicated Java Language extensions or yet another new language)
Others try to emulate the IDE. Unfortunately even with Eclipse they will not come close.
I dont know what the future will bring - but hopefully it is a lean, modular Smalltalk like dynamic object system that nicely play with other technologies. Maybe Ian's work can help here.
I agree - in Smalltalk, the code and its environment work together.
Thats why you are so productive with it and why so many things have their roots in Smalltalk. You can easily extend both: the language and the IDE.
Most people do not understand that Smalltalk is not only a language. They see the syntax and compare it to curly brace languages.
But Smalltalk is a dynamic object system with a language built in. Everything is an object, even the language is implemented using objects and messages. Control structures are just messages. Classes are objects as well, therefore they understand messages (a "static" construct is not necessary) implemented in class methods.
Unfortunately most "modern" language designer missed this opportunity (otherwise we wouldnt have a debate about complicated Java Language extensions or yet another new language)
Others try to emulate the IDE. Unfortunately even with Eclipse they will not come close.
I dont know what the future will bring - but hopefully it is a lean, modular Smalltalk like dynamic object system that nicely play with other technologies. Maybe Ian's work can help here.
Wednesday, December 13, 2006
Too many arguments
I was not able to find a method with a higher number of arguments
than Travis found. But I once saw an image with long methods
for Collection(class)>>with: keyword's. They extended the class side
messes of Collection like this:
So you could write
I guess they didnt know about Collection(class)>>withAll: which allows
you to write:
than Travis found. But I once saw an image with long methods
for Collection(class)>>with: keyword's. They extended the class side
messes of Collection like this:
Collection(class)>>with:with:with:
Collection(class)>>with:with:with:with:
Collection(class)>>with:with:with:with:with:
...
So you could write
OrderedCollection with: $H with: $E with: $L with: $L with: $OI guess they didnt know about Collection(class)>>withAll: which allows
you to write:
OrderedCollection withAll: #($H $E $L $L $O)
Tuesday, December 12, 2006
I agree
Cees is talking about his Java vs. Smalltalk experience. I completely agree: Eclipse makes Java less painful and Java has moved forward in the last years - but Smalltalk is still better in developer productivity and maintenance costs.
Monday, December 11, 2006
Web Cache performance
Ever read the "Oracle Application Server 10g - Administration Handbook" from Oracle Press ?
Nice book describing how to set up, administrate and manage Oracles application server. There are chapters describing how to add a web cache to enhance performance. Amusing.
Page 8 states:
while page 156 states:
Either it was a different test or they sell two products: one for a
performance boost of 95 and one for 85 percent ;)
Nice book describing how to set up, administrate and manage Oracles application server. There are chapters describing how to add a web cache to enhance performance. Amusing.
Page 8 states:
"Internal Oracle tests reveal that adding the application Server 10g Web
Cache to a three-tiered application (client, application server, and database
tiers) can reduce the load on the database back end by 95 percent."
while page 156 states:
"One Oracle test showed that adding the Oracle Web cache in front of the
Oracle Application Server reduced database load by over 85 percent"
Either it was a different test or they sell two products: one for a
performance boost of 95 and one for 85 percent ;)
Monday, November 27, 2006
Smalltalk Solutions 2007 Call for Participation
The Smalltalk Solutions 2007 Call for Participation is now available at http://www.lwnwexpo.plumcom.ca/smalltalk_cfp.cfm
XML Notepad 2007
Microsoft has released XML Notepad 2007.
It's really a nice tool to view and edit xml.
There is a nice article on MSDN about it. Note that it requires .NET
It's really a nice tool to view and edit xml.
There is a nice article on MSDN about it. Note that it requires .NET
Wednesday, November 15, 2006
Seaside Parasol - another seaside hosting page
Beside the well known http://www.seasidehosting.st there is now an additional offering for hosting seaside applications called "Seaside Parasol".
Chris Cunnington provides a commercial web host for Smalltalk there. Just click on http://www.seasideparasol.com.

There is also the so called "Beach Club" a monthly pub night to talk about all things Smalltalk.
Chris Cunnington provides a commercial web host for Smalltalk there. Just click on http://www.seasideparasol.com.
There is also the so called "Beach Club" a monthly pub night to talk about all things Smalltalk.
Exupery 0.10 for Windows and Linux
Exupery 0.10 is released, now on Windows and Linux
Exupery is a compiler written in Squeak Smalltalk that compiles bytecodes to machine code.
Exupery is a compiler written in Squeak Smalltalk that compiles bytecodes to machine code.
Scratch Progress
I already reported about Scratch project back in May 2005.
Meanwhile the project made some progress and a beta version is available for download. You can also have a look at some movies introducing the system.
Scratch is written in Squeak. It's interesting that the image is only 6MB in size. The virtual machine is a 3.4.3/Tea 1.9 VM. The system is very responsive even when loading large images and sounds.

I also like the Scratch user interface - it looks much better than Squeaks default one. Would be interesting to know if it is a custom one or a modified Morphic system. Remembers me a little bit on the nice UI from the Exobox project (which was also implemented in Squeak Smalltalk).
Looks like the Squeak and Croquet community should hire a designer to take over the world ...
Meanwhile the project made some progress and a beta version is available for download. You can also have a look at some movies introducing the system.
Scratch is written in Squeak. It's interesting that the image is only 6MB in size. The virtual machine is a 3.4.3/Tea 1.9 VM. The system is very responsive even when loading large images and sounds.
I also like the Scratch user interface - it looks much better than Squeaks default one. Would be interesting to know if it is a custom one or a modified Morphic system. Remembers me a little bit on the nice UI from the Exobox project (which was also implemented in Squeak Smalltalk).
Looks like the Squeak and Croquet community should hire a designer to take over the world ...
Magma OODB
There is an interview available with Chris Muller on the Magma object oriented database: download the MP3. Magma is a multi-user object database for Smalltalk.
If you want to know more about the project try the Magma page on the Squeak swiki or join the magma mailinglist.
If you want to know more about the project try the Magma page on the Squeak swiki or join the magma mailinglist.
Thursday, November 02, 2006
Toothpick for Squeak
Toothpick - a simple configurable Logging mechanism for Smalltalk
is now also available as Monticello package on SqueakSource
and SqueakMap. I just converted the source zip into a monticello
package with kindly permission from Joseph Pelrine. His code is
released under BSD license.
More infos can be found on:
http://www.metaprog.com/Toothpick
http://minnow.cc.gatech.edu/squeak/5890
(includes an example script)
The Monticello repository on http://www.squeaksource.com/Toothpick
has read/write access for future contributions. Since Toothpick
is available for various Smalltalk dialects contributions should
not be limited to Squeak.
is now also available as Monticello package on SqueakSource
and SqueakMap. I just converted the source zip into a monticello
package with kindly permission from Joseph Pelrine. His code is
released under BSD license.
More infos can be found on:
http://www.metaprog.com/Toothpick
http://minnow.cc.gatech.edu/squeak/5890
(includes an example script)
The Monticello repository on http://www.squeaksource.com/Toothpick
has read/write access for future contributions. Since Toothpick
is available for various Smalltalk dialects contributions should
not be limited to Squeak.
Wednesday, November 01, 2006
Mondrian for Squeak
Mondrian is getting ported from VisualWorks to Squeak. With Mondrian it is easy to create a certain view on a software system by a few smalltalk lines. I used it back in a VisualWorks project I once worked as a consultant and found it really helpfull. It shows relations in object oriented systems and helps you to find where to start with refactorings.
Just load the latest version of the port from http://mc.lukas-renggli.ch. The current state of the port looks promising:

This is what I got after evaluating:
The graph shows the inheritance hierarchy for the class ParseNode. The width of the rectangles represents the number of instance variables, the height the number of methods. Take care of large rectangles on top of the graph - superclasses may define behavior not needed in every subclass. Specialization should be at the bottom of the inheritance tree ...
Just load the latest version of the port from http://mc.lukas-renggli.ch. The current state of the port looks promising:
This is what I got after evaluating:
MOPaintings classInheritanceOf: ParseNode.
MOPaintings systemComplexityOf: ParseNode
The graph shows the inheritance hierarchy for the class ParseNode. The width of the rectangles represents the number of instance variables, the height the number of methods. Take care of large rectangles on top of the graph - superclasses may define behavior not needed in every subclass. Specialization should be at the bottom of the inheritance tree ...
Toothpick - Logging mechanism for Smalltalk
Found a link to Toothpick - a simple configurable Logging mechanism for Smalltalk. Looks like Joseph found the time to make it available for various Smalltalk dialects (Dolphin, Squeak, VisualAgeST and VisualWorks). Great!
Unfortunately the Squeak version is still deployed as a simple zip file with changesets - thats now a little bit old fashioned.
With Monticello and SqueakSource Squeak now has a better way of making source code available and a Squeak map registration will provide a comfortable way to download the package from within Squeak...
Unfortunately the Squeak version is still deployed as a simple zip file with changesets - thats now a little bit old fashioned.
With Monticello and SqueakSource Squeak now has a better way of making source code available and a Squeak map registration will provide a comfortable way to download the package from within Squeak...
Tuesday, October 31, 2006
DabbleDB News
There is a new demonstration of the DabbleDB features available. Avi Bryant is interviewed by Jon Udell on the latest "Screening Room".
Thursday, October 26, 2006
SSpec ported to Squeak
Keith Hodges has ported SSpec v0.13 to Squeak. SSpec is a framework for writing executable specifications for Smalltalk programs.
It is available from SqueakSource at http://www.squeaksource.com/SSpec. Note that there is a QuickReference and a Manual available.
It is available from SqueakSource at http://www.squeaksource.com/SSpec. Note that there is a QuickReference and a Manual available.
Monday, October 23, 2006
Win an ipod with Smalltalk and Gjallar
Göran announced a Gjallar competition where you could win an ipod.
Write a nice useful enhancement for the Squeak and Seaside based web issue tracker.
Write a nice useful enhancement for the Squeak and Seaside based web issue tracker.
Tuesday, October 17, 2006
Wednesday, October 11, 2006
ST Code Search on Google
Looking for some Smalltalk code? Try the new codesearch on google.
Here is a simple example to search for "continuation":
http://www.google.com/codesearch?q=lang:smalltalk+continuation
Here is a simple example to search for "continuation":
http://www.google.com/codesearch?q=lang:smalltalk+continuation
Monday, October 09, 2006
Jobtrends for Apples and Oranges
Read a posting by Donald Smith about continuous Eclipse demand. He used Indeed.com job trends as indicator.
Curious as I am I started to play with it:
Looks like .NET is more required than J2EE. But if they are right it is better to know about C than Java, C++, C# or Assembler.
Or maybe it is better to learn E since it is more required than C or Java. Yes there is an E programming language. But maybe it just counts the character or counts e's like in e-business.
There is also an interesting race between Rails and Seaside.
In the end we should also not forget to compare apples with oranges... ;)
Curious as I am I started to play with it:
Looks like .NET is more required than J2EE. But if they are right it is better to know about C than Java, C++, C# or Assembler.
Or maybe it is better to learn E since it is more required than C or Java. Yes there is an E programming language. But maybe it just counts the character or counts e's like in e-business.
There is also an interesting race between Rails and Seaside.
In the end we should also not forget to compare apples with oranges... ;)
Wednesday, October 04, 2006
Keep on talking small
Do you want to know why the Eclipse Foundation is full of Smalltalk discussions? Then start reading here. Especially I like this part:
The story tells us two things:
I'm infected by the Smalltalk virus too (since 1995) and many of my technical conversation will also end up in talking how easy and fascinating a developers
life is in Smalltalk.
I remember the "old days" were (in a first intoxination of Smalltalk) I started to write some online books about it (information were sparse). Now much better documentation is available to learn from.
Through these activities I got in contact and started to learn from "old dudes who know Smalltalk". I assembled a Smalltalk CD, organized Smalltalk events, helped to reassemble the German user group, and contributed code and help to VW, Squeak, ST/MT and Smallscript. I showed Smalltalk at every opportunity. So it is true - I'm guilty of infecting others.
We were all once warned by Andy Bower from ObjectArts (creator of Dolphin Smalltalk):
Be warned to learn Smalltalk just to understand Ralphs Blog postings about "Design Patterns and language design".
Smalltalks simplicity, beauty and the power of pure objects may affect you. All the way down - everything is an Object. Once learned it may be frustrating to work with newer technologies that will never catch up with such a dynamic object system.
For me it is too late, I'm infected. I have to keep on talking small...
"Every lunch conversation will hit upon Smalltalk within 10 minutes, no matter what topic the conversation starts from."
The story tells us two things:
- The Eclipse foundation has lunch together with their webmaster (harmless)
- Take care - they are infected by the Smalltalk virus
I'm infected by the Smalltalk virus too (since 1995) and many of my technical conversation will also end up in talking how easy and fascinating a developers
life is in Smalltalk.
I remember the "old days" were (in a first intoxination of Smalltalk) I started to write some online books about it (information were sparse). Now much better documentation is available to learn from.
Through these activities I got in contact and started to learn from "old dudes who know Smalltalk". I assembled a Smalltalk CD, organized Smalltalk events, helped to reassemble the German user group, and contributed code and help to VW, Squeak, ST/MT and Smallscript. I showed Smalltalk at every opportunity. So it is true - I'm guilty of infecting others.
We were all once warned by Andy Bower from ObjectArts (creator of Dolphin Smalltalk):
"Smalltalk is dangerous. It is a drug. My advice to you would be don't try it; it could ruin your life."
Be warned to learn Smalltalk just to understand Ralphs Blog postings about "Design Patterns and language design".
Smalltalks simplicity, beauty and the power of pure objects may affect you. All the way down - everything is an Object. Once learned it may be frustrating to work with newer technologies that will never catch up with such a dynamic object system.
For me it is too late, I'm infected. I have to keep on talking small...
Thursday, September 28, 2006
Seaside for the .Net Developer
Ramón León compares web development with Smalltalk/Seaside and web development with .NET.
Wednesday, September 27, 2006
Small Cruise
There is a sneak preview of SmallCruise available showing the integration between Dolphin Smalltalk and CruiseControl.net (providing Continuous Integration of your Smalltalk projects).
Tuesday, September 26, 2006
Sandcastle
When working with Smalltalk I usually dont care about reference documentation since I'm more used to browsing the code directly. On the other hand it is very easy to use reflection in Smalltalk and write out some static html files if required (see this Squeak class documentation for an example).
In Java and .NET you typically use documentation annotations in the code and tools like JavaDoc and NDoc. As you may have heard NDoc is now discontinued since Microsoft provides an own documentation tool called "Sandcastle".
So I just downloaded the Community Technology Preview for "Sandcastle" to document the assemblies of one of my .NET projects. Sandcastle allows you to build accurate, informative documentation with a common look and feel similar to the MSDN documentation.
There are several GUI tools available helping you to control the compilers input and output (the CTP for Sandcastle comes only comes with a command line compiler).
After trying the SandCastleBuilder tool I was more happy using the SandcastleGUI tool. Much better than using MRefBuilder.exe, BuildAssembler.exe and XslTransform.exe manually.
Since I already had the MS HTML Help Compiler installed it was very easy to build a CHM file with the docu. One of the nice features is that the documentation includes live links to the MSDN documentation.
All in all nothing worldshaking but sometimes helpful if work on the .NET side of life.
In Java and .NET you typically use documentation annotations in the code and tools like JavaDoc and NDoc. As you may have heard NDoc is now discontinued since Microsoft provides an own documentation tool called "Sandcastle".
So I just downloaded the Community Technology Preview for "Sandcastle" to document the assemblies of one of my .NET projects. Sandcastle allows you to build accurate, informative documentation with a common look and feel similar to the MSDN documentation.
There are several GUI tools available helping you to control the compilers input and output (the CTP for Sandcastle comes only comes with a command line compiler).
After trying the SandCastleBuilder tool I was more happy using the SandcastleGUI tool. Much better than using MRefBuilder.exe, BuildAssembler.exe and XslTransform.exe manually.
Since I already had the MS HTML Help Compiler installed it was very easy to build a CHM file with the docu. One of the nice features is that the documentation includes live links to the MSDN documentation.
All in all nothing worldshaking but sometimes helpful if work on the .NET side of life.
News from Exupery
A port of the Exupery virtual machine is now available for Windows and Solaris.
The Exupery project (by Bryce Kampjes) compiles bytecodes to machine code. The source code is available at SqueakMap.
Dont forget to have a look at the Exupery talk from Brussels2006 Smalltalk party (see video).
The Exupery project (by Bryce Kampjes) compiles bytecodes to machine code. The source code is available at SqueakMap.
Dont forget to have a look at the Exupery talk from Brussels2006 Smalltalk party (see video).
Wednesday, September 20, 2006
IsDate and Agent Zed
While reviewing code I found an interesting bug in a VB component today.
There is a piece of software that should validate if a given input value
represents a correct date.
Unfortunately it just used the IsDate() function to check the value.
If I reduce the code to its minimum it does something similar to:
This works as expected: the inputValue represents a date (so we get "True")
and after the date conversion we get the correct date: 28.02.2006.
But have you tried with "31.02.06" - an input value which is not a
correct date (at least if you think of the format dd.mm.yy)
It is silently accepted by the code and VB is converting it into
the "06.02.1931"! Beside the fact that this is the day where actor
Rip Torn was born (who played Agent Zed in Men in Black) we found the
reason for accepting the bad input value.
So if VB cant find a matching date in the right order it just parses
the string reverse and checks for a reasonable date value.
Let's do a quick check in .NET using C#:
Fortunately this is not an issue since a FormatException is thrown.
Conclusion: never stop testing your code and when it comes to
dates remember the birth of Agent Zed...
There is a piece of software that should validate if a given input value
represents a correct date.
Unfortunately it just used the IsDate() function to check the value.
If I reduce the code to its minimum it does something similar to:
Private Sub Command1_Click()
Dim inputValue As String
inputValue = "28.02.06"
MsgBox IsDate(inputValue)
MsgBox CDate(inputValue)
End Sub
Dim inputValue As String
inputValue = "28.02.06"
MsgBox IsDate(inputValue)
MsgBox CDate(inputValue)
End Sub
This works as expected: the inputValue represents a date (so we get "True")
and after the date conversion we get the correct date: 28.02.2006.
But have you tried with "31.02.06" - an input value which is not a
correct date (at least if you think of the format dd.mm.yy)
It is silently accepted by the code and VB is converting it into
the "06.02.1931"! Beside the fact that this is the day where actor
Rip Torn was born (who played Agent Zed in Men in Black) we found the
reason for accepting the bad input value.
So if VB cant find a matching date in the right order it just parses
the string reverse and checks for a reasonable date value.
Let's do a quick check in .NET using C#:
DateTime date = DateTime.Parse("31.02.06");
Fortunately this is not an issue since a FormatException is thrown.
Conclusion: never stop testing your code and when it comes to
dates remember the birth of Agent Zed...
Monday, September 18, 2006
More VM news
Looks like Ian Piumarta's new Pepsi and Coke Meta-VM might lift off with the OLPC project. A quote from the OLPC news:
"2. Alan Kay, Kim Rose, and the eToys team spent the week in Cambridge at the OLPC offices. They continue to make rapid progress towards the integration of eToys into the laptop software environment (they also provided useful feedback) and have eToys running on the laptop. IanPiumarta gave the OLPC team an update on his dynamically reconfigurable virtual machine, which may be in the longer term the basis of programming environment for the Laptop, in that it is simple, fast, extremely flexibleand quite eloquent."
Wednesday, September 13, 2006
Comet Screencasts - new web possibilities
Diego shows some examples for Comet use as screencasts:
- a Cooperative shopping cart
- a colaborative spreadsheet
Full info is available here and here - spanish only.
So there are more and more arguments for using Seaside as THE web development framework. If you dont know about Comet you should have a look at one of my ealier posts about it.
- a Cooperative shopping cart
- a colaborative spreadsheet
Full info is available here and here - spanish only.
So there are more and more arguments for using Seaside as THE web development framework. If you dont know about Comet you should have a look at one of my ealier posts about it.
News from Squeak and OLPC
Another step for the "One Laptop per Child" (OLPC) project: Squeak Etoys is running on a first prototype display. See the pictures on Ians homepage:
http://piumarta.com/photos/olpc/
http://piumarta.com/photos/olpc/
Monday, September 11, 2006
Sun release Strongtalk VM into OpenSource
Sun has released the Strongtalk VM as Open Source in September 2006. The Strongtalk VM executes Smalltalk much faster than any other Smalltalk implementation (at the time of its release), using an advanced inlining compiler based on type-feedback technology. See
http://www.strongtalk.org/
for more info.
The current system was developed in secret at a small startup company, Animorphic Systems (officially LongView Technologies, Inc.), that was started in 1994. Unfortunately for Strongtalk, the rapid and unexpected rise of Sun Microsystem's Java forced Animorphic to halt work on the Strongtalk system before it was ever released. Animorphic was acquired by Sun Microsystems in 1997, and parts of the Animorphic virtual machine technology became the core of what is currently Sun's production Java virtual machine implementation (it made it into the Hotspot Java Jitter/dynamic optimizer).
The VM is a mixed-mode system, with a fast interpreter as well as dynamic
compiler that was invoked based on dynamic profiling info. The only previous application of similar technology was Self, which was entirely compiled and had a huge footprint.
The Strongtalk VM did not make use of the type system at all; typing was strictly optional. Method dispatch was based on inline caches, including PICs. All code was represented internally as mixins, and any class could be used as a mixin as well.
Benchmarks showed that we were 2.5-4 times faster than commercial Smalltalks at that time (Digitalk, ParcPlace (now Cincom) and IBM).
http://www.strongtalk.org/
for more info.
The current system was developed in secret at a small startup company, Animorphic Systems (officially LongView Technologies, Inc.), that was started in 1994. Unfortunately for Strongtalk, the rapid and unexpected rise of Sun Microsystem's Java forced Animorphic to halt work on the Strongtalk system before it was ever released. Animorphic was acquired by Sun Microsystems in 1997, and parts of the Animorphic virtual machine technology became the core of what is currently Sun's production Java virtual machine implementation (it made it into the Hotspot Java Jitter/dynamic optimizer).
The VM is a mixed-mode system, with a fast interpreter as well as dynamic
compiler that was invoked based on dynamic profiling info. The only previous application of similar technology was Self, which was entirely compiled and had a huge footprint.
The Strongtalk VM did not make use of the type system at all; typing was strictly optional. Method dispatch was based on inline caches, including PICs. All code was represented internally as mixins, and any class could be used as a mixin as well.
Benchmarks showed that we were 2.5-4 times faster than commercial Smalltalks at that time (Digitalk, ParcPlace (now Cincom) and IBM).
Wednesday, September 06, 2006
Squeak Developer Workspace (including Seaside)
A new release of DeveloperWorkspace for Squeak 3.9 is available. It creates a predefined image and may help developers as well as beginners. It now also includes all packages for Seaside development.
Some of its features:
Unfortunately I was not able to register a new package version on SqueakMap today, so here is a short howto:
Download the latest 3.9 release of Squeak (actually Squeak3.9g-7055.zip) from http://ftp.squeak.org/3.9
Open a new workspace and evaluate the following code:
A workspace will appear with
Just select this text and evaluate it.
Answer all following questions with "yes" or "ok". Note that you have to provide a username and password during the install. They are used to secure the seaside webserver configuration console.
When the installation finishes just save the image. You can now use the tools or follow the instructions in one of the workspaces.
Have fun
Some of its features:
- assembles usefull packages and developer tools (AST, FFI, RefactoringBrowser, RoelTyper, TestBrowser, Techo, ScriptManager, MemoryUsage, ...)
- syntax highlighting using Shout
- autocompletion using eCompletion package
- includes seaside and a seaside workspace to easily start web development (no external webserver required)
- window switching using ALT+W (thanks to keybinder)
- provides an beginners workspace (uncomplete, help appreciated)
Unfortunately I was not able to register a new package version on SqueakMap today, so here is a short howto:
Download the latest 3.9 release of Squeak (actually Squeak3.9g-7055.zip) from http://ftp.squeak.org/3.9
Open a new workspace and evaluate the following code:
| repository version |
repository := MCHttpRepository location: 'http://www.squeaksource.com/DeveloperWorkspace' user: '' password: ''.
version := repository versionFromFileNamed: 'DEVImageInstaller-tbn.4.mcz'.
version load.
A workspace will appear with
DEVImageInstaller install
Just select this text and evaluate it.
Answer all following questions with "yes" or "ok". Note that you have to provide a username and password during the install. They are used to secure the seaside webserver configuration console.
When the installation finishes just save the image. You can now use the tools or follow the instructions in one of the workspaces.
Have fun
Monday, September 04, 2006
Pictures from ESUG 2006
Here are the first pictures from the 14th European Smalltalk User Group (ESUG) conference in Prague.
You can also have a look at the presentations from Monday.
and some first impressions from James:
- Meta Driven Browsers (about the OmniBrowser framework)
- Modularizing the ObjectLens
You can also have a look at the presentations from Monday.
and some first impressions from James:
- Meta Driven Browsers (about the OmniBrowser framework)
- Modularizing the ObjectLens
Wednesday, August 30, 2006
Some news from DabbleDB
Andrew created a new screencast on DabbleDB showing how to create an application from imported digg.com data. If you want you can help digging.
DabbleDB is also mentioned on the Dan & David Show as being used by Ismael Ghalimi, the co-founder and CEO of Intalio.
For those who dont know: DabbleDB is a new web application written Smalltalk using Squeak and the seaside web framework (both open source). It's focus is on easy application development based on structured data.
DabbleDB is also mentioned on the Dan & David Show as being used by Ismael Ghalimi, the co-founder and CEO of Intalio.
For those who dont know: DabbleDB is a new web application written Smalltalk using Squeak and the seaside web framework (both open source). It's focus is on easy application development based on structured data.
Rethinking the typing
There were some thoughts from an outsider about Smalltalk on the Squeak-dev mailinglist, I can only agree to his point of view about typing:
In dynamic languages you can focus on solving the problem - in static languages you always get distracted by annoying compiler messages...
"Before I was an effienciency/static typing junky, but smalltalk has made me
rethink the typing at least. :) After all, how many errors *has* that
really caught for me compared to all the times code didn't compile because
the compiler was confused about something that should work."
In dynamic languages you can focus on solving the problem - in static languages you always get distracted by annoying compiler messages...
Wednesday, August 23, 2006
Rubics Cube
There are a couple videos of a Rubik's Cube in croquet space on YouTube. Looks like this is work done by one of Robert Hirschfeld's students.
- Video 1
- Video 2
- Video 3

Robert is the author of various Squeak packages like AspectS or MethodAnnotationBrowser.
Unfortunately he now moved to Potsdam to work for the Hasso Plattner Institute. We are both native-born in Thuringia (which is one of the most beautiful landscapes in germany by the way) and I miss the endless Smalltalk discussions with him after work in Munich's beer gardens...
- Video 1
- Video 2
- Video 3
Robert is the author of various Squeak packages like AspectS or MethodAnnotationBrowser.
Unfortunately he now moved to Potsdam to work for the Hasso Plattner Institute. We are both native-born in Thuringia (which is one of the most beautiful landscapes in germany by the way) and I miss the endless Smalltalk discussions with him after work in Munich's beer gardens...
Thursday, August 17, 2006
Crashing toad
TOAD is a really usefull tool when working with databases. While working with Oracle today it suddenly crashed and displayed an interesting call stack. Did'nt know that the UI was written using Pascal:
Wednesday, August 16, 2006
The power of two
If you work in IT business then some numbers are very meaningful
if you see them in a memory dump or a code listing. If you know
about bits and bytes and the mathematics behind them then at least
the following series should be well known:
The series for 16 bits is something you could easily remember.
But whats next. Let's write a small(talk) expression to see how the
series continues up to 1000 bits:
Ooops - I didnt know that (2 raisedTo: 1000) is:
Really? Unbelievable! Next step would be to learn all of them ;)
if you see them in a memory dump or a code listing. If you know
about bits and bytes and the mathematics behind them then at least
the following series should be well known:
1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 ...The series for 16 bits is something you could easily remember.
But whats next. Let's write a small(talk) expression to see how the
series continues up to 1000 bits:
(0 to: 1000) collect: [ :each | 2 raisedTo: each ]Ooops - I didnt know that (2 raisedTo: 1000) is:
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376Really? Unbelievable! Next step would be to learn all of them ;)
Tuesday, August 15, 2006
StarUML
Found a nice and free Win32 UML Tool on the web. It is called StarUML.
StarUML supports Java, C++, C#, Pattern, RationalRose and XMI. Last one is especially important - so I can transform the model to anything I like. Diagrams can also be exported to JPG, EMF, WMF and BMP. It comes with full Delphi source code - so it is easily adaptable.
I like it but even with all these features I think it will not replace my hottest design tool.
StarUML supports Java, C++, C#, Pattern, RationalRose and XMI. Last one is especially important - so I can transform the model to anything I like. Diagrams can also be exported to JPG, EMF, WMF and BMP. It comes with full Delphi source code - so it is easily adaptable.
I like it but even with all these features I think it will not replace my hottest design tool.
Monday, August 14, 2006
Christo Code Coverage
Stefan Reichhart has announced "Christo" - a tool to dynamically and safely retrieve coverage of code-elements (e.g. packages, classes, methods, ...).
It adapts many different technologies to collect data. So you might apply this tool using ByteSurgeon, MethodWrappers, ObjectAsMethodWrappers, JCompiledMethods/AST (short: JAST), or ...
It's part of his Master Thesis about "Testing".
It adapts many different technologies to collect data. So you might apply this tool using ByteSurgeon, MethodWrappers, ObjectAsMethodWrappers, JCompiledMethods/AST (short: JAST), or ...
It's part of his Master Thesis about "Testing".
Tuesday, August 08, 2006
Wednesday, August 02, 2006
Injection Rejection
Software developers should always take care for security and prevent SQL injection as explained in this funny story. :)
Seaside at OSCON
Some more notes about Avi's OSCON presentation about the Seaside web framework. I'm using the framework from it's early days and really enjoy it (especially after hard times with other "mainstream" frameworks) ...
Thursday, July 27, 2006
SqueakSource servers
Here is an update on the current list of public squeak source servers:
It's fun to browse the last one - it's japanese (from the SqSquare project) but I'm able to navigate and explore it. I like the FileMan package from it. It makes file handling in Squeak much easier.
If you want to set up an own squeak source server: some months ago I prepared an image for easily setting up SqueakSource.
- http://www.squeaksource.com
- http://source.squeakfoundation.org
- http://squeak.saltypickle.com
- http://source.impara.de
- http://mc.lukas-renggli.ch
- http://squeaksource.blueplane.jp
It's fun to browse the last one - it's japanese (from the SqSquare project) but I'm able to navigate and explore it. I like the FileMan package from it. It makes file handling in Squeak much easier.
If you want to set up an own squeak source server: some months ago I prepared an image for easily setting up SqueakSource.
Seaside at OSCON 2006
Avi is talking about Seaside at OSCON 2006
Obie Fernandez is lamenting about the vodoo magic of the seaside framework. It's not vodoo - just plain objects at work. ;)
Obie Fernandez is lamenting about the vodoo magic of the seaside framework. It's not vodoo - just plain objects at work. ;)
Thursday, July 20, 2006
SqueakCMI
A new website called SqueakCMI is available at:
http://squeakcmi.org
The SqueakCMI Group is working to bring Squeak to more teachers and children to develop mathematics and science activities using Squeak as a platform.
http://squeakcmi.org
The SqueakCMI Group is working to bring Squeak to more teachers and children to develop mathematics and science activities using Squeak as a platform.
Wednesday, July 19, 2006
Stupid Metrics
Found yet another article on language popularity:
I would guess the reason is that you always need to look up Java stuff in reference manuals or tutorials which is easier to do using a search engine. Programming in Java without online access to the internet is a pain. When I do Java work the web browser is one of the most used tools ...
When doing Smalltalk work I just use the Smalltalk IDE's code browser since everything is there and fully accessible/changable. I can care about solving a problem instead of constantly looking up Java API and framework descriptions, bug reports, ...
A new TIOBE Software study has found that Java is the most popular programming language among developers
...
This popularity measurement uses a simple metric: the number of relevant search engine queries.
I would guess the reason is that you always need to look up Java stuff in reference manuals or tutorials which is easier to do using a search engine. Programming in Java without online access to the internet is a pain. When I do Java work the web browser is one of the most used tools ...
When doing Smalltalk work I just use the Smalltalk IDE's code browser since everything is there and fully accessible/changable. I can care about solving a problem instead of constantly looking up Java API and framework descriptions, bug reports, ...
Wednesday, June 21, 2006
Squeak on university
Markus Gaelli has published a short report (german only) from the "Day of informatics 2006" on the university Erlangen-Nürnberg where he presented Squeak to students. He also published some pictures.
Tuesday, June 20, 2006
Monday, June 19, 2006
VistaSmalltalk
Peter Fisk announced a demonstration of using Smalltalk classes instead of XAML to implement animations in the Windows Presentation Foundation (WPF). He expects Vista Smalltalk will shortly be capable of building online animated games and replacing Javascript for "Ajax" style applications.
Vista Smalltalk is built upon the Windows Presentation Foundation (WPF) classes and a bytecode runtime which depends only upon core WinFx classes.
Vista Smalltalk is built upon the Windows Presentation Foundation (WPF) classes and a bytecode runtime which depends only upon core WinFx classes.
14th International Smalltalk Conference 2006
The registration for International Smalltalk Conference organised by ESUG every year is now open.
The 14th International Smalltalk Conference 2006 will be held in Prague, Czech Republic.
The 14th International Smalltalk Conference 2006 will be held in Prague, Czech Republic.
SqueakNOS Mailinglist
There is a new mailinglist available for the Squeak NOS project.
SqueakNOS is trying to get rid of the OS under Squeak, and to implement all the operating system functionality in Smalltalk.
SqueakNOS is trying to get rid of the OS under Squeak, and to implement all the operating system functionality in Smalltalk.
Wednesday, June 14, 2006
SqSquare collaboration software
Masashi Umezawa announced the SqSquare BETA release.
SqSquare is a new collaboration software built on Tweak. On a virtual broad desktop, you can freely add/edit objects, or even write eToys scripts. There is also a project swiki available.
SqSquare is a new collaboration software built on Tweak. On a virtual broad desktop, you can freely add/edit objects, or even write eToys scripts. There is also a project swiki available.
Monday, June 12, 2006
SqueakNOS: A simple guide to writing HardwareDevices
The "Simple guide to writing HardwareDevices" for SqueakNOS
explains how to use Squeak Smalltalk to implement new
Hardware Devices.
explains how to use Squeak Smalltalk to implement new
Hardware Devices.
Wednesday, June 07, 2006
Seaside, Baby dolls and high volume websites
Nevin Pratt shares some experiences about using Seaside for his web shop.
Monday, May 29, 2006
Friday, May 19, 2006
Squeak NOS is back
The SqueakNOS (Squeak No Operating System) project is back.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended ;) or use PC emulators like VMWare for a first test.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended ;) or use PC emulators like VMWare for a first test.
Squeak NOS is back
The SqueakNOS (Squeak No Operating System) project is back.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
Thursday, May 18, 2006
SqueakNOS is back
The SqueakNOS (Squeak No Operating System) project is back.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
SqueakNOS is back
The SqueakNOS (Squeak No Operating System) project is back.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
SqueakNOS was an attempt to get Squeak running on x86 pcs without an underlying OS. The aim was to push as much of the hardware interface into the Smalltalk image as possible. There has been no progress since 2001 but now the original team is back and SqueakNOS is quite live and quite kicking!
You can either throw away your installed OS (not yet recommended) or use PC emulators like VMWare for a first test.
Wednesday, May 17, 2006
Just 5 seconds ...
Just read about Sun finishing Java Enterprise Edition 5 on the heise newsticker (german only). One of the added user comments was:
That's really a huge step forward for J2EE - it should now be less painfull to always reboot the webserver after doing refactorings and program changes. ;)
I'm working with both: Java/J2EE and Smalltalk/Seaside and the situation is always the same:
I constantly see the Java world beeing happy about small things making this painfull style of development easier. Nobody asks the question if this change-compile-restart process makes sense in general!!!
On the other hand things like that have never been an issue in dynamic environments like Smalltalk. You dont have to restart the web server after large changes - even if you restructure large parts of your application framework or the web server code itself.
This is one factor why Smalltalk development makes you more productive - you can focus on solving the problem...
"The Sun App server (Glassfish) really rocks. The thing is coming up in only 5 seconds together with derby and admin console. Compared to this most application servers should hide themselves ..."
That's really a huge step forward for J2EE - it should now be less painfull to always reboot the webserver after doing refactorings and program changes. ;)
I'm working with both: Java/J2EE and Smalltalk/Seaside and the situation is always the same:
I constantly see the Java world beeing happy about small things making this painfull style of development easier. Nobody asks the question if this change-compile-restart process makes sense in general!!!
On the other hand things like that have never been an issue in dynamic environments like Smalltalk. You dont have to restart the web server after large changes - even if you restructure large parts of your application framework or the web server code itself.
This is one factor why Smalltalk development makes you more productive - you can focus on solving the problem...
Tuesday, May 09, 2006
Comet implementation for Seaside web framework
Comet - the next web technology after AJAX allows the server to push updates to all clients (for instance web browsers) when they happen.
Diego Gomez Deck published a first implementation on SqueakMap (called Asteroid). It runs with KomHttpServer (Comanche), JSON and Seaside.
I had to patch the class FastSocketStream with a copy of SocketStream>>sendImmediatelly: to make it work in Squeak 3.8. (3.8 uses a different socket implementation and this method was unfortunately missing).
What it does:
=============
After running "ACometWidgets start" in the Squeak server image you can open more than one web browser on http://localhost:9999
You see some text fields - if you change their values the changes are sent to the server and from there dynamically pushed to the other client web browsers without having to use their "refresh" button.
By evaluating "ACometWidgets instance pushAlertHelloWorld." you get an example how to push data (in this case a java script with an alert) from the server to any connected web browser client. If you leave the Transcript open and close the browsers you will also get a notice that they disconnected.
Update:
I created a short Shockwave demo of Asteroids.
Diego Gomez Deck published a first implementation on SqueakMap (called Asteroid). It runs with KomHttpServer (Comanche), JSON and Seaside.
I had to patch the class FastSocketStream with a copy of SocketStream>>sendImmediatelly: to make it work in Squeak 3.8. (3.8 uses a different socket implementation and this method was unfortunately missing).
What it does:
=============
After running "ACometWidgets start" in the Squeak server image you can open more than one web browser on http://localhost:9999
You see some text fields - if you change their values the changes are sent to the server and from there dynamically pushed to the other client web browsers without having to use their "refresh" button.
By evaluating "ACometWidgets instance pushAlertHelloWorld." you get an example how to push data (in this case a java script with an alert) from the server to any connected web browser client. If you leave the Transcript open and close the browsers you will also get a notice that they disconnected.
Update:
I created a short Shockwave demo of Asteroids.
Tuesday, May 02, 2006
Forward to the past
For those of you who want to play with a simple Smalltalk image running on a Java VM (within a browser) try the following link:
Note that Java Webstart is required for your browser. Read the original announcement by Dan Ingalls. The running image is based on the mini.image from Squeak and runs slower than the C based VM but actually it works.
ForwardToThePast.jnlp
Note that Java Webstart is required for your browser. Read the original announcement by Dan Ingalls. The running image is based on the mini.image from Squeak and runs slower than the C based VM but actually it works.
Interview with Dan Ingalls from ESUG 2004
Found an interview with Dan Ingalls from ESUG 2004. Scroll down for the english version. Interesting ...
New beginners squeak mailing-list
A new mailinglist for Squeak beginners has been set up. For a complete list of Squeak related mailinglists click here.
Friday, April 28, 2006
Seaside, ROR and retiring Java from the spotlight of web applications
Seaside got mentioned again in an interview with Ruby on Rails creator David Heinemeier Hansson to retire Java from the spotlight of web applications. To quote:
I would not encourage you to take a look since it is true what Andy Bower once said:
"Rails is much more traditional and familiar to most programmers. Java programmers with years of experience in J2EE can switch to Rails quickly and all they have to learn is what drudgery not to do any more.
Seaside, on the other hand, is an entirely different paradigm. It's new, fresh thinking. And for certain narrow domains it can definitely offer significant improvements over the traditional request/response model.
But I don't see it as something that's going to catch a ton of mainstream traction the way Rails has. It's simply too different for too many people. And for the "most applications most of the time" sphere, it doesn't offer enough benefits over something like Rails to be worth the mental rewrite for most people.
I certainly encourage you to take a look regardless. It'll broaden your mind."
I would not encourage you to take a look since it is true what Andy Bower once said:
"Smalltalk is dangerous. It is a drug. My advice to you would be don't try it; it could ruin your life. Once you take the time to learn it (to REALLY learn it) you will see that there is nothing out there (yet) to touch it. Of course, like all drugs, how dangerous it is depends on your character. It may be that once you've got to this stage you'll find it difficult (if not impossible) to "go back" to other languages and, if you are forced to, you might become an embittered character constantly muttering ascerbic comments under your breath. Who knows, you may even have to quit the software industry altogether because nothing else lives up to your new expectations."
Thursday, April 27, 2006
Wednesday, April 26, 2006
Smalltalk free lectures repository
As announced by Stêphane:
The European Smalltalk User Group ESUG (www.esug.org) hosts a new server to collect all your free Smalltalk lectures and videos:
If you want to share with others your lectures, please visit http://smalltalkteaching.esug.org/
The European Smalltalk User Group ESUG (www.esug.org) hosts a new server to collect all your free Smalltalk lectures and videos:
If you want to share with others your lectures, please visit http://smalltalkteaching.esug.org/
Tuesday, April 25, 2006
Seaside and Exupery Videos
Monday, April 24, 2006
Smalltalk Solutions Pictures
Adriaan van Os announced first pictures from Smalltalk Solutions 2006 in Toronto
Thursday, April 20, 2006
Wednesday, April 19, 2006
Seachart
A new live demo of SeaChart is available at seachart.seasidehosting.st.
SeaChart components are standard Seaside web components that you can easily embed into your Smalltalk web application. Demos include PlotKit
CSS Bar Graph, Numberd List, Star Rater, Fade In and Cross Fade.
You can also download the code from SqueakSource.
Also have a look at scriptaculous.seasidehosting.st for more free Seaside components.
SeaChart components are standard Seaside web components that you can easily embed into your Smalltalk web application. Demos include PlotKit
CSS Bar Graph, Numberd List, Star Rater, Fade In and Cross Fade.
You can also download the code from SqueakSource.
Also have a look at scriptaculous.seasidehosting.st for more free Seaside components.
Tuesday, April 18, 2006
Smalltalk Party in Cagliari, Italy
A new Smalltalk party in Cagliari, Italy will start on July 1st 2006.
Back from New Zealand
After 3 and a half week in New Zealand my wife and I arrived back in germany. It was our second trip to NZ and it was really amazing. I really like the country. This time we concentrated on the North Island and made a trip to White Island. We also saw some Wallabies and a wide range of birdlife.
Our tour in short:
- Auckland (City of Sails)
- Northland with Cape Reinga
- Coromandel
- Bay of Plenty
- Rotorua and Lake Taupo
- Tongariro National Park with its active volcanoes
- New Plymouth with Mt. Taranaki
Our tour in short:
- Auckland (City of Sails)
- Northland with Cape Reinga
- Coromandel
- Bay of Plenty
- Rotorua and Lake Taupo
- Tongariro National Park with its active volcanoes
- New Plymouth with Mt. Taranaki
Tuesday, March 21, 2006
7 Minute Apps
There is a new demo video online about DabbleDB (which is written in Seaside using Squeak Smalltalk).
Just click here to view or download the movie directly (14MB, Quicktime required).
Just click here to view or download the movie directly (14MB, Quicktime required).
Wednesday, March 15, 2006
About GemStone
Michael Roberts describes some nice features of the GemStone Smalltalk object database. Again we have a nice example for the power of dynamic systems ...
Monday, March 13, 2006
DabbleDB article on techcrunch.com
Smalltalk is getting more and more attention with DabbleDB
(which is written in Squeak using the Seaside web framework).
Read the next article about it.
(which is written in Squeak using the Seaside web framework).
Read the next article about it.
Script.aculo.us and Seaside
A new website shows Seaside combined with the script.aculo.us Javascript library:
http://scriptaculous.seasidehosting.st
http://scriptaculous.seasidehosting.st
Tuesday, March 07, 2006
Beyond Java Buzz
javazoid.com is mentioning Seaside in "Beyond Java Buzz". What I dont understand is that people complain about Java and start with Ruby right after it.
What if they would take the next step and directly start using Smalltalk. I'm sure they will enjoy the wonderfull world full of objects.
What if they would take the next step and directly start using Smalltalk. I'm sure they will enjoy the wonderfull world full of objects.
Wednesday, February 22, 2006
Seaside Hosting
netstyle.ch and ESUG announced a new website:
http://www.seasidehosting.st
where you can host your seaside image(s). It's free - anything you need is Squeak and Seaside.

http://www.seasidehosting.st
where you can host your seaside image(s). It's free - anything you need is Squeak and Seaside.
Tuesday, February 14, 2006
Monday, February 13, 2006
Thursday, February 09, 2006
New Smalltalk Book in Spanish
Diego Gomez Deck announced a new book about Squeak. It is written in spanish.

You can download the PDF here.
You can download the PDF here.
Thursday, January 26, 2006
Squeak and Robots
Jon Hylands (from www.huv.com) posted some new informations about his autonomous controller. The software is written in Squeak Smalltalk.
Click on the images to enlarge and read more on his website.
Click on the images to enlarge and read more on his website.
Thursday, January 19, 2006
Wednesday, January 04, 2006
Subscribe to:
Posts (Atom)