Latest News >> 2008-07-20 2008-06-25

I’ve been completely fed up with news/feed/rss/atom readers these days. I use Linux as my primary operating system, and I only have a few feeds that I want to rip through quick so I can get to reading the content. Yet, trying to find a reader that doesn’t suck donkey balls has been a chore.

2008-06-21

Wanna know what all the Ruby vulnerabilities are? Or at least have a fun look at how to search through code for clues? It’s a blast.

2008-06-13

I’m dropping a large blog post on everyone to just say that I haven’t died, I’ve just been busy working on my book for A/W about Mongrel. I had contracted with them to do a book about deploying Mongrel, but then decided it wouldn’t be a very good book since we’d already done one about that topic and there wasn’t too much more to say.

CUSEC 2008 Rocked Hard!

Last week I attended CUSEC 2008 in Montreal and it was an insanely fun conference. This is a conference for Canadian software engineering and computer science students to meet people working in the industry or doing interesting research. This year’s theme was “Making it Fun!” and they did a great job putting it together. The whole four days I was there I got to hang out, talk tech, be geeky, meet interesting people, explore montreal, eat tons of meat, and just have fun.

Email Me!

Before I start, If you attended CUSEC and you wanted to talk to me but didn’t get a chance, or just want to talk some more, then I’d love to hear from you. Send me an email telling me about yourself and how you liked or didn’t like my presentation.

Damn Well Organized

The first thing I’d say about this conference, and many of the other small regional conferences is just how well organized they are compared to the professional and larger conferences. The CUSEC organizers are all volunteers from universities, yet they were better planned, had their act together, and really knew how to put on a show.

Let’s take paying for flight and hotel as an example. Other conferences I’ve attended run by professional organizations actually ask me for a fucking invoice. There’s some that still haven’t paid me for my talk and others were pissy about having to pay for flights “last minute” even though the prices don’t change.

The CUSEC organizers did ask me to pay for my flight and book the hotel on my credit card, but the second I showed up they gave me a certified check in USD and had my hotel transfered to their account so I didn’t have to pay. The entire time they bought my food, transportation, everything.

They had everything setup right down to where we’d go eat, reservations who was in what room, even party time at clubs and other outings. There was so much going on, but all I had to do was show up and be myself. They took care of everything.

Professional conferences I’ve been to can’t get anything straight. They don’t even put the conference schedule up until the absolute last minute (probably so you can’t figure out that the same asshole is talking about the same tired Rails social network yet again).

CUSEC however had everything up their website well in advance. Hotel information, costs, pricing, speaker biographies, schedules, sponsors, everything.

And this is run by a bunch of volunteers. Incredible.

Montreal

Montreal is an wickedly cool city, in more ways than one. I mean it was damn fucking horribly cold. Deathly cold. But, in the summer it’s supposed to be gorgeous there so I’m thinking of taking a trip then to visit.

Montreal is also cool just in how friendly and truly Canadian they are. I lived in Vancouver, BC for about four years and absolutely hated it. Vancouver is full of morons who are afraid global warming is going to one day swallow Whistler and their 20 million dollar houses. I couldn’t stand Vancouver.

Montreal however reminded me of what Canada is supposed to be: friendly, cool, relaxed, and open. The sexy French accents helped push this perception, but also the food, the fact that strip clubs were everywhere, the streets were clean, people smiled at me (nobody in Vancouver smiled) and everyone seemed to be having a good time.

There’s also a growing tech community there that seems to be drawing big names to the area. The conference had no problems getting sponsors and there were a few people (including students) who were firing up start-ups. This is nice to see since I remember Vancouver being horrible for technology unless you worked for a utility, the phone company, or the Slave Ship EA.

Other people will read that I hated Vancouver and disagree, which is perfectly valid since any place is what you make of it. Just remember that I’m more of a New York kind of person so putting up with passive aggressive wankers all day drove me nuts.

Yet, even my NYC style attitude had a ton of fun in Montreal and felt kind of right at home. It’s a great city that I’d visit again any time, and I wish I had my first Canadian experience there instead of the left-left-left coast.

Day 1: Steak And Strippers!

The conference opened with Tim Bray talking about concurrency. I’ve met Tim a few times at other conferences and he’s a nice guy. I tend to disagree with his assertion that programming is serious business since I do this mostly for fun, but I’ve enjoyed most of the things he’s written and done.

Tim’s talk was about Concurrency and other related hard problems in computing. It was a decent talk, and I think the audience got some valuable information out of it. He went through his wide finder project which is an attempt to get programmers into concurrency on the newly hot multi-core machines. The WF project became famous since it showed that Erlang isn’t all that fast after all when written by a newbie trying to do lame things like read files.

