19th Jul, 2005

No comments

MovableType Style

I just finished upgrading my blog’s CSS stylesheet with help from MovableStyle.

Their styles are licensed under Creative Commons so you’re free to use them as is or as a starting point. I started with Tiny Green and then darkened the green, made entry titles stand out more, and increased the font size (from x-small to small!). You’re free to use my style as well.

17th Jul, 2005

1 comment

How Not to Fight Comment Spam

Until recently comment spam at work was easily identifiable because of the following style in the A tag.

‘style=”display: none’

It didn’t take long for someone to suggest that all of our comment spam problems could be solved with just fifteen minutes of programmer time. Just add a simple pattern match and ignore comments that matched that pattern. Just!

I think that approach is doomed to failure, spammers adapt. We ended up taking a different approach (delinking) and spammers reacted immediately by testing out a series of new attempts. Here’s my favorite:

<p style=”overflow:auto; height: 1px;”>oreilly (http://www.test.com) </p>

A fight using manual pattern matching is just a test of wills. You may as well remove the posts manually.

17th Jul, 2005

2 comments

Online Ruby Training

Scott Gray, the founder of UserActive, was talking to me about how important hands-on learning is to any sort of training. We talked a little bit about me writing a Ruby or Ruby on Rails class for UserActive and I wanted to get a sense for how the classes work.

I started with Learning PHP. The class is self-paced, you read lab material and type code into an integrated programming sandbox. Then at the end of the lab you take a short test or do a short programming assignment. A grader looks over your work and gives you feedback.

The hands-on piece works! The programming sandbox is really useful and gives you a chance to immediately hack on whatever the lab is teaching you.

The Learning PHP class was geared towards people new to programming or new to the web, for instance there’s a “What is a variable” section. That got me thinking, how would I gear a Ruby on Rails tutorial, towards beginners or towards experts.

Rails has a real following among high level programmers because it abstracts a lot of menial details while also offering enough flexibility to override the defaults. It looks like a Java killer so it’s ending up in a lot of flame wars about how enterprise ready it is.

People haven’t explored how easy it is for designers or part-time programmers to use. Is it a PHP killer? Well, you don’t need to know any Ruby to get a Rails application up. That’s a good sign. You usually don’t need to know any SQL. That’s another good sign.

I wonder if the Model-View-Controller model is too abstract for most non-programmers? In my experience, people will do fine. Our web producers work with a much more abstracted system.

In any case, I think the online lab + sandbox model that UserActive offers would be a great introduction to people who probably aren’t going to go through the trouble of installing Rails themselves.

In the mean time, here’s the full UserActive catalog.

15th Jul, 2005

No comments

Search Engine Optimization

Saw Craig Hordlow speak on Search Engine Optimization, (SEO). Normally this isn’t my bag, I always thought SEO was a polite way to say, “cheat the search engines.” It sounds sketchy.

Craig, however, is definitely not sketchy. He’s very pragmatic and I got a couple of neat nuggets.

The most pragmatic, and thus my favorite, was that search rank doesn’t matter if users don’t stick around on your site. So whatever you do to fool the search engines, don’t let it get in the way of creating a site that your lucky visitors will want to read.

He also talked a little bit about Page Rank. I’d heard of it, but I didn’t know it was something that the search engines shared with you. Here’s a tool to check your page rank.

He couldn’t help but share one cheat. Search engines add extra weight to terms at the top of the page. From the SEO perspective you’d do well by putting a lot of your search terms at the top of the page. That’s probably not going to do a lot of good for your visitors. However, you can use CSS to style your page so that the block of keywords at the top of your HTML file actually displays at the bottom. Tricky!

Craig runs an SEO consultancy, Red Bricks Media, and also teachs SEO at AcademyX.

15th Jul, 2005

No comments

Alpha Geeks vs Beta Geeks.

Geo Genius and Perl Wizard, Rich Gibson, gave me an amusing explanation of the difference between Alpha Geeks and the rest of us geeks (Beta Geeks). At least I found it amusing. It also happens to sum up the difference between the type of person I want to talk to at a Conference and the type I want to hire.

Imagine you have ten tasks of equal importance. You could complete all of the first nine tasks in under an hour. The tenth is so complicated it’s going to take you a full month. Do you tackle the nine quick tasks or the one hard task?

There’s only one right answer, as far as I’m concerned, if you are getting paid to do software development. Still, I recognize that a lot of people don’t come by this answer easily. If you can’t help but investigate that tenth hard problem and push the rote work off to tomorrow, then you’re a born Alpha Geek. There’s a good chance you’re going to change the world and be involved in some very cool inventions.

I wonder, as a Beta Geek, how to best work with Alpha Geeks. You can’t just hand them a list of function points and expect them to be implemented. But you need them around because they’re pushing the envelope and opening up opportunities.

Are Beta Geeks doomed to rote work, never ending quests for efficiency, and eventually (ack) management? Or is there a way to work harmoniously with the Alpha Geeks?

I think so. At the O’Reilly conferences Alpha Geeks are pushing their Alpha geekery, but the Beta geeks are right there pushing their ideas, picking out important new ideas, and translating everything into something that the rest of the world can pick up on. I suppose you could just say that diversity of ideas is important.

Rich, btw, was kind enough to sign two copies of his new book Mapping Hacks (written with my former coworker Schuyler Erle and the famous Jo Walsh). He keeps a lot of his crazy ideas on TestingRange and on the Mapping Hacks Blog. I think he’s an Alpha Geek who’s going to do very cool things.

2nd Jul, 2005

1 comment

Web Startups for Cheap

I had a nice talk last night with a friend who’s working on a web startup. I’m excited for him – the barrier to entry for starting your own company has plummeted.

Software and software techniques have solidified. An agile, keep it simple, release as soon as you have value development methodology is emerging from the bureaucratic promise everything and deliver crap, marketing driven dot-com mess. There’s also a much better understanding of how to get and keep users and how to market your company on the cheap.

Here’s the list of reading material that everyone starting a web company should be familiar with.

Ruby
Ruby on Rails is a web framework that lets you get web sites out fast. Very fast. And it has all the flexibility and robustness that you hope you’ll need down the road when your site becomes popular.
www.rubyonrails.com/

KISS Development
Ruby’s brought to you by 37 Signals, the company behind Basecamp. They’re also on the cutting edge of low overhead development methods. It’s worth following their blog (although they’ve watered down their content with generic blog entries).
37signals.com/svn/
37signals.com/svn/archives2/scoble_wonders_if_37signals_is_influencing_microsoft.php
37signals.com/svn/archives2/entrepreneurs_angels_and_the_cost_of_launch.php

Passion
Kathy Sierra, who created O’Reilly’s Head First Series, has great writing on what’s going to make your users enjoy their experience and come back for more.
headrush.typepad.com/creating_passionate_users/
headrush.typepad.com/creating_passionate_users/2005/06/building_a_succ.html

Blogvertising
Hugh Macleod’s blog, gapingvoid.com, teaches blogvertising by example. You think he’s talking explicitly about blogvertising or maybe making crass commentary on society. Then you realize that you want to buy some stormhoek wine and a english cut $3000 tailored suit. You just got sold to. I’m still not sure how I feel about that. All I do know is that I want a new suit.
www.gapingvoid.com/

2nd Jul, 2005

No comments

Ruby/Rails/Fedora/Apache2

I had much more trouble with this install than I did for Ubuntu, probably because I was trying to do more.

I started by trying to get packages with yum.
yum install ruby irb ruby-devel

That lead to a dependancy issue. I needed apxs, but what package is it in? Ended up being in the httpd-devel package.

Then I moved on to installing mod_ruby. Having the ruby interpreter run inside Apache seems like a good idea – at least from a performance standpoint. Here’s the guide I worked from.
http://www.modruby.net/en/doc/?InstallGuide

However, it turns out that mod_ruby comes with a slew of namespace complications. From the rails wiki, “considered unsafe to use mod_ruby and Rails with more than one application.”

FastCGI is a safer alternative. The rails wiki has good setup documentation:

http://wiki.rubyonrails.com/rails/show/RailsOnFedora

I did run into trouble with MySQL – I needed to tell Rails where the mysql.sock file was. Here’s a ticket explaining the problem.
http://dev.rubyonrails.com/ticket/200