Author Archive


Happy birthday, mixtape

2009-11-08 / 15:59 /

Last year for his birthday my dad asked everyone for mixtapes. I tried putting one together in Audacity. It was a lesson in software crashes, followed by a lesson in awkward pauses during track changes.

Fed up I sent it off then didn’t listen to it until two weeks ago while driving 1200 miles over 5 days. Despite the flaws, it’s a decent driving mix. It’s also a nice picture of what I was listening to a year ago; plus I managed to sneak a Megaman sound effect in there somewhere. Happy hunting!

Happy Birthday mixtape (2008)

  1. Joanna Newsome – The Book of Right On (Pocketknife’s Scowling Owl Remix) (buy)
  2. John Lennon – Oh Yoko (Pocketknife’s Numero Ono Refix) (buy)
  3. Gil Scott Heron – The Bottle (Live Version, Daz-I-Kue Remix) (buy)
  4. Moodymann – KDJ16 Track 1 (buy)
  5. Moodymann – KDJ16 Track 2 (buy)
  6. Daniel Wang – Berlin Sunrise (Die Nacht) (buy)
  7. Black Devil Disco Club – Coach Me (Again and Again) (In Flagranti Remix) (buy)
  8. Forces of Nature – Afroshock (buy)
  9. Antibalas Afrobeat Orchestra – Battle of Species (buy)
  10. DJ Day – Gone Bad (Hawkeye Remix) (buy)
  11. Lyn Collins – Rock Me Again and Again and Again (6 Times) (buy)
  12. The JB’s – Blow Your Head (buy)
  13. Controller 7 – Get Ready for the Young Folks (buy)
  14. Peter Bjorn and John – Young Folks (Diplo Remix) (buy)
  15. Hollertronix – Hanged Up (Diplo Remix) (buy)
  16. Scotty B, King Tut & Will Roc – The Almighty Unruly Simon Joint (buy)
  17. The Who – Teenage Wasteland (Bird Peterson Remix) (buy)

I had originally planned to go more funk/dance hall, here’s the tracklist from the outtakes CD (listed alphabetically):

  1. Banda Uniao Black – Everyone’s a Winner
  2. Big Youth – Streets in Africa
  3. Bonde Do Role – Divine Gosa
  4. Capleton – Hits Pon Top A Hits
  5. Cham – Ghetto Story
  6. Daft Punk – Aerodynamic (Slum Village Remix)
  7. DJ Day – A Place To Go
  8. Incredible Bongo Band – Last Bongo in Belgium (Breakers Mix)
  9. James Brown – Funky Drummer
  10. James Brown – Get On The Good Foot
  11. Lefties Soul Connection – Organ Donor (Hawkeye Hyphy Edit)
  12. Leroy Smart – Love and Happiness
  13. Maceo and the Macks – ‘Cross the Track (We Better Go Back) (Extended Version)
  14. Shaggy – Heathen
  15. Sizzla – Solid as a Rock
  16. Tony Allen – Ole (A Remix by Moritz von Oswald)
  17. Turbulence – Notorious (Wabenzi Vocal Version)

Some random pictures

2009-10-28 / 11:08 /

LOL butter!
LOL butter!!1!

Alien veggies via the CSA
I have no idea what those are, but I'm going to eat them

My pumpkin, 2009
Pumpkin

What happens when a runner’s stride frequency is the same as a camera’s frame rate?
Running animation


Antelope Running

2009-10-19 / 03:32 /

The client is thirty-six years old and lives alone since his wife left him three weeks ago. She took the kids and all the kitchenware except for a large knife and a bowl and a coffee cup. The client admits her leaving may have had something to do with the fact that, without warning, he completely gutted the house. Tore out all the walls and ceilings, all the lath and plaster, right down to the studs. He says he did this in order to live like a primitive. When asked if it was successful, he says, “It was a step in the right direction.”

The client is a thirty-six-year-old male who lives alone since his wife and children left him over two months ago. He says there’s a darkness that separates him from other people, a heavy darkness, like looking at a person from the bottom of a well. He believes that if he could say the right words, then the darkness would go away. He says he sometimes knows the right words but can’t say them. Other times he can’t even think of what words to say. He has a very flat affect, speaks only when he is forced to reply, and these words he mumbles almost incoherently. His house has no electricity, he has yet to clean up the lath and plaster debris on the floor, and the window frames have no glass in them. He says, “I feel like I’m living on a meteorite.”

