Category: Squeak

  • SandstoneDb – Simple ActiveRecord-style persistence in Squeak

    Ramon Leon has released a tool he uses to simplify the development of Squeak applications. Called SandstoneDb, it’s a simple MIT-licensed object database that uses SmartRefStreams to serialize clusters of objects to disk.

    Ramon needed “a simple, fast, configuration-free, crash-proof, easy-to-use object database that doesn’t require heavy thinking to use …[and] that allows me to build and iterate prototypes and small applications quickly without having to keep a schema in sync, or stop to figure out why something isn’t working, or why it’s too slow to be usable.”

    By combining ideas from ActiveRecord and Prevayler, he’s certainly made it simple to use: define any objects that you want to persist as subclasses of SDActiveRecord and save your image to ensure the proper directories are created. To persist changes to your objects, call #commit on them. All data is written to disc when committed, and loaded into memory on startup.

    There is a cost to this: Ramon notes that the object graph is rebuilt on startup, leading to an impact on startup times; holding all the data in RAM also means that there are practical limits on how much data you can manage in this fashion. He’s happy that this solution meets his needs when developing and deploying applications for his customers, but he’s leaving open the option of a future implementation being disc-based.

    There’s a lot more information, including the philosophy behind SandstoneDb, a guide to the API, and usage notes at Ramon’s blog.

  • WxSqueak reaches 0.5

    Rob Gayvert recently announced on the wxSqueak mailing list that he has made a new version of wxSqueak available. wxSqueak is a Squeak interface to the wxWidgets (formerly known as wxWindows) GUI library. The project hasn’t seen much activity recently, but the new version was released following a request on the mailing list. 

    Version 0.5.1 includes Unicode support, syntax highlighting and other new features, and looks like a very interesting tool for producing applications with a native look and feel. It can be downloaded from the wxSqueak website as source code, or as a fully runnable demo for Win32.

    This revival of wxSqueak comes at an interesting time, as work is proceeding well on SqueakGtk; it looks as though using Squeak to develop native look and feel applications is becoming an increasingly attractive option. No doubt this will fuel the resurgence of interest in Squeak Smalltalk.

    Thanks to Torsten Bergmann for spotting this announcement.

  • Squeak’s Google Summer of Code projects

    As we mentioned in March, the Squeak Project was accepted as a mentoring organisation for the 2008 Google Summer of Code. Five students stepped up to the challenge, choosing to work on the following projects:

    The students have already been working on their projects with great enthusiasm, as you can see by checking their posts on the Summer of Squeak blog, and now that the summer holidays are upon us, it looks like the rate of progress is really shooting up! The projects are all going to be valuable additions to Squeak, and I’m sure we’re all looking forward to seeing the final outputs.

  • Potato – version of JSqueak from HPI

    Robert Krahn from the Hasso-Plattner Institut announced this weekend on the squeak-dev list that he and his colleagues have created a SVN repository for their extended version of JSqueak – named Potato (like Dan Ingall’s original VM) – which includes a lot of improvements:

    • support for 32 bit color depth
    • calling Java (in the moment only for strings and integers)
    • refactored code
    • consistent use of Java libraries
    • removed redundancy
    • added a dynamic object table (for loading big images)
    • support for little and big endianness
    • loading of unzipped images
    • fixed lots of bugs and improved usability.
    Their plans include further improvements like:
    • adding support for 8 and 16 bit color depth
    • implementing BitBlt warp functionality
    • enhancing BitBlt implementation (“tryCopyingBitsQuickly”, blending)
    • adding save image functionality
    • implementing additional primitives
    • being able to support current images
    • extending Java access
    • finding and removing bugs.
    Anybody interested in viewing the work so far, or contributing to future development, can access the code at the following locations:
  • Conference news: ESUG 2008 – more information

    A set of posts to the squeak mailing lists has given more details about the 16th International Smalltalk Joint Conference organised by the European Smalltalk Users’ Group, to be held 25-29 August 2008 at CWI in Amsterdam.

    Programme Details

    Mathieu van Echtelt writes that the programme features more than 40 presentations on, among others, the following subjects:

    Programming Language Platforms

    • Newspeak (New open source dynamic language focusing on modularity, security and interoperability)
    • Cog (New highly optimized open source Squeak VM)
    • Maglev (Highly scalable Ruby VM)
    • OpenCroquet (Deeply collaborative, multi-user online Smalltalk development environment)

    Web Frameworks

    • Seaside (The continuation & component-based web framework)
    • WebVelocity
    • AidaWeb (Smalltalk Web Application Server)
    • WebTerminal

    Model Driven Engineering:

    • The Meta Environment Language Workbench
    • ObjectStudio ModelingTool
    • Fame; Meta-modeling Framework
    • MBA Smalltalk; to manage your objects

     
    Additionally, the winners of the ABN Amro sponsored Innovation Awards will be presented.

    Booking Accommodation 

    Noury Bouraqadi notes that discount hotel rates for conference attendees are available until 11 July.

    Seaside Sprint

    Lukas Renggli has announced that the core Seaside dev team will be holding the first official Seaside Sprint, starting after the conference closes at 14:00 on 29 August, and finishing when the last participant collapses over their smoking keyboard. He invites anyone interested in working on Seaside or related code to participate. The venue details will be announced once agreed.

    Camp Smalltalk

    As usual, the weekend preceding the conference will be used to host Camp Smalltalk, an opportunity to work with colleagues on a number of exciting projects. See the Camp Smalltalk page for more information.

  • One stop shop for Smalltalk jobs

    Randal Schwartz is very keen that there should be one community-supported site for collating and finding Smalltalk-related job postings. He says:

    It’s been very helpful to the Perl community to get one place for all serious Perl jobs: jobs.perl.org. Because then all the smart people look there, and all the clueful employers post there, and it’s also free. And the stats at http://jobs.perl.org/about/stats show that Perl is far from dead.

    I’m trying to do the same thing for Smalltalk. Please support me in that. Don’t point at other places.  Get them to post at http://smalltalkjobs.dabbledb.com.  It will be good for all of us overall. Truly.

    The DabbleDB interface has many RSS feeds for particular areas, and can be pulled out and searched in detail.  It’s also all in Smalltalk, which is a good demo.

    Ken Causey has already set up jobs.squeak.org to redirect to http://smalltalkjobs.dabbledb.com, so it look like Randal’s hopes will be fulfilled.

  • Conference News – Libre Software Meeting, 1-5 July, France

     

    Hilaire Fernandes wrote to tell the Squeak-dev mailing list that the 9th Libre Software Meeting will be held at Mont de Marsan, Landes, in SW France, on 1 – 5 July. LSM is an international free software event taking place in July each year, in a French town; the first event took place in 2000 at Bordeaux. This year, Squeak/Smalltalk will be well represented with conferences and workshops on Squeak, Seaside and Sophie. There will also be a coding sprint for Pharo, a new implementation of Smalltalk based on Squeak.

    For more information, see the post about the conference on Hilaire’s blog.
    http://blog.ofset.org/hilaire/index.php?post/Squeak-Smalltalk-LSM-2008

  • JSqueak – Smalltalk interpreter written in Java

    Dan Ingalls has released JSqueak, a Squeak interpreter written in Java. 

    JSqueak (formerly known as Potato) is less than 5000 lines of code, available under the MIT licence. It runs the Mini2.1 image, which is included for convenience. This image contains a complete Smalltalk development environment, including:

    • Rich text and Text editor
    • File browser (no file access in VM yet)
    • Code browser
    • Decompiler (plus temp-name hints)
    • Compiler
    • Source Code Debugger

    Dan wrote JSqueak to teach himself NetBeans and Java in the fall of 2006. Although he developed it as a throw-away project, he notes that

    it has features that recommend it for further useful service:

    • It is simple
      • Uses Java objects and storage management
      • Uses Java Integers for SmallIntegers
    • It is general
      • A weak(*) object table enables enumeration and mutation
    • It is efficient
      • Includes a method cache and an at-cache (**)
      • Also a cache of common SmallIntegers
    • (*) – This does not mean wimpy — it’s a good sturdy object table — it just doesn’t hold onto garbage.
      (**) – This is not an automated teller machine, but a device that speeds up array and stream access.

    These properties make it a reasonable base for teaching about VM design.

    Dan adds that a number of things should be finished or improved if this VM is to see further use – it currently runs between 10 and 30 times slower than the C-based VM! If you wish to track or contribute to such projects, he invites you to add yourself to the (brand new!) JSqueak Interest mailing list.

    You can find out more, and run the application as a WebStart Java Application at the JSqueak home page.

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

  • Randal Schwartz to join Smalltalk podcast (warning, some recursion involved)

     

    Randal Schwartz notes on his blog that: 

    James Robertson of the weekly Smalltalk Industry Misinterpretations podcast has graciously offered me the opportunity to add a short weekly Squeak News segment to his podcast.  I’ll be selecting the most recent posts from news.squeak.org, and reading them at varying speeds, depending on the amount of news.  Hear the result at the current podcast, andsubscribe to get future (weekly) releases.

    It would be really cool if my appearance reading the Squeak News gets picked up for Squeak News, so I’ll be reading an article from Squeak News for the podcast about reading the articles from Squeak News for the podcast.  Turtles all the way down!
    Heh, let’s see if this breaks the intar-web.