Trust Your Geekflex

Blog Forum Gallery

ACM and the Canadian Province of Alabama

Posted by Skrud at Wednesday, March 5th 2008 at 12:42pm

I got an e-mail this morning informing me that since I participated in the ACM ICPC, I was eligible to receive a free ACM Student Membership for one year. ACM is, of course, the Association of Computing Machinery: the “first society in computing”. It is a prestigious organization that puts on many conferences (such as SIGGRAPH and OOPSLA), present guidelines for teaching Computer Science and Software Engineering curricula, and ACM Fellows are considered to be widely respected and influential individuals in Computer Science. Being a student member of ACM would give me access to a near-infinite set of papers and articles, for one thing, and it would be a valuable resource to have.

I went to the ACM’s web site to fill out their form for ICPC participants. When I clicked submit, however, I was faced with this upsetting error message:

ACM Please Provide Canadian Province

No matter how many times I clicked “Submit” or filled out the form, this dialog would pop up. Following my geek instincts, I was determined to figure out why. I looked at the source code for the web page. Immediately, I noticed the all the code for the Javascript client-side form validation was right there in the page. A couple of quick searches and I found the reason I was looking for.

In validating the form, the Javascript checks to see that you did in fact enter a Canadian province if you selected that your country was Canada. (That is, if you entered something like “Kentucky” it would tell you pop up the error dialog, since “Kentucky” is not a Canadian province). Fair enough. However the line of code they had for validating Québec was something like this:

if ( form.s_state == "PQ" ) { success = 1; } else { success = 0; }

However in the form itself, as part of a giant list box, was the following option:

<option value="QC">Quebec</option>

Obviously, “QC” and “PQ” are not the same thing. So the form validation fails. What’s a geek to do? So I opened up Firefox, installed Firebug and went back to the form. I used Firebug to modify the <option> tag so that it’s value was “PQ”, thus allowing the form to be submitted. I was met with a nasty error debugging page, since apparently “PQ” is not a valid key in their database. This means that the form isn’t ever being validated on the server side. The values that I fill out, passing the Javascript client-side validation, go straight to their database.

Sufficiently disgruntled, and realizing that there’s no server-side validation whatsoever (other than some foreign key constraints in the database), I opted to simply disable Javascript in my browser. This worked like a charm. My form was submitted successfully, I received a registration number and confirmation e-mail and everything. This is analogous to being locked out of a car, and managing to open the door by pressing the “bypass locking mechanism”-button that is located on the handle.

But I made a mistake. After disabling Javascript I forgot to select “Quebec” from the dropdown box. So according to the ACM, I live in Montreal, in the state of Alabama, in Canada.

ACM Address Alabama

Ridiculous. This is the society of programmers, computer scientists and software engineers — and they can’t even get a simple web form right. Forms should always, always, ALWAYS be validated on the server-side. This is elementary. This is basic. This is common-sense.

Don’t worry, though. I fully plan to notify the appropriate individuals to resolve the problem.

Tags: , , , , | 5 comments

“Business Casual”

Posted by Skrud at Saturday, January 26th 2008 at 11:06am

I can think of few terms as ambiguous as business casual. What the hell does that mean? It seems everyone has a different definition of “business casual”. At my first internship, “business casual” meant that I could wear jeans as long as they weren’t torn, and polo shirts, button-down shirts, or even t-shirts. At IBM, the dress code was also “business casual”: jeans, and a collard shirt — but most often a t-shirt.

Then I came to this year’s Quebec Engineering Competition and was getting ready to go to the Wine & Cheese, where “business casual” attire was expected. So I threw on jeans and a collared shirt, expected it to be more “upscale”. My teammates were quick to point out “you can’t wear jeans, Skrud, we’re supposed to be business casual.” It’s a good think I had a pair of khakis just in case. So we showed up at the Wine & Cheese, and most people were in jeans.

According to the all-knowing Wikipedia, “business casual” is