The client is thirty-six years old and lives alone since his wife and children left him three months ago. Last week he went fishing in the San Juan Mountains and now believes that there is no better fisherman than himself. He says, “I can’t tell you about it, because talking about fishing is silly. All I can say is I walk around in the water, and I know the instant the fish will jump for the fly. I cut open their stomachs and squeeze out the bugs in my hand, study what they eat, how it all gets digested, even the exoskeleton and wings.” He says he was sick before, but now he’s okay, and that it was the fly rod, just holding the rod in his hand, that cured him. His house is clean, the electricity is on, the walls have been Sheetrocked and painted white.

He says. “I’ll have to ask her, beg her, and maybe she’ll come back.”

Scott Carrier, Running After Antelope

Scott Carrier produces some of my favorite This American Life segments. There’s an eerie darkness to his stories that reminds me of Bonnie ‘Prince’ Billy’s songs about depression and break-ups.

This American Life – #80: Running With Antelope (buy)
This American Life – #181: The Friendly Man (buy)


All of a sudden I’m a yogi and/or swimmer for 6 weeks

2009-10-14 / 17:25 /

Success comes with a price, in this case a calcaneus stress-fracture. Ex-runner Mark, in reference to my then-upcoming MRI, warned that my cycling fitness was probably working against me: my cardio & legs were more prepared than my dainty skeleton. My 5 year old New Balance kicks probably weren’t helping, especially since last year I half melted the soles while drying them in a fire. Hiking ruins everything.

Since I don’t have any pain while walking or biking I dodged having to use crutches, which is good since I hear that cycling with crutches is terrible. But I am off “high-impact” foot activity for 6 weeks. Looks like it’s all about yoga and/or swimming for the next month and a half.

It also means I’ve got some open race entries up for grabs. Anyone want to run the Partners in the Park on October 25th (in York, PA) or the Spirit of Pittsburgh half marathon on November 1st? Upside: free. Downside: they’ll think you’re me.


Is cygwin a ghetto too?

2009-10-14 / 13:00 /

We all know Windows is a ghetto (at least for developers); I just googled for confirmation. Unfortunately I’m stuck there because of work and have been using cygwin to make things easier.

Unfortunately I’m beginning to think cygwin is a ghetto too. You can compile some source, but there are enough differences to be annoying. Specifically you can’t compile libraries to link against other windows apps (like for Python & Haskell libraries) and the path wrangling & soft links break in any native app. It’s only nice if you don’t leave it’s confines.

So maybe a better analogy would be that cygwin is like having a really nice loft in a bad neighborhood.

In contrast MinGW seems more interested in making Windows habitable. Maybe it’s like bike paths & community gardens?

Anyone have any experience with MinGW? I think all I really need is the GCC tools, ssh and bash.

PS: and yes I’ve thought about VMware, etc. But I have to release under Windows anyway, so there’s no point having to maintain two environments. I do have an Ubuntu laptop but I never end up using it.


The environment shouldn’t be, part 2…

2009-10-13 / 12:30 /

…in which all I want to do is read and write some goddamn ID3 tags.

