Showing posts with label smalltalk. Show all posts
Showing posts with label smalltalk. Show all posts

Sunday, 19 October 2014

Declaring Seaside sub-components in the #children method

People often ask why they need to define the #children method on Seaside components. I wrote a long email today to the mailing list explaining how #children is currently used and why it's important and I thought it might be useful to post it here as well so it's easier to find and link to. 

When you render a child component you are implicitly defining a tree of components. #children simply allows the framework to walk the component tree explicitly. The reasons for needing to walk the tree explicitly have changed over time, which is part of the reason for the confusion.

At one point, for example, we used to walk the tree to give each component a chance to handle callbacks, so if your component wasn't in #children it would never even have seen its callbacks. That is no longer the case (which is actually a bit of a shame because decorations can no longer intercept them, but I digress).

If you look in the image for users of WAVisiblePresenterGuide and WAAllPresenterGuide, you will see the current cases where we need to traverse the tree:
  1. Calling #updateStates: for snapshotting/backtracking
  2. Calling #initialRequest: when a new session is started
  3. Executing tasks (they need to execute outside of the render phase to make sure the render phase does not have side effects)
  4. Calling #updateRoot:
  5. Calling #updateUrl:
  6. Displaying Halos for each component in development mode
  7. Generating the navigation path in WATree
  8. Detecting which components are visible/active to support delegation (#call:/#show:)
Keep in mind that basically all these things happen before rendering, so if you create new components inside #renderContentOn: they'll miss out: you should try to create your sub-components either when your component is initialized or during a callback. If your child component doesn't rely on any of the above (and doesn't use any child components itself that rely on any of these things) then technically everything will work fine without adding it to #children. But keep in mind that:
  • the framework may change in the future to traverse the tree for other reasons;
  • add-ons may depend on being able to walk the tree for other reasons; and
  • it's not great encapsulation to assume that, in the future, components you are rendering will never need any of the above nor start using sub-components that do. 
Finally, components are stateful by definition, so if you don't feel the need to persist your component between render phases, it probably shouldn't be a component. For stateless rendering you're better to subclass WAPainter directly or even WABrush: both of these are intended to be used and then thrown away and they will make it clearer in your mind whether or not you're using on things that depend on #children.

Monday, 25 October 2010

More wolf packs

Everything is organized. Helge Nowak and I will be running a Wolf Pack Programming workshop at XPDays in Hamburg. The workshop is on Thursday, November 25th and runs from 9:30am to 12:30pm.

Almost simultaneously—yes, we were double booked!—Jason Ayers and Michael Lucas-Smith will be running their own workshop at XPDays Benelux, in Eindhoven, the Netherlands. Theirs will get under way at 3:30pm.

Last week, Agical hosted a workshop in Stockholm as part of their monthly Geek Nights. Attendees included Scrum's Jeff Sutherland and, as usual, the event generated lots of interesting thoughts and discussion. A number of the participants did not have their own laptops and, as a result, most people were working in pairs at shared computers; we were amazed by the "heads down" behaviour and reduction in pack communication that this change seemed to cause. The enthusiastic response to the session netted several invitations to run further events in Scandinavia, so keep an eye out for more in the upcoming months.

Friday, 2 July 2010

Seaside 3 "Release Candidate"

You could say it's been a long time coming.

Seaside 3.0 began ambitiously and grew from there. We began (at least I did) with the goal of cleaning up the architecture, revisiting each aspect and asking what could be simplified, clarified, or standardized. As functional layers were teased apart, suddenly pieces became unloadable and a repackaging effort got under way. From this we realized we could make the process of porting Seaside much less painful. Along the way, we lowered response times and reduced memory usage, added 10x the number of unit tests (1467 at last count), standardized code and improved code documentation, added jQuery support, and, oh, did you hear there's a book?

The result? This release runs leaner, on at least six Smalltalk platforms and is, I think, easier to learn, easier to use, and easier to extend. Seaside 3.0 is the best platform out there for developing complex, server-side web applications. Is it perfect? No, but I'll come to that part in a moment. It is the result of literally thousands of hours of work by a small group of people across all six platforms. But this release also exists only due to the generosity of Seaside users who tried it, filed bugs against it, submitted patches for it, and eventually deployed it.

Deployed it?! Yeah, you see, not only have all the commercial vendors chosen to ship our alphas and betas, but our users have also used them to put national-scale commercial projects into production. I alluded last month to a conference session I attended, in which somebody made the statement that
The best way to kill a product is to publicly announce a rewrite. Customers will immediately avoid investing in the "old" system like the plague, starving the product of all its revenue and eventually killing it.
It was a shocking moment as I realized we'd attempted just that. At first we justified the long release cycle because we were "doing a major rewrite"; then we just had "a lot more work to do". Eventually there were "just too many bugs" and things "just weren't stable enough". And, finally, once we realized we desperately needed to release and move forward, we just ran out of steam (no quotes there—we really did).

I still think the original architectural work needed doing and I'm really happy about where we ended up, but here's what I've learned:
  • When your wonderful, dedicated users start putting your code into production, they're telling you it's ready to be released. Listen to them.
  • We don't have the manpower to carry out the kind of QA process that goes along with an Development, Alpha, Beta, RC, Final release process.
  • We need to figure out how to get more users actively involved in the project. This could be by writing code but probably more importantly by writing documentation, improving usability, building releases, managing the website, doing graphical design, or something else entirely. The small core team simply can't handle it all.
Trying to apply these lessons over the past month, I asked for help from a few people (thank you!) and we closed some final bugs, ran through the functional tests, developed a brand new welcome screen, and managed to bundle everything up. We're releasing this today as 3.0RC.

We're not planning a standard multi-RC process. The "Release Candidate" simply signifies that you all have one last chance to download it, try it , and let us know about any major explosions before we do a final release, hopefully at the end of the month. From there we'll be reverting to a simpler process, using frequent point releases to fix bugs. 3.1 will have a smaller, better defined scope and a shorter cycle. I have some ideas but before we start thinking about that, we all need a breather.

I also have some ideas about the challenges that potential contributors to the project may face. But I'd like to hear your thoughts and experiences. So, if you have any suggestions or you'd like to help but something is stopping you, send me an email or (better yet if you're there) pull me aside at Camp Smalltalk London or ESUG and tell me about it.

Ok, ok. You've waited long enough—thank you. Here's the 3.0RC one-click image, based on Pharo 1.1 RC3 and Grease 1.0RC (just the image here). Dale has promised an updated Metacello definition soon. Enjoy!

Saturday, 12 June 2010

This week's events


The VASt Forum in Stuttgart this week was well attended, with maybe 40 attendees. Unfortunately, as the presentations were all running long and I had to leave before the social event, there was quite limited time for discussion; but it was clear that most people were either past or existing Smalltalk users (though not necessarily current VASt customers). This, combined with the increasing regularity of Pharo sprints and the more than forty people who have already signed up for Camp Smalltalk London, seems to be a very good indication of the enthusiasm and growth in the Smalltalk community these days.

Attendance at the Irish Software Show in Dublin has been lower than we expected. My informal counts suggest about 60-80 people in attendance each day. Of interest to me was Wicket, which I had never looked at before; I was quite surprised to see how similar it is to Seaside in some respects and how similarly Andrew Lombardi, who was giving the presentation, described the framework's benefits and his joy when using it.

The web framework panel discussion had about 30 people watching and we had some good discussion there. Attendance at my Seaside talk was probably closer to 10. It would have been nice to have attracted more of the Java developers at the conference (there were about 20 people at the Wicket session earlier in the day) but it was interesting to find out that the majority of those who came had at least played with Smalltalk before.

Other interesting highlights include Kevin Noonan's talk on Clojure (seq's are much like Smalltalk's collection protocol but available on more classes), Matthew McCullough's presentation on Java debugging tools (interesting to see their progress and a also few ideas to look at ourselves), and Tim Berglund's overview of Gaelyk (reminds me disturbingly of writing PHP but the easy deployability and integration of XMPP, email, and Google Auth are cool). The speakers' dinner at the Odessa Club last night was great and we had a number of good discussions there as well.

The above photograph was humourously hung over the urinals in a restroom here in Dublin. I would have thought the slightly disturbing visual association was accidental if there hadn't been five separate copies!

Sunday, 6 June 2010

Berlin, product management, and Smalltalk events

Beach bars, cuba libres, bircher müsli. I'd forgotten how classically German these things are but it only takes being away for a few months to make them stand out again.

Thanks to the official un-organizers of Product Camp Berlin, yesterday was a very successful day of discussions and networking. Some interesting points for me were:
  • Kill a feature every day. That way people get used to the process and don't scream so loudly when support for features and platforms needs to be removed. This reminds me of the concepts of constant refactoring and non-ownership in software development, which helps ensure that people are similarly used to code going away.
  • The problem may be your pricing model. When products (in startups particularly) begin to flounder, there may be nothing wrong with the product itself. Sometimes a simple tweak of the pricing model can be the most effective solution.
  • The best way to unofficially kill a product is to publicly announce a "rewrite". Customers will avoid investing in the old system like the plague, rapidly starving the product of all its revenue.
  • It sounds like there are some interesting products on the way from Nokia.
  • This is my second conference since I actively started using twitter — it was not as well used this time but I still really like the technology for this sort of use case: it's great to see what you're missing, share your thoughts, and catch up with people after the event is over.
The weather was gorgeous in Berlin but has turned foul in southern Germany today. No big deal though as I've been slogging away indoors at my presentation for epicenter in Dublin on Thursday. I'm getting close with my slides and looking forward to the event but, before I can get that checked off my list, it's off to Stuttgart tomorrow evening for the VASt Forum.

[update: I've been offered 10 discount tickets for epicenter to give away; details here if you'd like to come see me in Dublin this week.]

For those wanting to attend the Camp Smalltalk London event on July 16-18, make sure you head over and sign up now. It's looking like we're going to fill up even our expanded capacity. If it's full by the time you get there, add yourself to the waiting list and we'll see what we can do.

Saturday, 29 May 2010

Camp Smalltalk is popular

When the UK Smalltalk User Group started planning the Camp Smalltalk London event a few weeks ago, we imagined we might get 20 people. After only four days, 30 have signed up and we're jumping to figure out how many more people are interested and how many more we can handle. There are certainly worse problems to have!

If you're still interested in attending, please do us a favour and add yourself to the waiting list at cslondon2010.eventbrite.com.

Thursday, 22 April 2010

Upcoming Smalltalk events

There are a number of Smalltalk events coming up in Europe over the next few months (Joachim posted about some of them a little while ago).

[edited to add:] I forgot to mention that I recorded another Industry Misinterpretations podcast with James Robertson and Michael Lucas Smith last week. It's a two-part episode talking about cross-platform Smalltalk development. The audio for the first part is available now; and (if I'm lucky) this link should be the second part once it is posted.

The UK Smalltalk User Group is up and running again and the next meeting will be at 6:30pm this Monday, April 26 at the Counting House.

[added] Markus Gälli pointed me to a talk by Claus Gittinger, creator of Smalltalk/X, on Flow-Based Programming. This will be in Zurich on April 28.

On May 4, Cincom is planning to host an experiment on "Wolfpack Programming" at the eXtreme Tuesday Club's weekly meeting. The idea is to play with how wolves' social structure and hunting strategies can be applied to a large team of programmers working in a single live system (kind of like extreme pair programming). It should be a fun evening and we're providing food and drinks for the night as thanks for your participation. More details will be posted on the May 4 meeting page shortly—please post your name there if you're coming.

May 16-19 is the SPA 2010 conference in London. This isn't a Smalltalk event, per se, but Cincom is sponsoring it and a few of us will there. We're hoping to have some results from the Wolfpack Programming experiment to discuss.

June 8 is the VA Smalltalk Forum Europe 2010 in Stuttgart. John O'Keefe from Instantiations will be presenting as well as Sebastian Heidbrink, Joachim Tuchel, and a number of others. Lukas Renggli will be talking about Seaside. I'm not presenting but I am planing to attend.

Also starting June 8 and running until the 11th is epicenter 2010: The Irish Software Show in Dublin. They asked me last fall to come talk about Seaside and I'm happy that we've got the details all worked out (though I'm still waiting for my bio to be updated). I'll be talking on Thursday the 10th and also, I think, taking part in a panel at one of the evening events.

On June 10, the 3rd Smalltalk Stammtisch in Köln (Cologne) is happening. Ich möchte gerne hingehen, aber das ist nicht möglich als ich nach Dublin fliegen muß.

July and August are quiet months in Europe since everyone goes on vacation. But I've heard rumours of a sprint or other event being discussed in London. I'll pass on anything I hear.

Then of course there's the annual ESUG 2010, in Barcelona this year from September 11 to 17. This has been one of my favourite events over the last few years.

Finally, we're also working on something in France (probably in June) and Sweden/Norway (Sep/Oct) but they're still preliminary, so I'll post details as they're available. Toss in some vacation and a couple of weddings this year and I'm going to be busy.

In the meantime, if I missed any events, please pass them along. Also, if you can think of conferences or events where Smalltalk should be represented or groups that would be interested in hearing about Seaside or Smalltalk in general, let me know and I'll see what I can do to make it happen.

Friday, 19 February 2010

My new job

I'm happy to announce that I have accepted a full-time position with Cincom in the UK. As a result, I will be laying down my consulting hat for a while, and heading to London at the end of the month. I'll be doing Pre-Sales Consulting (or Sales Engineering, as some call it) for their Smalltalk products in Europe and also working on another product in development. I'm really looking forward to focusing my energy on customers and product/business challenges for a while... it should be interesting.

I still intend to keep active with Seaside, though my role and availability may shift somewhat. With an active user base providing amazing support on the mailing list these days and a 3.0 beta release just around the corner, this is pretty good timing. Once we get the beta out there, we'll need to start discussing what comes next but first things first... and more on that in the next little while.

In the meantime, I encourage those of you in and around London to keep in touch - I'm going to need to find out where the good watering holes are. :)

Saturday, 30 January 2010

Easing compatibility with Grease

Photo by DarkSide, sxc.hu

In December, I gave a presentation on portability to the NYC Smalltalk group. Seaside now runs on at least seven different Smalltalk distributions. Given the lack of standardization, this is no minor feat; for Seaside’s developers, the need to keep code portable is always on our mind. As a result, we have gradually accumulated a set of tools, patterns, and conventions to help keep our code as portable as possible and to factor out code that needs to be implemented differently on each platform.

In our work on other projects, we found the same portability challenges came up over and over and we wanted to use the tools we had developed for Seaside to address them. So we began to split out the Seaside-specific functionality, allowing us to leverage the generic parts it in our other work. And thus Grease was born.

So what exactly is Grease?

  • Grease enhances the ANSI Smalltalk standard. With only a few exceptions, we assume platforms are fully ANSI-compliant. Platforms want to support Seaside and standardization makes this easier for the project’s developers and its porters.
  • Grease defines expected APIs with unit tests. Platforms can quickly determine if they are compatible and users can examine the tests to determine exactly which behaviours they can count on.
  • Grease takes a pragmatic approach to compatibility. Sometimes a method behaves so differently on two platforms, for example, that we are forced to avoid it or to standardize on a new selector. To get standard exception signaling on all platforms, Grease is forced to provide special exception classes that can be subclassed. Sometimes we need to put “right” aside and settle, instead, on a solution that can be implemented everywhere.
  • Grease tries to be concise and consistent. Despite its pragmatic approach, we still want to be “right” as much as possible. Because it’s hard to remove functionality once it has been added, we need to carefully consider each addition before proceeding. We’re moving slowly and looking for methods that are commonly used and that have clear names and semantics.
  • Grease does not try to solve all problems. We are not testing Sockets or HTTP clients. We don’t expect platforms to have standard SSL or graphics libraries. Its scope may grow over time, but for now we’re focusing on extending the functionality of the core classes defined in the ANSI standard (collections, exceptions, streams, blocks, etc.) and on other pieces of functionality that are critical to the Seaside project (e.g. random number generation and secure hashing).
  • Grease is widely adopted. Implementations exist already for all platforms that support Seaside 3.0. As well as Seaside, new versions of Magritte, Pier, and Monticello are already being implemented on top of Grease.

If you’re developing on Squeak or Pharo, you can also benefit from Slime, which uses the Refactoring Browser to find and, in some cases, rewrite common compatibility problems. Think of Grease as defining what you can write and Slime as defining what you can’t. It would be nice if Slime could be extended to other platforms, but their RB implementations are currently not compatible enough (a perfect target for Grease!).

Grease will continue to be part of the Seaside project and to be driven, for now, primarily by Seaside’s requirements. But we hope other projects will find it increasingly useful over time. Since each platform has already ported it, you may already be able to leverage it to provide increased consistency and portability for your applications. For the moment, consider Grease a prerelease and subject to major change; it will track Seaside releases for now, though I’m thinking of assigning independent version numbers to Grease releases to make things clearer.

The Grease packages can be found in the Seaside 3.0 repository or through your vendor's standard code distribution mechanism.

Sunday, 27 December 2009

Boston Roundup

First off, just to get this out of the way, Hyatt Regency Boston: nice enough hotel but 50c/min for internet? They do realize that works out to $30/hr right?! I mean... heck, I'm speechless. And I can't decide which is worse, that or the $36/day for parking. Luckily I didn't have a car.
From Boston '09 (Steven Noble)
I was in Boston a few weeks ago to take Product Management training (happy to report I passed the certification!). An old friend of mine came down from Ontario and we took in the town for the weekend. We spent much of Saturday wandering around Cambridge and then walked the Freedom Trail back through the North End, Boston's fabulous Little Italy.
The financial district had a nice sense of scale, not unlike downtown Vancouver (if you ignore the West End) or maybe... Perth? And Boston Commons is a perfect feature in the heart of downtown; it's nowhere near the size of, say, Central Park or Stanley Park but is one of the nicest city parks I've seen.
Overall, I liked the feel of Boston, and the snow and drizzle failed to dampen our spirits. I have to confess that I found Cambridge pretty uninspiring, though. I expected Harvard and MIT to exude a sense of history and achievement—like the colleges in Cambridge, England or even Trinity College in downtown Dublin—but they felt like little more than a collection of oldish buildings. Maybe the preponderance of brick as a building material simply fails to impress.
On Sunday night, I went for dinner with Carl Gundel and Chris Norton, two Boston-area one-time Squeakers. As in Vienna, I presented a convenient excuse for Smalltalkers who hadn't crossed paths in years to get together. We had some interesting discussions and hopefully reignited the Smalltalk spark in Chris.
Kudos to Yelp for the recommendation of Bar Lola and to Zagat for the pointer to delicious Italian food and friendly service at Carmen. Oh, and I loved the Equal Exchange Cafe — wish it was in Vancouver.
As usual, click any of the photos above to see the others I posted. Or check out Steven's photos from the trip.

Wednesday, 2 December 2009

New York presentation confirmed

The details for my talk in New York have been confirmed. We'll be at the Suite LLC offices (directions) on Thursday, December 10; there's an open house at 6:30pm and the presentation is at 7:00 (drinks afterwards).

Here's the planned subject of the talk, though I think I'll play it a bit by ear and see what people are interested in:
Seaside is a rare example of software that runs on all the major Smalltalk platforms: Pharo, Gemstone, GNU Smalltalk, Squeak, VA Smalltalk, and VisualWorks. We’ll take a look at some of the challenges in keeping the framework portable and some of the techniques the team has developed to deal with these. Along the way we may also touch on tools such as Grease, Slime, and Monticello and how they help the process. And then we’ll see where the discussion leads.

Tuesday, 24 November 2009

Boston, NY, Raleigh

I've confirmed a December trip to the US East Coast. In Boston, I'm attending a product management seminar put on by Pragmatic Marketing, meeting up with a few Smalltalkers from the area, and planning to pop in on the Boston Ruby group's monthly meeting if I can squeeze it in.

On Thursday, December 10, it looks like I'll be giving a presentation at the NYC Smalltalk users group—Charles was kind enough to try to schedule something around my timetable. Details are not quite confirmed; I'll try to remember to post an update here but keep an eye on their site if you're interested. I'm planning to talk a bit about the techniques and tools we use to ensure Seaside portability across the various Smalltalk dialects but we'll see where the conversation wanders. I'm also planning to visit with friends, enjoy the pre-Christmas season in New York, and maybe do some shopping.

Finally, I'm making my way down to visit the VA Smalltalk team in Raleigh, North Carolina. John and I are planning to put our heads together on a couple of issues and I think I'll be doing a Seaside tutorial for some of the engineers while I'm there.

I'm looking forward to a productive, if exhausting, trip. Drop me a line if you're in one of these areas and want to meet up.

Friday, 20 November 2009

SIXX port for VASt

I just published an initial port of SIXX to VAStGoodies. Most of the tests are passing and I'll push the minimal changes I made back upstream for integration. Just like the Pier and Magritte ports I recently finished, this one was requested and released back to the community by Nationaal Spaarfonds.

The plan is to see if I can use SIXX for Pier persistency... that'll be the next step.

Tuesday, 3 November 2009

Pier for VASt

I mentioned a couple of weeks ago that I had uploaded an initial port of Magritte for VA Smalltalk. I've spent a couple of days since then (again courtesy of Nationaal Spaarfonds) getting the Pier port cleaned up and posted. Currently none of the add-ons have been uploaded but I have the security package mostly done and it will follow shortly.

Consider these alpha releases: they are being heavily updated to work with the newest Seaside (3.0a5 currently) and to sort out compatibility with different platforms. With that said, though, all of the Pier tests and all but four of the Magritte tests pass, so give them a try. You'll need the B130 development build of VA Smalltalk.

The original Pharo sources for these Seaside 3.0-compatible versions are available: pier repository magritte repository. Again, these packages are still in flux. They're now built on top of the same Grease portability layer as Seaside 3.0a5; I'd encourage interested platforms to give them a try and see how easily portable they are.

Monday, 19 October 2009

Magritte for VASt

Over the past month or so I have been doing some work for National Spaarfonds, including porting Magritte to VA Smalltalk. They are generously offering this work back to the community and I am happy to announce that I have just uploaded the first version of the VASt Magritte port to VAStGoodies.

You'll want to start with the VASt 8.0.1 [128] developer preview image and then load the configuration map from VAStGoodies. There are currently four failing tests: three caused (I think) by method inlining and one by differences in error handling behaviour. I haven't yet determined what (if anything) can be done about these.

A version of Pier ported to Seaside 3.0 and VASt won't be far behind but I have some more cleanup to do first in order to make sure it loads into a clean image.

Friday, 9 October 2009

Vienna or bust

I've been wanting to visit Vienna at least since my arrival in Germany last year —particularly after trying to learn the Viennese Waltz in my ballroom dancing class—but could never convince anyone to come along. Thanks largely to an invitation from Bernhard Pieber, I finally made the trip.
And I've been busy: as well as trying to take in Viennese culture and some of the sights, I also presented an introduction to Seaside at mobilkom austria and had the chance to meet some local Smalltalk and Seaside developers over dinner and beer. It seems to take the arrival of a foreigner to prompt the locals to get together (no surprise: the same is true in my home town!).
Vienna is much as I imagined: a real "European" city with beautiful old architecture everywhere you look. A visit to the Kunsthistorisches Museum would have been worth it just to see the building itself, but I was also struck by a couple of sculptures and by several paintings by Pieter Bruegel and Lucas I. van Valckenborch. It's interesting that I liked both artists since it turns out that van Valckenborch studied under Bruegel and Bruegel's Tower of Babel, which was displayed in the museum, was the model for van Valckenborch's version, which hangs in the Louvre.
First thing one morning, I walked to the Spanish Riding School to watch the exercises of the Lipizzaner Stallions. I thought Lipizzans were all grays but apparently that is simply the dominant and selected gene and it is tradition to keep at least one bay at the school at all times. The horses and their riders are impressively controlled and the Winter Riding School itself is astounding too: is there anywhere else in the world where you can ride a horse on a bed of sawdust, surrounded by two levels of marble balconies and lit by enormous chandeliers?

We saw a big band concert at a local jazz club and got standing-room tickets to a sold-out orchestral performance with Lang Lang (郎朗) on the piano and Zubin Mehta conducting. I would have gladly paid the extra for a seat if one was available, but these €6 standing tickets are a wonderful idea to make the symphony more accessible. The only disappointment was the sound in the concert hall, which seemed somewhat flat, probably due to our location under the balcony.

Schloss Schönbrunn (the former imperial palace) is also worth a visit. The expansive gardens are enjoyed in the mornings by walkers and runners and, despite the tourist hoards, the Gloriette perched on its hilltop behind the palace, creates a striking image. The palace museum was interesting too: among other things, I discovered that Marie Antoinette was Austrian (she, like most of her 10 sisters, were married to foreign royalty for political reasons).

Like I said, I've been busy.

Thursday, 8 October 2009

Seaside 3.0a5

The fifth alpha release of Seaside 3.0 is out. Check out the release announcement. It's looking like Cincom, Instantiations, and GemStone will all include this version in their next upcoming releases; Pharo users can use the Seaside Builder to generate a load script. Squeak users will probably have success using the Builder as well, but we are looking for one or more people to actively test and maintain a Squeak port. Get in touch if you're interested.

We're expecting this to be the final alpha release, so now is the time to actually send in any bug reports you've been sitting on.

Monday, 28 September 2009

Seaside at Amsterdam.rb

I'm just back from the monthly meeting of the Amsterdam Ruby User Group at De Bekeerde Suster in Amsterdam. The cheeseburger was delicious, though I was slightly offended when the guy who brought the food said, "Let me guess... you want ketchup?". It's not like I'd even said a word; how could he have decided I was north american? :)

We talked about their plans for the RubyEnRails conference coming up on October 30 and shared some of our experiences from ESUG conferences. There was quite a bit of discussion around how to encourage programmers to give lightning talks. I also took a few minutes to give an overview of Seaside. Everyone there was quite interested in Smalltalk and the level of awareness was already quite high. We had some interesting discussions of the language's history as well as its benefits and limitations. In the end that made up a good part of the evening.

Thanks for the warm welcome.

Friday, 18 September 2009

Smalltalk on AppEngine

Torsten posted a link to the announcement of GwtSmalltalk, which compiles to JavaScript and runs on top Google Web Toolkit and, thus, AppEngine. This is interesting coming only weeks after Avi's announcement of Clamato... there's clearly some interest around combining Smalltalk and JavaScript at the moment.

You can try out a demo. Hint, to create new instances you need to use:

Kernel instanceOf:

Monday, 7 September 2009

ESUG 2009 wrapup

Well, as I recover from another busy but very fruitful ESUG, it's interesting to look at what made it such an enjoyable conference. There is a real sense of community there that makes it a pleasure to attend every year.

There were some interesting presentations but, for me anyway, the true value was in the networking and personal conversations. I made some interesting new contacts, renewed some old ones, and rounded up some consulting work that will keep me in Europe for a little bit longer. The organizers made some last minute changes this year to help encourage these sorts of meetings and I hope we will see more of this sort of thing next year.

My overall impression is that these are interesting times for the world of Smalltalk. There seems to be a sense of common purpose and renewed life at the moment and it's satisfying to think that Seaside has played at least a small role in making that happen. I'm not sure what lies ahead, but I think opportunities will arise that we need to take advantage of. I'm also not yet sure exactly what part I want to play but I'm starting to think seriously about it.

My tutorial with Lukas was well received. As usual, we didn't quite manage to get through all of our material, but it went pretty smoothly and I think the thirty-or-so participants all picked up some new tricks to use in their Seaside projects.

The Seaside sprint was very successful, even though we didn't quite meet our target of finishing a 3.0 beta release. Keep an eye out for an announcement when we do get it done.

I'll close with links to a few people's photos:
Hope to see you all next year in Barcelona!