TruerWords Logo

Search TruerWords

This is one of my journal's many "channels."
This chanel only shows items related to "DHTML / AJAX."

Sign Up  Log On
Friday, February 11, 2011

Web Development Class with Ethan Pride

For a few months now I've been teaching Ethan how to develop a web site, including HTML, CSS, JavaScript (soon), and content management systems.

We meet once a week.

(This post was a demonstration for him on the benefits of a CMS.)

Saturday, January 1, 2011

Happy New Year!

Ten years? Really?

In 2001 my work life was all about Conversant, my personal life was all about Corinne, Shane, and a house full of cats and birds.

I don't remember much about 2002, except that I reconnected with Steve Davis, someone I've known practically since I was a baby. We've always had our faith in common, and found that now we also have our bikes.

Two years later Shane was gone. That's all that year (2004) was about. Nothing else mattered. Hanging on to Corinne, propping her up, making sure she understood how much I love her and need her still, and trying to help her cope with a pain that defies belief.

2005 was a pretty big year. It included the release of Firefox Hacks (my first time in print!), tutoring the Pride kids (Avonlee and Ethan) in math, the PMC and its software auctions, the main author of Firefox Hacks (Nigel McFarlane) committed suicide, Corinne and I met the crew of the Atlantia, Jed moved in with us, I made friends with Jimmy Lehn (morning DJ at a local radio station), and we celebrated Thanksgiving at the Westerly WARM shelter. Finally, 2005 was the year I first started playing with Prototype. (Wow, i can't believe it was that long ago.)

In 2006 I met Greg Pierce years after he had worked for me at Macrobyte, my friend Darren and his wife Angi brought home their adoptees from Nepal, I wrote the "custom events" code for JavaScript that is *still* being used on Apple's web pages, attended the first Rails Conf, and I finally got to meet and begin forming a friendship with Rich Siegel and started working on language modules for his company's main software product, BBEdit. Jed left us, and headed for British Columbia and the woman he would eventually marry. Finally, we met Mike and Shannon late in the year.

2007 was unreal. If not for the pictures, most of it would be forgotten. I helped man the booth for Bare Bones at MacWorld Expo. Mike and Shannon moved in with us. Lauren was born! Mike and Shannon went away for a while. We did our best with Lauren and truly, completely fell in love with her. Visited her parents a lot. Finally met Jim Roepcke and Sean McMains at the second RailsConf (while Corinne stayed home with lauren). Jed married Alycia (and I got to attend, way out there in B.C., while Corinne AGAIN stayed home with Lauren), my grandfather turned eighty, Jed and Alycia came out for a visit (and haven't been back since), Corinne and I celebrated our tenth anniversary, and my sister and brother-in-law had their third daughter.

Shannon came hom again in January of '08. Lauren started walking and talking, and turned one. We got news (on the day Shannon came hom) that the house was being sold so we'd have to move (after ten years). Corinne, Ellyn and Lauren went to FL (Lauren's first plane ride). Richie (Shannon's eldest) came to live with us. My parents came to live with us, for a few months. I went to FL in October with Ellyn and the grandparents to pack them up and move them to Ellyn's house. The year ended with a terrible sprained ankle and a move from Mystic to Westerly.

In January of '09, Mike came home and the family was all back together. Unfortunately, in June they all left again. The relationship slowly thawed, but then in September they disappeared to North Carolina without warning and we thought they (especially Lauren) were gone forever. We got a ten day visit with Lauren in October, but taking her home was the second most difficult and painful thing I've ever done.

2010 started out with a brief visit from the Deanes, but after that the contact (via Skype or telephone) dwindled to nothing within a few months. I entered a serious depression (my first), which I tried to fill or bury with World of Warcraft. In March a rainstorm tried to wipe RI off the map, and in May I was brutally attacked by some blood clots that came from nowhere and landed in my left lung (killing part of it). In June, the Deanes moved back to the area, and we got regular visits with Lauren again. It took her a few minutes to remember us, but once she did it was like we were never apart.

As I write this, Lauren and Corinne are sleeping in my bed, above my office, just a few feet right over my head. I don't know what changes are coming our way next, but right now we have joy and I'm taking nothing for granted.

Happy New Year, everybody.

Monday, March 31, 2008

A New JS Mode for Emacs, and Why I Wrote a JS module for BBEdit

Stevey's Blog Rants: js2-mode: a new JavaScript mode for Emacs

For the OOD-loving and API-minded among you, the "beautiful" way to do syntax coloring would have been to finish parsing, then walk the AST using a Visitor interface, applying the coloring in a second pass. I tried it, and it was, as they say, "butt slow". In fact (perhaps not surprisingly) walking the AST takes exactly as long as parsing, so it was twice as slow as doing it inline.

So I bit the bullet and moved my syntax-coloring to happen inline with parsing. Fortunately it only introduced about 30 lines of code to the 4000-line parser/scanner, because most of the coloring happens in the scanner, at the token level. Go figure.

Steve Yegge describes (at length) his new JavaScript mode for Emacs. For much of the article he's talking about (trying to) parse the JavaScript file at the same time that he's applying syntax coloring. It's absolutely NOT a simple task, not by a long shot. He had the benefit of direct access to Brendan Eich (the author and maintainer of JavaScript itself) at least twice so far, but still describes how difficult it was. And this is someone many people consider a superstar programmer who has been working at Google for years.

Well, next to Conversant, my favorite-ever project is/was the JavaScript module in BBEdit. I won't go into all the technical details like Steve does, but I will say, "I feel his pain."

Thinking about this, I realized that I never wrote the story of how I came to be contracted with Bare Bones. With all the explosives experts, martial artists, photographers, and "connected" individuals at BB I need to be careful not to cross the lines of my NDA, but I think I can tell this story safely. ;-)

How It All Started

In early Spring of 2006 — almost exactly two years ago — I was doing a lot of work with JavaScript. Prototype was my new favorite toy, but 1.0 hadn't yet been released. My editor of choice was BBEdit, but I was frustrated that it didn't list the functions in Prototype.js (follow that link for more details, including pictures). I wrote to Bare Bones tech support to ask if they knew of any third-party, BBEdit, language modules for JavaScript.

The answer was "no," but I was told that a couple other people had asked about improvements to their JavaScript support. I wrote back to say that I'd like to take a crack at it, if I could only see "the source to the current syntax module." Hah. Yeah, like that was ever going to happen. "Could you send me some of the source to your app, so I can write something better?" (That's NOT what I said, but that's probably what it sounded like.)

After lots of email back and forth, on May 10th we had only reached the point where Bare Bones was "planning to update it in a future release." I'm a developer, I know what that means. So I wrote again, and said I was going to start my own language module (based on BBEdit's public SDK for language modules), and could they just send me their current list of language keywords?

