Michael Buffington

Projax.org

Wednesday, July 13 2005

For the past couple of weeks in my spare time I’ve been building a Rails application based on a very simple idea: I have a difficult time matching people to the projects they’re working on. Often when having lunch with friends, they say “Oh, you know the guys behind this web project right?” and more often than not it turns out that a) yes, I do, but b) I had no idea they were working on that project.

That need helped me create the app. The app is super simple as far as functionality goes. It only meets the very focused need of joining people to projects (and the associated creation and updating that are required to enter data).

As I started to throw it together, I realized that I could use this mini app as an opportunity to test some real Ajax interactions. I envisioned drag and drop sweetness, file upload progress indicators, smooth transitions, and more. I was willing to do them just for the sake of doing them (which isn’t a design philosophy I adhere too in normal practice).

Here’s the app: I call it projax.org, a play on the words Ajax and Projects. It looks simple beyond comprehension, so to start, type a single letter in the text field on the left and that should get you started.

Puzzled About the Brains

Tuesday, July 12 2005

I spent the past twenty minutes doing some mild and slightly serious thinking about a subject that’s been nagging at me for far longer.

Examine the following graph. The outer edges, in red, represent a number of things, including: totally crazy, maniacal rage, utter depression, sheer stupidity, and just about every possible extreme of human emotion you can think of, “happy” on top and “dreadful” on the bottom. If you spend your days in the red regardless of polarity, you’re probably ill in one way or another.

The soothing pale, nearly white, green in the center is what most of us consider normal, not very emotional human behavior. Most people experience these kinds of feelings all the time (which makes them difficult to describe, as it turns out, because they’re not very exciting or flashy, they’re just normal).

The bands of darker green are the areas we either look forward to or dread. Going uphill means that maybe you’ve won the lottery, or got married, or had a baby. Going downhill means that perhaps someone died, or your favorite politician didn’t win the election.

notcrazygraph.jpg

Each individual line represents random people, except for one. Mine. Mine is the maroonish color, and that’s what has been disturbing me. I threw it together, of course, for purposes of explanation, but seriously – I typically ride right down the center of human emotions. Rarely every super extremely happy, and rarely ever super extremely sad. I have upturns for things like babies being born, and getting married, and accomplishing things, and some downturns for things like people dying, supreme exhaustion, etc., but never, and I do mean never, do I feel like I truly get emotional about anything.

So I’m moderately upset, and feeling like I’m not getting my money’s worth, and maybe I need to get my head examined to see if maybe there’s some kind of valve that’s clogged or something.

Pollock Meet Pull-Up

Monday, July 11 2005

Leah has been potting training diligently. Last night when reading one of Leah’s favorite books I asked her to identify the artist of a well known painting shown in the book (as is habit) and she said “Jackson Pull-Up”.

Ajax Mistakes

Thursday, July 07 2005

Alex Bosworth makes some good observations in his list of Ajax Mistakes. I’m currently deep into tuning a pretty much 100% Ajax driven site, and comparing what I’ve built with what Alex has figured out is sort of eye opening. There are mistakes on his list that I’ve seen and have identified in my own app, and ones I hadn’t even considered.

One of those is pretty important – Google has no way of indexing my site. It can’t execute the Javascript required to display the data, and even if it could – it might still have a hard time parsing Javascript generated data. This presents an interesting challenge – I’ve already figured out how to build a permalink to any view within the app, but Google doesn’t know the rules to generate the URLs, so will still never see it. So do I build a page that displays every possible permanent URL so that all the data is indexable?

And also, because the app rarely, if ever, reloads the page the URL never changes. This causes all sorts of problems including, most importantly, totally and completely breaking the back button. I haven’t figured out a good way of making the back button work in a page that never goes “forward” in the traditional browser sense, but I know I’m not the only one working on the problem. Another Alex, Alex Russell has a lot to say on Ajax and back buttons, and has offered up a solution which I’ll have to try.

If I can’t solve those problems above, my app is little more than a poorly designed Flash movie, which isn’t something that sits well with me.

Adapting My Path

Wednesday, July 06 2005

It’s probably apparent that I’ve been doing some critical thinking about my interactions with others and it’s probably appropriate to share why this has been on my mind lately.

About a month ago Adaptive Path and I parted ways. We did so on good terms, of course, but it wasn’t easy nonetheless, I’m sure for either of us.

