Deirdre Saoirse Moen

Sounds Like Weird

RubyConf

15 October 2005

So, here I am, at 2 a.m. on Sunday morning. Couldn’t get to sleep, so I got up for an hour, then tried to go to bed.

I hear one of those sounds one should not hear — wet, gurgling, splashing sounds. Yep, toilet overflowing.

So, naturally, this means I needed to get up again, get fully dressed, call the lobby, then wait. They didn’t have a plumber on-site, so that means that I get to throw a pile o’ towels onto the floor of the bathroom and hope that the water doesn’t land in the room below and ruin their night as well.

Fortunately for me, I have two bathrooms.

Last night, I had finally managed to get deeply asleep when the smoke alarm goes off. At 4:42 a.m. I bolted out of bed landing in a standing position (rather like a penguin shooting up out of the water). I’m not actually certain that it was my smoke alarm, but that’s what it sounded like. The noise stopped before I could figure out exactly where it was.

Having been in an office building that had a fire once, I naturally couldn’t get back to sleep, so I was tired all day Saturday.

Oh, and did I mention that this is my second room? Yes, it is!

You see, I was booked into a suite. I’ve worked in the hotel industry, and I’ve got to say, I’ve never heard of a second-floor walkup suite outside of, say, Santorini.

So, they sort of drew an arrow toward the back of the property when I checked in, so I trundled my luggage down there, looking wistfully at the stairs. I decided to take my handbag up first, checking to make sure I knew where the room was before lugging my baggage up the stairs.

That was a great idea, as it turns out because when I went to swipe my card in the gate, I only saw a red light. Tried the other card. Same deal. Naturally, I’d left the hotel info at the bottom of the stairs (in the top pocket of one of my bags), so I went back down the stairs to call the hotel from my cell. They sent a guy to help me. His keys wouldn’t open the gate either, so he went around the other way. Yes, the shorter way no one had mentioned earlier.

Turns out the battery had fallen out (!) of the card reader “a few minutes ago.” Hrm.

Much to my disappointment, the room wasn’t really anything like a suite. It was a double hotel room with two large beds. In other words, no sitting area, which is pretty much what defines the word “suite” for me. Naturally, they were sold out, so there wasn’t any place to move me that night. However, they did say that they’d move me the next day. So, when I left for RubyConf’s Friday morning session, I made sure that everything was back in the suitcase for the move.

When I got out of the day’s session, I found that they had moved me to another room that was really a suite. It even had elevator access. And, for a brief moment, I was happy.

There were, however, elevator issues. At the end of the day, the elevator didn’t ascend. Apparently people hadn’t been very careful about the maximum capacity of four people and had overcrowded the elevator, causing it to sulk and fail to respond to commands. This isn’t unusual for elevators, and is one of the reasons that science fiction conventions (the smart ones, anyway) have “elevator party hosts” to prevent overcrowding and unhappy elevators.

They went to reset the breaker for the elevator and it happily carried me onto my destination.

Anyhow, all this is a very long-winded (45 minutes for me) way of saying that if I look ragged and tired tomorrow, I have good reason.

I just hope I’m able to get an actual night’s sleep tomorrow night, you know?

Read More

Don't Go All 37Signals On Me

13 October 2005

I just realized that I had three 37Signals application windows open (out of three browser windows):

  1. A client’s Basecamp
  2. My own Backpack with my flight info and so on for RubyConf
  3. My Tadalist! account that has my packing list.

Read More

EIEIO

10 October 2005

I remember reading a rant recently about frou-frou titles in small organizations. Does it really matter if you’re the CEO in a firm of three? Nah.

Given the plethora of C-star-O titles, I’ve personally been tempted to just put EIEIO as my title on a business card. Simple, cryptic, and no more meaningless. Of course, it might get people humming Old McDonald Had a Farm every now and again, but that would be a Good Thing (to associate that song with silly titles generally, not myself in particular).

Octopod asked tonight what EIEIO would stand for, were it a job title. Best I could come up with on the spot (never for a moment having even thought of the question before) was (since we’re talking a farmer, after all): Endocrine Inspection and Eatability Insurance Officer. Yes, I know, it should be Assurance, but, well, it was late and that was the best my brain could do given sleepy synapses.

Octopod said the cyborg name decoder came up with Electronic Intelligent Efficient Infiltration Organism.