I liked Tim’s talk since it was perfect for students starting out, and it dovetailed well with a talk by Dr. Peter Grogono on the same subject.

Then I went to see Kate Hollenbach show off the E15 project. What she demonstrated is a way to do simple visualizations using a Python simplification wrapper to most OpenGL primitives. What impressed me the most is she did live demos of large scale 3D visualizations based on information from internet services like Facebook. She did this live right off the internet and it didn’t tank on her. If the project already can survive the demo effect then it’s doing pretty damn good.

Next up was my keynote. I did my keynote in Factor using a neat presentation DSL that Slava wrote up for another presentation he did. You can grab the source to it here. Then go grab the 0.91 release, put the file in extra/cusec2008/ in the Factor directory, and then just start factor and type: “cusec2008” run to start it.

Yes, I make it hard to read through on purpose you bastards. Learn something for a change.

Anyway, my talk was a lot of fun to give and the audience seemed to both be crushed and inspired by it. The gist of my talk is the following:

  • I work at a stupid bank on a cool project.
  • Their bureaucracy almost crushed the project.
  • They tried to push through a product we couldn’t use due to a major theoretical limitation in how ACLs work: they aren’t turing complete.
  • Steak And Strippers! The sales guy’s dirty bomb.
  • After months of wasted effort on the project and fighting stupid politics we finally implemented something better.
  • This kind of thing makes being a corporate programmer suck, suck, suck!
  • Don’t be a corporate programmer. They demand all of your creativity and trust none of your judgment.
  • But, you’ve gotta eat so if you do become one, here’s how you survive.
  • Then tons of advice on how to survive and be happy until the moron MBAs who know nothing of technology die off and are replaced with people who get it.

I had to protect the innocent of course, so the story is changed around and altered slightly, but the point was clear: being a corporate programmer sucks and probably won’t change. Employers take advantage of you, treat you like crap, just want you to be a rivet puncher, and fire you the second things go bad.

Throughout the talk I had jokes, insulted the right people, ranted, and basically set the tone of the conference to what the organizers (hopefully) wanted: Just fucking have fun!

The thing I found interesting about my talk is that it seemed like nobody else had ever told these kids what it’s really like working for The Man. Many of them came to talk to me later saying that they were going down the road to being a lame corporate programmer and that my talk kicked them in the ass to do something for themselves. One kid decided that he was quitting the RMC Military Academy since he didn’t want to do that anymore. Others told me it helped them decide what they wanted to do after college.

They Got A Brain

Another thing that impressed the hell out of me about the audience is that many of them actually came up and told me they didn’t agree with all that I said. Other conferences I’ve been to people either don’t speak up when a speaker is being an asshat, or if you do challenge the speaker he gets all pissy.

I remember at QCon 2007 this idiot Larry Constantine who gave a talk on Human Computer Interface design that had shitty colors, horrible fonts, running elephants, and was the worst presentation ever. I mean, look at his fucking web site. He’s teaching people about usability. And don’t give me any of that “cobbler’s shoes” crap. His entire presentation was about how he rolls into companies and gets programmers fired for doing bad usability design.

Throughout the talk he kept saying, basically, “Fuck the programmers! They’re EVIL! FUCK THEM! THEY DON’T KNOW HCI!” He obviously was too into The Inmates Are Running The Asylum to realize that Alan Cooper is full of shit and places the blame on the programmers where he should be blaming management. You know, management like Larry Constantine who comes into a company telling management that all their woes aren’t because the MBAs in charge put a bunch of programmers in a room and demanded that they build a social network without a single bit of graphic design help. Nope, it’s the programmer’s fault. This makes management feel better since they can pay Larry tons of money to talk out his ass, and fire programmers at the same time!

I of course took offense to this. I went up and told him so, basically saying that he’s the dude who rolls in to get people fired. He of course didn’t want any debate on the topic, but instead said rather irritated, “Well I’m sorry if you got fired because you didn’t do a proper design.” To which I said, “Well I’ve never been fired because of that, usually I fire guys like you.”

CUSEC attendees and speakers were very different. It wasn’t like other conferences where everyone is supposed to be a little drone listening to talking heads. These were students who I would speak in front of any time. I don’t say things so people will agree with me. I say them so people will think. Hell, sometimes I’ll take an unpopular position simply to piss people off and get them thinking about the situation.

