Wednesday, April 16, 2008

Diff Tools for Squeak

Gary Chambers announced new Diff Tools for Squeak as part of the UI Enhancement packages.

Looks promising:



and with different fonts and different look:



Tuesday, April 15, 2008

Arrrggghhhh .....

Arrghhh!!! Try this:


Smalltalk
Transcript show: (50.0 - 7.23) asString

returns 42.77


C/C++
#include 

int main(int argc, char ** argv) {
double a = 50.0 - 7.23;
printf("%lf", a);
}

returns 42.770000


Java
public class Test {
public static void main(String[] args) {
double a = 50.0 - 7.23;
System.out.println(a);
}
}

returns 42.769999999999996

Monday, April 14, 2008

Seaside and SVG

Want to use Seaside to generate Scalable Vector Graphics? At the beginning of April Gerhard Obermann asked for an SVG package on the seaside mailing list.

SVG



Meanwhile the project started. Interesting to see that there is a good infrastructure for people to collabroate and work on new Smalltalk stuff.

XUL for Seaside

Pavel started a new project: SeasideXUL. It allows you to generate XUL
using using Seaside as the Smalltalk web application framework.



Browse the screenshots and code, download a Squeak demo image or read more here...

Tuesday, April 01, 2008

Seaside for Java

Seaside is now available for Java too:

http://www.seaside.st/community/development/seaside4j

A little bit more complex and larger download but rember to
evaluate "Date today printString" in Smalltalk first ;)

Friday, March 28, 2008

Seaside and eBay tools

Another successful startup using Seaside and Smalltalk: auctomatic.com. Its a tool to ease selling at eBay. They now have been bought by Live Current Media.

Have a look at the interview with Meet Harjeet, one of the co-founders behind Auctomatic. He talks about the ideas and also about Smalltalk and Seaside.

Read more about the deal here and here.

So if you want to become a millionaire with a web startup too start coding in Smalltalk and Seaside...

Tuesday, March 04, 2008

Cobalt

Some more news from Croquet:

Cobalt is an emerging open source and multi-platform metaverse browser and toolkit application being built using the open source Croquet SDK:

http://www.opencroquet.org/index.php/Cobalt

You can download the Squeak Smalltalk image, browse the code in the Monticello Code repository or visit the Cobalt Google Group.


Thursday, February 21, 2008

Hydra VM

Qwaq has realeased the Squeak HydraVM as open source under MIT license.

Hydra VM is a virtual machine capable of running multiple Croquet images side-by-side, therefore being able to effectively utilize multi-core CPUs.

Read the announcement from Andreas.

The official release is here: http://www.qwaq.com/HydraVM

Wednesday, February 20, 2008

Who owns a language

There is an interesting question in Ted's blog posting:

Who owns a language and therefore influences its direction?
Is it Anders Hejlsberg who owns C#, is it James Gosling who owns Java and Matz for Ruby? Do they really move these languages forward or just try to copy features from language A to language B?

That's like Mrs Merkel deciding about adding new phrases to german language or Mr. Sarkozy deciding about new words in a french dictionary.

The question for Smalltalk is easily anwered: it is YOU. Everything is open and therefore easy to change. You have full control.

I tell you a little secret: Smalltalk is no a language by default, it's just a dynamic object system. Since anything in the world is an object you can easily bring it into this system. That's where its power comes from.

Smalltalk as a language is just mapped to this object system. The language is just composed of objects and methods and like any other part of the system changable and extendable.

Want to have an example: you need a repeat-until control structure (which is not there by default), just add a #repeatUntil: message to the block class. If others find it usefull this may take it's way to one of the standard images (predefined object worlds). But even if it gets not accepted by a broader community you can easily have it and manage it on your own...

You have a common nominator (called Smalltalk ANSI Standard), but if required you can speak your own dialect (Smalltalk with Namespaces, Smalltalk with Traits, ...) - if the dialect gets a wide interest it may survive.

Next question is who influences the ANSI Standard ;)

Friday, February 08, 2008

My kingdom for a Smalltalk block

Ever looked at the source code of the LivelyKernel, especially to Core.js:


applyFunctionToShape: function() { // my kingdom for a Smalltalk block!
var args = $A(arguments);
var func = args.shift();
func.apply(this.shape, args);
if (this.clipPath) {
console.log('clipped to new shape ' + this.shape);
this.clipToShape();
}
this.adjustForNewBounds();
}.wrap(Morph.onLayoutChange('shape')),

Lively Kernel talk at Google

Dan Ingalls did a Lively Kernel demo at tech talk at Google.

Click here to see the video.

Maybe this is the next thing after these "AJAX/DOM/DHTML stuff with multibrowser testing" to get a decent ui running in the web browser ...

Thursday, February 07, 2008

Interesting Testrunner

Test driven development using a stoplight (or golight), another feature invented in Smalltalk: Read more. ;)

