Sat, 15 Nov 2008
Remctl 2.13 Released
Russ Allbery has released version 2.13 of remctl, a "client/server protocol for running single commands on a remote host using Kerberos v5 authentication and returning the output". It's an incredibly useful piece of software, and I'm using it a lot at home and at work.
I'm especially happy because 2.13 includes with it my python client bindings, so you can make calls to a remctl server directly from python, without having to call the remctl client binary. It's the first real piece of software I've written that has been really released to a wider audiance, which makes me giddy in some respects.
My next project, when I get enough Round Tuits(TM) is to build a python server library, so that one could implement a remctl server directly in python.
Posted at: 00:56 | category: /computers/python | Link
Tue, 04 Nov 2008
2008 Election, and Michigan's Voter Identification Policy
I walked down to the polling place and cast ballot 309 in the City of Ypsilanti's Ward 1, Precinct 2 this morning around 10 am. While it was busy, the poll workers had things moving efficiently and I didn't have to wait to vote.
Much has been written elsewhere about Michigan's Voter Identification Law (MCL 168.523) and the State Supreme Court decision that upheld it. I won't talk about voter disenfranchisement or lack thereof, as others are much better at that than I am. What I would like to discuss is the information assurance aspects of it, and more specifically the ones I saw this morning.
The Michigan Secretary of State's Picture Identification in the Polls: Instructions to Election Officials covers the procedures local poll workers are supposed to take to carry out the identification requirements. What I experienced is this:
- Poll worker asked for my ID, I provided my driver's license
- Poll worker looked at me, compared the picture to my ID
- Poll worker returned my ID, provided me with an application to vote
- I filled out the application, supplied it to the next worker down, who highlighted my name in the list of eligable voters, initialled my application, and directed me to the next guy down.
- Next guy down provided me with my ballot in a secrecy sleeve, slipped my application to vote in the clear plastic holder on the outside of the sleve, and directed me towards the privacy booths set up, where another worker pointed me at any of the handful of empty booths.
- I executed the honored American tradition of filling in the bubble next to the least onerous person in the several offices open for election.
- I stepped over to the poll worker next to the tabulating machine, who took my application to vote out of the plastic sleeve, tore the reciept off of the top of my ballot (whilst leaving the rest of it in the secrecy sleeve) and directed me to insert my ballot into the sleeve. That done and the sleeve returned to the stack next to the tabulating machine, I picked up my "I Voted" sticker and wandered off.
Now, the poll workers are a dedicated bunch of folks, who I have great respect for and who seem to be doing a good job in what is predicted to be one of the busiest voting days in history (and, if the State of Michigan didn't require you to list some sort of party affiliation to work as a poll worker, I would have volunteered — but that's a tirade for another day). But the ID requirement, as implmented at my polling place, seemed meaningless. At no point did anyone compare the name on my application to the name on my ID — they simply verified that I had a piece of plastic that looked like a State of Michigan Driver's License and that the picture on it looked like me. Then I got the application, which I filled out and presented to the next person, and at no following step was my ID checked. So there was nothing that tied my name as presented by my ID to me as I voted.
The option of filling out an affidavit for those without an ID also seems to, from an information assurance standpoint, make the whole ID process seem meaningless, since there is a way in the process to get by without any ID and the proported assurance that ID provides. I'm not a fan of the ID requirement by any means, and my understanding is that the affidavit portion is designed to get around any claim that the entire process constitutes a poll tax (since all of the accepted forms of ID require some sort of payment to aquire).
So, finally, what is the voter ID requirement designed to do, and one, is it a solution that actually solves the problem and two, is the problem an actual one? Those questions I leave for another day.
Posted at: 12:09 | category: /civics | Link
Sun, 02 Nov 2008
Bike Polo, 2 November 2008
Sometime between my two trips to Cafe Luwak (after The Stupidest Bike Crash I've ever had[1] and the Kopi Luwak tasting previously mentioned) it managed to rain, which ment that when I showed up for bike polo this evening something finally tripped in my head and I figured out how to do skids on my bike. I even managed to do one on dry pavement in the parking garage after the game, so I think it might have finally clicked in my head. Of course, now I have to worry about wearing out my tires, but that's another story.
I also managed, in the same game even, to score two points, which puts my lifetime bike polo earned points up to "3". The first one was lame, even by my standards — the ball got stuck in a defender's back spokes, and as he rolled around and everyone was laughing, I snuck in and tapped it into the goal. The second one, however, was better: a shot which banked off another player's tire and went in (which, by our variation on the rules, counts).
Now if I can simply learn how to do a track stand, I'll be all right.
[1]: Okay, I was sitting next to the "traffic calming clock" (as Andy H. called it) in Depot Town, and after letting the traffic clear I pushed off, only to have my tire go two inches and get stopped by uneven pavement, and I did the most awkward slow-motion semi-over-the-handle-bars-pull-the-bike-down-with-me fall I've ever done. At least nobody was around to see it.
Posted at: 19:17 | category: /bicycle/2008/11 | Link
Kopi Luwak at Cafe Luwak
Now, the Ugly Mug Cafe in Ypsilanti is my Coffee Shop of Record, but I have respect for Cafe Luwak down in Depot Town (and it is nice to have two quality coffee shops within a short bike ride).
To celebrate the birthday of The Mayor of Depot Town, Cafe Luwak had a party and had on hand it's namesake beverage, Kopi Luwak (or Civet Coffee), which are coffee berries that are eaten by the Civet, which digests most of the berries but passes the bean, er, out the other end.
Cat poop coffee, in other words.
The beans are washed and typically are given a light roast. Since such a limited amount of the beans are available each year (on the order of 1000 kilograms) the coffee commands a high price. Cafe Luwak was selling 4 ounce cups for $2.50, which seemed reasonable.
I had two cups, and wrote up some notes afterwards: it had a very mellow taste (which makes sense because of the light roast), and had a very smooth mouth feel. Very subtle flavor, and you must drink it hot — the flavor does not come through when it cools. The very first sip I took gave me a very distinct caramelized sugar aftertaste, and once, just once, very briefly, I got a very powerful taste of something distinct, that seriously reminded me of something I haven't eaten in a long time, but the sensation was so brief I couldn't place the taste, and never could repeat it, even with the second cup. But, the impression of a memory was very powerful.
Posted at: 19:07 | category: /random | Link
Thu, 30 Oct 2008
Collective Nouns I
Whilst working on the Jackson Pollock Memorial Software Extravaganza ("Throw some crap around and see what sticks!") my co-workers and I are naturally inclined to make snarky comments. Today co-worker Steve S. and I were leaving one meeting and I said something to the effect of "Cluster, meet fuck. Fuck, cluster."
Steve mentioned that this wasn't a clusterfuck, it was a whole collection of clusterfucks. Which, naturally, lead us to wonder what the collective noun for clusterfuck is. Eventually, after pulling up some Wikipedia pages ("Lists of Collective Nouns A-M") and throwing out some suggestions, Steve came up with "a Murphy of clusterfucks".
Which just about sums it up.
Posted at: 00:17 | category: /random | Link
Fri, 24 Oct 2008
Instant Toast
I want a hermetically sealed bag with a slice of bread in it, with a tab on the side that I can pull, wait 45 seconds, open the package and pull out a warm slice of toast.
Why doesn't this exist?
Posted at: 20:34 | category: /random | Link
Tue, 21 Oct 2008
Separated?
One of my co-workers is a member of the Dorsai Irregulars, an organization that provides various services to sci-fi, fantasy and related conventions (things like organizational help, security, etc.) He and another co-worker were at Fur Fright, where they came across a gentleman that reminded them of someone they new. Photo composition follows.
Astute readers will recognize the photo on the left as one of me, in full getup after the Institute for Advanced Perpendicular Logic Studies investiture of Dr. David Maxwell of Drake University as an Associate of Perpendicular Logic, circa 1999 if I am dredging up memories properly. The gentleman on the left was walking through the hotel dressed like that (yes, Sgt. Steve maintains, he even just had the fez on). I'm told that the gentleman was stopped, shown the picture on the left, found the similarity striking, and agreed to pose for a similar picture.
The world, it is an interesting place.
Posted at: 23:04 | category: /random | Link
Tue, 16 Sep 2008
We Like Ike - Or - Taco Tour 2008
Earlier this year Bike Ypsi cohort Tom L. devised the Taco Tour: pick a handful of Mexican restaurants and bike a loop to all of them, having a taco at each place. The 2008 Taco Tour happened this past Saturday, 14 September.
The remnants of Hurricane Ike were working their way into the Michigan area, and all morning I kept an eye on the NWS radar, watching the giant blob over Illinois. It didn't look like it was moving all that quickly, and in fact when I arrived at Recreation Park for the start it was warm and humid, and there were even bits of blue showing in the sky.
I think we had 25 people or so show up (Tom said that the limited number of spots he had were all full two or three days after he announced it). Starting at 1, our first stop was also the longest without tacos, about six or seven miles to Los Amigos out on East Michigan. Around the time we got to Los Amigos it started sprinkling, and I debated pulling out the new rain jacket I had gotten, but decided it wasn't worth it.
For the next stop the carnies and vegetarians split up, because the next two stops were too small to hold all of us at once. We veggies arrived next at Dos Hermanos Mercado, which is a few blocks from my house and I had always ment to stop at. I was rather fond of the bean tacos there, which is slightly sad since Dos Hermanos normally only has meat tacos — the owner made bean tacos for us specially since so many of us were going to stop.
Around the next stop, Taqueria La Loma on West Michigan, it started to pour. And leaving La Loma I developed a flat, fortunately close to Chappell Elementary and its inviting front overhang. Nat and Andy C. held back while I changed the tire, rather slowly; my glasses where fogged up and streaked with rain, and I could see about as much with them on as when I took them off.
Also around this time my tummy told me that it had had enough, and I passed on tacos at the next two stops: La Casita Taqueria and Zorro's. Missing tacos at both places made me sad; several of the veggies liked La Casita, and it's very close to Temptations, which we visit a lot at work, and Zorro's used to be Taco Boy of ancient fame and glory before it became a crappy buffet and then finally became Zorro's. Tom is really fond of Zorro's, and I had wanted to see what it had became, because we used to go to Taco Boy a lot at work.
We finally ended, after a jaunt down the recently re-surfaced railbed trail between the EMU stadium and campus proper and a dash through campus, at Corner Brewery, which would be my favorite bar if I drank (well, it's still my favorite bar, since I can get Ugly Mug coffee there). A few hours hanging around and drying out were the perfect end to the day, which yielded some other ride ideas that I hope come to fruition.
I normally don't do rides, because I'm more of a meander about town person than I am actually riding with any speed, but this was fairly laid back and I had a ton of fun. Besides, how could I miss a Taco Tour?
Photos can be found here.
Posted at: 08:34 | category: /bicycle/2008/08 | Link
Thu, 14 Aug 2008
Logging with Time Stamps -or- Why doesn't this already exist?
From the "I can't believe this doesn't already exist department":
I have at work on occasion the need to pound the shit out of things. What can I say, I like breaking things. A side effect of this is the need to go back, after pounding the shit out of things, and trying to decypher what happened. To help with this, I really want my log to look something like this:
20080814-134403 stdout> standard output here 20080814-134404 stderr> standard error here
And, along with the proverbial pony, I really want to do this with a command
like timelog
, e.g.
timelog 1,2 log.output my-command -flags -go -here.
After asking my co-worker Steve, who I tend to ask weird Unix questions of, if such a beast existed, we sat and thought for a moment of a few ways of doing this. Steve started doing some searching, and, since watching someone else search Google is painful even in the best of times, I ambled back to my office and started looking as well.
It starts with using something in bash called a Process Substitution. Whether or not this is a POSIXly sort of thing or not, I'm not sure and is something I should check up on. Anywho, process substitution looks like this: >( list of commands) . On systems with either named pipe support or support for using /dev/fd what this does is runs the list of commands in another shell and tying those commands' input to a named pipe, the name of which is returned to the command line. For example, let's say I ran the following command:
Tying this all together, I threw together a simple program to put a timestamp and prefix
for every line of input, and throw it in a file:
#!/bin/sh
CAPTION=$1
OUTPUT=$2
DATE="date +%Y%m%d-%H%M%S-%N"
touch $OUTPUT
while read line
do
echo "`$DATE` $CAPTION $line" >> $OUTPUT
done
Which I could then use like:
./big-program > >(./timelog "stdout>" stdout.out) 2> >(./timelog "stderr>" stderr.out)
This provides me with two files, stdout.out and stderr.out, which I could then cat together and sort, to get one long list, sorted by time, of the output of the program, with stdout and stderr interlaced as they appear. Sharp-eyed readers may notice I used the %N option to date, which gives you "nanoseconds" --- it's unlikely you'll actually get nanoseconds, but it's enough to get lines of stdout and stderr interleved like you'd expect them to. When I started, I had only one second granularity, and you can get a lot of output from both streams in one second, which will get muddled together with the sort. This solution isn't perfect, but I think it is good enough for the job at hand.
Again, I don't know why this program doesn't exist. It should --- I simply can't imagine this not being a common enough thing that someone's thrown together a nice program to just do this. I'm tempted to write one that will do this for you, but in any case, I at least learned a neat trick in bash
Posted at: 14:18 | category: /computers/unix | Link
Wed, 13 Aug 2008
Lentil Soup
Once again, the beauty and simplicity of soup is overwhelming. I threw this together earlier this week, and it gets better with age.
Chop up an onion (I had a Vadalia on hand, so that is what I used). Drizzle a little olive oil in a 5 quart soup pot, sweat the onions for a bit, until they start to become translucent and soft. Chop up some carrots into medalions, throw in the pot. Add some salt and pepper, let the carrots cook until they start to grow soft, stirring occasionally. Give a pound of lentils a brief rince, throw in the pot, add a quart of veggie stock and enough water to cover things. Stir and taste, add salt and pepper as necessary. Cover and cook on medium heat until the lentils are soft but not mushy.
I like soups a bit creamy, so I took the stick blender to this --- not so much as to make it a smooth puree, just enough to thicken it but still leave some texture.
Seems particularly good with sourdough rolls.