I’ve said I want to learn Haskell but I’ve also talked about the pains of learning new programming environments (and given an example from Forth). So when I wanted to rename some mp3 files based on ID3 tags I thought “that’s a great excuse to use Haskell! What could possibly go wrong?” So I simply…

  • install the Haskell Platform
  • check Hackage for ID3 libraries
  • cabal install taglib. FAIL: requires taglib_c C library
  • download the Windows MSVC binary and copy to correct dirs under c:\cygwin\usr\local\
  • update environmental variables according to the Cabal help pages. FAIL: still can’t find package
  • use cabal install --verbose=3 taglib to find out it’s failing calling pkg-config
  • remove MSVC binary of taglib_c
  • try building taglib_c from SVN tip. FAIL: no configure
  • try IDiii: cabal install idiii. FAIL: error installing encoding-0.6.2 dependency
  • back to TagLib: download tarball & install. Success.
  • add PKG_CONFIG_PATH='c:\cygwin\usr\local\lib\pkgconfig' to environment
  • cabal install taglib. FAIL: the .pc files for taglib contain cygwin style paths
  • rebuild taglib_c with --PREFIX=c:/cygwin/usr/local. Success: installed in same directory but with Windows style paths in the .pc files
  • cabal install taglib. Success!
  • run TagLib’s included test code (nice touch, btw). FAIL: can’t find DLL
  • try renaming DLL’s & rerunning test. FAIL: finds DLL’s, can’t link. Suspect this is because GHC is built with MinGW
  • uninstall source-built taglib
  • install taglib’s MinGW binaries, including copying & modifying source built .pc files
  • cabal install --verbose=3 --reinstall taglib
  • re-run test code. FAIL: can’t link because of duplicate symbols in bytestring. WTF?
  • test in ghci. FAIL: can’t find DLL
  • rename DLL’s… FAIL: can’t link to DLL
  • uninstall MinGW taglib
  • try MSVC taglib once more for fun. FAIL: can’t find/link to DLL’s

So I’ve got no ID3 library a broken GHC installation. Next stop: mailing list. But first…

Let’s try that in Python

I wish I could say it was sooo much easier in Python, because that would mean I was done. Instead…

A few dozen lines of code and a few Unicode issues later and I am automatically renaming files based on ID3 tag.

Unfortunately the next step is automatically tagging files based on filename and id3reader doesn’t write tags. This is why people write their own libraries.

So what’s the point

Nothing really. I just wanted to complain. Also people often ask me what it’s like to be a programmer. Sometimes, this is it. My advice: stay in business school.


The Nobel conspiracy against Ronald Reagan

2009-10-10 / 14:35 /

Via Open Congress:

I can’t second guess the Nobel, but I will say this: we never expect a conservative Republican to be chosen. For instance, when Ronald Reagan helped to bring about the end of the Cold War and he was ignored by the Nobel Committee. I mean, to me, we’re just used to having the Nobel people picking Democrats or liberals to honor in this way.

Sen. Orrin Hatch [R, UT]


Delmarva, 2009

2009-10-10 / 12:46 /

I planned on doing a nice travel journal about my experience sailing the Delmarva loop with Captain Habib & crew, but instead I’m just going to dump a bunch of pictures and link to a youtube video.

Here’s a quick summary:

  • Habib has a 36′ sail boat
  • Crew of 7+1: Habib, Joe, James, Lyanne, Eric, Kat, Me + Susan on shore support
  • Sailed Chesapeake south to the Atlantic, cut north up to Delaware bay, took canal back to Chesapeake
  • 4.5 days?
  • Night sailing is fun
  • Those anti-sea-sickness patches you put behind your ears work really well
  • Cleaning up a head mess is not fun (according to Habib)
  • Saw dolphins from far away
  • Saw rays from far away
  • Saw a whale from a meter away
  • Ate well on the boat courtesy of Kat & Eric
  • Celebratory sushi afterwards
  • Bus back to Pittsburgh

The summary: it was awesome. Everyone should do it.

Here’s some of my photos (the full set is on flickr):

Here’s an awesome video that Eric & Kat made about our whale encounter: Delmarva Whale [Youtube]

My best story comes from after I was back. I got off the greyhound in Pittsburgh at 3am. At 5am I woke up and thought I had fallen asleep on watch. I looked at the white wall and panicked thinking I couldn’t see around the jib sail. I stumbled down the steps to the “head” and only while peeing in a regular toilet did I realize I was not on a boat.


G-20 war songs

2009-10-09 / 12:10 /

In the run-up to the G-20 I was surprised at how many people I knew expressed completely leotarded opinions. They drastically over-simplified the issues: “Capitalism is poison!”, “Protesters should be shot!”, “Cops evil!”. At the time I felt like should write a blog post and set the record straight. It was going to both point out that global capitalism helped drag the world from the stagnation of feudalism as well as question the assumption that wealth disparity is always a problem. It was to remind people that constitutional rights are meant to protect unpopular opinions and that these rights are eroded quietly, relying on the complicity of a quiet populace. It was to reinforce that we are all flawed people with flawed opinions and that the principle of charity also applies IRL.

