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:
Posted in interesting stuff
Tags life, memes, programming
1 comment
no trackbacks

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!
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:
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:
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:
In the garden, it was easier to see just how much ice
the storm had dropped upon us:
The garden, itself, was shredded:
Amazing.
Posted in interesting stuff
Tags damage, garden, hail, hailstorm, photography, storm
2 comments
no trackbacks

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 interesting stuff
Tags arguments, debating, learning, life, logic, people, thinking
4 comments
no trackbacks

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.


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 photography, interesting stuff
1 comment
no trackbacks

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 interesting stuff
no comments
no trackbacks

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 photography, interesting stuff
Tags animals, opossums
3 comments
no trackbacks

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 interesting stuff
no comments
no trackbacks

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.)

Read more...
Posted in interesting stuff, fun stuff
5 comments
no trackbacks

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:

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 statistics, interesting stuff
no comments
no trackbacks

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 interesting stuff
Tags condorcet, elections, voting
no comments
no trackbacks
