Monday, March 07, 2011

Tron inspired by Smalltalk?

Do you know Tron - the movie. Sure. But how is this related to Smalltalk?

The script was written by Bonnie MacBird and according to this page her script for Tron is loosely based on the work of her spouse Alan Kay (Dynabook, Smalltalk, Vivarium). Didnt know that until today...

Smalltalk on AVM2

Alchemy is a research project from Adobe that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2).

Interesting enough Alexandre Jasmin is working compiling the Squeak VM with Adobe Alchemy - this would allow Smalltalk to run on the Flash VM. Interesting ...

Here are some more notes on this.

Seaside 3.0.4

After Dale finished the metacello configuration the new "Seaside 3.0.4" is ready now.

SqueakDBX news

SqueakDBX is a nice interface for accessing relation databases from Smalltalk. It is now once again supported by ESUG. Next steps will be an updated name (since it also works for other Squeak forks like Pharo) and an updated Glorp version (OO to RDBMS mapping layer).

Panu Suominen now also announced a project for simple object pooling that you can use to pool database connections for SqueakDBX.

Cuis 3.1 is available

Cuis 3.1. is available from Juan. It is faster regarding UI performance and has support for MCZ files (Monticello).

Juan also made a small 2MB image available that is based on Cuis 3.1.

SIXX updated

SIXX (Smalltalk Instance eXchange in XML) was updated to work on Pharo 1.2 and Squeak 4.2. SIXX allows you to exchange nets of Smalltalk objects between various Smalltalks.

Sunday, March 06, 2011

Birth of a Smalltalk image

A Smalltalk image is a file where all the objects are persisted (similar to an OO-database). You can at any point in time save the state of your object world to continue later - for instance continue debugging a problem the next day. The image concept is often confusing for people who are used to building a program by compiling source files to a binary.

An image is typically maintained over years - and it is possible that some of the objects within a smalltalk image live there since Smalltalk-80.

An image can grow in size over time and sometimes one starts to load code/objects into a smaller one to create a new clean image file for daily work.

At Pharo-Project we currently have a PharoCore image that is cleaned up day by day and that is used to build the Pharo-dev ("Pharo") Smalltalk distribution. Pavel also worked on a much smaller kernel (Pharo Kernel project) by throwing out more classes. I already reported about his work.

However - all these were built by stripping an existing image.

Benjamin (with the help of Igor) now created a new Smalltalk kernel ("Hazel") based on Pharo. The new born weight 2.2Mb and includes 230 classes. It is just beeping to prove that the image is living. Read about it here. Congratulations to the new born ...

Combined with more VM support in the future this will allow for small kernel images that provide textual interactivity (replace your bash with Smalltalk scripts, ...) or small webserver images, etc.

Due to the reduced size these images have less tool support (no IDE as you will find in any typical Smalltalk image) - so it will become important to reactivate the InterpreterSimulator project. With this small tool you can run a Smalltalk image within a Smalltalk image and trace the processing. Pavel already started to work on this. Interesting ...

Wednesday, February 16, 2011

German Smalltalk Podcast

There is a new german Smalltalk podcast online:

http://smalltalkinspect.podspot.de

Joachim, Marten and Sebastian talk about Smalltalk versions and events.

Best Creative Hack Of The Year

The Squeak VM had problems on Linux caused by using UUID's. It was not a Smalltalk or VM problem - but a bug that exists in some versions of libuuid on some Linux distributions. This bug was really annoying since from time to time someone complained about it (either on Squeak or Pharo lists).

This was now finally fixed by Levente Uzoni and he is now honored with the "Best Creative Hack Of The Year" award by the vm-developers. Thanks Levente!

Tuesday, February 15, 2011

CloudforkSSO – OpenID and OAuth support for Smalltalk With the Cloudfork

With the CloudforkSSO library you can let the users of your Seaside web application login using their Google or Yahoo accounts. Cool!

Saturday, February 12, 2011

Saturday, February 05, 2011

JNIPort 2.0 for VisualWorks, Pharo and Squeak

JNIPort is a Smalltalk library which allows Java code to be invoked from
Smalltalk. It acts as a bridge between the world of Smalltalk objects and a
Java Virtual Machine (JVM) where Java code is executing.

Good news for the version 2.0: JNIPort can now be used in Pharo and Squeak.
Read more.

Thursday, January 27, 2011

Nice shortcut

pharo.st

Seaside at FOSSDEM

Stephan Eggermont and Willem van den Ende will demo Seaside at the FOSDEM meeting in Brussels, Belgium to free and Open Source developers. Read more here and the official site.

Seaside AJP Adaptor updated

