Monday, November 27, 2006

A new experimental Smalltalk version

Hello Smalltalkers,
i've been experimenting a Smalltalk VM made in Python these days. Yes, it works fine but it's extremely slow of course.
It's just an experiment; i will publish the code soon tough.

Right now, i'm creating another simple Smalltalk implementation written in C on top of Glib.
It's inspired by PDST (lexer and parser) and GNU Smalltalk (scripting and Smalltalk code).
The VM is really weird, it doesn't completely follow the Blue Book, but it works fine.

Currently it's just an experiment of mine to gain a better knowledge of Smalltalk and its internals, but i would hope to give a future to this project.

Syx (Smalltalk YX) aims to have a very simple and flexible code, to be multiplatform and possibly bug-free.

Saturday, September 30, 2006

GNU Smalltalk matters

i've developed several personal applications on Smalltalk Squeak, the latest project is SqueakGtk.
Smalltalk Squeak is, in my opinion, the most important open source implementation of Smalltalk, therefore it got many libraries and community support.
However, it's still unused and unspported: for example it's not included into Linux distributions. Personally because:
  1. Of its history and license problems
  2. It's an heavy application, more than 20mb for VM and image, without integration with the desktop due to Morphic graphics and the console, hence it's not a good choice for scripting
  3. Users who come from Java, Python, Ruby don't feel good to work into an isolated world, such as Morphic, own version control system and, as said before, no integration with the existing tools
Smalltalk stayed in its own world because there's no friendly and supported implementation of it.
GNU Smalltalk, on the other hand, gained many features that could bring it to be the most important and used Smalltalk version... here's why:
  1. Being GNU software, it can be included into Linux distributions as well
  2. It's pretty small but features full, the tarball is 4mb (plus image) and the image normally is about 5mb
  3. It has a console interpreter, so it can be used as well as scripting language, being more friendly for new comers. This allows programmers to choice their own development environment, both external and builtin (BLOX).
Currently GNU Smalltalk, got the most useful libraries, such as Net stuff, Tk, Gtk, XML, Regex, and more, with a good interface from C to Smalltalk and viceversa.

I think helping this project grow (the project is active and never died) means giving Smalltalk a chance to get into developers world just like other languages, without being isolated like Smalltalk Squeak and other commercial versions.


Saturday, September 23, 2006

Health problems

these days i've been a lot inactive since i'm going to have serious problems against my right eye. It has a "Ulcera corneale" (in Italian) which could get to or bad view either no view for that eye.

So, i hope i can restart my activities soon and, really, get my eye back as good as before.

Bye everyone and W Smalltalk.

Friday, September 08, 2006

Linux From Scratch on x86-64 platform

Hello guys,
these days i've been a lot inactive, especially in the Squeak community, which is working tough for the final 3.9 release... sounds good :)

For my 18th birthday, my family bought an amd64 then i'm trying to get out a LFS, starting from a REALLY old gentoo stage3 from which i borrowed useful bootscripts ;).
Actually it's pretty usable, with Xfce4 running on. I hope i'll get an Ethernet modem working soon and setup everything to restart my Gtk+ and Squeak related "activities".


Thursday, August 24, 2006

SqueakGtk latest features

With the latest MC version 68, SqueakGtk got lots of improvements:
  • GTK+ 2.10 enhancements (Printing, StatusIcon, Assistant and RecentFiles)
  • Strong callback handling and a refactored signal handling
  • Object finalization support with GObject weak references
  • New wrappers around GType/GValue/GParamSpec allowed to improve the GtkInspector
  • As usual, various fixes
A new screenshot is available at
Please help me... if anyone is interested contact me: lethalman88 at gmail dot com.

Bye ;)

Sunday, August 20, 2006

Catching garbage collecting

I see many times Squeakers ask questions about finalizing objects when the garbage collector is called.

Squeak startups a finalizing process inside WeakArray which finalize values of its Weak dependents (for example WeakRegistry objects).

First of all you need to subclass Object, call the new class GCTest.
Add a #finalize method to it:
    Transcript show: 'finalizing'

Now open a Transcript and a Workspace and doIt this:
gcTest _ GCTest new.
WeakRegistry default add: gcTest

Now close the Workspace and look at the Transcript saying 'finalizing'.

Usually, you won't register your objects into the default WeakRegistry, you can also create your own WeakRegistry.
Take care the WeakRegistry is also garbage collected, so you need to place it as a global variable of your base class for instance: look at Socket or StandardFileStream as valid examples.

NB: when creating a new WeakRegistry, it's automatically added as a Weak dependent in WeakArray

Wednesday, August 16, 2006

GNOME from scratch on Slackware 10.2 and Kernel 2.4

Recently i wanted to try Gnome 2.14 on my Slackware box, then i tried to install Dropline Gnome. The problem was that i need Gtk 2.10 for my SqueakGtk wrapper, then i chose to install Gnome from sources.
I didn't have any problem, everything worked correctly and i had my Gnome running as well.

However, there was a problem, i had to upgrade to libgnomeui 2.15 since it's more compatible with Gtk 2.10. After that, system tools 2.15 were updated for Slackware 10.2 and the "war" begun :) New dependencies have been emerged, like dbus and liboobs... ok i installed them but finally i got another dependency: HAL.

So... Gnome 2.15 needs Kernel 2.6... i can't use the Kernel 2.6 then i switched back to Kde. Simple :) i dislike this kind of dependencies really, it should be a bit more flexible and also i don't see any need to keep dbus at all.

I hope this won't happen for Gtk+ too, bye Gnome!

Wednesday, August 09, 2006

SqueakGtk, a bunch of enhancements

This screenshot at shows the new enhancements made in the latest 10 MC versions. New features include:
  • GdkPixbuf enhancements
  • GtkIconView creation
  • GtkClipboard creation
  • Basic Drag and Drop support
  • Text widget improvements
  • Callback functions support
  • Several important fixes
  • and so on...
Stay tuned with SqueakGtk, please contact me at lethalman88 at gmail dot com for any suggestion or critique.

Bye and thanks to everyone who helped me till now, especially the squeak-dev ML and #squeak channel :)

Wednesday, August 02, 2006

SqueakGtk halos

You all know that Morphic has halos: those small buttons around a Morph. SqueakGtk is going to have this kind of feature, currently really basic; it just work for inspecting a widget.
First run this code into a Workspace:
Gtk default useHalos: true

This will cache all created GtkWidget objects. Now you can open a simple window with widgets inside of it and run this code:
Gtk default enterHalos

Now do Ctrl + left mouse button click and an inspector (ore more than one) should open on the clicked widget.

When you don't need halos anymore just type:
Gtk default leaveHalos

In the next version, probably, this feature can be improved. Right now it's just a funny test.

Also the inspector is not complete, i just added a few property specs. It really needs to be improved a lot and also to be more automated instead of creating a specification for each GObject.

Left old WordPress blog

I switched to because the previous blog has been unmantained by me.
Also i hope to write something interesting here... bye ;)