Saturday, November 1, 2008

Hhffrrrggh: WTF?

Once upon a time, while driving up to Madison from Chicago, I noticed a sign alongside the highway. It was one of those signs that precedes an exit and shows all the different restaurants that you'll find off that exit. I sped past at 80mph, barely glancing at the sign, and immediately thought Did I just see... ??. One of the restaurant adverts was pink with white text, so it was kind of hard to read, but I could've sworn it said something completely unintelligible. It was a weird bit of surreality in an otherwise uneventful drive, and I soon forgot about it.

But I drive that highway several times a year, and (when I remember) I started looking for that sign each time I drove past, trying to figure out whether I was crazy or whether it actually was complete gibberish. And today I'm pleased to report that I've found the culprit, and that I am not, in fact, crazy (or at least not hallucinating):

Welcome to the Hhffrrrggh Inn - Janesville's hmost hfun place to eat and drink. Can't say it, can't spell it, can't forget it.

So... did they just let their cat walk on the keyboard and name the restaurant after the results?

Saturday, October 25, 2008

Knitting breakthroughs

Ahh, the joys of being self-taught.

This week while poring over diagrams of a new knitting stitch I'm trying to learn, I realized that for the five years I've been knitting, I've been doing the most basic stitch—"the knit"—wrong.

You're doing it wrong.

Sigh. At least I figured it out before making a mess of my latest project. This is the first time I've tried anything that wasn't just a basic stockinette or seed stitch, so it never really mattered before.

Incidentally—although I don't think this had anything to do with my learning the stitch wrong—I taught myself to knit while I was in Paris, so my book is all in French. This means I don't really know any knitting vocabulary in English. For those interested, here's my new stitch:

My knitting project

The yarn is Plymouth baby alpaca grande paint, #8819. It's a bit expensive but is gorgeously soft (and the color is much better than this photo makes it out to be). Here's the stitch ("Grille ondulée"):

Cast on a number of stitches evenly divisible by 12.
1er rang: *4 mailles croisées à droite (glisser 2 m. en attente derrière le travail, tricoter les 2 m. suivantes à l'endroit, puis les 2 m. en attente), 4 m. endroit, 4 m. croisées à gauche (glisser 2 m. en attente devant le travail, tricoter les 2 m. suiv. à l'endroit puis les 2 m. en attente)*, répéter de * à *
2e et tous les rangs pairs suivants: à l'envers
3e et 7e rangs: à l'endroit
5e rang: *2 m. end., 4 m. croisées à gauche, 4 m. croisées à droite, 2 m. end.*, répéter de * à *
Répéter toujours ces 8 rangs.

Friday, October 24, 2008

Mimes as traffic cops

I know it's a blogging no-no to just republish stuff if you don't have original commentary to add, but I was so floored by learning about this yesterday that I just have to share it with you:

A mime in Bogotá

[Antanas Mockus, the former mayor of Bogotá, used] mimes to improve both traffic and citizens' behavior. Initially 20 professional mimes shadowed pedestrians who didn't follow crossing rules: A pedestrian running across the road would be tracked by a mime who mocked his every move. Mimes also poked fun at reckless drivers. The program was so popular that another 400 people were trained as mimes.

NPR story—which is even more compelling than the above article—here, starting at 34:00.

Thursday, October 16, 2008

Lessons Learned while Indexing the Web

If you know what I've been working on for the last nine months, you might (correctly) suspect that I've learned a few lessons about developing large-scale (highly scale-able) and complex software. Let me share some thoughts I've got about the subject.

But before I begin, I should point out some aspects that make this a special project. I can't speak for the UI, and while everyone on the engineering team worked on the project in the final months, the development team—especially in the early stages—was small. Ben Hendrickson and I headed up architecture and the software efforts. We were the "core" team for the back-end efforts. So this made some things a lot easier. I'll comment more about this later.

Be Bullish (but Realistic) in the Planning Stages

One thing that helped us tremendously was to be broad and optimistic in the early stages. Doing this gave us a large menu of features and directions for development to choose from as plans firmed up and difficulties arose. I know the adage, "Under-promise, over-deliver." And there's a place for that mentality. When we did start to firm up plans, clearly we were not going to promise everything. But we tried to keep things as fluid as possible for as long as possible. This worked out for almost all of our features, and by the time we were half-way through with our project we had the final feature set nailed down, and prototyped out.

There was one substantial feature that we had to cut just a few weeks before launch. Perhaps we were too bullish, but I believe that this kind of thing is fairly normal for large software projects. I'm looking forward to working on that for the next release. ;)

Have Many Milestones and Early Prototypes

I wish we had had more milestones and stuck to them. The last couple of months were hellish with literally 14-16 hour days, 7 days a week. With my commute, there were many days that I arrived home, got into bed, woke up, and rolled back onto the bus to start it all over again. Despite reading about "hard-core" entrepreneurs who have this as a "lifestyle", I would not recommend it for a successful software engineering team.

We hit our earliest milestones and even had an early version about four months before launch. But the two milestones between that prototype and launch both slipped and no one stepped in to repair the schedule. So the rest of the team (including Ben and me, plus another six software engineers) had to take up the slack at the last minute. Missing these milestones should have told us something about the remainder of the schedule. Frankly, I think we were lucky to launch when we did (good job team!).

Low Communication Overhead = Success

We were lucky to have a small team. For the back-end it was basically just Ben and me. And we do all of the data management and most of the processing in the back-end. So it was easy for Ben and me to stay in sync. Add to that the fact that we work well together and we were able to achieve in a small team, what normally requires a much larger team.

While I've worked in much larger organizations, I've never had the leadership role in those organizations that I do now. So I can't say how much of this advice applies to larger organizations. I guess my feeling is the same that many people have: keep related logic together in small teams, have clear interfaces to other units. This worked well when we integrated with our middle-ware and front-end.