Phillipe updated the AJP adaptor for Seaside. So if you already run Apache in front of your Seaside image feel free to update.

Tuesday, January 25, 2011

Monday, January 24, 2011

Saturday, January 22, 2011

Friday, January 21, 2011

Smalltalk and table-based hand gesture tracker

Nikolay plays with objects in Croquet island by using a table-based hand gesture tracker. Done in Smalltalk (what else). Time to buy a Multi-touch table and throw the PC keyboard away ;)

Some more automated Seaside testing

Tony has posted some more infos on how he tests his Seaside app using
Soup and ZinkHTTPComponents.


"I found that if I write the tests at the same time as I code the forms, this all goes pretty fast. The advantage is that instead of using the browser for minutes to manually test the few things that I think I might have affected, I can run a whole regression suite in a few seconds."


Yes, Smalltalk makes this possible and the interesting part is that you can even do this in an XPStyle (write the test first and then create the #renderXX: methods for the seaside components).

CampSmalltalk wiki

Instantiantions has set up a new CampSmalltalk wiki. Joachim knows more.

The old wiki is not available anymore (since around 2007), but fortunately there is a way back machine archive.

So one can even find the first CampSmalltalk pictures from 2000 in San Diego (my first US visit)

Thursday, January 20, 2011

JUnit removed from NetBeans?

Looks like Oracles lawyers check the license of NetBeans code. It may be possible that JUnit is removed from the standard Netbeans installation if it doesnt change its license.

Another crazy story of lawyers and software.

Kent Beck already responded and a former Sun employee suggested to keep the current license model to "keep Oracle's aggressiveness in check". Interesting times ...

Wednesday, January 19, 2011

Kinect and EToys

Beside Scratch there is now also an interface to Kinect for Etoys in Squeak:

http://tecnodacta.com.ar/gira

Cool!

Pharo 1.3 started

Pharo 1.2 (on top of the already read 1.2 core) is nearly finished. Time to already start a 1.3 core.

Wednesday, January 12, 2011

Xtreams up to date

Martin provides an up to date port of Xtreams for Pharo/Squeak. It now matches the docs and VW version better.

Tuesday, January 11, 2011

Virtual environment creation for Gemstone/Seaside

Vagrant is a tool for building and distributing virtualized development environments. It helps you automate virtual machine creation using Oracle’s VirtualBox (which I use to manage my virtual computers)

There is now a new tutorial from John Thornton available that will setup a Vagrant VM and install GemStone and SeaSide 3.0 on it. Read more.

Nice!

Monday, January 10, 2011

Connecting Scratch with Kinect

Kinect is a great add-on for the XBox 360. New hardware to connect to your Smalltalk system ...

Stephen Howell shows how he connects Kinect to the Scratch application (which is written in Squeak Smalltalk):

- video
- blog

Wednesday, January 05, 2011

Pharo and Amazon S3

Sven announced an Amazon AWS S3 Client written in Pharo Smalltalk. Read more here.

Custom Windows styles in CLFramework for Pharo

Gerard (aka nullPointer) now finally I implemented the posibility of create a custom windows in CLFramework (a UI builder framework for Pharo)


Cool!

Monday, January 03, 2011

Hotswap

Year 2011 B.C. and Java is still fighting with hotswap. Why not choose Smalltalk ;)

GetItMade.com - Seaside and JQuery widget boxes getting live

Nick Ager is one of the contributors to the JQueryWidgetBox project for Seaside. I created the widget box project back in October 2009 to bring more interactive web applications by wrapping jquery widgets in Smalltalk code and using them in seaside applications.

Looks like in 2010 Nick also developed a new site using Seaside and the widget box:

http://www.getitmade.com

getitmade was founded by Rob Dobson and Nick Ager to satiate their frustration at the difficulty of getting stuff made.

Nice to see the stuff actually in production use! Really cool.

Seaside in the cloud - a free EC2 micro instance

Amazon has a new offer of a free micro instance for a year. Nice.

Nick provides a video on how to deploy your Seaside application for free with an EC2 micro instance and Gemstone. Here are the detailed instructions.

Sunday, January 02, 2011

Smalltalk and Music

The Cyclades project, a project led by a team of researchers and composers from the Geneva University of Music (Hes-So) in partnership with Pharo's developers.

The purpose of their research is to conceive and create ways of representing several different elements of the structure or texture of music by using any kind of rendering computers can provide. Code and programs will be implemented in Pharo. Nice!

They also provide a one click image.

Thursday, December 30, 2010

New Cog VMs

Eliot provides the next round of Cog virtual machines.

Tropo - Calling Smalltalk