A month later, Rich himself finally sent them to me. That was June 12th. I wrote back with a better list of keywords, and told him I was going to start working on my own module unless they told me I shouldn't bother because they already had one under development. They didn't, but Rich seemed to be trying to call my bluff: you go ahead and start working on it, and if you come up with something good maybe we'll work something out. (I've been on both sides of this discussion, and I know that usually nothing happens.)

Three days later, I sent them a copy of a fully functional JavaScript language module, written in C++. (Looking back, I'm all impressed with myself!) When I'm telling this story in person, especially if Rich is nearby, I like to say that they tried to call my bluff but found I wasn't bluffing. I still think there was a little of that, but mostly I think they just dealt with this nagging, mostly-unknown customer the best way they could: "go ahead and do your thing, and yes, maybe we'll work something out."

A few days after that I sent them another one, with some more features and some bugs fixed.

A few days later, I went to RailsConf in Chicago, and found out that lots of Rails developers were using TextMate. I'd barely heard of it! (Probably because I don't go looking for new toys very often when I have work to do.)

While at the conference, I talked to other JavaScript devs about their editors, and showed them what I'd done for BBEdit. I even showed Sam Stephenson, Prototype's author, at the same time that I was showing him what I'd done for custom events in javascript. Everybody liked it, and it was definitely better than anything else out there. I also asked people why they were using whatever editor they were using. Most of the Rails folks who were using TextMate were using it because that's what the top Rails guys recommended, and because it had really good integration with Rails itself.

I wrote up all this "research" and sent it to Bare Bones when I returned home.

Writing the language module, peppering them with lots of email, and sending in the research I did at RailsConf were enough to really get their attention. In early July (can't remember... July 3rd or 5th), Rich came down here and we had lunch at Costello's Clam Shack, right on the water. I got an early look at BBEdit 8.5, we talked about my 1,001 feature requests, and I signed an NDA with a handshake (and later with pen and ink).

Perhaps as import as the business that was done that day, Rich and I became friends (and have had a casual breakfast almost every Tuesday morning since then).

Sunday, August 12, 2007

How well do you know Prototype? posted a great set of examples of better ways to take advantage of Prototype in your own javascript code.

Here, I've collected most common use cases that do NOT use all of prototype's capabilities and their simple solutions. I hope this will be a basic checklist to go through when developing for your next project.

Excellent list. If you don't work with Prototype on a regular basis, or you do but you haven't paid attention to everything it can do, read this. It could save you a lot of typing, headaches, and time.

Monday, July 23, 2007


I've already mentioned how "over committed" I am right now. It's so bad that I decided to resign, at least temporarily, from the Prototype core team.

Then I felt so guilty about it that I attended this morning's all-hands chat room meeting.

On the other hand, I've actually finished a few items on my to-do list lately.

Who knows... someday soon I may even be able to start the PMC Software Auctions. Hope so, since the PMC itself is less than two weeks away.

December, 2018
Sun Mon Tue Wed Thu Fri Sat
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31  
Feb  Jan


Channel RSS: RSS Feed for channel

is Seth Dillingham's
personal web site.
More than the sum of my parts.