Planet Squeak
July 03, 2009
The Weekly Squeak
SOB lays an egg – what will emerge?

Those of you who read the squeak-dev mailing list will know that the list is currently going through the annual frenzy of discussion about the nature and direction of Squeak, including much to-and-fro over such topics as: the original vision of the founders of Squeak; the tangled relationship between Etoys and the rest of the Squeak environment and community; the reasons behind the Pharo project and how much its goals really differ from those of Squeak; whether children should be locked in the nursery or allowed to roam freely into every room of the house; and much more. If you have time (and some light body armour), it’s well worth reading through the hundreds of emails that have been written which explore and interpret much of the history and philosophy of Squeak.
This discussion has motivated the Squeak Oversight Board to look at one topic that caused much debate: how to manage the development of Squeak. Driven by a concern that there are many hurdles that discourage wide-spread participation in the contribution process, the Board have put forward a new community development model that they hope will “enable the community at large to improve Squeak, the core of the system and its supporting libraries”.
Based on processes that have been shown to work in commercial settings, the Board’s model includes the use of Monticello as the primary source code management system, free access for the developers to the main repositories (trunk, tests, and inbox) and an incremental update process for both developers and users of Squeak.
Obviously, such a change has sparked off its own debate, and important questions are being hammered out on the squeak dev mailing list. If you care about the health of the Squeak environment, its future direction, and the future support for your own favourite applications, this is a key moment for you to understand and contribute to the discussion which is continuing on the squeak-dev mailing list (see archives), on irc, and on the Board’s blog.

by Michael Davies at July 03, 2009 10:31 PM
Squeak Oversight Board
A New Community Development Model
In the board meeting today we had a nice discussion about how to move forward with a new community development model for Squeak. Here is an overview of the model and what will happen next:
The goals
The goal of this process is to get rid of as many hurdles as possible in the contribution process. We are trying to enable the community at large to improve Squeak, the core of the system and its supporting libraries.
To do this, we are adopting processes that have been shown to work in commercial settings: The use of Monticello as the primary source code management system, free access for the developers to the main repositories, an incremental update process for both developers and users of Squeak.
Repositories
We will be setting up the following Monticello repositories:
* http://source.squeak.org/trunk
This will be the main repository for ongoing development. New code will be committed here, the repository will be world-readable and writable for the core-dev group.
* http://source.squeak.org/tests
This is the main repository for unit tests. It will be world-readable AND world-writable. We encourage everyone to write more tests and commit them, improve the existing tests and bring in entirely new test suites.
* http://source.squeak.org/inbox
This repository is intended as dropbox. It’s usage will depend on what we make it out to be. The idea is to have it world-readable and world-writable, too.
License
In accordance with our goal of joining the Free Software Conservancy, all code submitted to the repositories must be licensed under the MIT license.
Developer access
The board will manage developer access to the repositories at source.squeak.org. In the next days we’ll send out a few “you are pre-approved” messages to people who have proven to be active developers in the past in order to invite them to become a core developer.
If you can’t wait and absolutely want to be in on the action you can register yourself at http://source.squeak.org/ and send message to the board asking for access but most of the regular contributors (you know who you are) will be invited anyway.
Rules of Engagement
If you have used Monticello in projects with more than two developers in the past you already know the drill. If not, here are some useful guidelines:
* Merge often. In particular when you pick up work and right before you intend to commit.
* Exercise caution. This is a running system and breaking it needlessly is generally frowned upon.
* Restrain yourself. Getting developer access doesn’t mean you are free to put in every pet extension you always wanted to have without discussion.
* If in doubt, ask. This is the corollary to the restrain yourself rule. You’re not under pressure to ship a product, so you have the time to send a note saying “hey, I’m planning to fix this old issue and it may have some side effect here or there. Anyone having a problem with that?”
>>> I’ll add a Squeak-dev exception here: Any response from any non-developer can be entirely ignored in this context.
* You break it, you fix it. If you change something you are generally expected to take care of the consequences, though there are some exceptions. If in doubt, ask
* Do good and talk about it. When you’re done with whatever it is you’ve been working on let people know about it. It can be as short as a note to Squeak-dev saying “hey, some of you might care that I’ve fixed the long standing bug with xyz. Update and enjoy”
I think that roughly covers it. Basically you will be working with a dozen (hopefully more) other developers on Squeak and we’ll all have to learn how to make this work successfully.
Updating
We are in the process of developing an update process that can work seamlessly with Monticello. An early experiment is described here. We are evaluating alternative approaches, in particular the use of Installer since there are some shortcomings when using Monticello Configurations.
Existing Work
It is important to note that we will be trying very hard not to lose any work that is being done for Squeak 3.11. We will start with the package set that was used in the 3.10 release, then we will issue package updates to cover the missing delta up until 3.10.2. Following which we will reissue any changes done for 3.11 into the repositories.