What blew me away first off is that the audience asked actual fucking questions. I’ve been to so many conferences where half of the shit the audience spews out of their mouth hole after the talk isn’t a question. They state what they think, talk about their own work (which usually sucks), and just don’t ask a fucking question. The CUSEC attendees rocked because they got up, and not only asked great questions, but asked challenging ones that caught a few speakers off guard, myself included.

After my talk I was also impressed with how students would just tell me they disagreed and we’d have a nice debate. Not an argument, a debate. A friendly disagreement that is discussed between people. Even though I was obviously a hero to some of the kids they still took it to me and made me defend my position.

That is absolutely fucking awesome. In fact, I want more people to disagree with me since that means they’re thinking.

I really think a major problem in our industry is that programmers turn their brains off when someone with a Ph.D. or who’s written a book makes a statement. They’ll listen to idiots like Mr. Constantine and just nod their heads “uh huh” in agreement. There’s very little criticism of these pundits, and it blows my mind that the words of some pundits get used as the basis of entire industries. Industries that fail later despite everyone looking back and saying, “Damn that was a shitty idea.”

CUSEC was full of great independent thinkers and I hope they never lose that. Always question the people telling you how it should be and demand evidence. If some shit head Haskell moron tells you that software should be stateless, then ask him why there’s monads. If someone says that you should be doing more usability, then ask him why his website sucks shit.

If someone says that working for a corporation sucks, then ask him why he’s doing it. Question their authority and use your own judgment first.

Don’t ever forget this.

Day 2: 2.1 Million Dollars!

The second day was another fun day of food, smart talks, great presenters and not-so-freezing cold. The temperature had warmed up a bit so I was happy. The night before I didn’t do too much partying since I was tired from flying and speaking, but the morning started off good.

First I didn’t make it to the first talk I wanted to hit which was about using XNA to do games, by Julian Spillane.

Then there were some talks by corporate sponsors looking to hire folks. One very key difference in CUSEC from other sponsored conferences is that CUSEC doesn’t just let the sponsors pay for a pulpit. If they want to talk they have to actually present something relevant just like the other speakers.

If you’ve ever been to a Ruby on Rails conference you’ll know that Thoughtworks has their pin-up-doll-of-the-week chick get up and do a reality distortion field sales pitch to the crowd. What blows me away is people show up.

At CUSEC the corporate talks were actually useful and given by non-sales people. They did include pitches to hire folks, but not but based on how cool their product was and how interesting the work is. Additionally, I had managed to inoculate most of the students against stupid sales pitches so most of the people trying to recruit had to throw in, “We don’t suck like Zed says other corporations suck.”

I was actually also proud since throughout the rest of the conference students would yell out “Steak and Strippers!” whenever it was funny.

Awesome.

I then went to Jeffrey Ullman’s keynote which was interesting. He talked about different text searching and comparison algorithms using shards and minimal hashing. Pretty neat stuff, and since he’s basically the grandfather of google having been their thesis adviser, it was worth seeing.

Finally I went to see Idée talk about their very cool company. What they do is provide image based search for companies that have to collect on royalties for photos. You basically drop a photo in and they find everywhere it’s used. Even if the photo is heavily altered, sliced up, or even changed into an oil painting by photoshop. The demos were impressive.

The best was when they showed off their new feature that lets you view a kind of visual diff of the before/after images. They use a picture of Brangelina where the before picture was normal with the couple smiling and the after picture was heavily doctored to make them look away and frown. The caption was of course that they were going to break up.

After the great technical demonstration, they talked about how they got their start-up going. The talk was pretty good giving the usual self-help style advice of “just keep trying kiddo!”

Then they mentioned that the two partners actually had 2.1 million of their own money for the “start-up”. That pretty much killed the talk for me. Technically it was excellent, but if you come to me and say you got your business off the ground by a heavy investment of 2.1 million bones then I don’t call you a start-up. A start-up is Woz and Steve Jobs making circuit boards in their garage on nothing. With that much money you’re just a business.

That night was great too, as I went out to a bar, talked to tons of folks until I couldn’t talk and then went back to my hotel to crash and start again. Man those kids can party.

Day 3: It’s Bagel Not Bajil

The third day was great too. I gave a talk on Factor that a few people got to see, and across the hall Adrian Thurston talked about Ragel (which he pronounced like bagel, so I was wrong).

I really wanted to see Adrian’s talk since I had invited him and I’ve been using Ragel for years. However, I also invited Slava Pestov to come talk but he whimped out at the last minute and decided to defend his MSc. in Mathematics instead. Loser.

