Category: Development

  • Squeak on the iPhone!

    John M McIntosh announced on the squeak-dev mailing list that “I’m pleased to say that I’m one of the 1.5% of the iPhone developer population that has been accepted to officially build applications for distribution via Apple’s iPhone Application Store.”

    He’s prepared a 93-day plan to build a new fully documented Objective C based source tree to host the Squeak VM on the iPhone and in addition as a 64bit VM on OS-X. He’s already collaborating with Impara who are looking at adapting the Squeak UI to the iPhone’s multi-touch paradigm and platform widgets, and is looking for further support (and funding) for this work.

    John is also looking to offer support for Squeak developers hoping to make their applications available through the iPhone Store, although he notes that Apple has a number of restrictions limiting the types of applications that can be made available in this way.

    The screenshot above shows a “visually exciting” 3.4 image running on an iPod Touch, the result of 15 days’ work. John does sound a note of caution: the VM is currently running at a speed equivalent to a 233Mhz 603e PowerBook, and 64MB of memory use is pushing the Apple’s imposed safety limits right to the max, so developers may have to relearn all those optimisation techniques they may have forgotten in recent years!

  • Qwaq developing new fast Smalltalk VM

    Eliot Miranda has posted some exciting news – he is working at Qwaq to develop Cog, a fast Smalltalk VM for Croquet. The VM will dynamically compile Smalltalk bytecodes to machine code transparently to the programmer, and execute this machine code instead of interpreting bytecode. He expects to have an initial release within a year which should execute pure Smalltalk code some 10 to 20 times faster than the current Squeak VM. The new VM will be released under the Qwaq open source licence (MIT-compatible).

    Eliot will be posting notes on his progress and design decisions on his blog, and notes that the VM is to be released under the Qwaq open source licence. He’s looking to maintain compatability with the existing Croquet VM, Hydra, and Slang plugins. His first post gives lots of interesting details of work done so far, and his future plans.

    Eliot is a long-time Smalltalker, having worked on VisualWorks for many years with a focus on VM development, and has recently been working with Gilad Bracha at Cadence.

  • German Squeak Association Meeting: Demos

    The German Squeak Association (Squeak e. V.) had its annual meeting on May 17. For the second time, the meeting was hosted by the Software Architecture Group at the Hasso-Plattner-Institut in Potsdam. Before the official part, attendees of the meeting were given the opportunity to demonstrate their Squeak projects.

    First, Tobias Pape and Arian Treffer, students of HPI, demonstrated SwaLint, a source code checker for Squeak. SwaLint is intended as a successor to SmallLint and, thanks to its flexible plug-in architecture, supports running SmallLint checks seamlessly. SwaLint can be configured in great detail: thresholds for all kinds of values can be set, and output can be filtered. Users can easily implement their own plug-ins for the tool.

    Next, Michael Haupt (HPI) gave a brief demonstration of SqueakFS, which was implemented by Johan Björk and Eskil Andréen from Stockholm University, Sweden. SqueakFS makes the contents of a running Squeak image available as part of the file system. Currently, it is limited to read-only access, but the image can already be viewed from three perspectives: all classes as a flat collection, assorted by category, and by class hierarchy.

    Robert Krahn presented SqueakSVN, which is an ongoing development effort in the Software Architecture Group at HPI. The purpose of SqueakSVN is to make Subversion version control available to Squeak developers; it is able to import Monticello projects. SqueakSVN will be released in June.

    Martin Beck is currently working on his MSc thesis in the HPI Software Architecture Group. His work is dedicated to implementing NXTalk, a Smalltalk virtual machine for the Lego Mindstorms NXT platform. Development of NXTalk application takes place in a Squeak image, and assembled NXTalk images are transferred to the NXT for execution by the dedicated NXTalk VM. In the current state, simple images can be assembled and run: Martin demonstrated a program that can be used to steer a simple NXT bestowed with two motors.

    The popular introduction to the Seaside web application framework that was produced at HPI was briefly presented by David Tibbe, one of its co-authors.

    Robert Krahn had another appearance presenting the collection of games for the XO laptop developed by HPI students. All of the games are available for download as project or SAR files.

    Finally, Carl Friedrich Bolz (Düsseldorf University), Adrian Kuhn (University of Bern), and Toon Verwaest (University of Bern) presented SPy, their ongoing effort to implement the Squeak VM in Python using the sophisticated PyPy tool chain. SPy is currently lacking GUI  and other I/O support, but is able to load images and run the tinyBenchmarks. Right after the Squeak association meeting, a PyPy development sprint in Berlin will, amongst others, bring new improvements.

    After the official part of the association meeting, special guest Dan Ingalls gave a demonstration of Lively, his current project at Sun Labs. It looks and feels, admittedly, a bit like Squeak in disguise, but in Dan’s opinion, there is nothing bad about building the “same” system several times if it’s cool. That is certainly true for Lively.

  • Native look and feel apps with Firefox XULRunner

    Pavel Krivanek has published details of a project he’s been working on: SeasideXUL, which uses the Mozilla Foundation’s XULRunner and Ajax, with Seaside providing the muscle, and allows developers to create applications with a native look and feel.

    Pavel has already used the framework to wrap the OmniBrowser suite of development tools, so allowing Squeak development to take place in the host environment.

    The code is downloadable from SqueakSource, and a pre-built image has also been made available which includes the OmniBrowser integration. Pavel has also published a set of screenshots of the “Periodic Table” sample application demonstrating the capabilities of SeasideXUL.

  • Algernon: your personal assistant for Squeak

    A team of undergraduates at the University of Illinois at Urbana-Champaign have just released “Algernon”, a new keyboard-based launcher to help you navigate around your Squeak environment.

    Algernon was developed by Erik Hinterbichler and Joey Hagedorn with their CS598 classmates, working with Professor Ralph Johnson of the Software Architecture Group at UIUC. The developers say that Algernon provides lightning quick access to categories, classes, morphs, and global variables in your image, and is inspired by tools such as Quicksilver and LaunchBar for Mac OS X. Like Quicksilver, it learns from your behaviours, and will prioritise options that you use most often. It is triggered by pressing Control-Space Shift-Return, though this can be changed by editing Algernon>>activationString.

    Algernon can be downloaded from SqueakMap using the SqueakMap package loader or from Squeaksource using Monticello, and requires KeyBinder to be installed as a prerequisite.

    [Edited in light of Erik’s comments below.]

  • Squeak and the filesystem

    One of the stumbling blocks for experienced developers looking at Squeak for the first time is the concept of the “image”. Many developers, especially from the UNIX world are used to managing their source code and other resources with a host of file-based utilities, including editors, archivers and change-management tools.

    The Squeak philosophy that everything happens within the image can make the transition to Squeak painful for such developers, but there are tools out there to help with the transition. Two such tools were discussed recently on the #squeak irc channel.

    Johan Björk announced the release of SqueakFS, which allows you to browse and search all objects contained in your squeak image from your local file system. SqueakFS is currently read-only, but the developers are interested in adding editing capabilities. The file system functionality is provided by a socket client built on top of FusePython. This client translates file system paths into squeak objects and queries a server running in the squeak image for details on these objects. In order to do this, SqueakFS uses FusePython for file system support and is dependent on both FUSE and Python and will only work on UNIX systems. SqueakFS has been developed and tested on Linux 2.6 and MacOS Leopard running on Intel systems.

    Brian Rice pointed to another recent project, Stave, which mounts sources on a webDAV share, and so provides an editable WebDAV interface to Squeak’s class system. With the use of a WebDAV filesystem or a webDAV-enabled editor, this enables a file-based view on Squeak. Stave is intended primarily for use with external editors, and hasn’t been tested with search tools.

  • Squeak Project in Google Summer of Code 2008

    The Google Summer of Code team have announced that the Squeak Project is one of 175 Free and Open Source projects that have been accepted into their programme for 2008.

    This year’s submission was explicitly under the “Squeak Project” title, to allow for projects from the wider community developing based on the Squeak environment.

    The current list of projects with assigned students consists of:

    Congratulations to Giovanni Corriga and colleagues on the SoC mailing list who put the Squeak Project submission together, and best wishes to the students and mentors for a productive and enjoyable experience. We’re all looking forward to seeing your work!

  • What’s the difference?

    Fully Functional Babbage Difference Machine

    The following was posted to the Squeak-Dev Mailing list by Markus Denker. The quote speaks for itself and it does give one pause to consider the implications to our community. It also strikes me as relevant to a lot of other development communities too. Great ideas are still very powerful and inspiring, but the idea alone is still seen as only half the process. We all know that there is a lot of very interesting problems that arise while we transform our ideas into working code. We also know that it is much easier to build onto a working system, or take what we learned from the process of building a working system to the next generation. While the idea itself can be seen as a great accomplishment, the realization of the idea by itself confers even greater benefits to the community. What projects have you left undone? What’s the difference?

    “One of the sad memories of my life is a visit to the celebrated mathematician and inventor, Mr Babbage. He was far advanced in age, but his mind was still as vigorous as ever. He took me through his work-rooms. In the first room I saw parts of the original Calculating Machine, which had been shown in an incomplete state many years before and had even been put to some use. I asked him about its present form.
    ‘I have not finished it because in working at it I came on the idea of my Analytical Machine, which would do all that it was capable of doing and much more. Indeed, the idea was so much simpler that it would have taken more work to complete the Calculating Machine than to design and construct the other in its entirety, so I turned my attention to the Analytical Machine.’”

    “After a few minutes’ talk, we went into the next work-room, where he showed and explained to me the working of the elements of the Analytical Machine. I asked if I could see it. ‘I have never completed it,’ he said, ‘because I hit upon an idea of doing the same thing by a different and far more effective method, and this rendered it useless to proceed on the old lines.’ Then we went into the third room. There lay scattered bits of mechanism, but I saw no trace of any working machine. Very cautiously I approached the subject, and received the dreaded answer, ‘It is not constructed yet, but I am working on it, and it will take less time to construct it altogether than it would have token to complete the Analytical Machine from the stage in which I left it.’ I took leave of the old man with a heavy heart.”

    — Lord Moulton

    Marcus Denker http://www.iam.unibe.ch/~denker

  • Squeak 3.10 now released!

    Squeak 3.10

    Squeak version 3.10 has just been released onto the ftp server. This marks the completion of the development effort and gives Squeak developers an opportunity to check compatibility of packages and ports; work is still under way to produce final and fully packaged release files and once this has been completed, the squeak.org images on the Download page will be updated to point to fully packaged versions of this new release. Normal Squeak users are advised to wait for the packaged versions to be made available before upgrading.

    The goal of the 3.10 release was to improve the process of making Squeak releases and to improve the quality of the code. The release team concentrated on improving the coverage of unit tests, in making Squeak more modular, and in getting rid of non-core and unsupported code. In addition, many bugs were fixed.

    Highlights were:
    – Removal of non-core code.
    – Consistent use of Monticello to manage package dependencies.
    – Use of Package Universes for managing package compatibility issues.
    – Bug policy requiring all fixes to include unit tests.
    – Image fully tested on Mac OS X Tiger, Windows XP and Simply MEPIS 6.5 Linux.

    Thanks to the 3.10 release team including Ralph Johnson, Edgar De Cleene, and the many other Squeakers who contributed ideas, bug-fixes and support. Their work has given us an excellent release, and one which will be a great starting point for eventual progress to 4.0.

    Discussions and planning for 3.11 is already beginning on the mailing list, including topics such as:
    – the removal of major packages such as eToys and Nebraska to become loadable via Package Universes, and use of MinimalMorphic instead of the full Morphic suite.
    – migration to the improved packaging and loading functionality of tools currently under development such as DeltaStreams or Monticello2.
    – all code under old licences has been identified, and its replacement will be a priority.
    If you have an interest in how Squeak develops in the future, now is the time to have your say!

    For more information about this release, see the 3.10 page on the swiki or the welcome notes in the image itself.

    [Edited to clarify status of this release]

  • Squeak accepted into Google Summer of Code 08

    Google Code

    Giovanni Corriga has announced that Squeak is one of the 175 Free and Open Source projects accepted as mentoring organisations for this year’s Google Summer of Code.

    Students interested in joining the programme will receive a stipend of $4,500 and can find out more at the Squeak summary page, and list of proposed projects. You’re encouraged to visit the #squeak and #gsoc irc channels on irc.freenode.org to discuss your application and additional project proposals. Applications open on 24th March, and more details of the process can be found at the GSoC blog.

    Congratulations to Giovanni who managed the application process and everyone who contributed project ideas.