The 2006 FIFA World Cup begins tomorrow at noon ET when Germany face Costa Rica in the opening match. Below is my tournament bracket for the office pool. The goal is to earn the most points, which are awarded thusly:
Group stage: 1 point for predicting the result (winner/loser), 3 extra points for getting the correct score, of each game. 2 points for each team correctly predicted to make it to the second round. Note: the first round contains 32 teams in 8 groups of 4. Each team plays the other teams in their group once. The top two teams from each group advance.
Second round: 2 points for result, 4 extra points for score.
Quarterfinals: 3 points for result, 6 extra points for score.
Semifinals: 5 points for result, 10 extra for score.
Final: 10 for result, 20 extra for score.
I'll update the chart after each day's games with the actual results and my scores.
| Group Stage | Pts | ||
| Germany | 4 2 1 2 | Costa Rica | 1 |
| Poland | 0 2 2 2 | Ecuador | +0=1 |
| England | 1 2 1 0 | Paraguay | +1=2 |
| Trinidad | 0 0 2 0 | Sweden | +0=2 |
| Argentina | 2 3 1 1 | Ivory Coast | +1=3 |
| Serbia | 0 0 2 1 | Netherlands | +1=4 |
| Mexico | 3 2 0 1 | Iran | +1=5 |
| Angola | 0 0 3 1 | Portugal | +1=6 |
| Italy | 2 0 | Ghana | +4=10 |
| USA | 0 2 1 3 | Czech Rep | +0=10 |
| Australia | 3 1 0 1 | Japan | +1=11 |
| Brazil | 1 3 1 0 | Croatia | +1=12 |
| France | 0 2 2 0 | Switzerland | +1=13 |
| South Korea | 2 2 0 1 | Togo | +1=14 |
| Spain | 4 3 1 0 | Ukraine | +1=15 |
| Tunisia | 2 1 1 2 | Saudi Arabia | +1=16 |
| Germany | 1 2 2 0 | Poland | +0=16 |
| Ecuador | 3 1 2 0 | Costa Rica | +0=16 |
| England | 2 3 1 0 | Trinidad | +1=17 |
| Sweden | 1 1 1 0 | Paraguay | +0=17 |
| Argentina | 6 1 0 0 | Serbia | +1=18 |
| Netherlands | 2 2 0 1 | Ivory Coast | +1=19 |
| Mexico | 0 2 0 0 | Angola | +0=19 |
| Portugal | 2 2 1 0 | Iran | +1=20 |
| Italy | 1 2 1 1 | USA | +0=20 |
| Czech Rep | 0 3 1 2 | Ghana | +0=20 |
| Brazil | 2 0 | Australia | +4=24 |
| Japan | 0 1 2 0 | Croatia | +0=24 |
| France | 1 3 1 1 | South Korea | +0=24 |
| Togo | 0 2 | Switzerland | +4=28 |
| Spain | 3 2 1 1 | Tunisia | +1=29 |
| Saudi Arabia | 0 1 3 4 | Ukraine | +1=30 |
| Ecuador | 0 1 2 3 | Germany | +1=31 |
| Costa Rica | 1 0 1 2 | Poland | +1=32 |
| Sweden | 2 1 1 2 | England | +1=33 |
| Paraguay | 2 0 | Trinidad | +4=37 |
| Netherlands | 0 1 1 0 | Argentina | +1=38 |
| Ivory Coast | 3 2 0 2 | Serbia | +1=39 |
| Portugal | 2 2 2 1 | Mexico | +0=39 |
| Iran | 1 1 0 1 | Angola | +0=39 |
| Czech Rep | 0 1 1 2 | Italy | +0=39 |
| Ghana | 2 0 3 1 | USA | +0=39 |
| Japan | 1 1 3 4 | Brazil | +1=40 |
| Croatia | 2 1 1 2 | Australia | +1=41 |
| Togo | 0 0 3 2 | France | +1=42 |
| Switzerland | 2 1 1 0 | South Korea | +0=42 |
| Saudi Arabia | 0 0 3 1 | Spain | +1=43 |
| Ukraine | 1 2 2 0 | Tunisia | +0=43 |
| Advancing teams: 13 of 16 | +26=69 | ||
| Second round | |||
| Germany | 2 2 1 0 | Sweden | +2=71 |
| Netherlands Argentina | 1 2 1 0 | Mexico | +0=71 |
| England | 1 3 2 0 | Ecuador Poland | +2=73 |
| Portugal | 1 1 2 0 | Netherlands Argentina | +0=73 |
| Italy | 1 2 1 0 | Australia Croatia | +2=75 |
| France Switzerland | 0 3 2 0* | Ukraine (PKs) | +0=75 |
| Brazil | 3 3 1 0 | Ghana USA | +2=77 |
| Spain | 1 2 0 3 | France Switzerland | +0=77 |
| Quarterfinals | |||
| Germany | 1* 3 2 1 | Argentina Netherlands | +3=80 |
| Italy | 3 2 1 0 | Ukraine France | +3=83 |
| England | 0 1 0 0* | Portugal Argentina | +0=83 |
| Brazil | 0 3 1 1 | France Spain | +0=83 |
| Semifinals | |||
| Germany | 0 1 2 2 | Italy | +5=88 |
| England Portugal | 0 1 2 1 | France Brazil | +0=88 |
| Final | |||
| Italy | 1* 3 2 1 | France Brazil | +10=98 |
Note: Extremely nerdy content follows. Also, the following CSS/HTML excerpts have been edited for brevity/relevance.
The underlying grid for cmerrill.com is a 935-pixel wide container with nine 95-pixel columns separated by 10-pixel gutters.