by andreasraab at July 03, 2009 08:34 AM
July 01, 2009
Squeak Oversight Board
Preliminary Agenda for 7/15/2009
First let me state that we are paying attention to your comments and we do appreciate them but it’s amazing how quickly one hour disappears and there is only so much that can be fit into a single meeting. Triage is required.
Development Model Progress
Relicensing Release Progress
I’m sure more will be added, feel free to offer your own suggestions.

by Ken Causey at July 01, 2009 10:45 PM
Meeting Report for 7/1/2009
Attendance was complete and timely this time around: Jecel Mattos de Assumpção Jr, Ken Causey, Bert Freudenberg, Craig Latta, Andreas Raab, Randal Schwartz, and Igor Stasenko.
We discussed the progress of the relicensing release. Currently Matthew Fulmer is gathering information in preparation to meet with a representative of the Software Freedom Consortium to plan the next steps toward the completion of the 4.0 relicensing release.
Members of the Squeak Oversight Board have been kindly asked again to appear on Industry Misinterpretations. Details are still being worked out but expect this episode sometime in September.
The primary topic was Andreas Raab’s proposed development model. Discussion of this can be found here and here. There was considerable discussion and even a little debate but ultimately the decision was to support Andreas’ proposal. Expect Andreas to announce this in more detail soon.
Our next meeting is scheduled for Wednesday, July 15th, 2009.

by Ken Causey at July 01, 2009 10:41 PM
Torsten Bergmann
PhidgetLab - connecting Smalltalk with the real world
If you want to access Phidgets from Smalltalk have a look at the PhidgetLab project from HPI. A Phidget is a sensor and actuator that can be connected to a PC via USB and is now easily programmable from within your Smalltalk image.

