That looks about right

Posted by Tom Moertel Fri, 11 Apr 2008 15:58:00 GMT

Via Chris:

$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head
    196 git
    110 l
    102 cd
     70 make
     34 darcs
     30 pushd
     23 ssh
     23 m
     23 ls
     20 rm

The l and m commands are aliases:

  • l = ls –CF
  • m = less

Posted in
Tags , ,
1 comment
no trackbacks
Reddit Delicious

Hailstorm!

Posted by Tom Moertel Sun, 15 Jul 2007 04:40:00 GMT

Yesterday, in the middle of a beautiful, sunny afternoon, a storm front came out of nowhere and cut across southern Pittsburgh. I was in my backyard at the time, and I could tell by the sudden icy wind that something unusual was happening. A few moments later I heard a sharp thwack! as something struck my deck and bounced into the yard – a nickel-sized hailstone. Then, another one. Thwack!

Hailstorm!

Then the hail fell like rain – thwack! thwack! thwack! – faster and faster, until the air was filled with icy missiles, some bigger than quarters, streaking to the earth around me. As the deluge intensified, I was deafened by the sound of a million berserk carpenters hammering away at my home, my deck, and my garden.

In a few short minutes it was over. The ground was littered with ice, leaves, and small branches. My home’s window screens had holes punched through them. My garden was torn to shreds.

If you haven’t experienced the combined effects of hailstones and high winds, count yourself lucky.

Photos

If you wonder what the storm and its aftermath looked like, I put a set of hailstorm photos on flickr. My neighbor and fellow programmer Casey West had his new iPhone handy and snapped some great photos, too.

I also captured the storm on my front-yard webcam, which looked into the oncoming hail. For reference, here is what the webcam saw just before the storm:

Front-yard webcam 2007-07-13 15:34:21

If you look in the upper-right corner of that photo, you can see the first few hailstones streaking into the frame.

Then, the storm hit in force:

Front-yard webcam 2007-07-13 15:37:26
Front-yard webcam 2007-07-13 15:37:47
Front-yard webcam 2007-07-13 15:37:51
Front-yard webcam 2007-07-13 15:37:57

The wind was so strong that it drove the hail horizontally at times.

When the storm ended, just 3 and a half minutes later, the ground was littered with ice. In the photo below, that’s not snow in the driveway:

Front-yard webcam 2007-07-13 15:38:08

In the garden, it was easier to see just how much ice the storm had dropped upon us:

Hailstones litter the garden

The garden, itself, was shredded:

Hosta shredded by hail

Amazing.

Posted in
Tags , , , , ,
2 comments
no trackbacks
Reddit Delicious

Debate to learn. Learn to debate.

Posted by Tom Moertel Tue, 27 Mar 2007 03:23:00 GMT

Recently, Reg Braithwaite wrote about the ad hominem fallacy. His article reminded me that debating – the art and science of constructing sound arguments in the face of opposition – is a valuable skill.

Though many online debates devolve into name calling and other foolishness, most are rich opportunities to learn – if learning is your goal. So make learning your goal.

Look at each debate you enter as a chance to discover something new. When you participate, assume the other participants are good people, who deserve an honest argument from you. If you learn the fundamentals of logic and clear thinking, it’s easy to stay in the debate, contribute, and increase your (and their) chances to learn.

Many people, however, overlook the opportunity to learn in order to pursue the opportunity to win. What a mistake. If the price of winning is ignorance, can you afford the purchase?

Therefore, when I debate, I make considerable efforts to be rational and reasonable. Even so, it’s hard not to say the wrong thing when a debate gets heated. To help keep me in the right frame of mind, I use a simple, idealized debating model.

I wrote about this model six years ago on Kuro5hin, but it’s worth revisiting. The model is not magic, and I doubt it’s novel, but it has helped me. Maybe it can help you, too.

Here it is:

  • The motivation for debating is to arrive at a better understanding of reality (i.e., the truth).
  • All participants share this motivation.
  • All participants are intelligent, rational human beings, each fully capable of drawing logical conclusions from facts.
  • The reason for disagreements is not because participants want to disagree but rather because their understandings of the facts differ.
  • Therefore, the objective of debating is to share information until the participants can bring their understandings of the facts into alignment, which will allow for agreement or at least consensus.

I know that the model and reality part ways at the outset. When I debate, however, I pretend the model is reality. I do this is because it allows me to participate earnestly. Forcing myself to make meaningful contributions increases the chance that debates will end in somebody learning something useful.