I’m sure there’s a better decryption of the letters out there. Suggestions?

I’m feeling that lark that suggests I might actually Do This someday, and it’d be nice to have some title to roll glibly off the tongue should someone ask.

Read More

Java is Aristocratic; Ruby is Democratic

10 October 2005

A week or so ago, I was trying to explain to someone (who is not a programmer) what the difference in object inheritance between Ruby and Java is. I explained duck typing, but the person still wasn’t getting at what I meant.

I blurted out something different. “Well, Java is aristocratic, and Ruby is democratic.” I went on to explain that Java, in order to determine what you’re capable of depends on what your parent was capable of, plus those special methods that make you you and not your parent. It doesn’t matter if some other kid can do the exact same thing (with the exact same code), if it doesn’t have your parent, Java will think it can’t do it. Thus, aristocratic, because capability is determined by inheritance.

In Ruby, all you ask is “can you do this?” by invoking the responds_to? method. If it does, you’re golden. Thus, Ruby is a meritocracy, which doesn’t, strictly speaking, equate to democracy.

While this may not seem like a big deal, I should point out that it can be. For example, for my first large C++ project, we used zero class libraries from other vendors because none were ready yet. However, when they started coming out, it would have required huge chunks of re-coding to incorporate into another library because the inheritance would have changed.

At the time, when working with Windows coders as a Mac developer, I was keenly aware of how different the object hierarchies were: on Windows, everything was a subclass of window: text panes, buttons, everything. On the Mac, none of the other visual elements were subclasses of windows.

So, in other words, if we’d moved our custom framework into another company’s, such as PowerPlant, we’d have had to do a lot of code changes — probably more than if we’d used a C library — because we’d have to have had everything inherited from the right classes to buy into the framework’s inheritance model.

Had we been using Ruby (which didn’t exist at the time), we might have been able to do this in small chunks rather than all at once — because Ruby cares about what you can do, not who your parents were.

One of the geniuses of Sun was not the language per se, but the idea of releasing frameworks that helped standardize the use of the language. There’s now a lot of competing frameworks, though, so that didn’t last long.

On a completely different note, a couple of weeks ago, we went out to dinner with our friends. One of the people made a comment about Java being slow doing something or other. The person across the table, who works for Sun, commented, “You do realize that Java is a language invented by a hardware vendor….”

Read More

Kepler's Reopening

08 October 2005

I helped out at the Kepler’s re-opening today, checking supplies at the registers before opening and working info desk after. I can’t even remember how many special orders I took. Initially, they were going to have me help at the membership table, but there were few volunteers who’d worked in the store, and I liked working info desk when I worked there, so it seemed a natural. There were only a couple of things I needed to ask help with, but then it was smooth sailing.

Read More

Mint Results, Month 1

07 October 2005

I’ve been running Mint for a month now, and have the following to report (top 3 only in each case):

Browsers

  1. Firefox: 47%
  2. Internet Explorer: 24%
  3. Safari: 23%

Interesting, huh? Most of the Mac users are using Safari, but most of the Windows users are using Firefox.

Platform

  1. Windows: 61%
  2. Macintosh: 33%
  3. Linux: 6%

Resolution

  1. 1024 x 768: 40%
  2. 1280 x 1024: 22%
  3. 1280 x 854: 8%

Granted, if I did .NET development or something other than Unix-y Mac-y things, I’d have different demographics.

Read More

New AJAX Beta Book

06 October 2005

The good fellows over at the Pragmatic Programmers have found yet another way to extract money from me, in this case a brand new beta book on AJAX techniques, using several languages for the examples. So, while I’ve checked rails off as a category for this entry, it’s not just about RoR.

As Dave Thomas noted in his blog entry, the book’s only about 2/3 finished, so the part you most want may not be there yet.

Too bad I found out about it at 1:30 in the morning. I’m going to be good and not stay up all night reading it.

Read More

Test Fixtures/YAML tip

05 October 2005

I wound up getting an error in my test fixtures that it took me a while to figure out, in part because the text in that part of the fixture was several pages long. Here’s the error:

Fixture::FormatError: a YAML error occured parsing ./test/unit/../fixtures/stories.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html

The real issue in my case was having an unescaped colon in the data. And, as it took me a while to find out exactly how to escape a colon in YAML, you just do it by putting double quotes around the colon.

I hope this saves someone some time.

Read More