Category: Tools

  • Creating SqueakSource

    SqueakSource

    SqueakSource is a web based repository for versioning and storing Squeak code. The subject of creating a squeakSource image came up on the beginners list.

    Franz Josef Konrad posted a very nice “how to create your own SqueakSource image” response. By running your own squeakSource you can share code with other developers or use it just to keep track of your own stuff. Here are the steps to create a squeakSource image:

    (more…)

  • Gjallar demo at OOPSLA 2006

    See Göran Krampe’s Gjallar demo at OOPSLA 2006, Tim’s pointer update, board information and a License update.

  • CallBacks!

    The VM group reciently had a discussion about a proposal to add Callback support to Squeak. It appears that some people have missed the discussion. Speaking as one that was Squeaking without Callback support I would encourage the VM group to carefully review Andreas proposal and I’m looking forward to seeing this very much needed feature on our future VM’s.

    – Ron Teitelbaum

  • Touring Seaside. Creating a Blog with Magritte

    Ramon Leon shows How to Build a Blog in 15 Minutes with Seaside in this screencast. Everything is filmed straight from squeak and the web browser. No cuts , and (unfortunately) no audio. He starts from scratch and finishes with a blog tool that shows entries and comments. Magritte is used to make the input forms of posts and comments, and for checking things like that a post’s title is not empty, and that the title of a new post is not yet used by a previous post.

    About 10 minutes into the show you see how an error is fixed in the living application. From the web page, he brings up the debugger in Squeak and notices that the post’s list of comments is not yet initialized. So he fixes that and just reloads the web page.

    There are more videos about Seaside at Seaside Videos.

    Thank you Matthias for the post.

  • Extra! Gemstone Goes Seaside!

    Seaside

    The lesson here is watch which key you press! Dale Henrichs from Gemstone accidentally posted his GemStone code to the Seaside Repository. It looks like we can expect Seaside to work with Gemstone coming soon.

    In Dales own words: We’ll make an announcement to this list when all of the pieces are in place (including information about downloading non-commerce/trial versions). Our target date for having everything ready is Smalltalk Solutions 2007. If things continue to go smoothly, we are likely to be ready sooner.

    Remember you heard it here first! Ok well you heard it first on the seaside list, but you heard it here second!

  • Deploying Seaside

    Deploy Seaside

    I just saw a very nice thread on the Seaside mailing list about deploying a seaside application. I thought I’d summarize the suggestions for this article. (more…)

  • Magma Interview with Chris Muller

    magma.jpg

    ODBMSJournal did a nice interview with Chris Muller about Magma. Magma is an object database writtne entirely in Smalltalk. Chris discusses smalltalk in general and IDE’s both closed and open source. He also discusses aspects of Magma including commiting and setup, queries, standard SQL support for reporting tools through ODBC, reporting, Morphic persistence, performance optimizations and his expierences in developing Magma.

    Thank you Steve Moffitt for pointing out the interview.

  • Wiki: migrations…

    There is a fair interesting thread on Minnow Wiki Migration, fired on the 18th of October.

    Because Minnow is a very huge wiki, you can find advice and consideration on this topic: the new Pier wiki (which is covered) is fair interesting topic too.

  • Ocean Waves: the applications built on Seaside

    Introduction

    Seaside is a powerful web application framework, which is based on a clean model-view-controller paradigm.

    Seaside frees the programmer to worry about session/request management, and enable also seamless parallel web requests by the same user.
    The Weekly Squeak has already an ad hoc tag for Seaside, and many of us known it.

    For the newbies, is worth to remember Seaside is a bit more comfortable then RubyOnRails, and is based on stack-copying techniques. I have developed quite complex forms in a snap, and its productivity is higher.
    From time to time is good to review the state of this framework.
    So The Weekly Squeak interviewed Avi Brant and some of the most active developers.

    Projects

    QTone

    QTone is a music application written in Seaside. We have interviewed the author, Jay Hardesty.

    Giovanni: How much time need you to develop qtone?

    Jay: The Seaside-based interface was developed for the purpose
    demoing the underlying application, which has a Morphic GUI.
    Writing the Seaside-based code took about two weeks, much of
    which was spent learning the learning Seaside basics. I’ve
    never written a Web-based app before, so I also had to find
    out what http and css were all about.

    (The underlying desktop application has been developed over the
    past three years, and some of the algorithms and design ideas
    go way back to music school days.)

    Do you used a template engine with seaside, or you wrote a bunch of
    code to generate the html page?

    I wrote code to generate html, grabbing snippets from the various
    Seaside axample apps (calculator, alltests, etc.). There are some
    unholy hacks. For instance, I couldn\’t figure out how to rotate
    labels 90 degrees, so those are simply bitmaps rendered in Morphic.
    And there are hot spots all over the place that don\’t belong.
    But again, this was just meant to be a quick and dirty demo of the
    desktop Morphic-based app; it still needs a lot of work, but the
    basic functionality seems to be there.

    Compared to other approach in web development (most notably php),
    how much was easier using seaside in your own opinion?

    I’ve never done Web development before, so I’m not the best
    source for comparisons. I did also create a Java-based Qtone
    applet to run on my cell phone, communicating with the
    same Squeak server application. In that case I needed to do a
    whole client/server implementation, mirroring the state of
    Smalltalk objects by flattening out data and shipping it to
    the Java side via http. Probably there are better ways of
    accomplishing what I did, but in any case it was *much* more
    work than it was to do the Seaside interface (and the phone
    interface is drastically simpler).

    Do you used a database or do you relay on Squeak collections?
    If yes, which?

    I don’t use any database at the moment, other than a Unix directory
    full of MIDI files. In the desktop application there is a Morphic
    GUI built on top of a Qtone object, which is in turn built on a
    large hierarchy of classes that handle the music processing.
    My main Seaside class simply points to the same Qtone object that
    the Morphic application does. All sorts of collection classes
    are used throughout the code, mostly Arrays, OrderedCollections,
    Sets, and custom collections for various music objects such as
    musical notes.

    Your throughts about seaside…?

    I cringed when it was originally suggested that I put together a
    Web demo because I assumed it would require a lot more effort
    than it ultimately did. Not having to mirror the state of objects
    across a client/server divide was by far the main advantage for
    someone in a hurry, and with my lack of experience. I know that
    continuations are an important feature of Seasideand I’m sure
    my appreciation of continuations would soar if I were forced to
    do more traditional Web development, but for now they’re
    something I’m pretty much just taking for granted (benefit of
    being late to the game I guess)

    I have many years experience as a Smalltalk programmer, so I’m
    not sure how Seaside would look to someone without that background.

    DabbleDb

    Developed by Avi Brant, dabbledb is looking very promising. It features a ajax-enabled application, and shares a common look with BackPackIt, developed with RubyOnRails.

    Abeit the success of this new web tools is not for sure, last week google launched a new version of an online Word Processor and a Spreadsheet.

    So we have done a small interview to Avi Brant, about Dabbledb and Seaside:
    Seaside, RubyOnRails, Python Django, CakePHP shares some common idea.
    But I find only in Seaside the complete and automatic session/request management, and a true MVC process. Why other languages cannot take a similar approach?
    There are only technical difficulties or there is also some other
    equally good reason in your own opinion?

    It has very little to do with language. Fundamentally it comes down
    to a single design decision that’s at the heart of Seaside, which is
    to maintain session state in-memory, inside a long-running
    application server process. That’s at odds with a traditional “share
    nothing” philosophy of web development, which seeks to have all
    session state be either persistent on the server side (in files or
    databases), or constantly transmitted from the client in cookies or
    form fields. By making the choice to “share everything” and use in-
    memory session state to its fullest, a lot of the design constraints
    which have shaped our thinking about web development fall away, and
    some pretty radically different approaches are possible. I’d love to
    see people go down that path in other languages, and there’s nothing
    preventing it, but it doesn’t seem to be happening much yet.

    How much time did you take to develop the front end of DabbleDB?

    It’s hard to measure the time exactly, because for most of the
    development we were bootstrapping the company with consulting work,
    and getting in work on Dabble when we could. But I’d say it
    represents about two man-years of development work, plus a few months
    of (very important) help from a web designer.

    What database is used to store data? A relational one or an object oriented one?

    It’s a custom in-memory object database. We were going after a very
    interactive and flexible UI, and we wouldn’t have been able to get
    the performance we needed out of a standard relational database.

    Seaside has just reached 200.000 downloads.
    It looks like the most downloaded Squeak application of the last twelve months.
    What are your project for the future?

    One thing I’d like to do is reduce the dependence of Seaside on
    continuations – they drove a lot of the initial interest in the
    framework but they’re becoming (or seeming) much less important over
    time, and the use cases to which they’re best suited are these days
    often addressed with AJAX instead. Right now they’re creating an
    artificial barrier which stops Seaside from being ported to some
    dialects (like Strongtalk, Smalltalk/X and VAST) which don’t support
    continuations but would still benefit from a continuation-less Seaside.

    Conclusion and call for a follow up

    We’d like to interview more seaside developer!
    If you want a bright & exciting interview by Giovanni Giorgi (!) send him an email.

    If you find comfortable with seaside, feel free to add your comment ad the end of this article.

    References

    About Giovanni Giorgi
    Born in the 1974, he is working as a professional IT Software Architect from year 2000, and loved SmallTalk from 1996.
    In the free time he likes doing trip and reading books.
    His blog has some interesting photo about his trips.

  • Image Freezing

    Your help is needed. There appears to be some trouble with new images that freeze up. This week there was some discussion about how to diagnose and solve this problem http://tinyurl.com/y6kxgl

    http://bugs.impara.de/view.php?id=4882

    Your help is needed!

    See Fix to Delay by Andreas: http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-July/118942.html

    See Fix Suggestion by Adrian:

    http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-July/119023.html