You look for a way that users can interact with your smalltalk application using their telephones or SMS messages. Then check out the Tropo project (written by Paul DeBruicker) from which is a Pharo interface to Tropo.com

Tuesday, December 28, 2010

Bootstrapping Squeak

In Smalltalk you typically work in an image where all the objects live and can be changed. So an image is an object memory snapshot that is maintained over time and that includes new and old objects (some of them may date back to ST-80 times).

Yoshiki Ohshima was playing with John's MicroSqueak and created a bootstrap Compiler - a first step to (re)create a Squeak image from simple "text files".

More about it here and in the README.

Wednesday, December 22, 2010

Seaside remote Server

Dmitri Zagidulin will describe a remote server setup based on Ubuntu, Pharo and Seaside. Lets see how this compares to my own server setups using the same technologies. Will follow his blog and this post is a reminder.

Saturday, December 18, 2010

Thursday, December 16, 2010

Seaside - Why Should You Care?

Julians talk from OSDC.fr 2010 on "Seaside - Why Should You Care?" is online. It starts in french but then he switches to english.

Tuesday, December 14, 2010

Tuesday, December 07, 2010

Monday, December 06, 2010

Pharo and ODBC

You often have to access existing databases when you develop an application. One way is to use ODBC. I created a small small screencast to show you how:

http://www.pharocasts.com/2010/12/access-database-through-odbc.html

It uses SQLite3 (a tiny database implemented in a shared library) as example - but you can access any ODBC compatible database (Oracle, DB2, MySQL, MSSQL, ...) if you use the appropriate database driver.

Its my first contribution to Pharocasts and I hope to do more if time permits. Thanks to Laurent for all the support and postprocessing of the recorded video.

Sunday, November 28, 2010

JQuery widget box project

You ask why I started the jQuery widget box project for Seaside. Just read this mail conversation ;)

Feel free to help wrapping more interesting widgets to enhance your seaside app.

Shrinking tool for app deployment in Pharo

Gerard (known as "nullPointer" and author of the Pharo UI Buidler) made a video available on a shrink tool for Pharo. Nice!

It's part of his CLFramwork (which is available in an open source version as UIBuilder).

Friday, November 26, 2010

Microsoft Kinect sensor and Smalltalk

