Calendar for MooTools
Job Opportunity (Smalltalk and Seaside)

I’m pleased to announce that we are looking for another full-time developer to join our agile team of long time Smalltalk fans. Here at DeepCove Labs our primary focus is evolving and maintaining a mature industry leading international payment processing platform that we have built from the ground up over the past 6 years.
Ideal candidate is someone who has experience with Smalltalk, SQL and last, but definitely not least, Seaside. They must be enthusiastic, motivated and as excited about using cutting edge technology to solve business problems as we are. I should point out that good self task management and time management skills are a big plus as we work as equal peers and share roles every day of the week. We are not XP fanatics, but some things are second nature to us,
- keeping things simple
- plenty of unit tests
- no code ownership
- frequent integration
- lots of refactoring
- frequent releases
- no overtime
- our customer shares the same address
Our primary requirements are as follows:
- at least five years general software development experience
- several years experience developing with dynamic languages (Smalltalk, Ruby, Python, Lisp)
- one year recent Smalltalk experience
- experience developing applications of at least moderate complexity
- demonstrated experience working directly with users
Experience with any of the following would be a major plus:
- agile test driven development
- financial services
- SQL, specifically Microsoft SQL Server
- web application development, specifically with Seaside and moderate amounts of JavaScript
- deployment of large scale applications in managed services environment
Our office is located in the heart of Downtown Vancouver, steps away from Pacific ocean, beautiful parks, shopping and entertainment district and all major transit connections. All employees receive excellent health/dental benefits package and few other perks. We like to think we are an open, flexible and friendly place to work, so please drop me an email with your resume if you are interested.
Update (Nov 26): Few folks had pinged me to ask if telecommuting is an option and the simple answer is that for this particular position we would like someone who would be willing to relocate to Vancouver and work from our office together with the rest of the team.
Canvas UI for MooTools
Finally, a decent implementation of panels using MooTools, which means I can finish my migration from YUI+Scriptaculous to MooTools some time this year if time allows.

Adobe isn’t perfect
Apply where needed
Oh my, this could be said about so many things I won’t even try to list them all. Apply where needed, so to speak.

Also, don’t forget to check out their latest over at Despair Blog.
Word of caution when enabling Unicode ODBC
One feature we’ve been anxiously awaiting when VisualWorks 7.5 was in development is support for Unicode ODBC.
(self connection getSession)
unicodeEncoding: #’UCS-2′;
unicode: true;
yourself.
Naturally as soon as it became available my inclination was to turn it on and over time migrate our database schema from varchar() to nvarchar() and from char() to nchar() etcetera. Sounds reasonable? I thought so myself, but it took about a month of running this small change in production to prove me wrong. Take a look at the server CPU graph below (Hint: Unicode was enabled late August and disabled late October),
Looking back, it all kind of makes sense. I suspect ODBC layer is encoding everything on the way out, so running a query against a plain old varchar() column with a Unicode parameter SQL ended up having to encode all row values on the fly, essentially resulting in endless table scans and lots of CPU wastage for most basic scenarios. Turning off Unicode or changing the offending column to n*char() fixes the problem.
What this means, however, is that you can’t conceivably go the Unicode route without converting all *char() columns to n*char() columns at the same time. You can certainly afford to have a small performance impacting window to ensure availability, but it would most certainly be unreasonable to stretch this transition period. So much for piecemeal approach, sigh.
Introducing YSlow
Yahoo just announced release YSlow as a first (hopefully, of many) great extension to Firebug that analyzes your pages and points out a wide variety of ways you can improve their performance. My first few minutes playing with it proved to be a lot of fun and I look forward to using it frequently going forward. Here’s a teaser to get you started straight from the home page of our application,


There’s much more to discover, go and grab it while its hot.
What is “Aubergines”?
I remember back when I started using Seaside I saw a number of references to “aubergines” here and there, but never quite zeroed in on the word itself discounting it to something obscure in the back of my mind. If you’re curious, here’s Avi’s explanation of its origins,
Yes, basically a private joke. The original acronym was Squeak Enterprise Aubergines Server Integrated Development Environment. This was a play on both “Enterprise Javabeans” and “Enterprise Objects” (part of Apple’s WebObjects, which was a major inspiration for Seaside). There was also some intended kinship with the CLEE (Common Lisp Enterprise Eggplants) project - not sure if this is still around or not. These days, though, it’s just a name. Though an appropriate one, for me, because I live on the coast and am happiest sitting by the sea…
Plus Wikipedia’s take on the word itself,
The eggplant, aubergine or brinjal (Solanum melongena) is a solanaceous plant bearing a fruit of the same name, commonly used as a vegetable in cooking. It is closely related to the tomato and potato and is native to southern India and Sri Lanka. It is a short-lived perennial plant often cultivated as an annual, growing 40 to 150 cm (16 to 57 in) tall, often spiny, with large coarsely lobed leaves 10 to 20 cm (4-8 in) long and 5 to 10 cm (2-4 in) broad. The flowers are white to purple, with a five-lobed corolla and yellow stamens. The fruit is fleshy, less than 3 cm in diameter on wild plants, but much larger in cultivated forms. The fruit contains numerous small, soft seeds. (Semi-)wild types can grow much larger, to 225 cm (7 feet) with large leaves over 30 cm (12 in) long and 15 cm (6 in) broad.
Handy JavaScript Components
Via Ajaxian come two handy components this morning,
- First another JavaScript accordion, but this time based off Prototype, which we Seasiders are most familiar with thanks to excellent Scriptaculous integration by Lukas Renglli
- Second, a new upload manager, which might be a nice replacement for SWFUpload if you don’t want to enforce Flash in your applications
Enjoy and please let everyone know if these are any good, as I obviously haven’t used them personally quite yet.
Seaside website updated
Looks like a brand new Seaside website is up, check it out and keep the comments flowing.