Instead I did nothing.

So now I present my views in three words:

Shit is complicated

That’s actually the edited version. The director’s cut is twice as long.

Shit is complicated.
And you’re dumb.

The G-20 itself is nicely summarized in this image (a Failblog’ed version of ccbarr’s photo)
pgh_g20_fail

If you actually want to learn more, you can check out some actual reporting:

War Songs

I was reminded of the G-20 when I saw Mother Courage at Duquesne. Not bad, though in the age of movies I question a three hour play. It did make me run home and listen to one of my favorite “found in a used bin for $6″ CD’s: Let No One Deceive You: The Songs of Bertolt Brecht

Frankie Armstrong – Lullabies I, II, III-To My Countrymen-Lullaby IV
Dave Van Ronk – The Legend of the Dead Soldier

The arrangements are sparse, relying on the voices & Brecht’s lyrics.

Then I listened to all the Crass albums.

Crass – Yes Sir, I Will Track 7 (buy)
Crass – Shaved Women (buy)

The Yes Sir, I Will track is 20 minutes of abstract ranting, I think the entire B-side of the original record. Yes Sir is my favorite Crass album because of it’s insanity.

Shaved Women isn’t about war, but it is amazing: Eve Libertine’s wailing, the train samples, the “screaming babies” chant, the sparse main guitar… It’s hard to imagine that people’s heads didn’t explode in 1979, especially when you consider that Reality Asylum [Youtube] was the A-side.

PS

And if you’re looking for something to read, I recommend Joe Sacco’s Palestine. The first 8/9th’s are amazing. The last chapter probably is too, I just haven’t read it yet.


Emo Raps

2009-10-03 / 20:05 /

I listened to the new Kid Cudi album and thought of a term I’d heard describing Heartless [Youtube]: Emo Rap.

Kid Cudi – Soundtrack 2 My Life (buy)

That reminded me of the white emo rap from my formative hip-hop years, namely Anticon. I haven’t listened to anything on the label since The Makeshift Patriot EP in 2003, but Music for the Advancement of Hip-Hop was pretty bananas 10 years ago.

Slug – Nothing But Sunshine (buy on Anticon comp or on the Lucy Ford EPs)
Sole – Suicide Song (buy)

As a special bonus here’s non-emo Slug wrecking things:

Atmosphere – Scapegoat (buy)

PS: if you’re fast you can still make it to see WHY? at the William Pitt Union.


I’m a (somewhat) Great Race(r)

2009-09-27 / 20:56 /

Last night at 6:45 pm I was at Finnegan’s Wake for Heather’s birthday. Then we watched the Pirates lose 8-4 and Foreigner careen through a mediocre set. I got home around 11 pm and made some late night pasta in preparation for The Great Race.

I was asleep by midnight.

At about 1:45 pm I got to hear an argument outside. I didn’t catch the details, but Allie was mad at Pam because Pam wanted to call Dominick to get a ride. But according to Allie he just wants to fuck her and isn’t even taking care of their 6 year old. Allie said that If Jamie ever did that to her she wouldn’t stand for it. Pam just wanted to know where her phone was. She was also mad because Allie wasn’t listening to her. I think they both made reasonable arguments, I just wish they had made them quieter, or somewhere else.

For the record, Allie stated several times that she wasn’t drunk.

At 6:30 am I woke to my alarm and the sound of rain.

I had planned to eat eggs but realized that might be a bad running breakfast since running is so much harder on your stomach than biking. Some googling turned up recommendations to stick to simple carbs. To reinforce the point, the search also turned up information on Running Trots. I’ve heard of people pulling over in the woods during cross-country meets but didn’t know it was common enough to merit a name. Scared potentially shitless, I ate a little left over cold pasta and the Snickers nutrition bar (really, I couldn’t make that up) that came with my registration packet.

After pinning my # & attaching my timing chip, I got on my rain bike and headed downtown to catch the bus.

The line started at 3rd & Stanwix and wrapped up past the PPG fountain. It was a wet chilly wait for the bus, a comfortably heated bus ride, then a chillier wait at the start. To be fair, some of the chills at the start was probably pre-race jitters.