I have set of classes to define the widths for any size box from one column to nine columns.
.col1 { width: 95px; }
...
.col4 { width: 410px; }
...
.col9 { width: 935px; }
The columns aren't multiples of 95 because of the built-in gutters. So to get four columns, the width needs to accomodate all four colums (4 x 95) plus the gutters between the columns (3 X 10) for a total of 410 pixels.
With this system, there are a ton of potential layouts: one 9-column area, three 3-column areas, two 4-column areas plus one 1-column area, one 5-column area plus one 4-column area, etc.
In order to maintain the gutter space between columns, I need 10 pixels of margin between two columns. But, I don't want any margin on the far left or far right of grid. To manage this, I created two classes: leftMiddle and rightmost.
.leftMiddle { margin-right: 10px; }
.rightmost { margin-right: 0; }
Basically, any column that has another column to the right gets the margin. The column furthest to the right doesn't get the margin.
By assigning multiple classes to a single div, I'm able to create the layout. For a two-column layout (one 5-col and one 4-col), the HTML looks like this:
For a three column layout, it might look like this:
The system of columns breaks up the page vertically, but there are also sections of the page split horizontally, which I'll refer to as "rows". Unlike the columns, whose widths are fixed, the height of a row isn't specified, it should grow and shrink depending on the contents.
I have five rows defined in the CSS (names influenced by my newspaper layout experience): header, aboveFold, fold, belowFold and footer.
The header is the brown area with the North logotype, aboveFold is the main content area, fold is the blue strip, belowFold is the brown area near the bottom and footer is at the very bottom of the page (though it's currently not used).
If you open a wide browser window, you'll notice the content is centered, but the brown background of the header and footer areas extends across the entire
page. This is where the container div comes in to keep the different areas aligned.
Normally, for fixed-width pages, the container div would be the outermost div.
...
But if I were to do that, the background colors of the header, belowFold and fold would only be 935 pixels -- not stretched across the entire page. So what I've done is used a container div inside each of the rows to rein in the content.
...
The outer div (belowFold) specifies the background color and extends across the page. The container div centers the content and keeps it within a 9-column wide area.
.container { margin: 0 auto; width: 935px; }
When you have two adjacent pieces in a print publication, you need someway to differentiate them visually. Otherwise it's easy to assume they're part of the same piece. This is usually accomplished by using a thin rule to separate the elements, or shading the background of one of the elements.
I chose to shade the background of the sidebar. This created a particular challenge. My 10-pixel gutter between columns separated the main content from the sidebar, but the content inside the sidebar was running up against the edge

I had to create a new class, sidebar, to alleviate this problem.
.sidebar { padding: 10px; }
This created another problem. Now the content area of the sidebar is 20 pixels narrower than normal. So my regular column classes won't fit.
In a 4-column sidebar, my content area is now 390 pixels. But if I want to put two 2-column sections inside, their total is still 410 pixels. My workaround is to create a special case for a smaller col2 class that will fit in the sidebar.
.sidebar .col2 { width: 190px !important; }
Now, anytime a col2 div occurs within a sidebar div, it's smaller to accomodate the padding on the sidebar. Here's what the HTML looks like:
For now, I've only created the special case for using col2 within the sidebar because that's the only size I'm using so far. If I ever decide to use other widths within the sidebar, I can create modified versions of the other column classes.
Using a grid system gives me plenty of layout options while helping to maintain visual consistenty across the site.
The main problem I see with this system is the large amount of nested divs. I'm sure people smarter than I could create a more streamlined CSS/HTML version of the same thing, and at some point, I'll probably try to go back and see if I can trim some of the fat. For now, though, I'm pretty happy with how it turned out.
Questions, comments and recommendations are welcome.
I don't have the focus necessary to create a "full" post out of any of the following items, so here's a series of briefs as to what I've been up to of late.
North 2k6Hopefully you've noticed a change in appearance on this corner of the Web. It was a while in the making, and even still needs some polish. At some point in the future I'll write about the grid system I established. Web nerds who poke under the hood will probably gasp at the number of extra div tags, but at the moment, I'm not sure there's a workaround. The survey responses were helpful, so another thank you to those who participated is in order: Thank you.
TXT meI removed the TXT me feature which was located at the bottom of the site. I picked up my phone today and had several spam messages. Now that I'm back on an official plan, I don't have free incoming text messages anymore and I'd rather not have to pay for spam -- I get enough for free as it is. Please feel free to recommend features or content to include in the space that once was used by the TXT form.
Ultimate FrisbeeI recently joined a group of people to play pick-up ultimate a couple times a week. I've only been once so far but it was a blast. I didn't realize how out of shape I was. Hopefully regular activity will help me accomplish my 3-miles-in-25.5-minutes resolution. I may even start going to the gym at work. Sitting at a desk for at least 8 hours a day plus my intake of Chick-Fil-A at regular intervals isn't doing much good for my stamina.
SoccerThe FIFA World Cup begins in less than a week, which is exciting. I'm looking forward to going up the street and watching some games at the pub. Tonight is also the first home game for the Atlanta Silverbacks. They have a new stadium this season, so expect to see more details and photos in the coming days.
BowlingMy subliminal bowling project is still in progress. In addition to the subliminal bowling, I'm joining the UrHo team of the IBL.