KISS

Anna Patterson describes a simple roadmap for building search engine technology. I'm not saying we followed this plan, but I can say that our (I hope successful) plan is equally simple. Identify the work you need to do. Come up with reasonable solutions. Plan and implement them. Don't get bogged down in hype or fancy technology.

There's certainly more to success than these points. These are just what come to mind when I think about the success of this project. In any case, good luck on your own projects!

Wednesday, October 1, 2008

What's a little impending doom among friends?

As you hopefully know, CERN's Large Hadron Collider—one of the most elaborate physics experiments ever built—is finally finished and was first turned on several weeks ago. Leaving aside the fact that it broke down a few days later (!), I've been truly surprised by how many people are worried that it's going to create some sort of time-space anomaly that could destroy the world. The subject came up recently over lunch and (to my surprise) the majority of my PFM sisters were freaked out about our planet's impending Swiss-wrought doom.

And they're clearly not the only ones, since the BBC broadcast an interview the day before the collider was turned on in which they asked a scientist about the possibility of black holes being created during the experiments. His response was to laugh knowingly and say not to worry; even if the experiments do create (tiny) black holes, "there's no chance of them devouring the world. Ha, ha, ha!"

I couldn't find the exact interview, but here's a very similar one. Unfortunately it doesn't quite recreate the awkwardness of that scientist's particular response. I think the definition of 'egghead' somehow fundamentally involves the idea of believing so deeply in science that you'll laugh at another person's fear of death as if they were confusing a Stephen King novel for reality. "Black holes? Ha! Next thing I know, you'll be worried about langoliers!"

Monday, September 29, 2008

TSA Permitted & Prohibited Items

I'm flying to WI later this week (roller derby Eastern Regionals, baby!), and—having recently started a new knitting project—was wondering what happens when you try to bring knitting needles through airport security. Even though you could do much more damage with a ballpoint pen than with a blunt knitting needle, I would hate to underestimate TSA's overzealousness in "protecting public safety" in a post-9/11 world.

So I found this useful list of what's allowed and prohibited on airplanes. It even breaks things out into what's allowed in carry-ons vs. what's allowed in checked luggage. According to the list, knitting needles and crochet hooks are allowed on the plane; however, this follow-up article isn't exactly confidence-inspiring ("In case a Security Officer does not allow your knitting tools through security it is recommended that you carry a self addressed envelope so that you can mail your tools back to yourself as opposed to surrendering them at the security checkpoint").

[ Edited 11/24/2010: Just looked at the knitting/needle-crafting-specific article and it now says unequivocally that knitting needles and tools are allowed in all luggage! No more "we may or may not take them away from you." ]

I was surprised to learn that disposable razors and scissors < 4" long are allowed in carry-on luggage. Happily, the list confirms that throwing stars, cattle prods, hand grenades and tear gas are not.

I feel safer already.

[Edit: Maybe I just need one of these. "Nothing to see here, folks!" (Hat tip to Nish.)]

Saturday, September 27, 2008

Read a banned book

Today is the first day of Banned Books Week 2008. From their website:

Banned Books Week is the only national celebration of the freedom to read. It was launched in 1982 in response to a sudden surge in the number of challenges to books in schools, bookstores and libraries. More than a thousand books have been challenged since 1982. The challenges have occurred in every state and in hundreds of communities.

To my surprise, I discovered that a book I just started reading today (The Perks of Being a Wallflower, which I learned of through NPR) was one of the top 10 most challenged books in 2007. So I'll be celebrating Banned Books Week by curling up on the couch to finish it.

If you too value the freedom to access the literature of your choice—literature that may educate, entertain, shock, or open your mind—then check out this list of most frequently challenged books, visit your local library, and go exercise your First Amendment rights.

Friday, September 26, 2008

Ladies!

Thanks to beatnikside, I just stumbled across a delightful video which combines two very delightful things: roller skating and Flight of the Conchords! If you're unacquainted with either one, I highly recommend both. :-)

Friday, September 12, 2008

You could face certain death. Maybe.

Today the news keeps mentioning how Hurricane Ike is bearing down on the Texas coast. Their repeated quote is that

The National Weather Service warned residents of smaller structures on Galveston they could "face certain death" if they ignored an order to evacuate.

Why is everyone saying "could face certain death"? Shouldn't it be "will face certain death"? If you could face it (but maybe not), then it's not really certain, is it. And if they really do think it's certain death, they should probably be using more unambiguous language.

Wednesday, September 10, 2008

Robert Fulghum knows everything there is to know

Last fall our local NPR station (KUOW) did an interview with Robert Fulghum, the author of All I Really Need to Know I Learned in Kindergarten. It sounds like he has a pretty sweet life these days—hanging out, writing books about being a good person and getting back to the basics of life. Being a nice guy. Talking on public radio.

One of the things that struck me was his comment about bloggers. He said that the web's full of bloggers these days and they're all trying to be gurus: specialized in one topic, authoritative, informative. In contrast, on his blog (he says) he just writes as if he were writing to a friend. Topic: whatever's on his mind. Tone: relaxed. No need for research or references. Just engaging in a bit of friendly conversation with no one in particular. It's like that crazy guy at your coffee shop who talks vaguely to anyone within a few meters of him, only when you do it in writing it doesn't make you look like a such a weirdo. :)

He said he tries not to "get into the guru racket" because all the good advice in the world has already been known for ages, so who needs a bunch of self-proclaimed gurus popping up all over the internet trying to say something new. He actually said, "...The good stuff has been there, we don't need any new stuff."