At the start I ran into Will, who worked a checkpoint with Louisa during the Pittsburgh-Roubaix and his friend Carolyn(?) who I met once at a Bike Pittsburgh fundraiser. She was an actual runner and looked the part. Will was wearing a stained white cotton T-shirt, guerrilla style.

While listening to droning opening ceremonies I looked around and saw Neil, partner to Boca Chica and big cheese at my CSA waving at me. I waved back.

We waited in the rain another 10 minutes while someone said something unintelligible over a megaphone. The racers would occasionally boo or shout “start the race”–a much clearer message. Eventually there was a gun shot and we all shuffled forward to the timing pad and then started running.

Like any large amateaur sporting event, the first 10 minutes was a cluster of almost running over slower people. Then it thinned out a bit and I settled into a rhythm.

My splits were around 7 minutes/mile, faster than my normal pace but I figured it was sustainable given that the course was mostly downhill.

One of the slight uphills was on Boulevard of the Allies right before town. I started to feel a little bad but grabbed some water and was fine.

Then it was mile 6 and we were turning the corner into Point State Park. In true “I actually used to be a sprinter” fashion I sped up for the last 200 feet, shaving at least .1 seconds.

I came in with a wall clock time of a little less than 42 minutes. They’ve since posted the results: my chip time is 40:56, which I’m pretty happy with. My “I’ll be disappointed if I run slower than this” was 50 minutes (5 min/km), my realistic goal was 42-45 minutes and my dream time was under 40. 40:56 is 6:35.4 splits. It puts me 256/6961 overall, 238/3860 males and 32/503 for my gender & age division.

For comparison the fastest male was 30:35, the fastest female was 35:59.

After drinking ice water and eating two orange slices & a banana I walked to my bike and rode back to the southside. I ran into Jonah outside of Yo Rita (his employer) then went back to my apartment (which is a convienent 50 feet from Yo Rita).

I changed into dry clothes and finished my left over pasta & both of the recovery drinks from the registration packet. Then shower and finally a slice of Pizza Sola before a half an hour nap.

Then I woke up and pooped. Twice. But at least it wasn’t while running.


Who reads my blog?

2009-09-27 / 11:26 /

According to Google Analytics, at least 1 pervert with poor spelling.
analytic_screencap


Victoria, oh Victoria: part 5 (oh right, there was a conference)

2009-09-23 / 12:08 /

4 and a half months later, the thrilling conclusion.

2008-09-25 (Thursday) – 2008-09-27 (Saturday)

Oh right, I came here for a reason. Both DEFUN & CUFP were good. The functional community seems really nice (and smart). Basically everything else I said a year ago.

Then on the walk back I saw the Pandora draw bridge in action. Score!

Drawbridge in action (Pandora Ave)

2008-09-28 (Sunday)

Then I flew home. The End


A tribute to Mr. Russell

2009-09-18 / 17:52 /

Via Alain Finkielkrautrock:

Johanna Billig – This Is How We Walk On The Moon (buy)

And a special bonus:

Arthur Russell – Shes The Star (Pocketknifes Continual Cornfield Remix) (buy)


Uplifting Scots

2009-09-09 / 22:17 /

Everything’s wrong and it keeps gettin’ worse. You said it’s just a product of aging but that’s not true, it’s really all gettin’ worse.

Malcolm Middleton

Malcom Middleton – Carry Me (buy)
Belle & Sebastian – Lazy Line Painter Jane (buy)


Some past & upcoming cycling events

2009-08-17 / 10:40 /

At one of the volunteer meetings for podcamp marketing guy Mike Munz said something to the effect of “all blogs are really about marketing.”

I disagreed, and have proved such by forgetting to advertise the mountain bike event I just got finished running. Anyway, if you go back in time, check out A Balmy Heaven 2009:

A Balmy Heaven 2009 flyer

And next Sunday I hope you all make it out to The Pittsburgh Roubaix 2009:

Pittsburgh Roubaix 2009 flyer


Psycho killer

2009-08-16 / 02:18 /

Gianni Rossi – Gutterballs (buy the MP3 or the movie)
GraveDiggaz – Diary of a Madman (buy)
Talking Heads – Gotta Tape I Wanna Play (Greg Wilson Edit) (buy)