No worries though, because I got Slava’s CUSEC speaker’s plaque and plan to take it on a disgusting traveling gnome style tour of NYC before mailing it to him.

Mwhahaha, revenge.

Anyway, the Factor talk was fun, but I didn’t do it nearly enough justice.

I then went to check out Jeremy Cooperstock’s presentation on some of the things he’s doing with distributed music performance. It was a kick ass talk about how the current internet can’t handle the required latency for musicians in different locations to perform together. He showed demos of people collaborating in musical performances, teachers doing distance education, and how this pushed the limits of internet technology.

Then Jon Udell gave a talk on how he used REST and other internet tech to do a librarian application, thoughts on REST and usability, and a bit on the semantic web.

One thing I found annoying about Jon Udell’s talk is that, just like all the other RESTafarians, didn’t have a clue about HTTP. He mentioned that you could use ’;’ in a URL to give people hierarchy, but that’s just dead wrong. It’s the exact same problem that Rails ran into, since ’;’ is a path parameter and isn’t part of a file name at all. It’s right there in the HTTP spec that you can’t do it, and part of the grammar even, but REST people don’t have a clue. They think if they can put the char in a file on their modern file system then it can go in a URL. Not true at all since HTTP was built before most modern file systems.

I asked Jon if there was anything he’d change about HTTP. He kind of just gave a blank stare and said, “Why would I do that?”

While it may seem pedantic to focus on such errors, if you give a talk about REST then that includes HTTP and you better know it. Particularly if you give out advice that can bite people by violating the standard.

It’s also sad that pundits like Jon have such a tiny grasp of just how shitty HTTP 1.1 actually is in practice. It’s not that great of a protocol thanks to bizarre corporate interests and stupidity from the original designers. HTTP now has this mythical biblical status that means nobody can question it, but at least the guys like Jon at the top of the food chain could take a moment to ask some hard questions.

This goes back to what I was saying about questioning the status quo. We need more people asking questions about why the hell things are in their current state, rather than just accepting them.

I later had the chance to sit next to Jon and chat with him. He’s a smart guy for sure and very nice. Just wish he wasn’t telling kids how to do REST.

Finally I watched Jeff Atwood of Coding Horror fame talk about what a lot of other people have said and why you should blog. I completely agreed with everything Jeff said, except for a tiny bit of hypocrisy he didn’t fess up to until asked.

See, Jeff’s talk was obviously changed up to compliment mine. He basically said what I said, that if you want to do software go work for a software company. Don’t go work for a company that doesn’t do software to make money. They won’t respect you.

That’s true.

He also talked about how blogging is something all programmers should do. Being able to write and influence people is important since that’s how you get your ideas across. Nobody reads code but they do read English.

Also true.

However, then someone asked Jeff what he does, and he said he works for a .NET consultancy doing software for other people.

Sorry Jeff, that’s not a software company. A software company actually sells software to people. People buy the actual software from you and if they don’t your company fails. Jeff basically works for a consultancy that builds software for other people to sell. While he’s probably the money maker, I’m betting that he’s really not on the same level as his peers at a company like Microsoft.

Now I don’t know who Jeff works for, or what it’s like, but if he tells people to go work for a software company, then either he should fess up and say he doesn’t (like I did) or actually do it too.

I’d add something to Jeff’s presentation if I could.

Don’t just fucking blog, but write some software and give it away. While the average person can only read a human language, the people you really need to hit with your message as a programmer are other coders. I’d say that’s the best thing I’ve done for myself, not really the blogging.

Jeff is a great public speaker too. Even though I disagreed with a few of his points I really liked his talk and would see him speak again any time.

That night everyone went out for dinner and dancing which was a lot of fun all around.

Day 4: Post-Con Freeze Your Ass Off

I stayed an extra day after the conference to go check out Montreal some more. I got to hang with some of the organizers and their girlfriends and wives. We wandered around and ate hamburgers. It was fun.

The Conference Stars

I have a policy of not naming people on my blog since it’s normally a pretty fucked up place to get named. I’ll just keep it short however and say all of the organizers kicked major ass.

They were all nice, awesome people that I’d hang out with any day. I’m glad they invited me to the conference and I’d come to the next one any time.

If you get invited to talk for CUSEC next year, please come. I plan on being there again if they invite me, and I’d say it’s probably best if you try to stay for the whole thing. Too many of the speakers just showed up and left right away, when half the fun is spending time with the people and finding out about them.

But, maybe staying for the whole thing is what separates the pundits from the rest.

Flickr And More

You can check out photos of the conference as people post them, and when I get more I’ll do a whole photo blog post about it.