Now, I can see how that goes along with his whole philosophy of simplification. It's summed up in the idea that "all I really need to know I learned in kindergarten," right? He believes that there are some fundamental ideas that are easy to learn, and everything else is just a more complex version of those fundamental ideas. But I can't really get behind this idea that everything has already been said and that there's nothing left to be an expert in. I mean, honestly? What's the point of perpetuating the human race if everything has already been said and done and figured out?

Perhaps my perspective as a technologist colors my view on this; but it seems to me that there are tons of new things being thought up all the time, and that we do still have a need for experts in new fields—people who can speak compellingly and authoritatively. That's not to say that I think every random blogger is compelling and authoritative (far from it!); but I think it's overly simplistic to say that we don't need new thought leaders.

What do you think?

The relevant part of the interview starts around 14 min. into the audio file, if you're interested in listening.

Monday, September 8, 2008

Google Tech Talk: Hacking English

Since my last post on a Google tech talk was such a hit (well, as much as anything on a blog that averages 10 visits/day can be considered "a hit"), I've been meaning to blog about another great talk I attended. It was called "Wordmaking: What it takes to succeed in hacking English and invent a new word," and was much more light-hearted than the talk on plurilingualism. Here's the abstract:

Learn the basics of word formation in English, get "raw materials" for new words, and invent your own word (and have it critiqued) before you let it loose into the English language. The maker of the "best new word" (as voted on by the participants) will win a new dictionary.

The speaker was Erin McKean, a dictionary evangelist, lexicographer and editor of dictionaries. She's a very entertaining speaker, and even has a Murphy's Law-style law named after her:

McKean's Law: Any correction of the speech or writing of others will contain at least one grammatical, spelling, or typographical error.

The talk was about the productivity of English (the degree to which it lends itself to making up new words that other English-speakers can understand), and the building blocks that make that possible. English has inherited a lot of words and grammar from various language families (principally Germanic and Latinate), so English speakers have a lot of morphemes (the building blocks of words) to play around with—prefixes, suffixes, different roots that mean the same thing.

I think my favorite part of the talk was the obvious glee that Erin took in playing with language, and all the new words I learned (both "real" and made-up) from her talk. Here are my favorites, which I encourage you to incorporate into your daily speech:

catachresis (n.)
A linguistic error that comes to be accepted as "correct," usually because it's so common.
Examples: apron used to be napron, but people heard "a napron" and started interpreting it as "an apron." Strait-laced is more commonly misspelled as straight-laced than correctly spelled; so who's to say how long the "incorrect" version remains incorrect, if a majority of people are using it?
epicene (adj.)
Gender-neutral.
Example: English-speakers have been trying to invent an epicene singular pronoun for years, but none have ever really stuck so we usually end up saying "they" even for singular referents.
nonce (adj.)
A nonce word is a particularly time- or place-specific word (which is thus unlikely to catch on as a word that survives the test of time).
Examples: Excaliburger, comcastic.
pregret (n.)
The knowledge that you're about to do something you will later regret having done.
See also: prevenge.

The word that I'd like to get traction for is kez, meaning "fake cheese, or any plastic-like substance trying to pass itself off as cheese." Which brings me to this great website I heard of recently via Says You, a public radio show that every linguaphile should check out: Addictionary.org, where you can make up words, vote on other people's submissions, or submit definitions in search of words. Go to Addictionary and vote for my word.

Have you coined any words?

Saturday, September 6, 2008

The Homeland Generation

I was recently filling out a survey and was asked to give my age in terms of what generation I'm part of. These were the options provided:

Birth Year
  • 2001-Present, Homeland Generation
  • 1982-2000, Millennial Generation
  • 1961-1981, Generation X
  • 1943-1960, Baby Boom Generation
  • 1925-1942, Silent Generation
  • 1901-1924, Depression/GI Generation

Homeland Generation?? Have you ever heard that before? That sounds so depressing to me. I mean, who wants to be part of the generation that grew up in a world in which you have to meet your friends at the baggage claim because you're not allowed to meet them at the gate? In a world in which the US is progressively more isolated and our constitution is being progressively eroded? I guess it is interesting to realize that there are now kids who've only known this type of world, though—it still surprises me that the Sept. 11 attacks were 7 years ago now. It's surprising that things have been going downhill for that long.

Hopefully we'll be able to turn things around so that by the time the Homeland Generation is old enough to be politically aware, we'll once again have a government that they can be proud of.

What happens at a caucus?

I'm cleaning out some old drafts I never got around to publishing, and thought this one was kind of interesting given that both parties have held their conventions in the last 2 weeks.

* * *

In February Washington state held its first round of Democratic and Republican caucuses for the 2008 presidential election. Having learned that the Democratic primary doesn't actually count for squat in selecting delegates, I decided to attend my first caucus ever in order to make my vote count for something. I'd heard that a caucus was an in-person event that fostered political discussion at a local level, where you could attempt to argue and cajole other voters over to your side; but beyond that I had a fuzzy idea at best of what to expect. Having now been through it, I can give you the down-low:

We showed up early. The caucus was officially scheduled to start at 1:00, but I had a suspicion it was going to be crazy, which turned out to be well-founded. Our caucus was held in the local school district office building, and the hallways were already crowded when we got there. We were just barely in time to fill the last bits of standing room in the back of a room fire-coded to hold 110 people... there must have been at least 350 in it.

As we entered we signed in with our precinct. There were ~10 different precincts at our caucus. Along with the usual (name, address, phone), the sign-in sheet had a blank for "Initial candidate preference" and "Final candidate preference." You have to fill in your preference at the start of the caucus in order for your vote to count; you can put "undecided" if you're not sure, but leaving the field blank means your presence at the caucus won't count. At the end of the caucus everyone filled in the "Final candidate preference" blank so that there was a paper trail of how many people changed their opinion during the course of the caucus.