I’m not even remotely black

2009-08-09 / 01:53 /

Syl Johnson – Is It Because I’m Black (buy)
James Brown – Say It Loud I’m Black And I’m Proud (Parts 1 & 2) (buy)


Polyglotism: not over your head, just overhead

2009-08-07 / 16:05 /

(A comment gone long, I decided to turn this into its own post)

The reality, though, is that we all do polyglot programming all the time. We use command line scripting languages to simplify our lives, and build languages to manage repetitious build processes. In the sphere of web development, we’re regularly working with regular expressions, JavaScript, and declarative languages like XML, CSS, and SQL (or its derivative, HQL). It’s exceedingly common to see jobs looking for developers who can write both an ActionScript front-end and a JVM back-end (Grails, Roo, whatever). I worked at a shop where we used perl for file processing and fed those into a database, just to be consumed by Java batch process. One gig had service calls from Java to .NET in order to interoperate with Microsoft Office products. In none of these cases did the architects sit around and go, “Oh, man, we can’t implement that solution: people are just too stupid to handle it.”

Robert Fischer, We Aren’t Too Stupid for Polyglot Programming

I think Robert’s absolutely right in that we use many languages all the time, the questions are 1) why and 2) is it the right thing to do.

In my experience, polyglotism falls into a few patterns:

  1. Low level + scripting language driver (C + Lua)
  2. Frontend + Backend (Web)
  3. Core product + automation (Make, perl)
  4. Well establish DSL + general language (SQL, regexps)

In all cases polyglotism provides some obvious benefit. For the first two, that benefit is that it allows the project to work. If Lua were fast enough and Ruby ran in the browser… For #3: mixed language automation is an artifact of low-level languages. Make is a good build tool for C but Ruby’s build tool is Ruby (Rake). Given a change in technology and the right language, these could all be monoglot.

In the last case the DSL’s are chosen for convienence: SQL is better than hand B-tree manipulation and regexps better than FSA‘s.

Using multiple languages isn’t without cost. An obvious one is that learning languages is hard. Most developers know SQL but how many are good at tuning queries? Knowing a language also isn’t the same as fluency. Until you’re fluent in both languages, you’re likely to favor one. See the object/relational–not to mention FP/OOP–divide for examples.

There’s also the technical costs in translating data. XML, Protocol Buffers, Thrift, etc. are all valid interchange formats, but they’re not free. Robert’s emphasis on JVM languages does ease this hurdle, since I believe all the JVM languages can pass objects.

Finally there’s the cost of tools & debugging. You now need tooling–compilers, debuggers, syntax-aware editors–for several languages. More languages can lead to more complexity. Making matters worse, error messages across language boundaries are often cryptic, even when both languages are on the JVM.

So should we all be polyglot? As a matter of personal improvement, I’m all for learning new languages & techniques. But in terms of actually writing good software quickly, it probably only applies if

  • There’s obvious, quick benefit
  • There’s a clear separation
  • None of the other costs are too high

Personally, I think the big efficiency gains are in monoglot solutions. In the web world, glot-supremicists–i.e. Lisp and Smalltalk–have come up with some interesting web frameworks. Polyglotism is a fallback when abstractions leak.


A fistful of papers

2009-08-07 / 12:55 /

Like many dilemmas, this one results from either/or thinking. A third alternative is to try both methods in parallel and just use whichever result arrives first.

Conal Elliott, Simply efficient functional reactivity [PDF]

Peter Van Roy’s excellent Programming Paradigms for Dummies: What Every Programmer Should Know [PDF] lead me to reread–or I suppose “read instead of just skim”–Conal Elliott’s 2008 FRP paper. It’s interesting, but a little too wrapped up in Haskell type insanity for me understand deeply. I did like the above quote though, it’s such a simple reminder that multicore is changing programming.

Speaking of changing programming, Optical information processing in
Bose–Einstein condensates [PDF]
is a great paper by Dr. Lene Vestergaard Hau. You may remember Dr. Hau from 1999 when she slowed light to 38 mph and from 2007 when she transformed light into matter and back again. Smart cookie, that one.

She’s got more papers on her lab web page.