Communiqué
Green Benefit, Good Cause
Good Earth Gala: Saturday, April 5, 2008 in Portsmouth, New Hampshire
To raise awareness of green living, this event features:
* Rwandan drum and dance music
* Auction with items that promote sustainability and healthful living
* Food from earth-conscious local eateries
Funds raised at the event support Tidewater Waldorf School and the Piscataqua Sustainability Initiative and their efforts to spread educational opportunities throughout the Seacoast about building sustainable communities.
Good food, good music and some really cool auction items. If you live near Portsmouth, NH, check it out.
Dashes, Underscores, URLs, SEO and Humans
If you browse around the web some looking for search engine optimization (SEO) tips and techniques you are bound to run into the a dash is better than an underscore in a URL “rule”. This has always bugged me since underscores give better visual separation of the words, which I tend to equate to easier reading for us humans.
Way back in 2005, Matt Cutts from Google explained that Google treats dashes and underscores differently, and why. That is great and all, but 2005 is three years ago — an age in web time.
In August 2007, pretty much every big search engine confirmed that they treat dashes and underscores the same. Well, everyone except Google, which hinted that they were on their way. I was unable to find any updates on the subject since then.
Now, we’ve been running underscores in our URLs since sometime in mid 2005 and we’ve always had decent results with our pages being indexed appropriately. To clarify this issue a little, I thought I would do some experimentation.
Taking my Firefox HTML Validator on Ubuntu Gutsy post from our blog as a test page, I fed the terms html, validator and gutsy into each of the following search engines:
All of the search engines that highlight terms in URLs (all but AOL and AltaVista) seems to have no problem grabbing the words in the URL. Notice how my post is listed above a page that uses dashes instead of underscores. I guess it is possible the search engines don’t care about word separators when highlighting keywords, but it seems that dashes and underscores are functionally equivalent when matching pages.
So, should you go through and revamp all of your URLs from dashes to underscores? Probably not, but it’s worth thinking about when starting a new site. Spending time polishing the little aspects of your site can make the difference between a good and a great site.
Dashes vs. Underscores
I find that the underscore gives better visual separation since it lives beneath the baseline whereas dashes seem to make the words run together. Another interesting point it that a dash has a grammatical meaning, whereas an underscore is an invention stemming from underlining with typewriters.dashes-underscores-urls-seo-and-humans
dashes_underscores_urls_seo_and_humans
Do you prefer dashes or underscores, and why?
If you enjoyed this post, you might want to check out one of my semi-related posts, HTML Title Tags Done Right.
Newburyport Web Geek Meetup, Thursday March 20th
If you need directions, head over to Google Maps. I hear there may be more details somewhere on Facebook.
I'll be stopping by sometime around 8:30, so I'll see you then!
01001110 01001001 01001110: The Revolution Continues
Four months ago, I blogged about Radiohead's revolution. Free of their label contract, they did their own release online. They sold directly to consumers, averaging a fifth to a sixth of the retail price of a CD, and realized over twice the revenue per album.
In March, the revolution continued. Nine Inch Nails is free of its label contract, and released a new studio project, Ghosts (or Halo 26 to purists), online, direct to consumer.
The model was different from Radiohead's. Radiohead was notable for letting the buyers set their own price. Nine Inch Nails, though, offered a nine of the 36 tracks for free, or a DRM-free download for just $5. Downloads available in high bitrate mp3, FLAC lossless, or Apple Lossless format. Instant gratification.[1]
Another $5 gets you the download plus a traditional physical two-CD set mailed out in early April (plus shipping & handling, which brings the total to about what a new CD costs in a store). Also like Radiohead, NIN offers a couple of expensive special edition versions of the physical CD.
So how did this experiment go? According to Reuters, Nine Inch Nails grossed $1.6 million from 800,000 transactions[2] in its first week.
The consumer benefit is clear: Ghosts cost me a third what I would have paid in a record store, great quality, yet has no DRM keeping me from playing it on my iPod, or Christian's Cowan A2, or anywhere else I want.
And Nine Inch Nails took home every cent of their gross, less only payment processing costs and bandwidth for downloads. Under the traditional music industry model, with the same sales, the band would have taken home at best $280,000[3], less taxes, then split equally[4] among the seven project members... call it $20,000 each. You can make more than that working at McDonald's.
The traditional music industry. Completely cut out.
As I wrote last time:
“No wonder the music industry is so terrified of digital distribution.”
Footnotes:
Read MoreiMarc's Newest Member
Meet Craig's dog, Brody.
(He was hanging out in our room, so I thought I'd show him off while he was chillin'.)
svncheck: SVN Commit Audit over Multiple Projects
My life is now in SVN. Work projects are under Subversion's control. Status reports are in SVN. Personal projects are in SVN. It's great.
The only problem with so many repositories is remembering to check in all my updates.
My SVN environment consists of Mac OS X, scplugin, and built-in Terminal commands.
Throughout the day, I may edit 4–5 repositories. Inevitably, there's a chance of forgetting to commit. Using scplugin, I could manually right-clicking on each directory. That sounds tedious. Using the terminal, I could manually execute svn stat [directory]. That would be just as time consuming.
Hello svncheck.
I wrote this simple shell script to loop through all sub-directories in my SVN root and tell me if anything, across any project, needs to be committed. It assumes that you're organized enough to keep all SVN projects under a common parent-directory. The default script loops through ~/svn/.
Installation (OS X)
- Copy the script below to a text file
- Name it
svncheckand save it on your Desktop. -
Open a terminal and execute the following.
chmod 755 ~/Desktop/svnchecksudo mv ~/Desktop/svncheck /usr/local/bin/svncheck
Usage
Open your terminal and type svncheck. If the terminal doesn't return anything, you're all good — all your files are checked in.
If you see something like this…
M massbio.org/trunk/css/site.css M status.imarc.net/trunk/dave-status.xls M status.imarc.net/trunk/dave-people.xls
…that's telling you that one file in the 'massbio.org' repository and two files in the 'status.imarc.net' repository need to be committed.
svncheck doesn't commit your files. It just acts as an audit of all repositories, reporting any files that have been updated but not checked in.
svncheck: The Script
Here's the script. You'll notice the default SVN_HOME parameter is set to '~/svn'. If you keep repositories somewhere else, change this default. Otherwise you'll have execute something like svncheck /path/to/your/svn/root
#!/bin/sh
#
# svncheck runs 'svn stat' on each directory in your SVN root.
# If you work on multiple projects throughout the day, it's a
# quick way to check if any project needs committing.
#
# USAGE
# svncheck [/path/to/svn/root]
#
SVN_HOME=$1
if [ "$SVN_HOME" == "" ]; then
SVN_HOME=${HOME}/svn/
fi;
cd ${SVN_HOME}
for i in *; do
svn stat $i
done
exit;
I run svncheck every evening before I turn my computer off. Enjoy!
0 Comments Read Full Post Add Comment
Finding Candidates’ Similarities with Self-Join
In database-land, SQL self-joins are queries where the table is compared to itself. Meanwhile, in political-land, people often complain of homogeneous candidates and lack of choices.
Using a self-join on the public voting records of Hillary Clinton, John McCain, and Barack Obama, we can see just how similar these candidates are. VoteSmart.org has compiled the complete voting records for all members of congress. As of March 2008, the three remaining likely presidential candidates are all senators, making it easy to compare their records.
I made a quick database table and imported all the data from VoteSmart.org. The database table included the candidate's name, the issue they voted on, and the vote that was cast. Every senatorial vote is a "Y" (yes/for vote), "N" (no/against vote), or "NV" (No Vote was cast).
Table "votes"
Column | Type | Modifiers
--------------+------------------------+----------
candidate | character varying(255) | not null
issue | character varying(255) | not null
vote | character varying(5) | not null
Indexes:
"votes_issue_key" UNIQUE, btree (candidate, issue, vote)
First I wanted to see how responsible each candidate was. The Constitution clearly outlines a Senator's job description. Senators propose and vote on Bills. Bills that pass become laws. If you're a Senator and you're not voting on Bills, you're not doing your job.
A quick SQL count, showed that Obama was actually the least responsible candidate, missing almost 1/5th of his roll calls. I'm not complaining, who wouldn't want to take 1/5th of their work week off...like maybe every Friday?
SELECT
vote,
count(*)
FROM
votes
WHERE
candidate_id = 'Obama'
GROUP BY
vote;
-------+------
count | vote
-------+------
NV | 45
Y | 153
N | 57
In terms of not missing votes, Hillary is the most responsible, only missing 9% of her roll calls.
View the full report for all the details.
Analyzing Clinton, McCain, and Obama's records, we can also determine how similar they are. To do this, we bust out the self-join
First, we'll see how many opportunities two candidates cast a vote on the same issue. To do this, we:
- pick two candidates
- ignore missed votes (NV) by either candidate
- self-join on the issue
SELECT
count(t1.*)
FROM
votes t1,
votes t2
WHERE
t1.candidate_id = 'McCain'
AND t2.candidate_id = 'Obama'
AND t1.vote != 'NV'
AND t2.vote != 'NV'
AND t1.issue = t2.issue ;
-------
count
-------
189
Now to find similarities, we execute the same self-joining select but only include results where both candidates voted the same way. An equality comparison to the vote column on both sides of the self-join.
SELECT
count(t1.*)
FROM
votes t1,
votes t2
WHERE
t1.candidate_id = 'McCain'
AND t2.candidate_id = 'Obama'
AND t1.vote != 'NV'
AND t2.vote != 'NV'
AND t1.issue = t2.issue
AND t1.vote = t2.vote ;
-------
count
-------
60
Results
- Clinton and Obama cast the same vote 92% of the time.
- Clinton and McCain cast the same vote 47% of the time
- McCain and Obama cast the same vote 31% of the time
- The three candidates were all present for the same roll call 191 times. 29% of the time they all voted the same way — either all for or all against the issue at hand.
(This part is edited from the original post afterJess Turcotte pointed out the errors in my conclusion — Originally, I thought it was Clinton's record that changed. I was wrong.)
One question that stood out was how could Clinton and Obama be identical, while showing a 16% difference when compared to McCain? Since Clinton and McCain were both in office four years before Obama, they must have been more similar when it was just the two of them. One of them must have drastically changed their voting pattern around 2005.
John McCain did.
- Jan 2001–Jan 2005, Clinton and McCain were 73% similar. They cast the same vote 76 times in 109 opportunities.
- After 2005, Clinton and McCain are only 34% similar, casting the same vote 65 times in 190 opportunities.
Comparing each candidate to a control subject, makes it pretty obvious that Hillary was consistent from 2001–2008, and John McCain changed notably after 2005. Before 2005 McCain voted 60%–70% in-line with either Clinton or Ted Kennedy (my control subject). After 2005, he only voted similarly with those two democrats 32% of the time.
What made McCain’s voting record change so drastically?
Conclusion
The results seem to prove that the Democratic candidate will be at least 50% different from the Republican candidate this coming November. To paraphrase Ralph Nader circa 2000, a vote for Obama or Clinton will not be a vote for McCain…unless McCain reverts back to his pre-2005 voting patterns.
For more political detail and less technical detail, view the full report.
Friday night at iMarc
Wafting down the hall from the other end of the office is an ungodly wave of sound that could only mean one of two things. Either somebody broke in and is torturing animals down there, or some subset of the staff is down there drinking 40s of malt liquor and playing Rock Band.
Update: Robert just walked in announcing his desire to go buy an X-Box 360 and get Rock Band. I'm breathing a little easier.
I love working here.
How to Make Links
I live by 3 rules:
- Blue text should only be used for links.
- All text links should be blue.
- Headers should not be links.
There are, of course, appropriate times to break these rules.
Exceptions to the rules, must follow their own set of rules.
- There is no exception to rule #1.
- If text links are not blue, they should be underlined.
- If headers are links, they should be the same color and style as non-linked headers. Also, the content that linked headers headline should have an inline link that duplicates the header link. An example of this is our homepage. The 3 blog headlines are links, yet they look just like non-linked headlines. In the content below, there is a blue "Read More" link that mirrors the headline link.
End of an Era: Goodbye, Netscape
Today is the last day of Netscape.
Netscape Navigator, the successor to the NCSA Mosaic project that drove the web forward in leaps and bounds in the mid'90s, has reached the end of its life. AOL, current owner of Netscape, ends support tomorrow.
Over the past decade, it went from 90% marketshare to 0.6% market share, and in a market where web browsers are free, AOL just wasn't able to find a way to make money on the project anymore.
However, rising from the ashes of Netscape was the open source Mozilla project, which had a few releases of its own, and then spawned the Firefox browser and Thunderbird email projects.
Firefox today is one of the best available browsers — fast, extensible, cross platform, standards compliant, and free. If you haven't yet tried it, check it out.