for men, a combination of collared shirt (perhaps a tennis shirt instead of a dress shirt) and cotton trousers (such as khakis), shoes (such as loafers) without socks is generally acceptable.

Loafers without socks … ? That’s just crazy talk. I can think of few things less comfortable than leather shoes without the soft, comforting cushioning of a cotton sock.

I’m glad to know I’m not the only person experiencing this confusion. A quick google search yields plenty of articles like ‘Business casual’ causes confusion and What’s Business-Casual Attire?

The difference between my own interpretation of terms like “business casual” and the rest of the world’s has been summed up pretty neatly in this fabulous chart on Geek Etiquette. As it turns out, I’m not crazy. I’m just a geek.

Luckily, at the lab I’ll working at in Ottawa, I know I won’t have to dress up. When I showed up to my interview, I was wearing jeans and a t-shirt that read “I’m in it for the π”. The people interviewing me, on the other hand, were wearing hawaiian shirts and khaki shorts. Something tells me I’ll be fitting in quite well over there. (Though I don’t think I’ll be walking around in a hawaiian shirt anytime soon … at least not until my female friends tell me it’s okay.)

Tags: , , , , | 3 comments

OOPSLA!!

Posted by Skrud at Saturday, October 20th 2007 at 8:27pm

I’m a Student Volunteer at this year’s OOPSLA (Object Oriented Programming, Systems, Languages and Applications) conference. It’s the biggest nerd conference that I’ve heard of (and it’s probably safe to say that it’s the biggest programming conference there is). When I showed up today to man the information booth, I flipped through the list of speakers and panelists …

The names at this year’s conference are mindblowing. There are a number of former CUSEC speakers: Dave Thomas, Dave Parnas, Kathy Sierra and Ralph Johnson. I can’t even begin to express how happy I am that Kathy’s back on the speaking circuit! She delivered what was probably the best CUSEC keynote of all time.

But that’s not all, there are guys like Richard Gabriel (this year’s conference chair), Guy Steele, Ward Cunningham, James Gosling and Fred Brooks. And these are just the names that caught my eye at a glance!

Guy Steele and Richard Gabriel are giving a talk together called “50 in 50″, where they talk about 50 programming languages in 50 minutes. I was told not to miss it, and I won’t. :D

This next week is going to be insane.

Tags: , , , , , , | no comments

ImagineCup 2007 Semi-Finals: Arrival

Posted by Skrud at Friday, March 30th 2007 at 10:03am

The organization of the ImagineCup competition is just shy of appalling. I’m sure it can’t be easy to organize a massive software design competition on an international scale, but still – some things are just plain weird.

It started out innocently enough: Microsoft will book the flight for you, and the hotel, and give you a credit card upon check-in with a $125 limit that you can use for food and taxi to/from the airport.

The semi-finals for North America are being held simultaneously in four different cities. All the Canadian semi-finalists are to compete in Toronto, tomorrow. So here I am, checked in at my hotel. My flight came in around 8:35am. It left Montreal around 7:30am. I was at the airport around 6:30am. I woke up at 5:30am. I went to bed at 4:30am. I got home last night around 3:30am….

I don’t know why my flight was booked at 7:30am, and not – say – 5 in the afternoon. At the time I confirmed the booking, I was under the naive assumption that they would group people together by school and/or starting location and we would all be on the same flight.

Nope. All the other Concordians are on separate flights. Mine is the only one that was ungodly early.

Arriving at Pearson Airport around 8:30am, I got my baggage and hopped into a cab to the hotel. $50 later … and here I am.

So I check in at the hotel, and the front desk clerk says “You are sharing your room with another person …”. That’s okay. I was kind of expecting that. Why would Microsoft book 150 single-occupancy rooms? That makes no sense. Surely, I thought, Microsoft wouldn’t be so vacant as to expect geeks to share a room with a random stranger that they have never met, and would instead lump together people from the same school or city…. I give Microsoft too much credit. I don’t know who Lucas is, but he’s not here yet and I’m kind of weirded out by the lack of tact on the organizers part.