Nevertheless, debates often go wrong. That’s the second reason I use the model. It gives me something to compare real debates with so that problems are easy to spot and classify. If a key participant in a debate makes personal attacks or refuses to accept demonstrated facts, for example, the problem is easy to see and classify: It is a debate killer. Time to move on.

Another tool that has helped me stay on track is D. Q. McInerny’s wonderful introduction to logic, Being Logical: A Guide to Good Thinking. This short book, inspired by Strunk and White’s classic, tiny text on writing, The Elements of Style, introduces the foundations of logic, explains how to construct sound arguments, and prepares you to recognize and avoid illogical thinking (fallacies). The book is a pleasure to read and makes a handy reference (I keep mine within arm’s reach). If you need a quick refresher on clear thinking, add this delightful book to your toolbox.

Don’t forget: Every debate is an opportunity to learn. So when debating, make learning your goal. And if you learn to debate, you will have an easier time debating and learning.

Debate to learn. Learn to debate.

Posted in
Tags , , , , , ,
4 comments
no trackbacks
Reddit Delicious

Interesting stuff: matchstick moss (British soldier lichen)

Posted by Tom Moertel Fri, 07 Jul 2006 20:39:00 GMT

Last week I was vacationing with the in-laws in upper Michigan. They live on Lake Huron in a wooded area. One of their neighbors pointed out an unusual growth on a nearby wooden fence: “matchstick moss,” he called it.

Intrigued, I grabbed my camera and tripod and took some pictures.

Man, are these things weird. And tiny. For scale, that’s a woman’s wedding band in the pictures below.

Cladonia cristatella, British soldier lichen

Cladonia cristatella, British soldier lichen, close-up

Some recent Googling revealed that matchstick moss not moss at all but rather lichen, in particular “British soldier lichen”, Cladonia cristatella.

Here’s some more information on the fascinating little guys:

Now that’s interesting stuff!

Posted in ,
1 comment
no trackbacks
Reddit Delicious

The honeybee stories are back!

Posted by Tom Moertel Thu, 20 Apr 2006 21:36:00 GMT

Last year, I wrote about some beekeeping stories on Kuro5in.org. Interesting stuff.

The stories, like the bees, stopped when winter came. Now that spring is here, the bees have emerged from their hive, and the beekeeping guy, xC0000005, has resumed his writing.

At this time, he has a story on the front page: Tales from the Hive – Birth of a Package. But the good stuff to come will appear in his diary. Keep an eye on it.

Posted in
no comments
no trackbacks
Reddit Delicious

Night of the long-tailed beast!

Posted by Tom Moertel Tue, 24 Jan 2006 03:39:00 GMT

When I let the dog out this evening, it didn’t take long for her to start barking. Figuring she had cornered the neighbor’s cat, I went outside and called her. Naturally, she ignored my order to come back into the house.

Angrily, I marched up to her, underneath the crabapple tree, and took her by the collar. I made sure to bend low and look her in the eyes, just to let her know that I was not happy about having to walk in the wet grass to fetch her. When I stood up to lead her back to the house, my head reached into the lower branches of the crabapple tree.

And then I saw it, inches from my face, looking right back at me.

Read more...

Posted in ,
Tags ,
5 comments
no trackbacks
Reddit Delicious

Interesting stuff: keeping bees

Posted by Tom Moertel Sat, 29 Oct 2005 00:29:00 GMT

Author xC0000005 on Kuro5hin.org has been keeping bees and writing about it in his diary. Today he also posted a fascinating story about it, Lessons from the Hive. Check it out.

If you like the story, you will want to read his diary entries. In them he tells how he acquired his honeybee colony and then watched it struggle, grow, produce, decline, and fail, ultimately to be replaced a few days ago by a swarming colony that happened upon his failing colony’s hive – a great stroke of luck.

It’s interesting stuff.

Posted in
no comments
no trackbacks
Reddit Delicious

Letterpress Christmas cards

Posted by Tom Moertel Wed, 22 Dec 2004 17:00:00 GMT

Per our family tradition, my wife and I design and print our own Christmas cards. We print them on my 2650-pound, 10×15-inch Chandler & Price Craftsman platen press, which was manufactured in 1939. (See image below.) Presses like these are generally considered to be obsolete. They must be oiled by hand before each operating shift, print only one color at a time, do not meet current OSHA specs, and use the finicky letterpress process to put ink on paper. (Almost all printing these days is done on presses that use the offset process.)

10x15 C&P platen press

Read more...

Posted in ,
5 comments
no trackbacks
Reddit Delicious

2004 Presidential-election state polling data at a glance

Posted by Tom Moertel Tue, 02 Nov 2004 17:00:00 GMT

