Archive for the ‘news’ Category.

Back In Business

What an incredibly busy week! I'm finally getting settled in from a painful week of sunshine, technology and drinking in beautiful southern Florida, still suffering slightly from the rapid drop in ambient temperature I experienced exiting the plane in Knoxville [several hours late, no less]. But, I'm here, and back in business -- it's good to be home.

A big thanks to SpringSource for forcing me talk about Dojo at the annual SpringOne America conference. I've been there all week, and the experience was entirely positive: got to meet a whole host of SpringPeople, talk to countless java developers, attend several quality talks, and ran into a number of Dojo contributors both known and anonymous (always nice to have a face to a name). Bonus points for the late-afternoon-beach-parties, endless supply of coffee, and incredible locale selection. I delivered [what I felt to be] a well-received talk about the philosophies and structure behind Dojo from base to util to dojoc/, covered a lot of great material and just had an all-around great experience. Here's to hoping they like my paper for the upcoming SpringOne Europe tour (which ironically is in the same hotel I stayed in during my last visit to Amsterdam, this time three years ago) . Salud.

My slides from the presentation are available on SlideShare.

So a week of hard work on the beaches of Florida also yielded several other awesome events: A night of good Cuban food, drinks and debauchery with another of my oldest friends (which isn't so nice anymore, as we're 'rounding to 30 now', and old is becoming an increasingly sensitive word) was only the beginning:

Start to Finish: A motion to adopt John Resig's newest creation Sizzle as a top-level project to the Dojo Foundation was recently proposed to the mailing list, and passed unanimously 21-nil. The Dojo Toolkit was considering adopting the 'idea of a unified querySelectorAll engine', and suggested the idea to John to ensure "all the things the Dojo Foundation is trying to achieve" were in place -- enabling the Dojo Toolkit to use this new code (as well as anyone else wishing to adopt it). There seem to be a lot of mixed emotions about the overall implications of this -- and I'd like to briefly throw in my take:

There is only one est. Be it tallest, smallest, smartest, or fastest. Until which time we can defer to a fastest native implementation for CSS selectors, we should collaborate on a unified codebase, out in the open, and available to all. This is all just JavaScript, we can offload library-specific redundancy by utilizing js's dynamic nature and create some portable underlying thing (which coincidentally Dojo already did to a degree) -- we are all fighting the same battle, Moore is on our side, and we should shift our performance-related optimizations at what it is we as toolkits choose to do with the nodes given to us by whatever selector the spec/browser provides ...