The story is a bit longer than I can quickly articulate, so assume a couple of things as I relate the experience to make things easier: as far as I know, the big secret Rails application is still on track, pun acknowledged. There’s no turmoil or rumours of project cancellation. There will still be a kick ass Ruby on Rails based product from Adaptive Path. Things didn’t get ugly. I have the utmost respect for the people I worked with. It was worth it.

The details of what happened are important, but I think I still want to hold on to them for while – I’m still learning from the experience and want more time to really think about what happened so I can talk with a bit of weight about the lessons learned.

The departure does mean two things – I’m a free agent starting in two months. I started work on a new Robot Coop project code named Waddles this morning, and will be drinking the Robot Juice for at least that long as I help Erik and the rest of the Robots build something fun.

Conversation Dominator No Longer

Tuesday, July 05 2005

Honestly, I like sharing dreams I’ve had on my blog, but I know other bloggers whom I respect and wish to emulate think its stinky, so me being somewhat foggy when it comes to the blogosphere (despite having written this blog for 7+ years (the + indicates that I have Zip disks with databases predating my archives, yet no Zip drive to read them)) tend to stick with the herd. I’m not an entirely original person and I’m fine with that. Pioneers take the first arrows.

But this one dream has had me thinking for weeks, and I can’t shake it. The details of the dream itself are actually not that important – I was at a therapist of some sort, and therapist was admonishing me for using conversations with other people as my own form of entertainment, something that he felt was pretty one sided and selfish.

And that alone has haunted me ever since, because I believe it’s mostly true. I’m a total introvert. You probably wouldn’t know it if you’ve spent any time with me, but it takes me serious effort to talk to people. It’s not natural flowing off the tongue kind of stuff, I have to put real energy into having the conversation, which probably makes me seem like a very gregarious person (the irony). When I’m not prepared for a conversation, I come across as being distant, and in another world (I’m probably thinking about puppies or skateboarding).

When thinking about this dream, I realize that often when I’m engaged in some kind of vigorous conversation, I usually feel like I’m driving it, and that often it revolves around what I want the conversation to be because that allows me some degree of predicability. It’s not that I’m following some kind of script or even really consciously doing it, but if I can see where a conversation is going, I have time to think about it ahead of time. And now that I realize this, I’m starting to feel guilty because I don’t think of others enough.

So, as expected, I’m building myself some software to help me direct my thinking towards other people. It’s my second home brewed Rails app, and if you made it this far, you should know that I’m making it out of my love for you, the person I’ve had a conversation with in the past in which I dominated it and talked about Hair Bricks,Diaper Changing Machines,Nano Pants,You Should Do Something About Your Short Leg, or Your Dog Needs Rollerskates and a Guitar.

Leah Is Very Verbal

Monday, July 04 2005

This morning Leah woke me up by saying “I’m Lorraine, and you’re Christmas Barbie.” Her command of the English language has crossed mastery into absurdity.

Parabolic Heat Transference Case Mod

Wednesday, June 29 2005

Computer equipment, as you may know, produces heat. Sometimes the heat is so excessive that computing performance is hampered by what’s known scientifically as supreme erraticus behavicus as brought about by supreme heaticus.

There are several ways to avoid this problem:


  • Apply raw beef. This is effective only for a while, as eventually normal raw beef turns into something most people would want to eat. People wanting to eat your cooling apparatus is undesirable and frankly, unhealthy.
  • Apply frozen shrimp. There is only one disadvantage to this – children.
  • Purchase expensive jelly and olive oil cooled heat sinks. Some contain water, which is so abundant on the planet Earth that it must surely be useless for anything related to computers, and shouldn’t be considered.
  • Employing gibbons. This new method of cooling computer equipment is still in early experimental stages. Little is known what effect the gibbons have on computer equipment for the long term, but empirical studies have shown that gibbons are often unreliable, and are prone to becoming disgruntled with waving fans at your computer equipment. If not fed, they will die. Dead gibbons attract undesirable creatures and authorities.

The best way, as I’ve found out, is to design a case for the computer equipment that uses the natural laws of physics to effectively deflect all heat particles away from the computer equipment using a simple curved surface and common materials. Please follow along as I outline the steps required to build this, unarguably, perfect computer case.