by Torsten (noreply@blogger.com) at July 01, 2009 07:36 PM
Göran Krampe
01 Jul 09
%7Cutmcsr%3Dhttp%3A%2F%2Fgoran%2Ekrampe%2Ese%2Fblog%2FSqueak%7Cutmcmd%3Drss%3B%2B)
July 01, 2009 06:54 AM
June 30, 2009
Göran Krampe
30 Jun 09
%7Cutmcsr%3Dhttp%3A%2F%2Fgoran%2Ekrampe%2Ese%2Fblog%2FSqueak%7Cutmcmd%3Drss%3B%2B)
June 30, 2009 10:01 PM
June 29, 2009
The Weekly Squeak
ESUG Innovation Technology Awards – Time is running out!
by Michael Davies at June 29, 2009 08:05 PM
Michael van der Gulik
Keyboard events
Mouse events in Subcanvas now mostly work. A canvas's target now receives mouse movement events, mouse button press and release events and canvas enter and exit events. Now, I've moved my attention to keyboard events.
There are three types of keyboard events in Squeak: Key Press, Character and Key Release. Key Press and Key Release should give only the description of which physical key on the keyboard has been pressed or released, including modifier keys (shift, CTRL, etc). Currently the Squeak VM uses the "Mac-Roman" encoding to encode which key was pressed or released, which is less than ideal and still differs per platform. The Character event contains a Unicode character. A single Unicode character may have required multiple key presses and even some UI interaction to be composed.
There are three types of hardware keyboard in the world; the US one (104 keys), the European one (105 keys) and the East Asian one (109 keys). These are very similar to each other and based on the PS/2 keyboard. Almost every keyboard in the world is based on one of these hardware prototypes with different printed letters on it.
I've also found that the USB specification (made by Microsoft) has reasonably elegant "scan-codes" that specify the actual keys pressed with no regard for which character is printed on that key. I believe these codes would provide for a much more elegant way of specifying which keys were pressed in the "press" and "release" events than the Mac-Roman keys currently provided by the Squeak VM. Unfortunately, any notion of the original USB scan codes have long been forgotten by the OS by the time the character arrives at the Squeak VM, so the VM or the image will need to map OS-specific event IDs to the equivalent USB scan codes. It is a bit of a roundabout way to do it, but the end result is an OS-independent manner of doing raw keyboard events. Perhaps SqueakNOS can strip away the layers of abstraction and pass USB scan-codes through directly? :-)
The end result is that an application using Subcanvas can either use the character events, or it can use the key press and key release events to roll its own "Input Method Editor". This gives a good level of initial functionality for most languages in the world by using the Unicode character input directly from the VM, as well as a future growth path for implementing new "Input Method Editors" (or games) using the raw key press and release events.
On another chain of thought, I'm considering making Pango and Freetype "libraries" available in SecureSqueak / UGP. If they're provided as a resource such that Subcanvas does not have any architectural dependencies on them, they can be implemented as a "deprecated on birth" resource that will provide necessary text rendering functionality until pure Smalltalk-based solutions can be written. At this stage, I'm a bit wary of just how complex the rendering of multilingual text can be.
by gulik (mikevdg@gmail.com) at June 29, 2009 01:00 AM
June 26, 2009
Darius Clarke
Computer Lab Instruction
I've tried to summarize my duties as a Computer Lab Instructor for an elementary school. I'll be developing the curriculum over the summer. Here's what I have so far:____________________Goals for Computer Lab InstructionAs digital computer systems grow more and more essential for daily communication in personal, professional, and academic endeavors, the students benefit tremendously from a
by Darius (noreply@blogger.com) at June 26, 2009 08:23 PM
Göran Krampe
June, 2009
%7Cutmcsr%3Dhttp%3A%2F%2Fgoran%2Ekrampe%2Ese%2Fblog%2FSqueak%7Cutmcmd%3Drss%3B%2B)
June 26, 2009 03:12 AM
June 23, 2009
Torsten Bergmann
Pharo MIT license clean
After months the pharo distribution of Squeak is now license clean. See the official announcement on the pharo mailing list. Great, thanks to all who helped.
by Torsten (noreply@blogger.com) at June 23, 2009 08:00 AM
June 21, 2009
Luca Bruno
The less consuming radio player ever
Hello,
multimedia always killed desktop performance, also audio with all such effect-based players out there. I've been using deezer for a long time, but sometimes I'm tired to see my desktop lagging.
I don't need that, I need random music from internet while I'm either programming or studying, and my computer has only 512mb ram and 2.4ghz amd64 (onLY??? yes nowadays it's a little amount).
Let's see what we can do using gst-launch:
while [ 1 ]; do wget -q -O - http://66.250.45.112:80/hard.ogg|gst-launch fdsrc fd=0 ! decodebin ! audioconvert ! alsasink; done
The URL above is a hard rock station :) The
while ensures re-connection. I think performances are great, 6% cpu and 2% ram.
But there's yet a bettere solution (see comments):
mplayer http://66.250.45.112:80/hard.ogg
by Luca Bruno aka Lethalman (lethalman88@gmail.com) at June 21, 2009 07:59 AM
June 20, 2009
Squeakland Blog
Etoys named Editor's Choice
We're very pleased to announce that Squeak Etoys has been named Editor's Choice by Children's Technology Review in their June 2009 issue!...
June 20, 2009 03:03 PM
June 19, 2009
Squeak Oversight Board
Meeting Agenda for 7/1/2009
Subject to updates, please offer suggestions–
3.11 Status
4.0/Relicensing Status
Squeak Swiki update or replacement
Teams
Anything more?

by Ken Causey at June 19, 2009 05:49 PM
Meeting Report for 6/17/2009
Once again we were all present for today’s meeting: Jecel Mattos de Assumpção Jr, Ken Causey, Bert Freudenberg, Craig Latta, Andreas Raab, Randal Schwartz, and Igor Stasenko.
We spent the bulk of the meeting talking about 3.11 status. We didn’t come to any significant conclusions but resolved to increase communication with the release team and compile as much information as possible about the current status of this project and where it is going next.
We also discussed the wiki (Have you read Garbage Collecting the Wiki yet?), what can be done about the ‘forking impulse’, the status of the work on a new Smalltalk standard, and the 4.0 relicense release; no concrete results on these ongoing projects yet.
We meeting again on July 1, 2009. Let us know what you think we should be discussing.