Nikolay Suslov has the Microsoft Kinect sensor connected to his Krestianstvo SDK (which is based on Squeak/Croquet. Read more.

This opens a whole new space of applications ... and it is interesting to see whats already possible these days.

Thursday, November 25, 2010

Reading EXIF from pictures

Alexander Lazarević announced a new project to read Exchangeable image file format informations. This allows you to read EXIF information like the image description, camera model, ... from TIFF or JPEG images.

Code with MIT license is on SqueakSource.

VW UI

Found a screenshot of an app that is built using VisualWorks Smalltalk. Why? Look at the icon and the tabs ...

FSUG Meeting

... about "GLASS ~ GemStone - Linux - Apache - Seaside - Smalltalk" with Norbert Hartl today.

Wednesday, November 24, 2010

Scripting with Pharo Smalltalk

The "Coral" project (formerly known as "Saphir") is a way to use Pharo Smalltalk for scripting on the shell.

The packages got updated with more support for displaying in a Unix console. Nice!

Tuesday, November 23, 2010

Seaside master scripts

Just a short reminder for myself: the master scripts for the Seaside 3.0 image and others can be found here.

Wednesday, November 17, 2010

WebTester ported to Gemstone

The Seaside WebTester (a project that is able to test web applications using Selenium) is now also available for Gemstone. Read more here.

Tuesday, November 16, 2010

Monday, November 15, 2010

ThinkCode TV also provides videos on Smalltalk

Beside Laurents Pharocasts and the "Smalltalk 4 You" series from James (both free) there is now another site (ThinkCode TV) providing introduction videos on Smalltalk.

Davide Varvello (creator of the site) provides this as a commercial offer, but as he notes you can get them for free if you follow his twitter account.

Tuesday, November 09, 2010

Measure memory consumption

There is a project called Spy on Squeaksource including a profiler
to keep track of memory consumption for Pharo/Squeak.

Alexandre has more infos on this including a paper explaining the idea.

Sunday, November 07, 2010

The next milestone reached!

Pavel was able to load the the rest of PharoCore packages into the PharoKernel image. Yet another step regarding the modularization of Pharo. In the end the goal is to be able to build the current Pharo image on top of the (headless) Pharo kernel image.

Simple morphic

There is a redesign of Morphic called "SimpleMorphic" available. More details here.

Wednesday, November 03, 2010

More RUT-K infos

Interesting ... I've found a paper on RUT-K, a train scheduling system written in Smalltalk which I helped to develop as a Smalltalk consultant (I already wrote about it here). It is used by german railway for schedule planning.

The paper is in german and contains two screenshots of the application (page 6 and 7).

The web contains even more info like

RoarVM - Pharo and Squeak on multicore

How cool is that, IBM made the RoarVM available as OpenSource on Github:

"RoarVM, formerly known as the Renaissance Virtual Machine (RVM) is developed as part of a IBM Research project to investigate programming paradigms and languages for manycore systems of the future. Specifically, this VM is meant to support manycore systems with more than 1000 cores in the future.

The RVM was open sourced by IBM Research under the Eclipse Public License. Please see the open source announcement for further information.

Today, the RoarVM supports the parallel execution of Smalltalk programs on x86 compatible multicore systems and Tilera TILE64-based manycore systems. It is tested with standard Squeak 4.1 closure-enabled images, and with a stripped down version of a MVC-based Squeak 3.9 image."


It is compatible with Squeak 4.1 and Pharo 1.2, has full closure support and was
tested with 8 cores, 16 hyperthreads on Intel systems/tested with 56 cores on Tilera TILE64/TILEPro64 processors.

Tuesday, November 02, 2010

Accessing Twitter from Pharo

It's easy to access and display Twitter messages using the Pharo Smalltalk system with the JSON package and my help system implementation.

Still I dont know how to get the correct channel hash for the Pharo project...

Comments appreciated!

Long bug fixing

Funny ... it took five years to fix this issue in hibernate.

Using ODBC in Pharo

Want to use ODBC to access a database in Pharo or Squeak? Thats easy since there is a package originally developed by Diego Gomez Deck and meanwhile updated in Squeaksource.

Use my metacello config script to load ODBC support and start with ODBCConnection class.

For further help you can consult the (outdated) documentation.

Maybe Laurent could do a pharocast on it.

OB-Web - JavaScript/AJAX/Smalltalk server example

Anything goes web ... even IDE's like Eclipse (see Eclipse e4).

"Smalltalk labs" has implemented an enhanced web based code browser for the Seaside web framework for Smalltalk. Compared to the standard web based browser tool that comes with the Seaside web framework the one from Smalltalk labs uses AJAX to navigate through the browser which means it feels more like an application than a website.

Coding directly in the webbrowser is still cumbersome - so I prefer the Smalltalk based browser installed in the image and only use the web tools when I have to check an image remotely.

However ... since browsing Smalltalk directly in the webbrowser is easy to do Lukas today updated the packages for "OB-Web" to use OmniBrowser (the Smalltalk browser used in Pharo) to be accessible from a webbrowser too.

Just download Pharo 1.1. and follow the simple instructions to run it and see yourself.

Browsing the code you will find out that it is a nice example how to use the Comanche webserver (KomHttpServer) to write own web based services. It's also a nice example for AJAX communication between client side JavaScript and server side Smalltalk code using JSON.

Some hints for checking out the code:

  • "OBKomHttpService startOn: 9090" starts the app on the given port so you can navigate to http://localhost:9090
  • OBKomHttpService also adds logic for startup/shutdown at image startup/shutdown
  • in the superclass OBHttpService there is (depending on the web path) a launcher created (see OBWebLauncher>>contents for the generated HTML page)
  • the page uses http://localhost:9090/library/link.js and http://localhost:9090//library/launcher.js where the first one is responsible for the XMLHttpRequest (AJAX)
  • both scripts are served by Smalltalk as well (see OBLinkFile and OBLauncherFile)
  • the AJAX requests are handled in OBHttpService>>processAjax:for:
  • subclasses of OBInteractionRequest handle requests like menues, etc.

Really cool example for JavaScript/Smalltalk combination.

Pharo Kernel and Small(talk) webserver

Pavel continues with his work on a small Pharo Kernel.

The latest release not only contains a headless 2.2 MB image but also a small 3MB image with KomHttpServer. See yourself.

Download the image, start "PharoKernel-KomHttpServer-1.2-12226.image" with your Pharo virtual machine and point your browser to

     http://localhost:8000/

to get a simple HelloWorld response.

3MB for a tiny Pharo Smalltalk based web server - not bad!

Work on Opal continues

The work on Opal (a new compiler for Pharo) continues.
If you want to get more details on Opal read this summary from Jorge. You can also grab an image here.

Thursday, October 28, 2010

Wednesday, October 20, 2010

Smalltalk Solutions Call for Proposals

The STIC (Smalltalk Industrial Counsil) has opened a "Call for Proposals" for Smalltalk Solutions Las Vegas 2011. Read more here.

Redline Smalltalk ping

Some more activities around Redline Smalltalk. There is a new webpage including code, a new blog and twitter mentions an Eclipse plugin.

Monday, October 18, 2010

Independent Misinterpretations

James Robertson is not working for Cincom anymore. First I was shocked when I heard about it since I know that he was working there evangelizing Smalltalk for around 17 years. And it was around 1994 when I started with Smalltalk at university using the VisualWorks product...

James has a unique style of bringing a product closer to the customers using all the new medias (blogs, podcasts, ...) and he has done a very good job for Cincom and the overall Smalltalk community by providing news and informations. It's good to see that he will continue to be with Smalltalk since he now launched a new podcast - "Independent Misinterpretations". Read more.

Wednesday, October 06, 2010

Image sizes and MicroSqueak

Reduce the size of the image by shrinking or write out a new (reduced) image file. Either way - if size matters and you feel like you have to dig into bootstrapping an own Smalltalk system based on Squeak you should have a look at this post from Eliot.
There you will find code that will produces a headless 57k image with a few basic classes as a proof of concept. Interesting!

Reminds me on the minimal image experiment from the past that was able to compute 3+4 which was only a few kilobytes in size. Nobody was able to see the result since it was instantly garbage collected ;)

