Thursday, 22 April 2010
Upcoming Smalltalk events
[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.
Thursday, 15 April 2010
The penny drops
Of pennies, the author says "few rich countries have a coin so worthless", which I find a bit strange since all of Europe has a penny... I guess it's not technically "so worthless" since it's worth 1.5 US cents, but in relative terms it amounts to more or less the same thing. They also have a 2c coin, which is curious in the eyes of a North American.
Australia, though, got rid of its penny a while back and now rounds all prices to the nearest 5 cents. As a result, I recall seeing a guy with a Ferrari right smack in the middle of the Nullarbor, hundreds of kilometers from the next gas station, making sure to get the "perfect" pump that would give him his two cents of "free" rounded-off gasoline.
Interestingly, Europe (including the UK) and Australia both have 5,10,20,50 cent (or pence) coins instead of the 5,10,25 cent coins used in North America. When giving change, the North American system requires more coins in almost every case. Having a 2c coin gives Europe another edge here and dropping the one- and two-cent coins put Australia firmly in the lead for fewest coins required on average.
Of course the sub-five-cent coins are rarely used in Europe anyway because sales tax is already included in the prices. This means your €3.95 sandwich will get you 5 cents (one coin) in change while your $3.99+7% tax sandwich will put 73 cents (7 coins) in your pocket. Simply moving to include the tax in prices would significantly reduce demand for the US penny.
Monday, 5 April 2010
From the things-I-did-on-Saturday dept...
Saturday I continued what seems to have become a personal weekend tradition of running along the banks of the Thames. I've been trying to run different parts each week and I may actually make it a goal to work my way along the river, though I'm not sure what to pick as start and end points (maybe the edges of Zone 6 would be a good start).
This weekend I ran from Putney Bridge upstream to Kew Bridge, a little farther than the finish line for the annual Oxford and Cambridge Boat Race, which it turns out starts in Putney and was also being held that afternoon. This 6.8km race started in 1829 and has been held annually on the Thames tideway since 1856. People here take this event seriously, apparently, with 250,000 people arriving to watch it live from the riverbanks and nearly 8 million people watching it on television.
London graced us with pretty nice weather for the day and people were out enjoying BBQs and beer. I had to enjoy by watching since I don't normally run with a wallet, but I did make it back to Putney on the tube in time to catch the start of the race. And that's about all you can catch because those guys move fast and are out of sight pretty quickly. In the end, Cambridge held strong on the outside of a long bend in the river and managed to score a narrow come-from-behind victory near the end.
I also popped into town to catch the final evening of Waiting for Godot at the Theatre Royal Haymarket. I was curious to see this production—with Sir Ian McKellen opposite Sir Patrick Stewart—last summer, and was delighted to find it had been remounted, albeit with Stewart replaced by Roger Rees. I found the scenes between Vladimir and Estragon quite engaging (McKellen is marvelous and the pair have excellent comic timing) but the scenes with Pozzo just seemed to drag. I've seen the play once before but can't recall the event well enough to know whether this is a script problem or one unique to this production. Apparently they're taking the show on a world tour; if you can handle this 1940's take on a "show about nothing", I'd recommend it, even just for a chance to catch Ian McKellen in a more intimate setting than the supposedly-upcoming Hobbit movies.
Friday, 19 February 2010
My new job
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. :)
Wednesday, 17 February 2010
Ceremonies and sun
What a beautiful day: the sun is out, the sky is blue, and the temperature is comfortably mild. I went for a run this afternoon and there was a crisp view of the city and the North Shore mountains. Over the next few days, viewers of the snowboarding events should catch a glimpse of the cityscape that pushed the mountain forward as a venue despite the risk of lackluster snow. Maëlle Ricker just secured Canada's second gold medal and, jogging my way along the neighbourhood's streets, I have never seen so many Canadian flags adorning cars, houses, and shop windows.
The big event seems to be running well. I've heard numerous complaints about this and that: what should have been done differently, where the lineups are too long, and so on. Events have been postponed and some tickets refunded but I guess that must be pretty common for the winter Olympics (the effects of weather are a major difference vs. the summer games). But from my perspective, the whole thing is a nightmarish logistical balancing act and the results have been acceptably smooth so far.
Just over an hour until the ceremonies |
We watched the opening ceremonies on TV at the (relatively quiet) German Deutsches Haus downtown. I was initially disappointed. Like most, I cringed through the national anthem and the weird performance by Bryan Adams and Nelly Furtado, singing the same phrase over and over. Despite being well executed, the segment with the boy flying over the wheat fields was random and, frankly, long. And overall the show just didn't feel "big", particularly after the massive event put on in Beijing. The "hydraulic malfunction" at the end was disappointing and I was spared Wayne Gretzky's awkward slow-truck-ride to the second cauldron because German media cut away after the first one was lit.
But numerous people around me said they liked the Vancouver opening better than Beijing's, so I looked at it again. Watching highlights later in the evening, I started realizing how visually impressive some of the scenes were: the mountains, the trees, the streaking time-lapsed tail lights on the floor beneath the inline skaters. Canada's diversity—both cultural and geographic—was well represented. The use of the audience as a projection surface was an interesting touch and the blowing wales were surprising and effective. In the end, although I would have liked less cheesy "wire flying" and more variety in projection effects, I have to admit the performance was quite beautiful in a typically-Canadian understated kind of way.
After the ceremonies, we crossed the road to the German Fan Fest, where we were entertained by a lively cover band from Thüringen. The beer is pretty pricey at over $8 and the crowd was quite a bit younger than us but we had a good time. The German-style beer garden table layout, combined (I assume) with BC-style fire and liquor regulations, means the maximum occupancy is a tad low, so show up early if you don't want to wait in line.
The trip home after 1am was completely painless: there were night buses lining Howe St. and sometimes driving three abreast. Like I said: pretty smooth.
Thursday, 11 February 2010
Dress rehearsals are over, let the games begin!
It's hard to believe it's been a year and a half since my experiences at the Beijing Olympics and it's curious to find myself in an Olympic city—not coincidentally, but largely due to circumstance—for the second consecutive time.
I wandered downtown today after collecting my event tickets, watching final preparations underway: people pressure-washing, filling flower beds, cleaning windows, and just generally putting the final touches on months (in some cases, years) of work. Traffic was sparse and the yellow-jacketed traffic officers, though numerous, were easily outnumbered by blue-jacketed volunteers.
Media coverage here has droned on and on about the lack of snow, the probability of rain, the chance of lasting debt, and fact that Vancouver hotels are not sold out. While I desperately wish the media would drop the cries for drama and focus more on news, I guess these are the normal concerns of any host: what if the party sucks? what if nobody comes? But downtown, people are just carrying on getting ready.
It's interesting to note how similar one Olympics is to the next. All the details have been tweaked but the structure and rhythms are the same. The accreditations are the same; the security screening tents are the same; the timelines and schedules are the same. This time it's my German language skills and European citizenship that are securing me tickets, but the collection procedures are the same. And of course there must be stacks of procedure manuals handed from one organizing committee to the next; it would be madness to re-invent it all. More than that, though, it's mostly the same people putting on every Olympic Games: I'm going out for drinks here with many of the people I knew in Beijing, and most are carrying on next to London or other big worldwide events.
I only began to sense the excitement and anticipation here at the end of last week (probably more than a month later than in China), but it's building now. And one major difference here is the number of free concerts and other events. The Richmond O-Zone, Heineken House, Atlantic Canada House, Ontario House, and Vancouver LiveCity sites are all high on my list for entertainment, but you can check out the City Caucus Free Events Guide for many other options.
The torch will be traveling around Vancouver on Thursday and Friday. Check out the route map if you want to catch a glimpse. If you'd like to advertise your willingness to help out the tourists, you can pick up Ask Me buttons in 24 languages at the Vancouver Public Library downtown.
And finally, a cleanly-organized resource I found helpful last time for up to date event schedules, competitor information, and medal counts is Google's Olympic portal.
Saturday, 30 January 2010
Easing compatibility with Grease
.jpg)
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.