Wednesday, January 30, 2008

Friday, January 25, 2008

Smalltalk evening at the OOP2008

Some pictures from the OOP 2008 Smalltalk evening, click to enlarge:


Suzanne Fortman, Marketing Manager Cincom

The evening begins with 3 parallel tracks


Arden Thomas, Cincom talking about Smalltalk

- many things were invented in Smalltalk
- Smalltalk continues pioneering
- Closures, Reflection, Image Based Development
- "Try doing that while it's running"
- changing the definition of an object while it is running
- Smalltalk is enjoyable and addictive


An OpenGL demo created in Smalltalk. "Change it while it is running!"

- he refactored the running OpenGL graphic animation


Lukas Renggli talking about Seaside

- Problems with page oriented frameworks: logic cluttered on many pages
- Seaside is a web framework
- does the web job, no persistence solution by default like in RoR
- always valid XHTML
- Web components and applicaton logic written in Smalltalk, styling in CSS
- web components with own state/model management
- Backtracking and Continuations
- Seaside is secure by default (encoding, no parameters, ...)


A few web applications using Seaside


Seaside is also able to handle high traffic


Improvements in the new Seaside version

The new Seaside version has improvements in memory footprint and rendering speed. Read the official Seaside website for more.

Thursday, January 24, 2008

Dynamic Language Shootout at OOP2008

At OOP 2008 here in Munich there was a dynamic language shootout organized by the german magazine "Java spektrum".

The winner is Thorsten Seitz with a Smalltalk application based on VisualWorks and Seaside. Congratulations, even if it is not a suprise that Smalltalk is by far the best dynamic language! The second winner is JRuby, the third Lua.

You can download and try the solutions here.

The winning Smalltalk application not only was the best solution, it also had a nice web user interface based on Seaside:

Tuesday, January 22, 2008

Seaside in Munich

Will work in Munich for the rest of the week, so I hope to find the time to visit the Smalltalk evening at the OOP. See you there.

Tuesday, November 27, 2007

CSS Dock Menu in Seaside

Found some time this evening to wrap the CSS Dock menu demo in Seaside. It's really easy to wrap existing JavaScript/CSS components into Smalltalk classes. Here is a small tip:


  • implement a subclass of WAFileLibrary (like MyComponentFileLibrary)
  • go to http://localhost:port/seaside/config and select "Configure" on the files entry
  • select "Configure" on your new MyComponentFileLibrary class and upload files

As you will notice Seaside automatically converts the images, scripts or other resources into methods on your WAFileLibrary subclass.
You can then access the resource in your code using the "MyComponentFileLibrary / resourceMethod".

If you want to add the script to the html output overwrite the #updateRoot: message in your WAComponent subclass.

You can grab the code for the dock menu demo directly from here or browse the SeasideExamples project. It's actually in Squeak but the two classes could easily be ported to other Seaside platforms like VisualWorks. I also uploaded a demo to integrate the virtual earth control (IE only) into a seaside application.

The SeasideExamples project was initiated by Phillipe and is open for read/write, feel free to upload your examples.

Interview on the Seaside

Avi was interviewed for FLOSS weekly. Listen and download Seaside to change your web application development experience.

Interview on the Seaside

Avi was interviewed for FLOSS weekly. Listen and download Seaside to change your web application development experience.

Monday, November 19, 2007

J2EE webapps ...

J2EE is still painful - even with tools like WTP, new graphical JSP/JSF editors, wizards to create various beans and projects for OR mapping like Dali. Most of the time waiting for the application servers like Geronimo, OC4J or JBoss to restart or looking which Maven goal/configuration could help you building your application.

Glad that I'm not alone with this experience. But there is help. I think Mr. Lorenzen should have a look at Seaside.

No need to restart the webserver if you build web applications in Smalltalk, no overcomplicated XML configurable build tools and the freedom to care about solving the problem - not fixing buggy tools or browsing API descriptions.

Sunday, November 18, 2007

Innovative User Interfaces

Would be nice to have something like the BumpTo grouping on my desk.

There is also an interesting use of a TabletPC to play with physics.

Thursday, November 08, 2007

Dynamic code generation for images using Rhino and JavaScript

Chris Double describes an interesting way for dynamic code generation based on (Smalltalk like) images.

In his example he implemented an image class in Javascript and two simple assemblers (one for x86, one for ARM). He uses the Rhino JavaScript engine (provided in js.jar) to run the scripts and write the image to disk. He then uses a simple C program to call a (now native) function in the image.

Actually his generation step hard codes the image generation depending on the specific assembler. But it should be easy to create a more general bytecode like assembler for image generation which compiles to the selected architecture.

Really interesting to use JavaScript/Rhino for that...

If you want to play with his files you have to manually download them since the link to the TAR does not work:

js.jar
x86assembler.js
generate.js
image.js
armassembler.js
run.c