Tuesday, October 05, 2010

Scratch for Arduino - an interview

An interview with the developers of Scratch for the Arduino open source hardware platform. Scratch is implemented in Smalltalk.

To quote:

Then was when I discovered Scratch, once the hard part of learning Smalltalk. A hard but interesting part because I've made my career in programming but not as much as Marina, and still I realized that is something different, unlike any other object oriented languages and completely dynamic. It's almost like learning to program again because it has a different syntax, a different philosophy and is something new.

ESUG 2010 Videos available

The videos from ESUG 2010 (Barcelona, Spain) are now available:

Sunday, October 03, 2010

Morphle and Siliconsqueak

There is a new startup company providing Seaside hosting and SiliconSqueak - a processor chip that will run almost all existing Squeak images without modification. It is a hardware "virtual machine".

Thursday, September 30, 2010

Thursday, September 23, 2010

PDF Generation using Smalltalk

Marten Feldtmann is working on pdf creation using libHaru, he published a first, not ready code for a wrapper around libHaru.

But I already wrapped this small library for Pharo/Squeak two years ago with a more natural Smalltalk interface. So one can write:


| document page image |
document := PDFDocument new.
page := document addPage.
image := document loadPNGImage: 'Image.png'.
page drawImage: image rectangle: (Rectangle origin: 72@72 extent: 144@144).
document saveToFile: 'documentWithImage.pdf'


My library is also mentioned as one of the options for generating PDF on the seaside PDF page.

I made the code available at http://www.squeaksource.com/HPDF.html and licensed it with MIT. Would be good if Marten will have a look and maybe port my code to VAST before doing any unnecessary work on his side...

Independent from that I would still like to write/see a PDF framework written in plain Smalltalk (similar to Java's iText).

The more I think about it the more I like the idea:

  • Solutions like using external libraries or frameworks (LibHaru, ApacheFOP, ...) always have limits
  • If any work would be done in Smalltalk one would have full control
  • PDF is a nice document format that is usable on nearly any platform
  • PDF is now more than just text and images - you can have interactive PDF forms, annotations, ...
  • There is no unify way for reporting and printing in current Smalltalks
  • Yes, there is a rough plain Smalltalk PDF Generator from Bruce Badger but the license is AFAIK restricted (I would prefer MIT)
  • it would make up a nice GSOC/CampSmalltalk/Community project
  • Smalltalk streams are much easier to use than Java streams
  • the code would be nicely testable using unit tests


However - time is limited. But if anyone is interested feel free to contact me...

BTW: did you know that Bruno Lowagie (author of iText) changed the license of his Java PDF library to block his government.

JQueryWidgetBox 1.5 for Seaside 3.0

The JQueryWidgetBox project is growing and we now have 32 interesting JQuery widgets wrapped for Seaside. Feel free to use them in your seaside app to enhance the user experience.

After some fixes and updates to align with the new Seaside 3.0 I just made version 1.5. of JQueryWidgetBox available as a Metacello configuration. Read the announcement.

InfoVis for Seaside

Holger announced some wrapper packages for the InfoVis Toolkit to make it usable in Seaside.

Next Cologne Smalltalk Meetup

Cologne Smalltalk Meetup will be happening next Thursday at the usual time and location. Read more.

Tuesday, September 21, 2010

Monday, September 20, 2010

Avocado

Hey Avocado is released: it provides a Self like environment coded in JavaScript and is based on the work done in the Lively Kernel. Read more.