tag:blogger.com,1999:blog-76645972748071006372024-03-29T13:17:33.192+00:00Kaffee und: [Kuchen]Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.comBlogger44125tag:blogger.com,1999:blog-7664597274807100637.post-64622908902351289812014-10-19T13:53:00.000+01:002014-10-19T13:53:49.800+01:00Declaring Seaside sub-components in the #children method<div>
People often ask why they need to define the <span style="font-family: "Courier New",Courier,monospace;">#children</span> method on Seaside components. I wrote a <a href="http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.seaside/29231" rel="nofollow" target="_blank">long email</a> today to the mailing list explaining how <span style="font-family: "Courier New",Courier,monospace;">#children</span> 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.<span style="font-family: inherit;"> </span><br />
<br />
<span style="font-family: inherit;">When you render a child component you are <i>implicitly</i> defining a
tree of components. <b><span style="font-family: "Courier New",Courier,monospace;">#children</span> simply allows the framework to walk the
component tree <i>explicitly</i></b>. The reasons for needing to walk the tree
explicitly have changed over time, which is part of the reason for the
confusion.</span></div>
<div>
<br />
<span style="font-family: inherit;">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 <span style="font-family: "Courier New",Courier,monospace;">#children</span> 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).</span><br />
<br />
<span style="font-family: inherit;">If you look in
the image for users of <span style="font-family: "Courier New",Courier,monospace;">WAVisiblePresenterGuide</span> and <span style="font-family: "Courier New",Courier,monospace;">WAAllPresenterGuide</span>,
you will see the current cases where we need to traverse the tree:</span></div>
<ol>
<li><span style="font-family: inherit;">Calling <span style="font-family: "Courier New",Courier,monospace;">#updateStates:</span> for snapshotting/backtracking</span></li>
<li><span style="font-family: inherit;">Calling <span style="font-family: "Courier New",Courier,monospace;">#initialRequest:</span> when a new session is started</span></li>
<li><span style="font-family: inherit;">Executing tasks (they need to execute outside of the render phase to make sure the render phase does not have side effects)</span></li>
<li><span style="font-family: inherit;">Calling <span style="font-family: "Courier New",Courier,monospace;">#updateRoot:</span></span></li>
<li><span style="font-family: inherit;">Calling <span style="font-family: "Courier New",Courier,monospace;">#updateUrl:</span></span></li>
<li><span style="font-family: inherit;">Displaying Halos for each component in development mode</span></li>
<li><span style="font-family: inherit;">Generating the navigation path in <span style="font-family: "Courier New",Courier,monospace;">WATree</span></span></li>
<li><span style="font-family: inherit;">Detecting which components are visible/active to support delegation (<span style="font-family: "Courier New",Courier,monospace;">#call:</span>/<span style="font-family: "Courier New",Courier,monospace;">#show:</span>)</span></li>
</ol>
<span style="font-family: inherit;">Keep in mind that <span style="font-family: inherit;">basically</span> all these things happen <i>before</i> rendering, so <span style="font-family: inherit;">if you create new components <span style="font-family: inherit;">in<span style="font-family: inherit;">side</span></span> <span style="font-family: "Courier New",Courier,monospace;">#renderContentOn:</span> they<span style="font-family: inherit;">'ll miss <span style="font-family: inherit;">out<span style="font-family: inherit;">: </span></span></span>you should<span style="font-family: inherit;"> try to </span></span><b>creat<span style="font-family: inherit;">e</span> your sub-components <span style="font-family: inherit;">either when your component is initialized or </span></b></span><span style="font-family: inherit;"><span style="font-family: inherit;"><b><span style="font-family: inherit;"><span style="font-family: inherit;">during a callback</span></span></b>. </span>If
your child component doesn't rely on any of <span style="font-family: inherit;">the above</span> (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 <span style="font-family: "Courier New",Courier,monospace;">#children</span>.
But keep in mind that:</span><br />
<ul>
<li><span style="font-family: inherit;"><span style="font-family: inherit;">t</span>he framework may change in the future to traverse the tree for other reasons;</span></li>
<li><span style="font-family: inherit;"><span style="font-family: inherit;">a</span>dd-ons may depend on being able to walk the tree for other reasons; and</span></li>
<li><span style="font-family: inherit;"><span style="font-family: inherit;">i</span>t'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 d<span style="font-family: inherit;">o.</span></span><span style="font-family: inherit;"> </span></li>
</ul>
<span style="font-family: inherit;">Finally, <b><span style="font-family: inherit;">c</span>omponents are stateful by
definition</b>, so if you don't feel the need to persist your component
between render phases, <a href="http://blog.fitzell.ca/2009/05/when-to-use-seaside-component.html" target="_blank"><span style="font-family: inherit;">it<span style="font-family: inherit;"> probably shouldn't be a component</span></span></a>. <b><span style="font-family: inherit;">For</span> stateless rendering you'<span style="font-family: inherit;">re</span> better to subclass <span style="font-family: "Courier New",Courier,monospace;">
WAPainter</span> directly or even <span style="font-family: "Courier New",Courier,monospace;">WABrush</span></b>: 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 <span style="font-family: inherit;">using</span> on things that <span style="font-family: inherit;">depend</span> on <span style="font-family: "Courier New",Courier,monospace;">#children</span>.</span>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com83tag:blogger.com,1999:blog-7664597274807100637.post-54254454108076303982010-10-25T12:21:00.005+01:002010-10-25T14:02:53.756+01:00More wolf packs<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.xpdays.de/twiki/bin/view/XPDays2010/WolfPackProgramming"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 100px;" src="http://2.bp.blogspot.com/_EoQpw9D2JLc/TMV_t4zHY0I/AAAAAAAACwc/3dH2Aetn1l8/s400/XPDays+Speaker.png" alt="" id="BLOGGER_PHOTO_ID_5531968143612142402" border="0" /></a>Everything is organized. Helge Nowak and I will be running a Wolf Pack Programming <a href="http://www.xpdays.de/twiki/bin/view/XPDays2010/WolfPackProgramming">workshop</a> at <a href="http://www.xpdays.de/">XPDays in Hamburg</a>. The workshop is on Thursday, November 25th and runs from 9:30am to 12:30pm.</p><p>Almost simultaneously—yes, we were double booked!—Jason Ayers and Michael Lucas-Smith will be running their own workshop at <a href="http://www.xpday.net/Xpday2010/">XPDays Benelux</a>, in Eindhoven, the Netherlands. Theirs will get under way at 3:30pm.</p><p>Last week, <a href="http://www.agical.com/">Agical</a> hosted a workshop in Stockholm as part of their monthly <a href="http://agical.com/events/geeknight.html">Geek Nights</a>. Attendees included Scrum's <a href="http://scrum.jeffsutherland.com/">Jeff Sutherland</a> 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.</p>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com4tag:blogger.com,1999:blog-7664597274807100637.post-66035482421623090332010-07-02T21:03:00.007+01:002010-07-03T00:47:55.899+01:00Seaside 3 "Release Candidate"You could say it's been a long time coming.<br /><br /><a href="http://seaside.st/">Seaside</a> 3.0 began ambitiously and grew from there. We began (at least <span style="font-style: italic;">I</span> 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 <a href="http://jquery.com/">jQuery</a> support, and, oh, did you hear there's a <a href="http://book.seaside.st/">book</a>?<br /><br />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.<br /><br />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 <a href="http://blog.fitzell.ca/2010/06/berlin-product-management-and-smalltalk.html">alluded last month</a> to a conference session I attended, in which somebody made the statement that<br /><blockquote>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.<br /></blockquote>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).<br /><br />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:<br /><ul><li>When your wonderful, dedicated users start putting your code into production, they're telling you it's ready to be released. Listen to them.</li><li>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.</li><li>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.<br /></li></ul>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.<br /><br />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 <a href="http://code.google.com/p/seaside/issues/list">let us know</a> 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.<br /><br />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 <a href="http://cslondon2010.eventbrite.com/">Camp Smalltalk London</a> or <a href="http://www.esug.org/Conferences/2010">ESUG</a> and tell me about it.<br /><br />Ok, ok. You've waited long enough—thank you. Here's the <a href="http://seaside.st/distributions/Seaside-3.0rc.app.zip">3.0RC one-click</a> image, based on <a href="http://www.pharo-project.org/">Pharo</a> 1.1 RC3 and Grease 1.0RC (<a href="http://seaside.st/distributions/Seaside-3.0rc.zip">just the image</a> here). Dale has promised an updated <a href="http://code.google.com/p/metacello/">Metacello</a> definition soon. Enjoy!Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com3tag:blogger.com,1999:blog-7664597274807100637.post-24689798464930546712010-06-12T01:00:00.000+01:002010-06-11T16:58:59.768+01:00This week's events<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EoQpw9D2JLc/TBISh4QuMiI/AAAAAAAACtg/D6q5xXv5XFk/s1600/IMG00057-20100609-2051.jpg"><img style="cursor: pointer; width: 240px; height: 320px;" src="http://2.bp.blogspot.com/_EoQpw9D2JLc/TBISh4QuMiI/AAAAAAAACtg/D6q5xXv5XFk/s320/IMG00057-20100609-2051.jpg" alt="" id="BLOGGER_PHOTO_ID_5481464069710819874" border="0" /></a><br />The <a href="http://vastforum2010.eventbrite.com/">VASt Forum</a> 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 <a href="http://cslondon2010.eventbrite.com/">Camp Smalltalk London</a>, seems to be a very good indication of the enthusiasm and growth in the Smalltalk community these days.<br /><br />Attendance at the <a href="http://epicenter.ie/2010.html">Irish Software Show</a> 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 <a href="http://wicket.apache.org/">Wicket</a>, which I had never looked at before; I was quite surprised to see how similar it is to <a href="http://seaside.st/">Seaside</a> in some respects and how similarly <a href="http://www.mysticcoders.com/">Andrew Lombardi</a>, who was giving the presentation, described the framework's benefits and his joy when using it.<br /><br />The <a href="http://epicenter.ie/2010.html?zone_id=20&mode=agenda&session=152#session">web framework panel discussion</a> had about 30 people watching and we had some good discussion there. Attendance at my <a href="http://epicenter.ie/2010.html?zone_id=21&mode=agenda&session=158#session">Seaside talk</a> 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.<br /><br />Other interesting highlights include <a href="http://www.push2cloud.com/">Kevin Noonan</a>'s talk on <a href="http://clojure.org/">Clojure</a> (seq's are much like Smalltalk's collection protocol but available on more classes), <a href="http://ambientideas.com/blog">Matthew McCullough</a>'s presentation on Java debugging tools (interesting to see their progress and a also few ideas to look at ourselves), and <a href="http://www.augusttechgroup.com/">Tim Berglund</a>'s overview of <a href="http://gaelyk.appspot.com/">Gaelyk</a> (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 <a href="http://www.odessaclub.ie/">Odessa Club</a> last night was great and we had a number of good discussions there as well.<br /><br />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!Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com1tag:blogger.com,1999:blog-7664597274807100637.post-87931547130354591602010-06-06T23:40:00.001+01:002010-06-07T08:51:14.669+01:00Berlin, product management, and Smalltalk eventsBeach 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.<br /><br />Thanks to the official un-organizers of <a href="http://www.productcampberlin.org/">Product Camp Berlin</a>, yesterday was a very successful day of discussions and networking. Some interesting points for me were:<br /><ul><li>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.</li><li>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.</li><li>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.</li><li>It sounds like there are some interesting products on the way from Nokia.</li><li>This is my second conference since I actively started using <a href="http://twitter.com/jfitzell">twitter</a> — 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.<br /></li></ul>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 <a href="http://epicenter.ie/">epicenter</a> 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 <a href="http://vastforum2010.eventbrite.com/">VASt Forum</a>.<br /><br />[<span style="font-weight: bold; font-style: italic;">update</span>: I've been offered 10 discount tickets for epicenter to give away; <a href="http://epicenter.ie/2010_Julian_Fitzell_Page">details here</a> if you'd like to come see me in Dublin this week.]<br /><br />For those wanting to attend the <a href="http://cslondon2010.eventbrite.com/">Camp Smalltalk London</a> 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.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com16tag:blogger.com,1999:blog-7664597274807100637.post-79559618854307133332010-05-29T23:12:00.003+01:002010-05-29T23:19:46.531+01:00Camp Smalltalk is popularWhen the <a href="http://www.uksmalltalk.org/">UK Smalltalk User Group</a> started planning the <a href="http://cslondon2010.eventbrite.com/">Camp Smalltalk London</a> event a few weeks ago, we imagined we might get 20 people. After only four days, <a href="http://www.uksmalltalk.org/2010/05/camp-smalltalk-filling-up.html">30 have signed up</a> 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!<br /><br />If you're still interested in attending, please do us a favour and add yourself to the waiting list at <a href="http://cslondon2010.eventbrite.com/">cslondon2010.eventbrite.com</a>.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com1tag:blogger.com,1999:blog-7664597274807100637.post-37904137448345524552010-04-22T22:52:00.005+01:002010-04-25T23:28:47.255+01:00Upcoming Smalltalk eventsThere are a number of Smalltalk events coming up in Europe over the next few months (Joachim <a href="http://joachimtuchel.wordpress.com/2010/04/09/2010-the-year-of-smalltalk-events/">posted about some of them</a> a little while ago).<br /><br /><span style="font-weight: bold; font-style: italic;">[edited to add:]</span> I forgot to mention that I recorded another <a href="http://industry-misinterpretations.cincomsmalltalk.com/">Industry Misinterpretations</a> podcast with James Robertson and Michael Lucas Smith last week. It's a two-part episode talking about cross-platform Smalltalk development. The <a href="http://www.cincomsmalltalk.com/audio/2010/industry_misinterpretations184.m4a">audio for the first part</a> is available now; and (if I'm lucky) <a href="http://www.cincomsmalltalk.com/audio/2010/industry_misinterpretations185.m4a">this link should be the second part</a> once it is posted.<br /><br />The <a href="http://www.uksmalltalk.org/">UK Smalltalk User Group</a> is up and running again and the next meeting will be at 6:30pm this Monday, April 26 at the <a href="http://www.fullers.co.uk/rte.asp?id=4&itemid=68&task=View">Counting House</a>.<br /><br /><span style="font-style: italic;"><span style="font-weight: bold;">[added]</span></span> Markus Gälli pointed me to <a href="http://choose.s-i.ch/events/2010-gittinger">a talk by Claus Gittinger</a>, creator of Smalltalk/X, on Flow-Based Programming. This will be in Zurich on April 28.<br /><br />On May 4, Cincom is planning to host an experiment on "Wolfpack Programming" at the <a href="http://xpday-london.editme.com/eXtremeTuesdayClub">eXtreme Tuesday Club</a>'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 <a href="http://xpday-london.editme.com/XTC20100504">May 4 meeting page</a> shortly—please post your name there if you're coming.<br /><br />May 16-19 is the <a href="http://www.spaconference.org/spa2010/index.php">SPA 2010 conference</a> 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.<br /><br />June 8 is the <a href="http://vastforum2010.eventbrite.com/">VA Smalltalk Forum Europe 2010</a> 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.<br /><br />Also starting June 8 and running until the 11th is <a href="http://epicenter.ie/">epicenter 2010: The Irish Software Show</a> 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.<br /><br />On June 10, the <a href="http://colstme.selfish.org/events/stammtisch03">3rd Smalltalk Stammtisch in Köln</a> (Cologne) is happening. Ich möchte gerne hingehen, aber das ist nicht möglich als ich nach Dublin fliegen muß.<br /><br />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.<br /><br />Then of course there's the annual <a href="http://www.esug.org/Conferences/2010">ESUG 2010</a>, in Barcelona this year from September 11 to 17. This has been one of my favourite events over the last few years.<br /><br />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.<br /><br />In the meantime, if I missed any events, please pass them along. Also, if you can think of conferences or events where Smalltalk <span style="font-style: italic;">should</span> 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.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com2tag:blogger.com,1999:blog-7664597274807100637.post-41336485134030826092010-02-19T08:39:00.005+00:002010-02-19T09:19:06.191+00:00My new jobI'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.<br /><br />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.<br /><br />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. :)Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com8tag:blogger.com,1999:blog-7664597274807100637.post-52013961602154985642010-01-30T08:04:00.006+00:002010-01-30T08:35:36.942+00:00Easing compatibility with Grease<span style="text-align: right;"><img src="http://lh4.ggpht.com/_EoQpw9D2JLc/S2PqkKE44wI/AAAAAAAACkc/4B3a9iPSmRQ/s400/oilcan-sxc.hu-DarkSide%20%28whitened%29.jpg" style="border: 0px"/><p><a href="http://www.sxc.hu/photo/808789" style="font-size: 6pt;">Photo by DarkSide, sxc.hu</a></p></span><p>In December, I gave a <a href="http://www.slideshare.net/jfitzell/seaside-portability">presentation on portability</a> to the <a href="http://www.nycsmalltalk.org/">NYC Smalltalk</a> group. <a href="http://seaside.st/">Seaside</a> 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.</p><p>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.</p><p>So what exactly is Grease?<br /></p><ul><li><span style="font-weight: bold;">Grease enhances the ANSI Smalltalk standard.</span> 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.</li><li><span style="font-weight: bold;">Grease defines expected APIs with unit tests.</span> Platforms can quickly determine if they are compatible and users can examine the tests to determine <span style="font-style: italic;">exactly</span> which behaviours they can count on.</li><li><span style="font-weight: bold;">Grease takes a pragmatic approach to compatibility.</span> 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.</li><li><span style="font-weight: bold;">Grease tries to be concise and consistent.</span> 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.</li><li><span style="font-weight: bold;">Grease does not try to solve all problems.</span> 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).</li><li><span style="font-weight: bold;">Grease is widely adopted.</span> 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.</li></ul><p>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 <span style="font-style: italic;">can</span> write and Slime as defining what you <span style="font-style: italic;">can’t</span>. 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!).</p><p>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.</p><p>The Grease packages can be found in the <a href="http://www.squeaksource.com/Seaside30.html">Seaside 3.0 repository</a> or through your vendor's standard code distribution mechanism.</p>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com4tag:blogger.com,1999:blog-7664597274807100637.post-85715799484668507582009-12-27T12:23:00.002+00:002012-02-28T00:19:03.118+00:00Boston Roundup<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-W3n2fc6mkaA/SzfKPKmhM4I/AAAAAAAADOA/wLclWuHOb50/s1600/IMG_4120.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://1.bp.blogspot.com/-W3n2fc6mkaA/SzfKPKmhM4I/AAAAAAAADOA/wLclWuHOb50/s400/IMG_4120.JPG" width="400" /></a></div>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.<br />
<table style="width: auto;"><tbody>
<tr><td><a href="http://www.flickr.com/photos/stevennoble/sets/72157622951759149/"><img src="http://farm3.static.flickr.com/2582/4217659472_2aa0c5ac3d_m.jpg" /></a></td></tr>
<tr><td style="font-family: arial,sans-serif; font-size: 11px; text-align: right;">From <a href="http://www.flickr.com/photos/stevennoble/sets/72157622951759149/">Boston '09 (Steven Noble)</a></td></tr>
</tbody></table>I was <a href="http://blog.fitzell.ca/2009/12/training-in-boston.html">in Boston a few weeks ago</a> 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 <a href="http://www.thefreedomtrail.org/">Freedom Trail</a> back through the North End, Boston's fabulous Little Italy.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-4oVyTcke2M4/SzfKP5cVlQI/AAAAAAAADOI/2fYqjkGYQto/s1600/IMG_4123.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-4oVyTcke2M4/SzfKP5cVlQI/AAAAAAAADOI/2fYqjkGYQto/s320/IMG_4123.JPG" width="320" /></a></div>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.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-r70zqiyBT-M/SzfKTxcmA2I/AAAAAAAADOw/o_FjjDVMnM4/s1600/IMG_4136.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-r70zqiyBT-M/SzfKTxcmA2I/AAAAAAAADOw/o_FjjDVMnM4/s320/IMG_4136.JPG" width="320" /></a></div>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.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-YF1eSuNTjFk/SzfKMkA7DsI/AAAAAAAADNo/yljYf9vskbI/s1600/IMG_4107.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-YF1eSuNTjFk/SzfKMkA7DsI/AAAAAAAADNo/yljYf9vskbI/s320/IMG_4107.JPG" width="320" /></a></div>On Sunday night, I went for dinner with Carl Gundel and Chris Norton, two Boston-area one-time Squeakers. <a href="http://blog.fitzell.ca/2009/10/vienna-or-bust.html">As in Vienna</a>, 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.<br />
Kudos to <a href="http://www.yelp.com/">Yelp</a> for the recommendation of <a href="http://www.barlola.com/">Bar Lola</a> and to <a href="http://www.zagat.com/">Zagat</a> for the pointer to delicious Italian food and friendly service at <a href="http://www.carmenboston.com/">Carmen</a>. Oh, and I loved the <a href="http://equalexchangecafe.com/">Equal Exchange Cafe</a> — wish it was in Vancouver.<br />
As usual, click any of the photos above to see the others I posted. Or check out <a href="http://www.flickr.com/photos/stevennoble/sets/72157622951759149/">Steven's photos from the trip</a>.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com13tag:blogger.com,1999:blog-7664597274807100637.post-10115752128043721282009-12-02T18:31:00.005+00:002009-12-02T18:41:55.417+00:00New York presentation confirmedThe details for <a href="http://www.nycsmalltalk.org/2009/12/visit-by-julian-fitzell-co-creator-of-seaside/">my talk in New York</a> have been confirmed. We'll be at the Suite LLC offices (<a href="http://www.nycsmalltalk.org/directions/">directions</a>) on Thursday, December 10; there's an open house at 6:30pm and the presentation is at 7:00 (drinks afterwards).<br /><br />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:<br /><blockquote>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.</blockquote>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com16tag:blogger.com,1999:blog-7664597274807100637.post-78119525783913589312009-11-24T08:06:00.004+00:002009-11-24T08:44:43.441+00:00Boston, NY, RaleighI've confirmed a December trip to the US East Coast. In Boston, I'm attending a <a href="http://www.pragmaticmarketing.com/seminars/practical-product-management">product management seminar</a> put on by <a href="http://www.pragmaticmarketing.com/">Pragmatic Marketing</a>, meeting up with a few Smalltalkers from the area, and planning to pop in on the <a href="http://bostonrb.org/">Boston Ruby group</a>'s <a href="http://bostonrb.org/events/113">monthly meeting</a> if I can squeeze it in.<br /><br />On Thursday, December 10, it looks like I'll be giving a presentation at the <a href="http://www.nycsmalltalk.org/">NYC Smalltalk</a> 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 <a href="http://www.bhphotovideo.com/">shopping</a>.<br /><br />Finally, I'm making my way down to visit the <a href="http://www.instantiations.com/VAST/prod/vast.html">VA Smalltalk</a> 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 <a href="http://seaside.st/">Seaside</a> tutorial for some of the engineers while I'm there.<br /><br />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.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com13tag:blogger.com,1999:blog-7664597274807100637.post-73919331935402836252009-11-20T22:07:00.002+00:002009-11-20T22:15:02.354+00:00SIXX port for VAStI just published an <a href="http://vastgoodies.com/maps/SIXX">initial port</a> of <a href="http://www.mars.dti.ne.jp/%7Eumejava/smalltalk/sixx/index.html">SIXX</a> to <a href="http://vastgoodies.com/">VAStGoodies</a>. Most of the tests are passing and I'll push the minimal changes I made back upstream for integration. Just like the <a href="http://blog.fitzell.ca/2009/11/pier-for-vast.html">Pier</a> and <a href="http://blog.fitzell.ca/2009/10/magritte-for-vast.html">Magritte</a> ports I recently finished, this one was requested and released back to the community by <a href="http://www.nationaalspaarfonds.nl/">Nationaal Spaarfonds</a>.<br /><br />The plan is to see if I can use SIXX for Pier persistency... that'll be the next step.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com15tag:blogger.com,1999:blog-7664597274807100637.post-73615605838268994592009-11-03T06:25:00.003+00:002009-11-03T06:52:04.376+00:00Pier for VAStI <a href="http://blog.fitzell.ca/2009/10/magritte-for-vast.html">mentioned</a> a couple of weeks ago that I had uploaded an initial <a href="http://vastgoodies.com/maps/Magritte">port of Magritte</a> for <a href="http://www.instantiations.com/VAST/prod/vast.html">VA Smalltalk</a>. I've spent a couple of days since then (again courtesy of <a href="http://nationaalspaarfonds.nl/">Nationaal Spaarfonds</a>) getting the <a href="http://vastgoodies.com/maps/Pier">Pier port</a> 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.<div><br /></div><div>Consider these alpha releases: they are being heavily updated to work with the newest <a href="http://seaside.st/">Seaside</a> (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 <a href="http://www2.instantiations.com/VAST/files/lastBuild/mostRecentBuild.html">B130 development build of VA Smalltalk</a>.</div><div><br /></div><div>The original <a href="http://www.pharo-project.org/">Pharo</a> sources for these Seaside 3.0-compatible versions are available: <a href="http://source.lukas-renggli.ch/pier2/">pier repository</a> <a href="http://source.lukas-renggli.ch/magritte2/">magritte repository</a>. 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.</div>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com7tag:blogger.com,1999:blog-7664597274807100637.post-85618253668137760332009-10-19T01:28:00.004+01:002009-10-19T16:43:35.053+01:00Magritte for VAStOver the past month or so I have been doing some work for <a href="http://www.nationaalspaarfonds.nl/">National Spaarfonds</a>, including porting <a href="http://www.lukas-renggli.ch/smalltalk/magritte">Magritte</a> to <a href="http://www.instantiations.com/VAST/prod/vast.html">VA Smalltalk</a>. 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 <a href="http://vastgoodies.com/maps/Magritte">VASt Magritte port</a> to <a href="http://vastgoodies.com/">VAStGoodies</a>.<br /><br />You'll want to start with the <a href="http://www.instantiations.com/forum/viewtopic.php?f=12&t=3577">VASt 8.0.1 [128] developer preview</a> 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.<br /><br />A version of <a href="http://www.piercms.com/">Pier</a> ported to <a href="http://seaside.st/">Seaside</a> 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.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com7tag:blogger.com,1999:blog-7664597274807100637.post-81210166157548074752009-10-09T09:38:00.005+01:002012-02-28T00:13:34.139+00:00Vienna or bust<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-IKAUHQb2CRs/StTkAmREsYI/AAAAAAAADTo/RzxQJbKqa58/s1600/IMG_4014.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="http://1.bp.blogspot.com/-IKAUHQb2CRs/StTkAmREsYI/AAAAAAAADTo/RzxQJbKqa58/s400/IMG_4014.JPG" width="400" /></a></div>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 <a href="http://blog.fitzell.ca/2008/10/one-two-cha-cha-cha.html">my ballroom dancing class</a>—but could never convince anyone to come along. Thanks largely to an invitation from <a href="http://www.pieber.com/">Bernhard Pieber</a>, I finally made the trip.<br />
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 <a href="http://seaside.st/">Seaside</a> at <a href="http://www.mobilkom.at/">mobilkom austria</a> 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!).<br />
Vienna is much as I imagined: a real "European" city with beautiful old architecture everywhere you look. A visit to the <i><a href="http://www.khm.at/en/khm-home/">Kunsthistorisches Museum</a></i> 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 <a href="http://en.wikipedia.org/wiki/Pieter_Bruegel_the_Elder">Pieter Bruegel</a> and <a href="http://commons.wikimedia.org/wiki/Category:Lucas_van_Valckenborch">Lucas I. van Valckenborch</a>. It's interesting that I liked both artists since it turns out that van Valckenborch studied under Bruegel and <a href="http://bilddatenbank.khm.at/viewArtefact?id=323">Bruegel's </a><i><a href="http://bilddatenbank.khm.at/viewArtefact?id=323">Tower of Babel</a></i>, which was displayed in the museum, was the model for <a href="http://cartelen.louvre.fr/cartelen/visite?srv=car_not_frame&idNotice=8704">van Valckenborch's version</a>, which hangs in the Louvre.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-dFRnK3VWJ9s/StTkDAB8fBI/AAAAAAAADUA/3t6q3A1kEOQ/s1600/IMG_4051.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-dFRnK3VWJ9s/StTkDAB8fBI/AAAAAAAADUA/3t6q3A1kEOQ/s320/IMG_4051.JPG" width="320" /></a></div>First thing one morning, I walked to the <a href="http://www.srs.at/">Spanish Riding School</a> to watch the exercises of the <a href="http://www.lipizzaner.com/">Lipizzaner Stallions</a>. I thought <a href="http://en.wikipedia.org/wiki/Lipizzan">Lipizzans</a> 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 <a href="http://en.wikipedia.org/wiki/Spanish_Riding_School">Winter Riding School</a> 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?<br />
<br />
We saw a big band concert at a local jazz club and got standing-room tickets to a sold-out orchestral performance with <a href="http://en.wikipedia.org/wiki/Lang_Lang_%28pianist%29">Lang Lang (郎朗)</a> on the piano and <a href="http://en.wikipedia.org/wiki/Zubin_Mehta">Zubin Mehta</a> 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.<br />
<br />
<i>Schloss Schönbrunn</i> (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 <i>Gloriette</i> 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).<br />
<br />
Like I said, I've been busy.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com4tag:blogger.com,1999:blog-7664597274807100637.post-37571816075662195712009-10-08T23:15:00.004+01:002009-10-08T23:30:04.459+01:00Seaside 3.0a5The fifth alpha release of <a href="http://seaside.st/">Seaside</a> 3.0 is out. Check out the <a href="http://lists.squeakfoundation.org/pipermail/seaside/2009-October/021723.html">release announcement</a>. It's looking like <a href="http://cincomsmalltalk.com/">Cincom</a>, <a href="http://www.instantiations.com/VAST/">Instantiations</a>, and <a href="http://seaside.gemstone.com/">GemStone</a> will all include this version in their next upcoming releases; <a href="http://pharo-project.org/">Pharo</a> users can use the <a href="http://builder.seaside.st/">Seaside Builder</a> to generate a load script. <a href="http://squeak.org/">Squeak</a> 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.<div><br /></div><div>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.</div>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com9tag:blogger.com,1999:blog-7664597274807100637.post-28086091740990916622009-09-28T23:06:00.005+01:002012-02-28T00:09:28.679+00:00Seaside at Amsterdam.rb<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-vh0j-XFT1eE/SsE1b_eLezI/AAAAAAAADRA/-yX9AxsfRM8/s1600/IMG_3998.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="272" src="http://4.bp.blogspot.com/-vh0j-XFT1eE/SsE1b_eLezI/AAAAAAAADRA/-yX9AxsfRM8/s400/IMG_3998.JPG" width="400" /></a></div><div>I'm just back from the monthly meeting of the <a href="http://amsterdam-rb.org/">Amsterdam Ruby User Group</a> at <a href="http://www.debekeerdesuster.nl/">De Bekeerde Suster</a> 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? :)<br />
<div><br />
</div><div>We talked about their plans for the <a href="http://2009.rubyenrails.nl/">RubyEnRails</a> conference coming up on October 30 and shared some of our experiences from <a href="http://www.esug.org/">ESUG</a> 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 <a href="http://seaside.st/">Seaside</a>. 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.</div><div><br />
</div><div>Thanks for the warm welcome.</div></div>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com1tag:blogger.com,1999:blog-7664597274807100637.post-60334929914184406202009-09-18T08:42:00.002+01:002009-09-18T08:53:04.849+01:00Smalltalk on AppEngine<p><a href="http://astares.blogspot.com/2009/09/gwtsmalltalk.html">Torsten</a> posted a link to the announcement of <a href="http://gwtsmalltalk.wordpress.com/">GwtSmalltalk</a>, 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 <a href="http://clamato.net/">Clamato</a>... there's clearly some interest around combining Smalltalk and JavaScript at the moment.</p><p>You can try out a <a href="http://gwt-smalltalk.appspot.com/">demo</a>. Hint, to create new instances you need to use:</p><pre>Kernel instanceOf:</pre>Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com2tag:blogger.com,1999:blog-7664597274807100637.post-9813512572021007372009-09-07T21:11:00.004+01:002009-09-07T21:59:41.841+01:00ESUG 2009 wrapupWell, as I recover from another busy but very fruitful <a href="http://esug.org/Conferences/2009/">ESUG</a>, 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.<br /><br />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.<br /><br />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 <a href="http://seaside.st/">Seaside</a> 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.<br /><br /><a href="http://esug.org/Conferences/2009/Current+List+of+Talks/Intermediate+Seaside">My tutorial with Lukas</a> 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.<br /><br />The <a href="http://code.google.com/p/seaside/wiki/SeasideSprintBrestSeptember2009">Seaside sprint</a> 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.<br /><br />I'll close with links to a few people's photos:<br /><ul><li><a href="http://picasaweb.google.com/hernan.wilkinson/ESUG2009?authkey=Gv1sRgCKSpscaclMjpJA&feat=email#">Hernan Wilkinson's Photos</a></li><li><a href="http://picasaweb.google.com/WeybridgeWay/ESUG2009InBrestFrance#">James Foster's Photos</a></li></ul>Hope to see you all next year in Barcelona!Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com2tag:blogger.com,1999:blog-7664597274807100637.post-47650609280993422722009-09-02T08:57:00.004+01:002009-09-02T10:55:17.691+01:00Seaside 3.0 and DocumentationFor those who aren't at <a href="http://www.esug.org/Conferences/2009/">ESUG</a> this year and missed Lukas' <a href="http://twitter.com/renggli/status/3685594332">tweet</a>, we announced yesterday that the <a href="http://seaside.st/">Seaside</a> 2.9 alpha series will become Seaside 3.0 when we go to beta.<br /><br />We feel the name is well earned: a cleaner architecture, increased flexibility, better documentation, improved portability, and <a href="http://jquery.com/">jQuery</a> support make Seaside 3.0 an even more solid base for developing powerful web applications. They also lead the way for more incremental changes in the future and should make life easier for anybody who wants to develop tools or other frameworks on top of Seaside.<br /><br />We will be running a <a href="http://code.google.com/p/seaside/wiki/SeasideSprintBrestSeptember2009">Seaside Sprint here in Brest</a> from Friday afternoon through Saturday and the goal is to get the remaining issues resolved for a first beta release. Please join us if you have the opportunity.<br /><br />Also announced at ESUG, was the release of the online book <a href="http://book.seaside.st/">Dynamic Web Development with Seaside</a>. It's a great resource: make sure to check it out and contribute comments and content.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com0tag:blogger.com,1999:blog-7664597274807100637.post-77166634066451764622009-08-29T23:00:00.003+01:002009-08-29T23:09:55.718+01:00ESUG and Keychain integration for FirefoxI arrived this afternoon in Brest, France for the <a href="http://esug.org/Conferences/2009/">ESUG 2009</a> conference. I didn't write much Smalltalk but got caught up with a few people and had a couple of interesting discussions.<br /><br />There will be much Seaside to come but, taking a break from that over the past few days, I also managed to get a beta version released of my <a href="http://addons.mozilla.org/en-US/firefox/addon/13509/">Keychain Services Integration extension for Firefox</a> that allows OS X users to store their logins and passwords in Apple's keychain. This allows the passwords to be shared with other browsers like Safari and Camino and also lets you take advantage of features like Keychain locking to protect your stored passwords. If you use Firefox 3.x on OS X, give it a try and let me know how it goes - it's scratching an itch for me anyway.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com10tag:blogger.com,1999:blog-7664597274807100637.post-8152185963048183672009-06-29T23:45:00.002+01:002009-06-29T23:51:26.844+01:00Web Velocity released<a href="http://lists.squeakfoundation.org/pipermail/seaside/2009-June/021054.html">Big news</a> from <a href="http://cincomsmalltalk.com/">Cincom</a> on the <a href="http://lists.squeakfoundation.org/pipermail/seaside">Seaside mailing list</a> today: they've made an evaluation version of their commercial Seaside-based <a href="http://www.web-velocity.com/">Web Velocity</a> environment available for download. In case you've missed the buzz, Web Velocity takes Seaside running in VisualWorks Smalltalk, adds ActiveRecord integration and a web-based development environment (written in Seaside, of course). If you're curious, head over and <a href="http://www.web-velocity.com/">download a copy</a>.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com0tag:blogger.com,1999:blog-7664597274807100637.post-81782320607613750892009-06-23T07:07:00.004+01:002009-06-23T07:22:05.742+01:00LondonI'll be in London (UK) on Wednesday June 24 for 10 days or so. If anyone around there wants to meet up for a beer and talk Seaside, Smalltalk, or something else, send me an email or add a comment. Or if there are any good tech meetups during that time I'd be happy for a pointer.Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com0tag:blogger.com,1999:blog-7664597274807100637.post-27068625414937020782009-06-05T04:24:00.003+01:002009-06-05T04:29:41.508+01:00Seaside 2.9 on VisualWorks<a href="http://www.cincomsmalltalk.com/userblogs/mls/blogView?showComments=true&printTitle=Seaside_2.9_in_VisualWorks_7.7&entry=3421588522">Good news</a> from Cincom: it seems they have Seaside 2.9 ported to VisualWorks with all tests passing. They didn't start very long ago and I haven't heard the sounds of much struggling coming from that direction so it seems like porting wasn't too difficult. I'll give myself and the rest of the development team a pat on the back for that one!<br /><br />Meanwhile, we're eyeing another alpha release and trying to stare down a few remaining rough edges that are preventing a reasonable attempt at a beta. If anyone feels like tackling an improved set of configuration/administration/development tools, let us know!Julian Fitzellhttp://www.blogger.com/profile/15210699321250607163noreply@blogger.com0