by Ken Causey at June 19, 2009 05:48 PM
Squeakland Blog
etoys sighting: SqueakyPic
Have a look at this really impressive video showing an Etoys interface to a microchip (PIC16F877A MCU) http://www.youtube.com/watch?v=1Qsh9vFIls4...
June 19, 2009 02:28 PM
Registration open for Squeakfest
Registration is now open for both Squeakfest USA 2009 (Los Angeles: August 10,11,12) and Squeakfest Brasil 2009 (Porto Alegre: July 23, 24, 25). Squeakfest USA registration costs $100, or $125 if payment is received after August 1st. Squeakfest Brasil registration is free. Please register as early as possible so that we may better plan the events. To register for Squeakfest USA, click here. To register for Squeakfest Brasil, click here. To find out more about Squeakfest, visit squeakfest.org. We hope to see you!...
June 19, 2009 02:17 PM
June 18, 2009
Randal Schwartz
Dan Ingalls interviewed on FLOSS Weekly
by Randal Schwartz at June 18, 2009 01:36 PM
Sneaking some Squeak Smalltalk into FLOSS Weekly
I keep mentioning Squeak Smalltalk as I'm chatting with Leo Laporte while taping my well received podcast FLOSS Weekly. It's actually quite fun. He keeps bringing it up as something he's learning, and I think it's giving a big visibility to Squeak and to Smalltalk in general. There's even talk of creating a special Learning Squeak series that would be shown on Leo's live webcast network. Check it out!
Read and post comments |
Send to a friend
by Randal Schwartz at June 18, 2009 01:36 PM
June 17, 2009
The Weekly Squeak
Back to the Future: Programming in Smalltalk

More exciting conference news for Smalltalk aficionados: James Foster has announced on his blog that this year’s OOPSLA conference will include several tutorials with a Smalltalk theme including his “Back to the Future: Programming in Smalltalk” in which he will look at the “new” ideas from Smalltalk that are still influencing newer programming languages. He will examine some of these ideas and present a number of tutorial exercises that explore some of Smalltalk’s fundamentally different approach to language design and object orientation, including the following aspects:
- All values are objects, even integers, booleans, and characters (no boxing/unboxing);
- Classes and methods are objects (supporting reflection);
- The language has only five reserved words;
- All control flow (looping and conditional branching) is done through message sends;
- Programming is done by sending messages to existing objects; and
- The base class library can be modified.
James works on Gemstone’s high performance product family based on Smalltalk, but intends the exercises to be relevant across different versions.
This year’s OOPSLA will be held in Orlando, Florida from 25 to 29 October, and will also be co-located with the Dynamic Languages Symposium, which will doubtless have lots to interest Smalltalkers.
On the other hand, if you’re looking for a European break this year, don’t forget that the 2009 International Smalltalk Conference, organised by ESUG, will be held in Brest, France, from 31 August to 4 September, and also has a great set of sessions lined up.

by Michael Davies at June 17, 2009 06:55 PM
June 13, 2009
Squeak Oversight Board
garbage collecting the Wiki
The wiki is a fantastic resource for the community. Any search involving “squeak” will certainly have a link to a wiki page among the top results. And when answering questions on IRC, I nearly always end up pointing out some wiki page as the source for additional information.
Unfortunately, a significant portion of the information available there is obsolete. It is very easy for less experienced Squeakers to waste a lot of their time following advice they found on some page without realizing that it no longer applied to any Squeak newer than 2.5! One way to solve this is for a team to scan the wiki looking for stuff like this and then updating the information. In practice this is simply too much work and is unlikely to happen in a larger scale than what has been done so far. An alternative, inspired on garbage collection algorithms like those implemented in the Squeak VM, is to start a new wiki and move only current information there. This might seem like even more work, but it can be done incrementally: any person searching for information and not finding it in the new wiki can copy it from the old one.
If access to the old wiki remains as it is now, nobody would have any incentive to copy information to the new one. The most radical solution would be to simply eliminate normal access to the old wiki – you would have to explicitly log on to it or something like that. This would quickly make it vanish from the search engines. At the other extreme, it would be simple to add a warning to all old wiki pages saying that the content is obsolete. That could be done with the “message of the day” mechanism (lately it has been broken and only showing one quote from me anyway). This is too easy to ignore, however. A slightly more complicated solution would be to patch the swiki code to show a warning that would be far harder to ignore. It might be interesting to include a link to the new wiki for any page which has content that has been moved there. One way to encourage moving content to the new wiki would be to disable editing of the old one (except for adding links to the new).
The goal is to eventually have a new wiki, possibly based on some more modern Squeak technology, that document the system as it is now. The best way to achieve this would be for the board to issue a request for proposals so that people interested could form a team to create the new wiki and patch the old one. This team would not be responsible for the content, except moving a few key pages themselves to get the process started. The details that I have mentioned above are only examples – the candidates would be free to suggest any solution they want as part of their proposals.
Personally, I am very interested in Squeak’s history and would not like to see the old information vanish entirely from the web. But I do agree that as things are now the noise is getting in the way of the signal and we need to cause a better first impression to people interested in Squeak and Squeak based projects.