Just call Rhino using: java -jar js.jar generate.js to create the image.

Wednesday, October 31, 2007

Smalltalk in Nepal

The Open Learning Exchange Nepal has released a demo Squeak Smalltalk image. It's fascination who uses Squeak these days, so I'm glad the Smalltalk community continues to grow.

Here are some screenshots, click on the images to enlarge:





Friday, October 19, 2007

Monday, October 15, 2007

Seaside Builder

Hernán Morales points to a preview on the development of an interface builder for Seaside

The ideas of this package are based on WindowBuilder Pro. Right now they have support for most common web controls (TextField, Panel, RadioButton, TextArea, Label, Button, Anchor, CheckBoxGroup, RadioButtonGroup, ListBox, FieldSet).

Here is a screenshot (click on the image to enlarge):



He thinks the package would be available at the end of this year or first months of 2008. He also points to two preview videos:

http://smartware.com.ar/builder.avi
http://cs.hernanmorales.com.ar/SeasideBuilder.avi

Friday, October 05, 2007

Sun Labs Lively Kernel

Dan Ingalls announced on the squeak-dev mailing list that Sun Labs has published Lively Kernel.

Looks like they have implemented a small computing kernel for the browser in JavaScript and ported Squeaks Morphic on top of it.

Here is a first screenshot impression (click on image to enlarge):



Based on the tradition of Smalltalk and Squeak it also includes the IDE:



Would be interesting what could be possible if this is combined with the Seaside web framework on the server side.

Monday, July 30, 2007

Smalltalk YX on Pocket PC

Luca Bruno is currently porting his Smalltalk YX to PocketPC. Here is a screenshot of Syx running on the Pocket PC emulator:


Monday, July 16, 2007

Squeak on Java

In May 2006 I reported about a Squeak image running on Java VM. Looks like Pavel decompiled it and made the source code available. Decompilation of Java is easy - just use tools like JAD.

However - if you want to play with it, here is a pointer to the source code:
http://comtalk.net/public/pub/SqueakOnJava/SqueakOnJava.zip

Thursday, July 12, 2007

Squeak UI improvements

There is a discussion on the Squeak mailinglist about some simple ergonomic adjustments in the look and feel of the standard image. Gary Chambers reported about commercial work done in Squeak and an add-on package ready to release back into the community.

This package provides a nice UI for some standard (business application like) services, choosing colours, selecting a font etc.
It also provides a framework for creating "standard" morphs (checkboxes, drop-lists etc). His desktop looks like this (click one of the images to see more):

 

A few years back there we had something similar: the Zurgle Project by Jim Benson. It includes a theme for installing a Windows XP style interface:

    

I used Zurgle in my Developer Workspace project (which is now replaced by Damiens squeak-dev image, unfortunately with the standard Squeak look).



I think Squeak requires some more UI improvements and at least support for common widgets found on other platforms to build standard applications.
This would open the project to a broader audience and also allow to experiment with new GUI approaches. I was impressed by the Squeak UI work done back in the Exobox days:

    &nbps;

And I look forward for 3D user interfaces as in Croquet:

  

Sport for Squeak

Bruce posted a message that there is now also a Squeak port of "Sport" available at the sourceforge.net project site (contributed by Janko).

If you want to get the latest version for Squeak you can use the Squeaksource page:

http://www.squeaksource.com/SPort.html

Sport is a Smalltalk portability layer. Sport presents a consistent interface and implemented in a number of Smalltalk dialects. Smalltalk code written to the Sport interfaces can be run in any Smalltalk dialect without alteration.

Wednesday, July 11, 2007

New Seaside homepage

Philippe Marschall announced the new Seaside homepage.

The page itself runs on Seaside (2.8) and the Pier CMS and is hosted at
Seaside-Hosting.

Monday, July 02, 2007

Syx 0.1

Luca Bruno is currently implementing yet another Smalltalk version.
He just released the first version 0.1 of Smalltalk YX (Project Syx). It's running on Windows and Linux, is written in C with a simple garbage collector.

You can download the executable as well as the source from http://code.google.com/p/syx/

Thursday, June 14, 2007

Swing Bugs

Yet another stupid Java bug in the Swing UI library. But the best is that one has to wait until Java 7 to get it fixed, no backport to version 6.

In Smalltalk fixing bugs in old versions has never been a problem: anything is open and changeable. If the vendor doesn fix it you are able to modify the code yourself. This is what makes customers and developers happy ...

Monday, June 11, 2007

Swazoo for Squeak

Janko Mivšek announced the Swazoo web server 2.0 beta release for Squeak.

Swazoo (Smalltalk Web Application Zoo) is an open source, vendor agnostic, dialect neutral Smalltalk HTTP server with resource and web request resolution framework, a fruit of a first Camp Smalltalk 2000 in San Diego.

Tuesday, June 05, 2007