The Pledge of Allegiance was said and several Required Documents were read (scripts for calling the caucus to order, explaining the process, etc.). There was general milling around, apologizing for the overcrowding, long periods of waiting and seeming disorganization (announcements had to be made twice, once in the main room and once for the overflow in the hallway), and widespread restlessness. Organizers announced that they were just volunteers and that they were doing the best they could. I think a lot of organizers were doing this for the first time.

Around 1:45 we broke out into precincts. Most precincts caucused in the parking lot or on the lawn due to the overcrowding. Our precinct was the largest at this caucus; 89 people showed up. We had 9 delegates to assign based on our precinct's size.

A frazzled-looking volunteer from our precinct filled out the delegate allotment paperwork while the rest of us sat around wondering what would happen next. I think the majority of voters had never attended a caucus before. There were a couple experienced folks there who explained to us what the process would be like, but mostly we sat around being 80% confused and 20% slowly figuring out what was going on. This would turn out to be a theme throughout the caucus.

The delegate allotment paperwork consists of a chart that helps you do the math to figure out how many supporters are needed to get how many delegates for each candidate. If my memory serves me correctly, it has the following columns:

  1. initial number of supporters
  2. total number of caucusers present
  3. each candidate's percentage of total supporters
  4. percentage × number of precinct delegates
  5. number of delegates allotted to this candidate (after rounding)
  6. final number of supporters
  7. total number of caucusers present
  8. candidate's final percentage of total supporters
  9. percentage × number of precinct delegates
  10. final number of delegates allotted to this candidate (after rounding)

The 5th and 10th columns get rounded down, which is part of where the discussing and cajoling is supposed to come in: say your precinct had 6 delegates to allot, and the values of the 4th column were 1.35, 2.35, 2.3. They'd all get rounded down to 1, 2, 2, and your precinct would only allot 5 delegates and would "lose" the 6th. So you want to try to get people to switch groups in order not to split those last fractions of a delegate.

At some point we broke into groups based on who our initial candidate preference was. I don't think the paperwork was done yet, we just got tired of waiting and figured we should get the show on the road. We needed to pick which members of our group would be the delegates that we sent on to the next round (if you ever wondered who the delegates are or how they get chosen, it's here at the caucus, by random folks like you and me). At first people were getting up and making impassioned speeches about why they believed Barack Obama was the best candidate for the presidency, but then someone said "Y'know, you're kind of preaching to the choir, since this is the Obama group," and Nick pointed out that we had 10 delegates to pick (5 primary and 5 alternates) and there were < 10 people standing, so instead of making speeches and fighting for the positions, maybe we should just see if we could get 10 warm bodies standing and then take it from there.

Turns out there were only 5 people who actively wanted to be delegates, and we were able to get 5 more to agree to be alternates, so that wasn't too hard (it just needed some organization). At that point we decided to send our delegates over the to the "undecided" group to answer their questions and try to cajole them over to Obama's side. But, although everyone was in agreement over who the delegates should be, our precinct chair said that the rules required a paper ballot to decide the delegates, so the rest of us sat around trying to decide the easiest way to do this and tearing up a legal pad into little pieces of paper. You'd think that if a paper ballot was part of the rules, someone would've brought ballot-sized pieces of paper to vote on... are you starting to see a theme of disorganization here?

After awhile the Hillary group sent cajolers over to the undecided group too, and it was kind of painful to listen to everyone arguing for their candidate. Clearly everyone believed in their candidate so strongly and felt this burning certainty in their stomach that it was critically important for the future of America that the other candidate not be selected. It's hard to watch when people fervently believe contradictory things and someone is eventually going to lose. Things went around for awhile (with both sides saying "But—wait, can you please let me speak? The reason that—excuse me, the reason—would you please let me speak??") and then the paperwork lady announced that she was done with the first five columns and we should wrap this up (it was probably nearing 2:30 by then).