by Jecel Assumpcao Jr at June 13, 2009 10:37 PM
June 09, 2009
The Weekly Squeak
Squeak Apps help push App Store over 50,000

Phil Schiller led the keynote presentation today at Apple’s Worldwide Developers’ Conference. One of the many causes for celebration he had was the phenomonal success of the iPhone App Store, which now has 50,000 applications available for download.
Although he was careful to be even-handed in giving credit to all iPhone developers for helping Apple achieve this success, he must have secretly been thanking John McIntosh, who is turning into a one-man app wave. Without John’s recent batch of new Squeak-based applications, Phil would have been left announcing the much less satisfactory figure of 49,99749,994 applications.
In case you missed it, John’s latest announcement was that his Fraction app is now available for calculations involving unlimited sized fractions and factorials, as it attempts to preserve numerical accuracy to an unprecedented degree. The new app joins the two apps based on his WikiServer that John already has on the App Store.
We look forward to seeing if the notoriously byzantine App Store approval process will be able to keep up with John’s flood of new applications.

by Michael Davies at June 09, 2009 08:13 AM
June 05, 2009
Squeak Oversight Board
Meeting Report for 6/3/2009
Everyone made it this time and so the meeting was attended by: Jecel Mattos de Assumpção Jr, Ken Causey, Bert Freudenberg, Craig Latta, Andreas Raab, Randal Schwartz, and Igor Stasenko.
We started out finalizing the mission statement which has finally been published allowing us to move on to other topics. Please read and comment.
We have received replies to the team survey we sent out some weeks back and we discussed this somewhat but haven’t had the time to properly digest the data or come to any conclusions yet. In time the teams page will receive a significant update hopefully clarifying how teams are formed and work.
We discussed the Release team and have asked them for an update on progress. The team leader, Matthew Fulmer, recently moved to a new state, started up at a new university, and started a new job; so I think we can all understand that he has been too busy to make much progress recently. Matthew is going to be setting aside time soon to work with the Software Freedom Conservancy to work out what further work is needed to produce an MIT/Apache licensed 4.0 release that is acceptable to the SFC as a requirement for our membership.
I think everyone can agree that the community Swiki has aged poorly and can be very confusing, particularly to newcomers to our community looking for clear information. We are discussing a plan to replace the Swiki with a new system. Some of the requirements for such a system would be a clear link between the current Swiki and the new system at least during the development of the new system and not losing the Google links to the existing Swiki pages. We need the community’s assistance with this and welcome suggestions. Do you have a plan for updating or replacing the Swiki with a better documentation system while not losing it’s existing strengths? Please let us know.
On a similar note one of our long range goals is to encourage the incorporation of ideas and code from our related communities such as Pharo, Etoys, and Croquet and of course many others. Also we want to examine the reasons that forks occur and consider what can be done to make it less necessary for developers to do so. We need your thoughts and ideas. Please give us your comments on this subject.
Our next meeting will take place on Wednesday, June 17th, 2009.

