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 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

Sunday, September 19, 2010

Help System for Pharo/Squeak

Some months ago I wrote a help system for Pharo and Squeak
to provide an easy way to browse available documentation
for the open source Smalltalk systems.

You can use it to display available API documentation
(extracted from class/method comments) and to provide custom
documentation in form of simple written text books.
These informations are extracted from the image by two
predefined help builder classes that convert the help contents
to instances of "HelpTopic".
These HelpTopics can be nested (book structure) and displayed
in a HelpBrowser. Since help text is extracted/stored in
classes and methods you can use the usual tools to maintain
and package help contents together with your code.

The design is simple but nonetheless powerfull since by
allowing you to integrate own custom help builder classes
you can easily integrate documentation extracted from any
source available to you.

It was accepted by the community and integrated in both
standard images (Pharo 1.1/Squeak 4.1). Thanks guys!

Laurent now created a new screencast to show you how to use

Starting from now, no excuses not to write documentation ;)

It is still ASCII based but I have plans to integrate other media
types (especially HTML) in the near future...

Wednesday, September 15, 2010

Frankfurt Smalltalk User Group Meeting

The next Smalltalk User Group Meeting for developers around Frankfurt area will take place on 21th of September 2010, 6:30pm at the following addresss:
ITS-People GmbH, Lyoner Strasse 44-48 in Fankfurt-Niederrad

Alan Knight will talk about GLORP.

Tuesday, September 14, 2010

Pharo CI Server

Pharo now has an official continuous integration server (using Hudson) ready to build images. It is currently empty but will soon test the official pharo core and pharo (pharo-dev) releases.

Thursday, September 09, 2010

Tuesday, September 07, 2010

Iliad 0.9

The next release of Iliad 0.9 is out. Currently for GNU Smalltalk, a Pharo is in preparation. Read more.

Friday, September 03, 2010

Thursday, September 02, 2010

S4A - Scratch for Arduino

Jordi Delgado announced Scratch For Arduino (S4A) - a modification of the well known Scratch software (which is written in Squeak Smalltalk) that supports simple programming of the Arduino open source hardware platform.