I respect their decision not to adopt the code-base, though am glad there are now two query engines available with which we might start this period of cooperation I long for. I love the fact they are even able to make such a choice. I welcome John to the "Project Lead Council" (I think is what it's called ... ) of the Dojo Foundation, and look forward to working more closely with yet another incredibly talented coder.

Dojo 1.2.3 Released - We've already quietly released 1.2.1 and 1.2.2, both with minor (though critical stability fixes) changes, but had one large issue needing attention before commiting to pushing the release to the various CDNs. I pushed a small announcement, and the source is available in the usual location. The 1.2 release was a strong one, and I might have secretly tricked Adam Peller into cutting a 1.2.2 a day early so that we would have a 1.2.3 (which has a nice ring to it, as far as version numbers go).

Zend Framework 1.7.1 was released, which I note because I failed to mention the release of 1.7 a few weeks back, which included an update to using Dojo 1.2 and several other fixes. The release of Dojo 1.2.3 should be a transparent update for Zend FrameWork 1.7 / Dojo 1.2 users. Congrats to all the Zend developers! I've installed Git, and have been playing with Matthew O'Phinney's pastebin app in the hopes of putting together a good example of best Dojo practices within Zend Framework ...

dojo.beer() happened in Munich over the weekend. This is the second of the type put on by the Uxebu folk, and it was reportedly a great success. From what was only a handful of German Dojo Developers grew exponentially it seems -- I even had the pleasure of attending virtually via iChat alongside Dylan, though hopefully I'll be able to attend physically sometime soon ... Thanks to Mayflower for hosting the event, and Wolfram, Tobias, and Nikolai for organizing everything! I love seeing this kind of community-driven meet up happen, be it formal or informal.

That in mind -- I'd love to start something similar regionally: A SouthEast-based DDD, just to get together for the face-to-face and have a dojo.beer(), talk shop and otherwise interact. Tennessee alone houses several Dojo developers I know personally, and I think it feasible to coordinate something somewhere reasonably close: Atlanta, GA? Charlotte, NC? -- In the immediate future we may be doing a small Nashville, TN dojo.beer() -- so if you are interested drop me a line and we'll see what we can put together and pick a good central locale.

A change of face

Last Wednesday at our weekly team meeting, Alex Russell announced his resignation as long-time Project Lead for the Dojo Toolkit, the open-source project I've been contributing to for the past two years. I still may be in partial shock (and partial euphoria) about the resignation, but not near much as finding out the nominee: me!

Today, the voting was closed, and I have officailly been named the new [and improved?] Dojo Project Lead by a unanimous 27-to-zero vote of my peers, the Dojo core developers. Contained within those ranks of committers are some of the most talented, friendly, and innovative developers I've ever had the pleasure of working with, and am humbled by the outcome. I'd like to thank everyone involved: Your faith in my abilities, and our common vision and dedication are going to ensure the Dojo Toolkit will remain a major presence within the Open Source, OpenWeb, and Ajax communities for a very long time. Our collective commitment to excellence and never-ending desire to push the limits of browser capabilities will continue to thrive, even as the landscape changes beneath us.

As much as I love talking about myself, I'm going to keep this brief. Alex addressed some highlighted questions in his initial announcement, and I'd like to follow up with a small [read: single item] Q&A of my own:

Q: What does this mean?
Not too terribly much. Dojo is a very mature project: The product of countless man hours, real-world testing, use, mistakes, changes, and growth. We've established who we are, and what we intend to do, and my goal is the keep us all on that same track -- working together to create and maintain the best open source set of tools for web developers. The Toolkit is, in truth, run by smaller groups of committers and contributors -- each applying their own expertise to the components they own or otherwise maintain, myself included.

It doesn't, however, mean there won't be change! We change every day as it is: seldom does a day pass that a bug isn't fixed, filed, or commented upon, or a new function or component becomes a reality. It is too early for me to have formulated any serious plans or opinions on the future of Dojo, but It will likely mimic that which I am already a strong proponent of: ongoing open innovation, providing great tools, enabling the community, embracing the community support and contributions, all while never wavering from the overall goal: dojo.greatness();

I'm looking forward to this experience, and to working with all of the exceptional talent the Ajax community has to offer. I'm usually available as phiggins on irc.freenode.net (#dojo, among others), and you may already know me as dante in the Dojo Forums and Trac, so drop by -- I'm happy to answer any questions or concerns.
I'll have several more announcements and whatnot coming as time progresses, so be on the look ...

Thanks again to everyone for their support. I am confident the power and direction of Dojo will only continue to improve, and it would never have gotten this far without each and every one of you.

Updates from Portland

So it's a little late to be sending out updates of my stay in Portland, OR -- this is more or a 'reflections' of Portland blog writing -- but all valid none the less. It has been an exceptional adventure.

I landed in Portland mid-afternoon last Sunday to a beautiful sunny day, typical of a Portland summer. The weather stayed consistently pleasant for the duration, which is not atypical, but entirely unexpected (and welcome). I love PDX in the summer. I must remind myself what the winters are like, lest I whimsically decide to rent an apartment and move back ...

I attended OSCON last week. I didn't spend much time in actual talks, but had a chance to sit and chat with a number of people I both had and hadn't met prior. Working for a virtual company, it is easy to detach yourself from face to face communications. I can go whole days without actually having to say a spoken word, though I've spent the entirety of it communicating with people from all regions of the world. I got a chance to hang out with some semi-familiar-faces: Dylan Schiemann (my boss, and CEO SitePen, Inc) ended up on the west side, Alex Russell of Dojo fame, whose company is always welcome (the man has some weird special insight into them interwebs, and it is certainly entertaining to hear him rant), Matthew Russel, author of a relatively new [awesome] Dojo book: "The Difinitive Guide", and several other Dojo-hackers and/or SitePen folk: Gavin Dougtie (Google), Jason Cline (SitePen), Chris Barber (CB1, Inc), John Locke (Freelock) ...

... And more importantly, the meeting of great new folks: I had the pleasure of briefly meeting an energetic and charming Leslie Hawthorn of Google Summer-of-Code fame (I'm mentoring this year), a vocal and hilarious Zend Framework user Jason E, Simon Willison, a seemingly all-around great guy, the guys behind Orbited: Michael Carter, Jacob Rus, and Adrian Weisberg (who got an ad-hoc/realtime port of some trivial jQuery code into some Dojo Base functions, which I pulled off even after a long evening of dojo.beers and dinners ... which reminds me: I'd like to finish my port and replace the rest of the code if you'd like), as well as a number of random Dojo-enthusiasts from [unnamed] places I was surprised/unaware was using Dojo in the first place. The DDD:4.5-slash-dojo.dinner() was a great success: Random seemingly star-trek themed bar on East Burnisde provided a wonderful atmosphere to let loose and talk shop (among other things) with a bunch of faces old and new (over buffalo burgers no less). I've missed the beer in Portland.

It really gives you a jolt of pride when someone notices you wearing a Dojo t-shirt and takes the time to come over to talk about it, though it depresses me to see some of the really great applications written using Dojo, only to find out they are stashed away behind corporate firewalls, probably never to be seen or even mentioned publicly. It makes marketing more challenging, but at least I know, and am proud to continue on contributing to this phenomenal truly Open Source project.

The most interesting talk I attended was Steve Souders' talk about optimizing pages ... it was fun to see at least half of the techniques suggested and investigated are already available in Dojo, and the rest seemed like they could be automated with our build system in one way or another. It seems like a lot of people know nothing about Dojo's tried-and-true package system and the transparency it provides between keeping code modular and optimization, development versus deployment, obfuscation versus human-readble code. All of the things non-Dojo-users do to speed their pages up are included out-of-the-box with Dojo: ShrinkSafe to minimize bytes on the wire by shrinking (safely) variables, removing comments and excessive whitespace, automatic concatenation of "layers" of modules in a very clean and safe manner ... We can even concat "modular CSS files", stripping comments, inline-ing @import calls and so on, anything to limit the overhead of initial page loading. I'm secretly amazed. It gets even better in 1.2, coming in just a bit: stubs loading (another of Steve's tips), post-onLoad safe module loading might just be my new favorite thing since sliced bread.

I attended a django/python meetup, spending a good portion of the evening describing existing Dojo functionality, mostly when people made comments like "wouldn't it be cool is [my framework] did this?" -- "Oh, right Dojo has done that for a while now" ... I didn't hear about dojango until the next day, which is unfortunate, it would have been a perfect topic of conversation. I met John Resig briefly, though didn't talk as much shop as I'd have liked ...

For those of you wondering: No, I never found a shoe store that sells Birkenstocks, though officially retired the old pair after a seven-hour sea-kayak adventure. Don't kayak barefoot, at least the 17-foot sea-kayak variety. Lesson learned. I nearly destroyed my brother-in-law's brand new boat on it's maiden voyage on a river never intended to be run in a seventeen foot fiberglass tube. There was a reason the Mulhallah river wasn't in the "Flatwater guide of Oregon": The water isn't flat. Sea kayaks simply don't have the mobility a "normal" kayak has, and I'll be damned if I didn't run through one of the rapids only to get sucked into an eddy and bunched up against a sunken tree. I was fine for the most part, simply unable to fight the force of the rapids slowly rolling me (boat included) on end, and eventually over. I almost freed myself without damage or incident, but gave up when I heard the distinct noise of cracking fiberglass. Remember, the boat is seventeen feet long, and at the time of me removing the skirt, probably three-quarters submersed in the running water wedged against a tree. I was able to climb out (all the while holding on to said tree with one hand), roll the boat around and swim it downstream, handoff to my [extremely shaken] sister, swim further downstream and collect my own paddle and Nalgene bottle. Not only did I not lose any gear, I was still wearing my hat. Our peaceful, "zen-like" kayak adventure had instantly become exciting, despite the exceptionally painful bruises on both shins, and that ominous feeling of of sinking boat, which actually turned out to be true: I was taking on water until we beached for lunch and surveyed the damage: a small crack, large enough to seep water, and a six-inch scrape through the fiberglass on the underside. Bet you are glad you got that kevlar upgrade, huh, Bill? (Sorry about the boat. At least it's broken in now!). Tenacious tape is some amazing shit.

For the record, sea kayaking isn't my thing. The rapids part was fun, but atypical for this sport. The part the was supposed to be enjoyable was drowned by passing motorboats on the Willamette and an exceptionally hot sun. I, for the first time ever, have a very bad sunburn in the shape of a very nice Type III PFD. I'd rather do whitewater and/or "regular" kayaking. It didn't take long for me to answer my sister when she suggested we do this in Alaska ... Cold and Wet are my two least favorite sensations, especially when combined.

It was great to see all the old QuiVaH folks again (who are seemingly no longer doing shows together). I think every last one of them is married now, most to people I knew, some to people I didn't, and Tae is still out being the talent-asian. RJ is still RJ, Q is still Q, just as fun and funny but with a better job, Haven is doing well for himself, and anxious to jump into some Dojo, which is great news in itself, Tae and Ran are living together near Goose Hollow (I actually ran into Ran [no pun intended] at the Django meet-up: he was dealing poker downstairs the whole evening), and they all really made my trip to PDX "complete" ...

Now I get all day tomorrow to decide if I want to miss my Tuesday-morning-flight and go apartment hunting ... decisions, decisions. Anyone up for dinner? Last chance to eat in this treasure-trove of excellent food offerings ...

Ajax just got easier

This morning, Andi Gutman broke some very exiting news: The Zend Framework will be integrating Dojo 1.x! I am glad to be directly involved in the effort. It's a big win for both communities. Zend Framework users will have built-in Ajax support courtesy the Dojo Toolkit -- the easiest, most feature complete, liberally licensed JavaScript library available today. This integration is a perfect example of how a server-side technology and client-side goodness can work together to provide the best possible experience for developers maintaining projects, and the end users consuming them.