The Presidential-race polling data on www.electoral-vote.com are great, and the site’s plots do help visualize the country-wide race. But I want to see all the historical data for all of the states at a glance. To this end, I have taken the data from the site (as of the morning of November 2, 2004) and created this all-inclusive summary plot that shows the state-by-state polling results from September 1, 2004 through November 2, 2004:

2004 Presidential-race polling data by state

Some things to observe:

  • Battleground states are polled frequently; others, hardly at all
  • Wisconsin’s polling data suggest that Bush once had the state but lost it

See anything else interesting?

If you want to see the code I used to generate the plot, read on.

Read more...

Posted in ,
no comments
no trackbacks
Reddit Delicious

Fun with Modern Election Methods

Posted by Tom Moertel Wed, 29 Sep 2004 16:00:00 GMT

I spent the previous week vacationing in the Outer Banks. During the ten-hour drive back home, a friend and I were discussing the topic of the season – the U.S. presidential race. In particular, we both lamented the lack of diversity among the “electable” candidates. Are Bush and Kerry the best leaders that our nation can produce? I hope not. Why, then, are we stuck with them when it comes time to cast a vote?

The problem with plurality voting

One reason is that the U.S.’s current system of electing officials – the plurality method, in which each voter casts a single vote for a most-preferred candidate – effectively squelches third-party candidates and their ideas, leaving only the increasingly similar, mainstream Democratic and Republican candidates as viable choices. The rub is that any voter who votes for a third-party candidate doesn’t have a say in the race between the mainstream candidates. Because most voters who favor a third-party candidate are also strongly opposed to one of the mainstream candidates, they are faced with a dilemma: to vote for their true first choice (the third-party candidate) or to vote for “the lesser of evils” between the mainstream candidates as a defensive strategy in the all-to-likely event that the third-party candidate cannot win. Neither option gives the voter a fair representation of his or her preferences.

Alternatives to plurality voting

What’s needed is a way for voters to express their true preferences. ElectionMethods.org is a web site that describes voting methods that allow for just that. [The content of the ElectionMethods site has disappeared since I posted this article. —Ed.]

One such method is Approval Voting, a simple extension to plurality voting. Instead of voting for one candidate (the most preferred or the lesser of evils), each voter can vote for all of the candidates of which they approve. Thus our hypothetical voter from above can vote for both the third-party candidate and the lesser-of-evils mainstream candidate. The winner is determined the same as before: Whomever receives the most votes wins.

Approval voting eliminates most of the problems with plurality voting, and yet it is almost entirely compatible with the existing voting infrastructure within the United States. The same ballots and voting machines in use today can be used for approval voting. Only the counting rules need be changed. Further, approval voting is easy for voters to understand: Just select the candidates that meet your approval. For these reasons, approval voting is a realistic option for election reform.

But, what if we’re willing to rethink our voting infrastructure from the ground up? Can we capture voters’ preferences even more accurately than with approval voting? Condorcet voting (sometimes referred to as Ranked Pairs voting, after the name of one popular variant) appears to be the best approximation of the voting ideal. Each voter ranks the candidates in order of preference. The winner is determined by decomposing the rankings into candidate-vs-candidate pairwise preferences whose strengths are determined by the count of voters that support each preference. Finally, the candidates are ranked according to the pairwise preferences (with stronger preferences overruling weaker preferences). The winning candidate is the topmost ranked.

What’s fascinating about Condorcet voting is that it can accurately capture the real-world possibility that subsets of the “majority” can have conflicting opinions. For example, candidate A may be preferred to B, and B to C, and yet C to A. Such a set of preferences is said to contain a cyclical ambiguity.

There are a number of (competing) methods for resolving cyclical ambiguities. Most of them are iterative and either “lock in” preferences, strongest first, or eliminate preferences, weakest first, until an unambiguous set of preferences remains. Which method is the best (all are very good) is still an area of active research. This is one reason why Condorcet voting seems an unlikely vehicle for near-term election reform.

Put Condorcet voting to work for you

Nevertheless, we can take advantage of Condorcet voting for our own purposes. Need to decide upon a restaurant for a group dinner? Select a vacation spot for an annual family retreat? Elect committee members at work? If so, take a look at Andrew Myers’s handy Condorcet Internet Voting Service. Or download a Python implementation of Condorcet voting (and a bunch of other voting methods, all GPL licensed) and put the code to use.

Explore and have fun

Election methods is an interesting realm for exploration, and there are plenty of interesting opportunities for the programming hobbyist. How can your applications take advantage of modern election methods? What about your web site? Dig in, and have fun!

Posted in
Tags , ,
no comments
no trackbacks
Reddit Delicious