by Ken Causey at June 05, 2009 02:47 AM
June 04, 2009
Squeak Oversight Board
Mission Statement Published
by Ken Causey at June 04, 2009 05:11 PM
June 02, 2009
The Weekly Squeak
The Revenge of Smalltalk
Despite recent discussions over what killed Smalltalk, there continues to be lots of interest in the language and in Seaside in particular. Anyone based near London will be able to find out more about both topics at a talk dramatically titled “Seaside: The Revenge of Smalltalk“.
This “Geek Night” is going to cover how Smalltalk makes web development different and how Seaside is being put to use in the “Real World”. Participants will learn about real object-orientated programming rather than class-orientated programming.
The two presenters are Lukas Renggli, who will be talking about Squeak and the world of Open Source Smalltalk; and Michel Bany from Cincom who will be discussing how Seaside and Smalltalk has been used in companies like JP Morgan.
The talk is hosted by Thoughtworks‘ London office on Monday 6th July, 2009 from 7:00pm—10:00pm.

by Michael Davies at June 02, 2009 03:49 PM
May 29, 2009
Luca Bruno
Syx changes web and git hosting
Hello,
I'm officializing the change of web hosting and git hosting from googlecode to berlios:
For
several reasons, including
reliability, we switched both the website and git hosting to berlios. Also the purpose of this change is to rewrite the website backend using Syx.
The mailing list and the bug tracker are still hosted at
googlecode.
Some progress news in the while
We're working on a new memory management, object representation and garbage collector. On the other side the lack of time is making things harder for releasing the new version. Together with the above changes, new Smalltalk standard pieces will implemented as usual. I remind you the new code is in
by Luca Bruno aka Lethalman (lethalman88@gmail.com) at May 29, 2009 11:10 PM
May 27, 2009
Luca Bruno
Render tables with pangocairo like reportlab
Hello,
lately I was wondering if there was any alternative to the well known reportlab python software for creating PDF reports. I immediately thought about Cairo. The only two problems are:
- Cairo doesn't create multiple pages
- No support for creating tables containing text, necessary for table-based reports
I still can't realize how to achieve the first feature, but the second one could be solved using
Pango layouts.
The idea is to create the cells of the table using such layouts, so that the text get wrapped etc.
Here's the
Pango tables code snippet containing the necessary classes for achieving the job. Notice that the methods in the snippet often make use of Pango units instead of pixels.
Now let's use the Table class as follows: create a table with two rows and two columns, then show it twice with different background colors.
surface = cairo.PDFSurface ("test.pdf", 300, 400)
cr = cairo.Context (surface)
cr = pangocairo.CairoContext (cairo.Context (surface))
sizes = [pango.SCALE*12*10, pango.SCALE*12*10]
data = [["first test with pango tables", "seems to work correctly"],
["though it needs", "support for borders and spans"]]
table = Table (cr, sizes, data, pango.FontDescription ("Sans 12"))
cr.rectangle (0, 0, pango.PIXELS(table.get_width ()), pango.PIXELS(table.get_height()))
cr.set_source_rgb (0.8, 0.8, 0.8)
cr.fill ()
cr.set_source_rgb (0, 0, 0)
table.show_table (cr)
cr.translate (0, 200)
cr.rectangle (0, 0, pango.PIXELS(table.get_width ()), pango.PIXELS(table.get_height()))
cr.set_source_rgb (0.4, 0.5, 0.7)
cr.fill ()
cr.set_source_rgb (0, 0, 0)
table.show_table (cr)
Here's the result
test.pdf:

by Luca Bruno aka Lethalman (lethalman88@gmail.com) at May 27, 2009 09:46 PM
May 25, 2009
The Weekly Squeak
Magic Words goes Open Source

Mikael Kindborg and colleagues at comikit.se have announced that their Magic Words application is now available as Open Source software.
Magic Words gives children (of all ages!) the ability to create interactive animated worlds. It has been used to allow its users to make their own friendly non-violent computer games and explore the meaning of words as part of learning how to read.
The team have made the source-code available under the MIT licence, and have provided some sample resources including pictures, text, and sounds to get you started.
The application is of course based on Squeak, and the Comikit team give detailed instructions on how to load it into a standard Squeak image.

by Michael Davies at May 25, 2009 04:08 PM
Giuseppe Luigi Punzi
Squeak 3.10.2 + Polymorph + UIThemeXP + NiceFonts
Well, this looks promising to deploy apps for business $user

EDITED:
I forgot to mention, thath, I’m not the creator of UIThemeXP. The creators name is Steve Wirts, and the announcement of this package can be found on Pharo Maillist
by glpunzi at May 25, 2009 04:02 PM