Categories
Etc

Thursday the 18th

Dear Weather, please make up your mind.

  •  All sorts of fun going on with Flickr and JPGMag. There are some great lessons to learn here about running a site that’s based on a community of users. Flickr reacted fairly quickly to stem the tide and I think they did a great job dealing with the problem. I think JPG’s finally coming around to the same neighborhood. Either way, it has been interesting to follow. Quick take on lessons I learned:
    1. Be as transparent as possible. If you do something, explain why. Listen to the reactions. Participate in the ensuing discussion. A lack of participation is often seen as lacking to care about the community.
    2. People remember prior interactions with people at the company. Getting to know your community and gaining their respect goes a long way when things go south. Strive to be honest, forthright, and polite. Don’t be a dick.
    3. Folks tend to be accepting of mistakes as long as you come clean, apologize, and explain what’s being done to prevent it from happening again.
    4. Your community is a bit like stockholders in a public company, except instead of voting directly, they vote via participation, and participation is their currency.
  • More beating up DnD. Looks like the dojo.dnd is busted in some manner; the map on the the container isn’t getting filled in. Emails in to uhop to see what the story is.
  • We’ve been working a generic method of exposing a server-side Model as JSON to a Clearsilver template. For now, we’re just exposing some extra stuff in the HDF tree, preformatted as JSON. Started work on a generic Clearsilver macro to do HDF->JSON, but there are some concerns about having two methods of turning a Model into JSON, one direct, one via HDF. Works for what we need now.
  • Pulled in Dojo trunk again. I need to send the author of svn_load_dirs like a hundred beers.
Categories
Etc

Wednesday the 16th

Long time, no bloggy.

  • Upgraded to WordPress 2.2. Mostly smooth. I wish they’d give you a way to have just Atom feeds.
  • I’m now a Dojo committer!
    • Landed a port of dojo.undo.browser (now dojo.back) on core trunk
  • Our port to 0.9 pre is done, now moving forward with DnD feed organization for the feed tree.
    • Some chats with Eugene and David on extending the classes in dojo/dnd/move.js a bit. I’d like to see some hooks on Mover / Moveable to allow you to constrain the move in different ways. Stuff’s looking good there.
  • Now using a nice pattern for layered builds and our code. We layer on top of Dojo’s Base (the new dojo.js) and have a layer for each page in the site. That page includes a JS that require’s all of the code needed for the page. That JS is also the only dependency in a layer, and the layer overwrites that JS file as part of the build. So in your HTML, you just have one script tag for Dojo and one script tag for the layer. If you’re not in a build, everything gets pulled in via require magic, and if you are in a build, you just suck in two glomm’d JS file.
  • Added support to turn on debug & switch to a non-shrinksafe’d version of the JS files using querystring args.
  • The YUI guys have some videos up that are worth a look. I really like all the talks by Douglas Crockford on JavaScript and the talk by Venkatesan on writing efficient JavaScript. I’d like to see some examples for some of the bits in the efficiency talk, but maybe I can just write those up myself and see.
  • Wore this shirt today. I’ve never seen so many people squint and sound out letters while staring at my chest before.
  • Mandy’s at 34 1/2 weeks. Everything looks great. :) Every now and then, we’re seeing a knee surface like a shark fin. Can’t wait to meet the little guy!
Categories
Etc

Wednesday the 9th

I didn’t like other peoples quotes. So a temporary reprieve while I think of something else.

  • Mark wants to turn basketball into hockey. I mostly agree. Also, Go Wings!
  • Spent most of the day cleaning up lingering bugs from the port. Mainly signature mismatches and a few true bugs that existed in the old code.
  • Hooked up the “show only subs and folders with unread items” for the tree last night. Still need to deal with the menu a bit. Ran into a doosey of a typo that cost me a good hour. Assume you have an HTML document with a node of id “foo”. What happens when you have the following JavaScript:
    dojo.connect(dojo.byId("fooo"),
                 "onclick",
                 function(evt) { dojo.stopEvent(evt); });
  • Set up the cradle my folks got us and made up a little nursery in the corner of the bedroom for our impending arrival. Also, we’re pretty settled on a name of Jackson Makay. Not sure on the spelling of the middle name yet?
Categories
Etc

Tuesday the 8th

People are difficult to govern because they have too much knowledge.
Lao-tzu, The Way of Lao-tzu
Chinese philosopher (604 BC – 531 BC)
  • Slammed 0.9 back into trunk. Let the madness begin.
    • Fixed a bunch of little bugs I’d missing during the port. Main culprits are dojo.publish needing an array for the second argument and missed transforms of dojo.html.getElementsByClass() into dojo.query().
    • Found a timing issue with application initialization and squashed it. Async application initialization is … tricky. Especially when you have things chained together using dojo.subscribe / publish. All sorts of stuff starts happening all over the application due to init, kinda like dominos. But async.
    • Saw a 50% reduction in overall code size with the port from Dojo 0.4.2 -> 0.9. So. Happy.
  • Chip got a buildbot working that automatically builds the codebase and publishes it to the test site, and we can trigger it from the IRC channel. Freaking sweet. Just need to get it running the unit / smoke tests and I’d be super geeked. This is a great start though. Automated builds (and tests) FTW!
  • I’m realizing I have a routine. I need a better routine. One that involves exercise.
  • Attended a breastfeeding class with Mandy and learned a lot of stuff. I wasn’t sure how much I was going to get out of it, but it was good to hear about what going to happen and what the pitfalls are. As one of the women in the class said, it seems like it would be so easy, but there’s really a bit of a trick to it.
  • Hopefully get to play golf a bit this weekend and better the 87 I opened with at MacGregor.
Categories
Etc

Monday the 7th

A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.
Herm Albright
  • Port port port
    • Almost ready to land the 0.9 port back onto trunk
    • Looks like we’re going from ~300K to ~160K for a shrunk build of all our source. Gotta love a savings of 50%. No idea on execution speed just yet.
    • Latest thing to bite me: dojo.xhrGet/Post now use a Deferred instead of direct callbacks. For JSON data, the callback that you register with the Deferred only needs to take one argument, the eval’d JSON object, instead of the old type,object,transport triple from dojo.io.bind. Also, remember to return the object from your handler so that others can chain onto the Deferred if need be. A typical handler looks like:
      var def = dojo.xhrGet("/my/json");
      def.addCallback(function(obj) {
        // work with the object
        console.info("here's my data: %o", obj);
        // important to return the object for future callbacks
        return obj;
      });
  • Main Street Sweets, the local ice cream joint that had the fire a couple weeks back, is open for business again. They have a new flavor called “Holy Soot”, which appears to be chocolate ice cream with brownie and fudge swirl. My new fave.