Oh yeah, and the front desk didn’t have any welcome packages, track jackets, credit cards, lanyards, or anything else that I was told they would have for me when I checked in. So they called the Microsoft bookers, and they didn’t know anything about the welcome packages, either. “Maybe you’ll get it when you register,” they said. Knowing when and where to register was something that was supposed to be in the welcome package …

And finally, even though this is an older one, Microsoft requires that you bring your own laptop in order to compete. This in itself is pretty strange, since usually the computer that you use is a controlled variable. They apparently will provide computers for people that don’t have one… but anyway… My laptop is a PowerBook. That is, an Apple PowerBook with a PowerPC processor. I couldn’t run Windows on this even if I wanted to. (Virtual PC is unusable.) No Parallels. No Boot Camp. Some kind friends offered to let me borrow their MacBook Pros, but I declined. First of all, I don’t want to be responsible for someone else’s laptop, and secondly – I prefer being a shit disturber.

What I do have is TextMate and Mono. Now all I’ve got to do is memorize the .NET API and I’ll be set. (We’re allowed internet access during the competition, but MSDN is notoriously annoying to navigate.) Plus, if I perform reasonably well, then it’ll just be embarrassing for the people using Visual Studio.

I just got an e-mail from the organizing lady saying that the welcome bags haven’t arrived yet, there was some confusion but it’s sorted out now. ;)

Things to do today:

  1. Take a nap (and hope Lucas doesn’t barge in and wake me).
  2. Write a SOEN 337 assignment.
  3. Party.

Tags: , , , , , | 2 comments

Hotel Dusk: Room 215

Posted by Skrud at Thursday, February 22nd 2007 at 10:23pm

While I was in New York last weekend (and an awesome trip it was) I picked up a Nintendo DS game called Hotel Dusk: Room 215, since it’s in high demand and Amazon was sold out. The game is an interactive mystery novel, and plays like film noir.

You play Kyle Hyde, an ex-NYPD cop who’s now a door-to-door salesman in LA. Three years ago he shot his partner, Bradley, who turned out to be a dirty cop. Bradley’s body went missing and Kyle’s been looking for him ever since, wanting to find out why Bradley betrayed the force. Kyle’s company sometimes takes on unusual offers to look for certain things, and Kyle will execute these missions. The latest mission brings you to Hotel Dusk, which is riddled with mystery, and some clues about Bradley…

Adventure games are built entirely around atmosphere, and the best part about Hotel Dusk is the atmosphere it creates. The characters have … character, and there’s emotion pouring out from them. The art style is sombre and subtle, but serious and dramatic. You can see smiles and slight grins, frowns and furrowed brows. I think the line drawings emote better than fully-rendered 3D characters would. The music is mostly piano, and soft jazz – which fits perfectly with the film noir setting – and accents the mood of the events in the game. It’s really easy to lose yourself in the game world for hours on end.

The story itself was intriguing, and filled with twists and turns as you discover the secrets of the hotel’s guests. Although it was pretty predictable, I still had fun unravelling the mysteries. The only issue I have with the game’s story is that it’s very linear – that is, there’s only one story and only one way to go through the game (with incorrect paths leading to a Game Over screen). This effectively reduces replay value to 0.

Hotel Dusk makes very clever use of the DS’s dual screens and touch pad. You hold the console sideways, as if you’re holding a book. You use the touch screen to navigate and inspect objects. When you have a conversation with another character, Kyle will appear on the left screen while the character you’re talking to will be on the right screen. This makes the conversations flow dynamically, and the facial expressions are excellent and accentuate the text. This game does some pretty clever things with the DS altogether, but I won’t mention any more because I don’t want to give you any spoilers.

If you want to see more, you should really check out this video review. And then go pick up the game.

Tags: , , , , | 7 comments

Older Entries