Slowly the undecided group broke up and either joined the Barack or the Hillary groups. I talked later with a lady who'd been undecided, and she said that if they'd kept their undecided delegate it basically meant none of them had any control over who that person would vote for, so rather than making their vote essentially a wild card, most of them decided to pick one candidate or the other (even if they weren't 100% certain). Everyone reported their final candidate choice to the paperwork lady, who started working on the next five columns of the spreadsheet.

At this point most people thought their work was done, especially since there wasn't much left to do besides wait for the paperwork to be filled out. People started to trickle out of the room. The paperwork lady made some math errors even though she was using a calculator. I pointed out to her that her percentages added up to > 100% and she had to start over. When she'd finally tallied the delegates (and I have no idea why this all took soooo long), the Barack group had won an extra delegate (thanks to the undecideds who'd come over), so we had to scrounge around for another delegate and another alternate, and then alter the paper ballots to indicate that we'd appropriately voted for the 6th delegate. More and more people were leaving the room, so it was kind of funny that at the beginning of the delegate-choosing process people were grilling the delegates with all sorts of questions about whether they'd be a good delegate or not, but by the end I could just raise my hand and say, "I'll do it," and people were like "Okay, great; fill out this form."

So basically it was a big free-for-all, and there was far less "fostering of political discussion" than I had anticipated. Although I guess that's to be expected; since it's easier to vote than to caucus, a lot of the people who show up are probably there because they care so much about a particular candidate that they want to make sure their vote counts in the selection process. Meaning they're too passionate for anyone to change their mind. But it was certainly an interesting experience; depending on what the political scene is looking like in four years, I might caucus again and even consider being a primary delegate (if there's a candidate I feel passionately about).

Friday, August 1, 2008

Calling Ondrej Elleder

Let's do an experiment.

I have a Google Alert set up on my name, so (presumably) whenever someone blogs about me I'll get an email with the link and can check it out. I'm wondering whether this is somewhat common, or just among tech geeks. So let's drop the name of one of my friends from college, and see if this post makes its way to him across the internet.

His name is Ondrej Elleder (read a bit about him here), and this postcard that he sent me was another find while I was cleaning out old papers this week. One of the biggest things I miss about college is living and socializing with such fascinating, diverse and entertaining people. Linguaphiles who would write postcards like this:

To: The discreditable SUSAN MOSKWA

Susan! Hail, by mail, from the city of the FLAIL! Whyever the FLAIL? This be the reason, Missus: It was the favourite weapon of the Hussites. And don't you ask me who the Hussites were! :-S Contemplate instead the Freudian symbolism of having the flail for a weapon.

Happy New Year,
Ondřej

Wednesday, July 30, 2008

What do you know about Sri Lanka?

For many years I used to work as a barista in a Borders café. Sometimes on slow days we'd come up with a Question Of The Day that we'd ask all our customers as we were making their drinks. It was invariably fascinating to hear the wide variety of answers; some people were shockingly knowledgeable, others shockingly ignorant or misguided. Either way, it was a fun way to engage people and pass the time.

Today while cleaning out some old boxes I came across my notes from one of those days. The question was, "What can you tell me about Sri Lanka?" Here are some of the answers we got (I'll leave it to you and your favorite search engine to determine which are true and which are bogus):

  • Sri Lanka is not a very rich country
  • Good music comes from Sri Lanka
  • Sri Lanka is a character in Lord of the Rings
  • It's next to India
  • It has lots of violence
  • Sri Lanka sounds like something out of Star Wars
  • It used to be named Ceylon
  • It's a country
  • People speak Latvian in Sri Lanka
  • It used to be part of the USSR
  • They have good tea
  • There are semi-precious stones in Sri Lanka (sapphires, rubies)
  • The Tamil Tigers from Southern India are in Sri Lanka (this person regaled us with a long discourse on the political situation in Sri Lanka)
  • It's an island
  • My professor is from Sri Lanka
  • People speak Sri Lankan in Sri Lanka
  • Kandy is a large city in Sri Lanka; the English word candy comes from that city's name because the Dutch brought rock candy to Europe from Sri Lanka
  • Sri Lanka is the term for a type of sex
  • Sri Lanka is a mythical place of paradise
  • Sri Lanka is a kind of food
  • There's a famous tower in Sri Lanka
  • They make copra there (the dried meat of a coconut, used for making coconut oil)
  • Sri Lanka is a Catholic country
  • People there are starving
  • They have poisonous watersnakes
  • Sri Lanka is low-lying and subject to hurricanes
  • Arthur C. Clarke lives there

To set the record straight, Sri Lanka is an island off the southeast coast of India. Area: ~25,330 square miles. Population: ~20 million. Major languages: Sinhala, Tamil.

Thursday, June 26, 2008

Another round of fresh meat

Looks like it's that time of year again: Rat City held their mid-season tryouts this past weekend, and PFM rocked all rounds of the tryouts, ending up with nine members recruited onto Rat City:

We also have several alumnae in Jet City Booty Camp right now, and their tryouts are tonight. Good luck, ladies!!

Wednesday, March 19, 2008

First steps with Google Analytics & Webmaster Tools

After setting up Google Analytics and Webmaster Tools for your site, there are a couple quick settings and tweaks that I'd recommend:

  1. Set your preferred domain.
    Decide whether you want your website to be referenced with or without the www prefix (example.com vs. www.example.com). In your Webmaster Tools account, navigate to Tools > Set preferred domain and select the radio button next to your preferred version of your domain. I'll talk more soon about how to set this preference on your own server as well (so that anyone visiting your site will know which version you prefer).
  2. Remove yourself from your Analytics traffic reports.
    You probably don't want to include your own visits to your site in your reports. To fix this, create a filter in Analytics for each IP address from which you frequently access your site. I've created filters for my home IP address and my office IP address. Here's how to create the filter. If you don't know what your IP address is, a site like WhatIsMyIP.com can find it for you. Note that if you frequently access your site from a public location (such as a library computer or your local cafe), filtering out traffic from that IP address will also exclude from your reports anyone else visiting your site from that location.

If tools like Analytics freak you out, or you want to dig deeper but don't have the time, consider contracting an Analytics Authorized Consultant. These companies have in-depth knowledge of Analytics and can provide hands-on setup and support if the do-it-yourself style of the Help Center isn't enough for you.

Previous: Installing Analytics & Webmaster Tools

Tuesday, March 18, 2008

Setting up Google Analytics & Webmaster Tools

A friend called recently and told me he'd started his own blog about comics and film. He's not very web savvy, and simply asked, "What should I do to make my blog successful?" My next couple posts cover the advice I gave him. The examples are tailored for a site using Blogger, but the advice applies to all types of sites.

The first thing I walked him through was setting up Google Webmaster Tools and Google Analytics. Webmaster Tools gives you information about your site's performance in search results, and Analytics gives you information about who's visiting your site and what they're doing once they reach your site. Here are the steps to sign up:

[Edit: Blogger is now integrated with Webmaster Tools, so you can skip steps 8-12 below and just click the 'Webmaster Tools' link at the bottom of your Blogger Dashboard.]

  1. Log in to Blogger and click the 'Layout' link for your blog.
  2. Click the 'Edit HTML' link.
  3. Click the 'Download Full Template' link to save a copy of your current Blogger template on your computer. That way, if you mess something up while you're editing your template, you can revert to this saved version.
  4. Leave the browser window with your Blogger template open. In a new window (or tab), go to http://analytics.google.com/.
  5. Log in to Analytics and click 'Sign Up'. Enter your site's URL and name your account something like "My personal sites" (you can add other websites to this account in the future if you like).
  6. Walk through the rest of the sign-up process. You should end up on a page that says 'Tracking Code' and contains a block of code. Copy this code.
  7. Go back to Blogger and scroll down to the bottom of your site's HTML template. You should see code that looks like this:
      </div></div> <!-- end outer-wrapper -->
    </body>
    </html>
    Paste the Analytics code that you copied right above the </body> tag, like this:
      </div></div> <!-- end outer-wrapper -->
    
    <!-- Analytics code -->
    <script src="http://www.google-analytics.com/urchin.js"
      type="text/javascript">
    </script>
    <script type="text/javascript">
    _uacct = "UA-1234567-8";
    urchinTracker();
    </script>
    
    </body>
    </html>
  8. Leave the browser window with Blogger open. In a new browser window (or tab), go to https://www.google.com/webmasters/tools/.
  9. Type your site's URL into the box on the Dashboard and click 'Add Site'.
  10. Click the 'Verify your site' link on the next page.
  11. In the drop-down menu, select the 'Add a meta tag' option. Copy the code that appears.
  12. Go back to Blogger and scroll up to the top of your site's HTML template. You should see code that looks like this:
    <head>
      <b:include data='blog' name='all-head-content'/>
      <title><data:blog.pageTitle/></title>
      <b:skin><![CDATA[/*
    Paste the Webmaster Tools code right after the <title> tag, like this:
    <head>
      <b:include data='blog' name='all-head-content'/>
      <title><data:blog.pageTitle/></title>
      <meta content='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
        name='verify-v1'/>
      <b:skin><![CDATA[/*
  13. Click the 'Save Template' button below your HTML template.
  14. Click the 'Verify' button in your Webmaster Tools account. Your site's status should change to Verified. If not, wait a few seconds and click 'Verify' again.
  15. Go back to your Analytics account and click 'Check status' for your tracking code. It should tell you that your code has been installed correctly and data is being collected.
  16. Go to your blog's homepage and view your blog to make sure that everything looks okay (make sure you didn't mess up your site's template while editing it). If everything looks okay, you can delete the copy of your template that you saved to your desktop. (If something looks wrong, you can erase your changes by uploading the template copy that you saved at the beginning.)

If you have problems with these steps you can drop me a note, or get help here: Blogger Help, Webmaster Tools Help, Analytics Help.

Next: A couple tips for your initial Analytics/Webmaster Tools setup

Monday, March 17, 2008

Art, film, and one-panel comics

If you like strange, wonderful, and inappropriate things, you must check out this comics and film blog by the boy who taught me to love graph paper.

Here are three reasons why:

  1. One-panel comics
  2. Two-panel comics
  3. More one-panel comics :-)

Sunday, March 16, 2008

Building a website: Setting priorities

So you've registered a domain name, signed up for web hosting, and are ready to start making a website. But where to start? Especially if your time is limited, it's hard to know what to work on first.

These are the initial to-do items that were on my list once I'd set up my domain and hosting:

  • Design a website template (the site's look-and-feel)
  • Start writing content and articles
  • Tell everyone about my awesome new site
  • Install WordPress
  • Set up website-monitoring tools (Analytics, Webmaster Tools, etc.)
  • Make sure the site's architecture is the way I want it (subdomains, subfolders, link structure, etc.)
  • Canonicalize my domain name and homepage
  • Put up a robots.txt file

So which should come first, and how should you prioritize a list like this?

In my case, being able to see the product of my work is very motivating; so my first step was to install WordPress on my site, and to pick a theme for the site. Even though I didn't have any of my own content yet, WordPress puts up an initial "Hello world!" post for you, so as soon as you've installed it there's something there on your site for you to look at (visual progress!).

Next, I worked on some underlying technical/architectural issues. I wanted to do anything that could seriously mess up my site right at the beginning, so that if I did mess something up, I wouldn't lose a bunch of content or visitor traffic in the process. This included canonicalizing my domain name, messing around with my .htaccess file, and installing plugins and other software on my site. I also wanted to make sure that the link structure of my site was just the way I wanted it, so that when search engines started indexing it and people started linking to it they would only see the URLs that I wanted them to see. To do this I changed some of my WordPress settings such as the category base, and picked which page would be my homepage.

Once I knew that all my site's content could be found at the right URLs, I was almost ready to start telling people about my site. But I did one last thing before letting the cat out of the bag: I set up Google Analytics and Webmaster Tools. Analytics tracks visitor traffic and behaviour, but it can only do so starting from the moment you install the Analytics code on your site; so I wanted to make sure that it was set up before I started getting the word out, so that I could track all of my traffic from day one. Webmaster Tools isn't as time-sensitive (since it doesn't rely on JavaScript to track statistics), but the sooner you set it up the sooner you can start seeing what statistics have been gathered for your site.

At this point I was finally ready for word to get out, so I started blogging about my new site. I also put up a robots.txt file to block search engines from crawling certain duplicate content that exists on my site. I'm using WordPress as more of a content management system than a blogging platform (which is what it's geared towards by default), so there are some ways of accessing content (such as by tag or by author) that don't make sense for my site, but I'm too lazy to research how to get rid of those URLs right now. So I'm blocking crawlers from them until I get around to getting rid of them altogether.

And finally, I started putting some actual content on my site. It's kind of like building a house... The point of it is to have a house, and you're probably less excited about the foundation than about the house itself, but you need to have a strong foundation in order to build the interesting parts of the house on top of it. Similarly, I'm excited about getting this site up because I have a ton of information that I want to post; but before I can get to the fun part (creating content), I want to make sure the technical foundations of my site are strong.

So that's how I'd prioritize some of the first steps. I'll go into more detail on several of these steps in my subsequent posts.

Next: Setting up Google Analytics & Webmaster Tools
Previous: Choosing a web host

Thursday, March 13, 2008

Building a website: Signing up for web hosting

After registering a domain name for my new website, I signed up for web hosting so that I could put some content on my new domain.

Choosing a web hoster

"Who's the best web host?" is a topic of constant interest on the internet, and everyone seems to have their own opinion. For me, it's Web Hosting Buzz. I've only ever worked with small-business-style sites, but for all my needs Web Hosting Buzz has been great. I've already blogged about why, and (since that post is almost a year old) I can confirm that they continue to exceed my expectations in both tech support and value (lots of features for a great price).

When picking a web hosting company, you should have some idea of your site's needs, so that you can ensure the hosting provider meets those needs. For example, if you plan to run a dynamic site (or install a CMS such as WordPress), ask whether the hoster supports PHP and MySQL. If you want everyone in your business to have their own email address on your domain, ask how many email accounts the hoster lets you create (some plans offer unlimited email accounts; others may limit the number or charge you for additional accounts). It's better to pay a bit extra for the features you need than to try to "get a bargain" and end up with a setup that doesn't do what you want. I've found FindMyHosting.com useful when comparing hosting plans.

Pointing your domain name to your web host

Your domain name is the address where users will look for your website; your hosting company is where the actual content of your site lives. If you didn't use the same company for both, you'll need to make sure your "address" points to where your content actually is.

When you signed up for web hosting, you may have received information about the nameserver(s) that your host assigned to you. If not, you can find this information in your hosting account. You'll need to tell your domain name registrar what your nameservers are, so that they can direct all your traffic to those particular servers. Generally there'll be somewhere in your domain registration account where you can input your nameservers. They'll look something like ns1.example.com, ns2.example.com.

Once you've got your domain name pointing to your content, you've got a basic website up and running!

Next: Setting priorities (a.k.a. What should I do next??)
Previous: Registering a domain name

Tuesday, March 11, 2008

Building a website: Registering a domain name

Two weekends ago, I took the first step in setting up my new roller derby website: I registered a domain name for it. Two, actually.

Choosing the right TLD (top level domain)

The site is for the roller derby practice group that I skate with. Since we're an independent, volunteer-run organization that's not trying to make a profit, I decided to register a .org TLD as our primary domain: pfmrollerderby.org. I also registered pfmrollerderby.com because I'm sure someone will forget whether we're .com or .org (since .com is such a "default" web-related buzzword for many people). I wanted to make sure we'd get the traffic from both domains, and I wanted to have more control over our "brand" by ensuring that no one else registered the .com version of our site.

Depending on how much money you want to spend and how much control you want to have over your brand name or domain name, you may want to register the same domain name with various other TLDs such as .net, .biz, country code TLDs (.de, .co.uk), etc. I'm cheap, though, and our group is fairly small and local, so I figured a .com and a .org were good enough. If you do register multiple domains, be sure to check back for my post on canonicalizing your domain name... once I get around to writing it.

Choosing the right domain name

A good domain name should be relevant, easy to remember, and easy to tell to someone else. Your domain name will often be the first part of your website that people see (e.g. on your business card or in search results), so try to pick something memorable but also descriptive of what people will actually find on your site. For example, if I do a search for [window blinds] and I get back search results from www.windowblinds.example and www.spirit.example, I may be more likely to click on www.windowblinds.example because their domain name implies that their site is very relevant to what I'm looking for. www.spirit.example might belong to the Spirit Window Blinds Company, but I couldn't tell that from looking at their domain name.

Of course, there are many counter-examples to this, in particular if you have a strong brand name. The domain www.google.com isn't very descriptive (www.google-search-engine.example would be much more so), but Google's branding is so strong that they don't need a descriptive domain name. Same with Twitter, Merrill Lynch, Sears... you get the picture.

I picked pfmrollerderby.org because I wanted to include my group's name (PFM Practice Squad) so as to differentiate us from all the other roller derby sites out there; but I also wanted it to be obvious that the site is about roller derby, since pfmpracticesquad.example wouldn't be very descriptive, unless you were already familiar with our group.

Registering your domain name

I forgot to mention that, during the previous steps, you'll want to use a service like WhoIs lookup to check whether the oh-so-clever-and-memorable domain name you've chosen is already taken. (Heads up: I don't recommend using Network Solutions to do this! Here's why.) Even though their marketing tactics are bizarre and irrelevant (what do NASCAR and bikini car washes have to do with web hosting?), I use GoDaddy to register domain names since they're relatively cheap and well-known, which I take to mean "reliable." $10 for a .com, $9 for a .org. You can register a domain name at a ton of places, and you don't necessarily have to register with the same company that you host your site with.

When choosing a registrar, look for one that allows you the most control over your domain name. They should allow you to host your site with a different company if you so choose, or to transfer your domain name to a different registrar and still retain control over it.

Next: Choosing a web host

Monday, March 10, 2008

Building a website: The beginning

When I applied for the job of Webmaster Trends Analyst, it was still a relatively new position and Vanessa and Jonathan and I threw around a lot of ideas about what we wanted it to become, or what we could do with it. One of these ideas was to build and SEO a website from scratch, and to document the whole process as a sort of step-by-step how-to manual based on real-world experience. While I believe that the approach we take in our Help Center—giving somewhat general advice that each webmaster can interpret to fit their particular situation—is the best way for us to help the most people at once, I also know that sometimes a concrete example is really nice to see.

So, after getting psyched up by several of the sessions I saw at SMX West a couple weeks ago, I've decided to undertake a similar venture on my own.

I'll be building a website for the roller derby practice group that I skate with. I'll be documenting the steps I go through while setting up and running the site; the software and services I use; the problems I encounter; and my priorities in dealing with it all. Hopefully my experience will be particularly useful to small business owners or mom-and-pop webmasters who don't have 40 hours a week to spend on their website; I'll be doing this in my free time, which seems increasingly common among small business owners these days (many are too busy running their business to spend all day running their website).

A few disclaimers:

  • As noted in the sidebar, any opinions on this blog are my own and do not necessarily represent the views of Google. While I intend to do things "by the book" (following best practices recommended by the major search engines), it would still behoove you to read each engine's documentation if you want to know their official position on things.
  • I'm not making any guarantees about how often I'll update. I may flake out. I may get busy. The best laid plans of mice and men...
  • As I said above, I'm documenting my own personal experience. What works for me may not work for you. You may choose a different web host or a different CMS; your project will probably have different requirements. I'll try to document my reasons for choosing X over Y, and you're welcome to share your own observations or reasons for choosing differently; ultimately it's up to each webmaster to make the right decisions for their own site.
  • I'm not a super expert with some of this stuff. I may get some of it wrong, or miss something along the way. You're welcome to correct me, share tips, point me in the right direction, or point out things that I still need to work on. I'm hoping it'll be a learning experience.

So let me know what you think! I'd love to know if you find this experiment helpful. You can find my website-in-progress at http://www.pfmrollerderby.org/, and all of my posts on this topic under the tag webmastering.

Next: Registering a domain name

Thursday, February 28, 2008

Google Charts & Gadgets

I got a bee in my bonnet today to play around with Google Gadgets and Charts. The charts in Analytics are so beautiful that I wanted to play with sometihng similar on my own, so I decided to add a gadget to my iGoogle page showing my lap times from skate practice. Every month our coach times us skating 1 lap and 3 laps, so what better way to track my improvement than to throw it into a graph, right?

A word to the wise: although you'd think that gadgets would be an easy way to get started with Google Charts (whose Developer Guide is pages long and details dozens of URL parameters), I actually couldn't figure out how to make them work. The line graph gadget requires a field labeled "Data source URL", which means you need to encode the data you want to display using one of Google Charts' data encoding formats, which is non-trivial (especially for someone expecting the plug-and-play simplicity of most gadgets), and the gadget comes with no instructions whatsoever (do I need a full Charts URL? Just the data parameter? Can I add in additional chart parameters?). I spent long enough researching data encodings and chart URL parameters that I figured I might as well create my own charts from scratch rather than using the gadget.

Here's what I ended up with: Lap times The left axis shows my 3-lap times, the right axis my 1-lap times. I was actually surprised by how closely the curves match each other. I only have 2 months of data (I missed January), so I'm looking forward to a few more months' worth to see how the charts grow over time.

Sunday, February 10, 2008

Caucus or primary?

Since the Iowa caucuses kicked off the candidate selection process for the 2008 presidential election, I've learned way more than I ever knew previously about our country's electoral processes.

Historically, my political involvement has consisted of voting in the presidential election and calling it a day. I've never felt strongly about a candidate (big surprise: the only elections I've been legal to vote in were the Gore and Kerry elections. Or should I say, the Bush and Bush elections. And while I felt strongly about Kerry in that he was the-guy-who-wasn't-Bush, he certainly didn't stir my socks in his own right). The Democratic nominee always seemed like a foregone conclusion, so I never bothered learning about all this primary/caucus hoopla. Also, in 2004 I wasn't completely hooked on NPR yet, so I wasn't being inundated with daily stories about candidate selection.

But this year I'm both excited, and irrevocably glued to public radio. So after hearing this highly informative story about the Washington candidate selection process, I decided I should go caucus for the first time in my life.

Let me back up a little and explain the caucus/primary thing for those of you too impatient to listen to that clip. A primary is a ballot-based election just like most elections you're probably used to. You go to your polling place, get in the private booth, tick the little box by your candidate of choice, and you're done. Fast, private, and you can even vote by mail if, like Washington, your state allows that option. A caucus, on the other hand, is when voters get together and indicate their candidate preference in person. It's like voting with your body instead of by ballot. You can see how many people are voting for each candidate and you can see who they are, which means you can argue with each other and try to get people to switch sides. More coming soon on what actually goes on at a caucus.

So here's the deal with Washington: the Republican party holds both a primary and a caucus. They use the results from both to decide how to apportion their WA delegates. The Democratic party also holds both a primary and a caucus, but after everyone's taken the time to vote, they throw away the primary results and only use the caucus results to apportion delegates.

What?!? So what's the point of the primary? The chair of the WA Democratic party said, "The primary will be basically a fairly expensive $10M public opinion survey," and if you want your vote to count for more than entertainment value, you have to show up at the caucus. Which is why Nick and I attended.

So can someone explain to me what on earth the value is of having a primary that doesn't count for anything? In particular, I thought the Democratic party was all about promoting equality, and representing and enfranchising a wide variety of voters. Requiring you to show up in person at 1:00pm on a Saturday in order for your vote to count totally disenfranchises anyone who doesn't have a 9-5 Monday-Friday job. And guess what: that's way more likely to be lower-income voters. So all the upper-middle-class cubicle jockeys get to show up at the Saturday caucus and hobnob with their upper-middle-class neighbors, while the rest of their precinct is serving burgers and cleaning those folks' cubicles? That just doesn't seem right. Add to this the fact that it's not exactly common knowledge that the primary doesn't count (that's fairly non-intuitive, right? I generally assume that if an election is held, it's so that people can vote on something and those votes can be used to determine the outcome of the election. I don't generally feel compelled to read the fine print to find out whether my vote will be thrown away afterward). Holding a primary seems both pointless and misleading, and the fact that lower-income voters are more likely to be unable to attend just leaves a bad taste in my mouth.

So can anyone justify this situation to me? I understand the interest of having a public forum to get people together and talking politics with each other (we did meet some new neighbors this weekend), but then why not hold both (primary & caucus) but have the primary votes count and the caucus results get thrown away? What are your thoughts on the situation?