Disclaimer: I am not an investment advisor. When I describe my own trading activities, it is not intended as advice or solicitation of any kind.

25 November 2012

Happy 1994

1994 was a very special year for me, because I started it engaged to the love of my life, and ended it on our honeymoon. She married an unemployed bum, because I had left my job at Andersen Consulting and was taking much of December off before starting my new one at the Chicago Stock Exchange. We were still living downtown and saving loads of money for that first house. Here is what was going on in hard rock and metal that year.

Stabbing Westward: Ungod - This was Stabbing Westward's debut album, and although they aren't strictly metal, they've earned a spot on this list. I thought Stabbing Westward had entered my consciousness with Wither Blister Burn & Peel (1996), but of course I recognized Control when it played. This is a good disc, but I recommend keeping the razor blades out of reach while listening to it. Pretty standard for Stabbing Westward, I guess.

Pantera: Far Beyond Driven - Every Pantera album is heavier than the last. In this one, the vocals start bordering on the growling that I find so annoying in "modern" heavy metal. These kids and their growling heavy metal singers, have they no respect!? It's still a groovy sound, and I happily added it to my playlist rotation, but I have to say I liked Vulgar Display of Power quite a lot more.
Korn: Korn - One word: Issues. Korn's blend of heavily distorted guitar, pounding base, and lyrics that alternate between sing-song and rage-growl paint a picture of a deeply distorted main character. Whether this is a self-portrait, therapy-rock style, or a Pink Floyd-like fictional character is largely immaterial. It's impossible to listen to this album, especially with the lyrics in front of you, and not feel sympathy mixed with revulsion for the pro(?)tagonist.
Overkill : W.F.O. - I know so little about Overkill, since they were unknown to me until I started this project. But their music never fails to get me headbanging. There is a secret track at the end with a little practice material where they play a couple of snippets from Dio's Heaven and Hell and Judas Priest's Ripper, which is fun and cool stuff. Why they insisted on sticking 90 tracks of 1-second silence in front of it is a mystery. Korn did the same thing. Must have been all the rage in 1994 or something, but it's very annoying.
Danzig: 4p - This CD was delayed because it was shipping all the way from the UK, so I had written the above two paragraphs about Korn and Overkill making the annoying decision to include a bunch of silent tracks at the end before a hidden track. Then this album arrived, and lo and behold, 53 empty tracks between track 12 and the hidden track 66 (Invocation). I remember having a CD player back then that would physically adjust the heads every time it switched tracks. I can only imagine what these discs would have done to it, if I had played them over and over.

09 November 2012

CS|MACO Wakes Up

On Thursday morning, the American Association of Individual Investors' Sentiment Survey showed that 38.5% of their (paying) members reported being bullish. This was up 2.8% from the previous week. At the end of the trading day on Thursday, SPY closed below its 200-day moving average, down $5/share, or 3.5%, from Tuesday's close.

This close below the 200-day moving average caused CS|MACO to signal a position-closing trade. Don't remember what CS|MACO is? I don't blame you - it's been very quiet since May, when it went long SPY. As a primarily trend-following trade, the longer it holds a position the more likely it will make serious money. But unfortunately, it also means it will give back a large proportion of its profits when the market turns against it.

This position was typical. CS|MACO signaled a buy on May 10 when the folks who feel obligated to pay AAII for the privilege of filling out a weekly sentiment survey reported that they felt profoundly un-bullish (only 25.4% of them were optimistic). That entry at 136 was about 1/3 of the way through a down-move in the S&P that bottomed on June 4 at 128 (closing price), only to rally throughout the summer to a high of 147.20 (closing price) on September 14 - one of my favorite days of the year. Since then the volatility of the S&P has been increasing and it has been drifting lower through a series of bounces. I knew it was only a matter of time until the 200-day moving average was crossed.

CS|MACO will stay out of the market until one of the following occurs:

  • AAII comes out with a bullish number below 27.5% (buy signal); or
  • SPY closes above the 200-day moving average again (buy signal); or
  • SPY closes below the 200-day moving average, and it in turn closes below the 300-day moving average (short signal). That will be a while.
Just for fun, here's a little chart that plots the weekly prices of SPY (taken on Wednesdays) and the AAII bullish sentiment number. I've limited the time range to be the period of CS|MACO's latest position; that is, May 10-Nov 8.


Including dividends, CS|MACO is up about 4% on a Return on Investment basis since its inception in September 2010. Not a great track record, but I'm sticking with it for now. 

14 October 2012

Happy 1993

In 1993, I moved from my suburban prison in Palatine, IL to a downtown apartment in the Chicago Loop. I sold my car and started walking to work, saving a ton of money on car payments, insurance, gas, and parking. I was still putting in killer hours at the job, though, so there was little time for metal. This month we welcome a new face to the motley collection of usual suspects: Tool. I only have one album by Tool, which is 10,000 Days (2006), but I enjoy the deep-dark style and brooding sort of flavor to the sound. Will Tool's first album reflect this style, or will they evolve into it over time?

Accept: Objection Overruled - Accept is a tough band for me to enjoy. The guitars are good, which is important, and the chords aren't repetitive, which is a major annoyance (looking at you, In Living Color). But the vocals sound so much like AC-DC, which drives me crazy with its machine-like repetition, that I have a hard time letting go of the vocal similarity and just ... Accept Accept (ha!). The very first song on this album, my first comment to myself was, "ugh, this sounds just like AC-DC." It took a little while for me to realize it was only the voice. The rest is actually pretty good.

Anthrax: Sound of White Noise - This CD is terribly tardy, and I'm tired of delaying this blog post because of it. I will try to remember to update when/if it arrives.
Dio: Strange Highways - Dio just keeps getting better. This album wasn't a big splash when it came out, but I think it's nearly as good as Holy Diver (1983). Tracy Griljalva joins the team as lead guitarist, and I hope he sticks around for a while. The only criticism I can think of is that the tempo is a little slow and plodding. But I think Dio makes that work better than most.
Motorhead: Bastards - When I first added Motorhead to the Year-a-Month project, I glanced over the impressive list of albums they had released over the years, and wondered how a drug-addled three-man band could possibly come up with that much material. The answer, of course, is that they're very formulaic. But it's a good formula, so what the heck.
Overkill: I Hear Black - Overkill is a guitar-lover's band. The rhythm guitar riffs never fail to get my head banging, and the lead guitar blends into and out of the rhythm better than almost any other band. I Hear Black was their most popular album so far, which wasn't saying much. This is not a big-name band, by any stretch, which is a shame.
Tool: Undertow - Annoyingly, Tool chooses to run their track count up to 69, with 59 tracks of 1-second silence before the last track. Needless to say, these tracks didn't make it into the music library. I was of course familiar with the hit Sober, but most of the other tracks were new to me. Sure enough, the characteristic broody darkness found in later Tool works was on full display in this debut album. This should make excellent programming music.


09 October 2012

Somewhat Tarnished

So here's a weird factoid. A year-old post, Dipped In Gold, wherein I discussed a bit of investing I had been up to, has suddenly been picked up on the spammer circuit. It has about 10x as many pageviews in the past week as my next most popular post, Booting Custom ISOs with Syslinux, and has already appeared in the top-10 of all time. I'm getting about 2-3 spam-comments a day, which is a huge load for a blog that generally can expect one comment from a friend about heavy metal bands every couple of months.

I have no idea what random keyword inspired the bot-frenzy, but here is a representative sample comment:


I really like your blog.. very nice colors & theme.
Did you design this website yourself or did you hire someone to do it
for you? Plz answer back as I'm looking to create my own blog and would
like to know where u got this from. many thanks
Stop by my homepage : carton of newport cigarettes

The reference to cigarettes in the "payload" seems to be a pretty strong pattern, appearing in nearly all the comments in some form. I miss the good old days when it was all about porn and ED drugs of questionable provenance and wildly creative spelling.

In other news, for the 5 of you that enjoy reading the Year-a-Month posts, I have another one nearly done - I'm just waiting for a couple more CDs to arrive.

13 September 2012

Thanks, Uncle Ben!

It's been a very long time since my last trading/investing post. I've continued to ride my CSMACO position (long SPY since May), and made a few covered call trades (Microsoft, Canadian Dollars were both good ones the last few months). And the Collaboration is Good trade has signaled an entry now and then in S&P Futures. Some I took, some I didn't, thanks to the distractions of moving across the country. I've also made some bearish bets on Salesforce.com (what is their revenue model really?) and Apple (haven't you hipsters run out of money yet?), which have not worked out too well. I trimmed back some of my poorly performing gold-related positions to offset some gains in other things immediately before the gold rally resumed - figures. But I still have a moderate stake in gold, so all is not lost. Overall it's been a tough but slightly positive quarter, but the trading has been pretty muted, and nothing interesting enough to write about.

But when it became clear, a few days ago, that the Fed was almost certainly going to announce a 3rd round of quantitative easing (QE3) in the September FOMC meeting, I knew I had to take a leveraged stake. Unfortunately real life kept me from finding time to enter a position until the last minute, but the market gave me the courtesy of a downtick on Sep 10th. This let me get a pretty good price on a sizable chunk of SPY calls, which I held through the announcement today.

Everyone knew QE3 was coming, and just about everyone was sure it was today. But there is a kind of gun-shy quality to this market: it reacts some to the rumor, but it prefers to wait for the actual news before making a decisive move. Call it what you will, but I like to think of it as a confirmation rally.

Going into the announcement, SPY was just about unchanged from yesterday, and random-walking market movements had already given me a small return on the calls. Sure enough Ben Bernanke announced QE3 and made a lot of meaningless bluster about "doing whatever it takes", etc etc, designed to give the masses confidences that he knows what he's doing and he'll make your life better. He doesn't, and he won't. But in the meantime, the entire financial system rallied: stocks, bonds, currencies (not the dollar, of course), commodities. Every single thing on my watch list is green today, except for the VIX. The S&P chart looks like a bottle-rocket going off.

I exited half the position at twice the entry price, meaning that I have my initial investment out and future proceeds are all profit. QE rallies usually take a few days to play out, so I'll hold the other half for a little while and see if I can improve the return a little.

09 September 2012

Happy 1992

Ah, 1992. The year I graduated from Alma College, left my home state of Michigan and my college sweetheart, who had another year to go, and jumped into the hustle and bustle of Chicago life. The economy wasn't great back then (either), and I felt very lucky to have scored a job at Andersen Consulting (now Accenture) in their DCS/Logistics product division. I was going to get to write COBOL! W00t! I think I had about 3 weeks between graduation and my first day, and I mostly spent them looking for a place to live (I chose northern Schaumburg, for no rational reason that I can see now). The rest of the year was spent riding the Metra back and forth, working as many hours as I could trying to make ends meet in an apartment I could barely afford, wearing a suit and tie every day so that I could sit in front of a computer for 10, 12, 14 hours straight. There was no time for metal, but I aim to change that now, only 20 years later.

Black Sabbath: Dehumanizer - Dio's back! He's still my favorite Sabbath lead singer, and he does his customary great job on this one. As usual, Black Sabbath is defined by its lead singer. Comparing this album to TYR (1990) is sort of like comparing Iron Maiden and Motorhead - completely different sounds.
Iron Maiden: Fear of the Dark - I always enjoy a new Iron Maiden album. This one came with a bonus disc, apparently with B sides and live versions. There's a crazy song called Roll Over Vic Vella done to the tune of Roll Over Beethoven, very un-Maiden-like, and an extended 7-minute rant in heavy British style with an acoustic blues guitar riff in the background. The main disc, though, is standard Iron Maiden fare: foot-tapping metal about personal foibles and other random stuff.

Pantera: Vulgar Display of Power - This is Pantera at its best. The brown rhythm guitars, the power-filled cadence, the furious lyrics, it's all here. Pantera took the formula they developed in Cowboys From Hell (1990) and refined it, turning them into the heavy metal band an entire generation of disaffected teenage boys identified with in their darkest, angriest moments. To say this album rocks would be doing it a disservice. It destroys.

Megadeth: Countdown to Extinction - The first Megadeth album I ever bought was Youthanasia (1994), and I was looking to branch out from Metallica so I would have more variety. I was somewhat disappointed by what I felt was an arrangement that was too melodic and lyrics that were too political. This album feels like a turning point between the early enraged Killing Is My Business that rocks, and the watered down Youthanasia that seems to be simultaneously catering to a wider audience and getting some kind of message (I don't know what) across. The next album to appear on this list will be Cryptic Writings (1997). I hope someone pissed off Dave Mustaine in those intervening years and he went back to his earlier style. We'll see.

Danzig: How the Gods Kill - Danzig continues his trend of sounding like Jim Morrison, if the Doors were a lot heavier and started playing about 30 years later than they did. The song I most clearly recognized on this album, of course, was Dirty Black Summer. But they're all cut from the same cloth. Danzig is generally a little too quiet and muddy for my taste, but it was a nice change from Megadeth and Pantera above.

Motorhead: March or Die - Another Motorhead album that sounds remarkably like all the others. This one is notable for having the iconic Hellraiser and a cover of Ted Nugent's Cat Scratch Fever that sounds better than the original, in my humble opinion.

16 August 2012

Happy Belated 1991

During the big move from Chicago to Fort Collins, I skipped a month in the Year-a-Month project. So August is 1991, which is a mighty thin year indeed. But lack of quantity does not necessarily imply lack of quality. Read on.

Overkill: Horrorscope - This is a typical Overkill album: alternating between low & slow licks designed to make you feel like you're in a horror movie, and good old-fashioned speed metal. It's good stuff to program to, and the wide rhythm-guitar sound does a great job of blocking out background noise. I could do without the piano-noodling at the beginning of Bare Bones, but I'm a purist.
Motorhead: 1916 - This is a really good Motorhead album, with a lot more variety than many in the past. The last (and title) song, 1916, was a bad idea, though. It features Lemmy trying to sing a slow ballad about fallen war heroes, and it just comes off like the depressed babblings of a drunk. He's better with the heavy guitars and fast tempos of the life-on-the-road party songs that serve as Motorhead mainstays.

Ozzy Osbourne: No More Tears - I ended up listening to most of the tracks on this album 2-3 times, because for some reason my CD-ripping software decided to put the wrong songs into the wrong files, sometimes the same content into multiple files, leaving the proper inhabitants of those files to fizzle out into the ether. There are some really annoying songs on this album, like "Time After Time" and "Mama I'm Coming Home", but otherwise it's the best Ozzy album I've heard yet. He seems to be gaining confidence, and his songwriting reflects it.

02 August 2012

Lucky or Unlucky?

My wife and I recently bought a house halfway across the country, realizing a lifelong dream to live in the mountains. It was not without its scary moments, but the end result was amazing and fulfilling. Looking back, many of the facets of the transaction that looked like a deck stacked against us were, in fact, the best possible things that could have happened. Seldom do I treat directly with real Risk of Ruin, but today I will.

After a couple years of looking online and informally looking at neighborhoods and houses while vacationing in Colorado, D and I finally narrowed our search down to the foothills west of Fort Collins. My employer had agreed to let me work remotely, and after finishing up her PhD in Biology, D planned to look for either forestry or university work. Fort Collins is a good location for both of those things. For my part, I needed somewhere with a solid broadband connection so I could do my job, and D needed to be not-too-far from Fort Collins since she would probably be commuting. After our "drive-by stalking" adventures, we knew we wanted mountain property with lots of trees, but some open areas, too. And we wanted at least 10 acres of space that we could easily use without climbing gear -- too many houses in the mountains are perched on a cliff and crammed into a corner of their lot, leaving the residents unable to get to the rest of the property because of the terrain.

Broadband, short drive-time, trees, meadows, mountains, and lots of land. Not an easy combination of things to come by. We had several candidates favorited on real estate websites like Zillow and Redfin, but of course you can't buy real estate online. So in the early spring a high school friend of D's that had moved to Fort Collins recommended an agent, and home shopping began in earnest.

On our first trip to meet with the agent, he had about 10-15 properties for us to look at, and we visited them all (with one exception). Some of them were already on our favorites lists, and three in particular we recognized and were especially interested in. Of those three, we didn't get to see one because a tree fell on the current owner the day before the showing.

Another wasn't nearly as good in person as online -- there were a lot of things that looked like they could be maintenance nightmares lurking under the surface, especially the garage, which had excavated top-soil pressing against its back wall. That house will come up later as the Garage House. Almost none of the houses we looked at had high-speed internet.

The third house, though, was much better than the pictures. It was on a large square lot with both forests and meadows, it was right off a main road only about 20 minutes from town, and the owner had gone to the expense of a major internet upgrade that he put in for himself so that he and his wife could work effectively from home whenever they wished. We returned to Chicago, and after thinking about and talking about this property for a week or so, we ran out of reasons not to put an offer on it. And so we did.

A quick digression about regional weather patterns: there were record-low snowfalls in the Colorado Rockies over the 2011-2012 season. Since melting snowpack is where most of the moisture that feeds the region comes from, an extremely dry summer with very high fire danger was expected. Worse, the Rocky Mountain Pine Beetle epidemic is sweeping across the forests of northern and central Colorado, leaving millions of dead pine trees in its wake. As soon as it looked like we might be buying a property in the Colorado mountains, I started reading up on protecting my property from wildfires by removing the dead and infested trees. I knew that I was moving into a high-risk zone, and I wanted to be as prepared as possible. The volunteer fire department is located only about 1/3 mile away, which is very encouraging, but preventing fire is always preferable to fighting it. 

Our initial offer went to the sellers on May 12, 2012. On May 14, 2012, the Hewlett Gulch fire started on the north side of the Poudre Canyon, about 4 miles from the house. D and I watched carefully as it was fully contained in about a week, thankful that there was a river, two roads, and a ridge-top between the fire and the property we hoped would soon be ours. Fire fighters managed to bring the fire under control without losing a single structure. The fire was the largest that Larimer County had ever had, at 7,685 acres.

We returned to the property on June 2 to do the inspection. Encouraged by the results, we returned home elated, and put our own house on the market. On June 9th, we spent the day visiting with D's family, who threw her a going away party. There was much interest in our plans, and the Hewlett Gulch fire, so we happily chattered about how excited we were about the new property, and how relieved we were that the horrible fire hadn't gotten too close. During the party, D received a text from our Fort Collins friend -- she didn't read it until we got home that evening, and it went something like this: just thought you guys should know there's another fire burning near your new place. That fire, it turned out, was the High Park Fire.

Over the course of the next three days, the High Park Fire exploded in size, screaming across the entire Rist Canyon area. In the initial days of the fire, getting everyone to safety was the first priority. This meant that the limited resources already in the area couldn't do much to protect structures. Structure protection was much more effective later after the personnel fighting the fire increased from 250 up to its high somewhere near 2500. We watched in horror as the fire seemed to circle our new house, expanding first to the northeast, then the south, then back to the west again. Entire neighborhoods of houses were wiped out, for a total of 118 in the first few days. The Garage House survived, but the garage itself was destroyed and nearly all the trees on the property were reduced to blackened toothpicks. The sellers' agent also lost her house during those first few days. Eventually, the fire completed its circuit around and mostly filled a more-or-less square area 41,142 acres in size. Right in the center of that area was a little diagonal patch of unburned ground running from northwest to southeast along the road. In the middle of that patch was our house.

High Park Fire as of June 12
Bear in mind, we were still negotiating the contract when the fire broke out. Our earnest money was sitting in an escrow account protecting our offer, and things like the inspection and water potability test had been removing our excuses for canceling the contract. Of course, having a fire come through and destroy the house would certainly be a good excuse. But the earnest money was only 1% of the purchase price, so we could afford to walk away at any time if we decided we weren't comfortable, without any explanation. And that topic definitely came up in our conversations, especially the morning of June 13, when we saw that the unburned patch of ground had shrunk overnight, and now our new property was within the burn area. Both D and I started preparing ourselves emotionally for what we were sure was coming: a phone call from our agent informing us that the house had been heavily damaged or destroyed.



But that call didn't come. Instead, the seller -- part of the volunteer fire department battling the blaze -- reached out to me directly via email, sending me pictures that painted a very different story than the doom-filled media reports of walls of flame 200 feet high marching inexorably across the landscape. Those flame-walls were real, but they weren't representative of every part of the burn area. In many places, the fire contented itself with ground fuels, leaving the tops of the trees untouched while consuming the fallen needles, branches, scrub, and grass. Looking at the pictures, I almost couldn't believe my eyes. Instead of the blackened moonscape I expected to see, I saw green grass, green trees, and occasional black stripes on the ground where the fire sent out a finger, testing the defensible area around the house. The pictures were strategically shot, showing me bits of burn area but mostly focusing on the green stuff. I can't really blame the seller for that, he was trying to keep me from panicking and killing the deal -- and he surely knew that we would be visiting prior to closing and would see the whole story, so I view his shot selection as reassuring, rather than misleading.


On June 15, we learned that the major insurance carriers had all frozen the writing of new policies in the area indefinitely, as of the start date of the fire -- June 9. We obviously couldn't imagine buying a house with no hazard insurance, and the bank requires hazard insurance in order to approve a mortgage, so that had the potential to kill the deal. On June 16, after making some calls to find out more details, we discovered that our insurance policy had been delivered to our loan underwriter on June 8, one day before the freeze went into effect. Our agent promised to head up into the canyon as soon as the roads were reopened to take some pictures and video so that we could see the full extent of the situation and make a decision about the closing.

Despite our house being spared, the fire was nowhere near done. The management team spent the next two weeks scrambling to create and defend a line of containment around this fire, as record high temperatures, 30-50mph winds, and single-digit humidity levels all contributed to make the fire extremely aggressive and difficult to predict. Many stories have been written about the High Park Fire, so I won't repeat them except to give the final stats. By the time full containment was reached on July 1st, it had burned 87,284 acres making it the second-largest in Colorado history. 259 homes where destroyed in the High Park Fire, making it the most destructive fire in Colorado history (that record was broken immediately by the Waldo Canyon Fire outside Colorado Springs). Not including the property damages, the actual fighting of the fire cost $39.2 million.

Progression through June 23. Expansion in WSW corner is not mapped.

We had a closing date of June 29 scheduled, but our agent couldn't get into the canyon to view the house because the road hadn't been reopened. After much soul searching, we decided to fly out anyway, and to be very thorough with the final walk-through, since that would be our last chance to pull out. As the day drew nearer and nearer, we started questioning the prudence of closing on a house that remained evacuated and in an active fire zone. On June 28 in the late afternoon, as we were boarding our plane to Colorado, the evacuation was lifted. Only residents could pass the National Guard checkpoints, but we had the selling agent to drive us up, so that was no problem.

D and I wandered around the property and the house with our agent for about two hours that morning. We saw lots of devastation in the surrounding forest, but we saw plenty of hope, too. The views from the house are largely intact, with the worst destruction occurring deep in the forest away from the house. Most of the burn visible from the house is limited to grass damage, which will repair itself in a matter of months. There was minor smoke damage to the interior walls, but the seller's insurance covered its professional mitigation before we moved in. We found many green shoots pushing through blackened vegetation. But in the process of walking that property and surveying the situation, as well as conversations with the seller before, during, and after closing, we learned some terrifying details about the events of June 12.

It turned out that our seller/firefighter was defending his real estate agent's house and had to let it go because a huge wall of flame was sweeping up the hill from the road. He and his partner barely made their escape and were forced to cut the hose for lack of time. Despite this near-death experience, he chose to spend the night in his/our house so he could defend it. In the dusk, he and fire personnel from 3 other trucks felled trees, laid out hoses, and plowed dirt rings between the forest and the house -- effectively fortifying what was already a defensible zone. About 2am, he awoke to see an orange glow in the west-facing windows, so he wearily donned his protective gear and headed out expecting to watch the fire die at the fire break. Instead, he discovered that it had jumped the break and was within 10 feet of the western wall of the house. With his pre-laid hose, he was able to shut it down and contain the remainder of the fire behind the fire break. At some point he also had to turn his attention to the detached garage, which was closely threatened on its north and east sides. Propane tanks for both the garage and house show burned grass beneath them.

Many, many friends and relatives have tactfully or tactlessly asked us if we're crazy for completing this transaction. Our logic ran like this: the entire Front Range is experiencing record-dry drought conditions this year, making the fire danger extreme throughout all of our potential home sites. Now that the High Park Fire has burned away most of the fuel in Rist Canyon and the surrounding areas, another major fire in that area is unlikely for the next 20 years or so. So which is better? an area that has some black eyes but won't burn again for 20 years, or a pretty tinder box that could go up at any moment?

Our luck was magical: one day later with the insurance, and the bank would have killed the deal. Ours was the first real estate transaction to close after the fire. One day earlier with the closing date, and the evacuation order would have remained in place and our agent would have talked us out of closing. Ten feet more from the fire, and our beautiful new house would have been damaged or destroyed, and our seller would have been in grave peril. We also learned later that the Garage House was sold and closed on June 8. So those poor buyers, the very next day, found themselves thrust into an evacuation situation. We were spared that, since we were still in Chicago and in the stressful but safe situation of being able to simply cancel the deal if the house was damaged. All the other homeowners in the area had to wait and see if their summers would be spent rebuilding -- we could wait to see if we had to restart the real estate shopping or not.


Words cannot express my gratitude to the previous owner of our new house, as well as all the men and women on the many fire-fighting agencies that came together to contain this fire and protect the structures within it. But especially the seller, because I know he risked his life for the property, and then thought to take pictures to reassure us the next morning. He was an absolute prince of a man throughout the entire transaction, and I like to think that I can now number him as one of my friends.



15 June 2012

Happy 1990

Things have been hectic around here, so I'm a little late writing up this month's Year A Month purchases. For some reason Amazon wanted more money for MP3s than for physical discs on just about all of this year's albums, and that delayed things even further.

Black Sabbath: TYR - Black Sabbath, since Dio's departure, has been pretty unsure of who they are. This album sounds just like a Dio-era Sabbath album, except a little less polished. It's always sad to watch a once-great band stubbornly hang on while fading. But overall this isn't a bad album - it just isn't a Sabbath album.
Judas Priest: Painkiller - without a doubt, this is my favorite Judas Priest album to date. The band was unhappy with the way Ram It Down was received, so they decided to move more into speed metal. Unfortunately, there was also growing tension within the band, leading to Rob Halford leaving, and 7 long years will now go by before we hear any more from Priest. But what a goodbye show this is! I can't listen to the title track without air-guitaring (dangerous while driving), and now that I have experienced the entire Halford-era Judas Priest collection, I feel I've grown as a metal fan. Halford actually returns in 2005 on Angel of Retribution, but that's 15 years away.

Iron Maiden: No Prayer for the Dying - Bruce Dickinson toyed with a raspier singing style for this album, eschewing the more operatic sound of prior Maiden albums. The band also attempted to get back to its heavier roots by stripping out most of the keyboards that infested them in 1986 and 1988. Critics were unimpressed, and I see their point - this album sounds like a band trying to change their sound, but focusing more on what they didn't want to sound like than what they did. Nevertheless, I like the attempt, and I'm optimistic that they'll figure it out in 1992.

Dio: Lock Up the Wolves - Ronnie James Dio fired his entire band after Dream Evil in 1987, which might explain the long delay. This album is classic Dio, though, and a solid addition to the collection.
Megadeth: Rust In Peace - this was a huge success for Megadeth, bringing them to the attention of a mainstream audience. I actually purchased the 2004 remastered edition so I could get the extra tracks, without knowing that Mustaine had re-recorded the lead vocals of several of the songs. That definitely explains how modern his voice sounds throughout this album. In any case, it rocks.

ZZ Top: Recycler - critics didn't care for this album, noting its heavy use of electronic effects. It nevertheless had three hits and sat atop the album charts for a few weeks back in 1990. Just goes to show you that critical reception is not a proxy for popularity. Having now listened to it myself, I have to side with the fans on this one.
Danzig II: Lucifuge - I'm struck by how much Danzig sounds like Jim Morrison when he sings. He takes advantage of this by using similar brooding dark sound mixes, albeit somewhat harder than The Doors ever were. But The Doors might have had a heavier sound in 1990 than they did in 1970 - it was a different sound for a different time.


13 May 2012

Happy 1989

It is 1989 in the Year-a-Month project, but really this month is all over the place. Black Sabbath released Headless Cross this year, but I'm having some trouble getting it; maybe I'll include it next month. It was a light year otherwise, with Accept and Overkill being the only bands on my list releasing any metal albums in 1989. So I used the light month as an opportunity to catch up with the early Motorhead albums I missed.

Also worth mentioning is that Nine Inch Nails released their debut Pretty Hate Machine. You won't ever see NIN on this list, because I already own every studio album that Trent Reznor ever recorded under this band name. My college roommate picked up a copy of Pretty Hate Machine over the summer of 1990 and left it with me while he spent a term in Scotland. I think I nearly wore that CD out that fall, and when we went our separate ways after graduation a couple of years later, I picked up my own copy. Even now, 23 years later, it remains one my favorite albums.

Accept: Eat the Heat - Accept's sound continues to evolve. I can't believe this is the same band I thought sounded like AC/DC just a few months ago. After reviewing Wikipedia, I see why this one sounds so much different: it's the only Accept album on which Udo Dirkschneider wasn't the lead singer.
Overkill: Years of Decay - Overkill is starting to sound like a real band. The raw semi-produced sound of the last couple of albums is gone, and the riffs are all tight and precise. I was surprised to realize that the rhythm guitar sounds quite a bit like Anthrax, but that's where the similarity ends.
Motorhead: Bomber (1979) - This album has the original version of Stone Dead Forever, which is a song that I've been listening to Metallica cover on their album Garage, Inc. for many years. It was one of Motorhead's bigger songs from this album, but I didn't even know its origins until now.
Motorhead: Ace of Spades (1980) - Like most Motorhead albums, Ace of Spades sounds just like all the others. I was listening to Bomber while I did some other things, and then looked to see when Ace was due to play... I was on the last song.
Motorhead: Iron Fist (1982) - Wikipedia talks about a video made with the band in leather armor with swords. Lemmy described the experience as "prancing about in the woods" with armor on. Try as I might, I cannot picture this scene.

02 May 2012

JavaScript, Perl, IRC, and FourSquare

This week I wrote a script to check myself into foursquare venues. Being a C++ programmer for whom every microsecond counts, I don't get much opportunity to play around with scripted languages or internet services. So to accomplish this task, I had to teach myself enough JavaScript including using jQuery and JSON to interact with foursquare's API.

(By the way, I was going to put a foursquare logo here, but I read the trademark page and was so disgusted that I don't think I will)

Foursquare uses OAuth 2.0 to let a user give an application access to their foursquare account. This requires registering the application to get a ClientID, which is as simple as coming up with a name, and then using that ClientID in conjunction with the user's cooperation to generate an authentication token, which can then be used indefinitely to access the user's account. To reduce the risk of the application being spoofed, foursquare also requires a URL during registration, which it calls back during the authentication process.

Because of this callback model, I have to have a real web page on a publicly-available server. I have my markmccracken.net domain hosted primarily for email and this blog, and it does allow HTML-serving, but no server-side scripting like PHP. So that means all the authentication work has to be done in client-side scripting like JavaScript.

The beautiful and media-rich page I whipped up to accomplish the authentication is here. I've had spotty results using this from IE, but it seems pretty reliable under Chrome and Firefox (presuming you have JavaScript turned on, of course). Including the authentication, this page accomplishes a few one-time tasks:
  1. Authenticate, as mentioned, getting an access token I can use indefinitely.
  2. Search the user's lists on foursquare for one called "My Favorites".
  3. Iterate all the venues in that list, putting them and some other helpful defaults into a text box that can be copy/pasted to prime a configuration file.
I like having my long-running scripts talk to me via IRC, because I can passively monitor them from anywhere, and even interact with them in a rudimentary manner. For this project, I used Bot::BasicBot from CPAN, which I've used before to hook a Perl script up to IRC. It's a nice Perl library in the form of a base class where most of the interaction is done in an event-driven manner via the use of callbacks. The two main callbacks for my purposes are tick() and said(). tick() gets called when a timer expires, and said() gets called whenever anyone says anything on the IRC channel. With a little state management and content filtering/parsing, the bot can do pretty much whatever it needs to do with these two callbacks. It can also speak onto the IRC channel by using the say() method.

CPAN is far less scary than The FoursquareTM Site

The only thing left is the meat of the task, which is to check myself into a foursquare venue, wait for a while, and then repeat on the next venue. Since all the venues are pre-loaded into the configuration file, the Perl script just has to iterate them at extremely low speed (one checkin an hour) and make a POST request for each one that actually accomplishes the checkin. For that request, I used the HTTP::Tiny package, because it's usually pre-installed and is very easy to use. Since foursquare requires that POST request to be over https, the IO::Socket::SSL package must also be available.

If you want to try this thing yourself, follow the instructions below for your operating system. I actually have Windows instructions this time because I helped some POWs (Prisoners Of Windows) get it working in their cells. Either way before you begin, create a list on your foursquare account called "My Favorites" and put into it whatever venues you want to automatically check into.

Linux
Perl is probably already installed, but you'll probably need some or all of the extra packages. The cpan utility comes with Perl (at least on Arch), so use it to install the required packages.

sudo pacman -S cpan
cpan Bot::BasicBot
cpan HTTP::Tiny # probably unnecessary
cpan IO::Socket::SSL

Next get the perl script here, and save it somewhere convenient. Give yourself execution permissions.

chmod u+x foursquare_irc.pl


Go to the media-rich and highly advanced authentication page mentioned earlier, and get your configuration starter. Copy it from the web page and paste it into a text file such as foursquare.cfg. Then jump down to the IRC-specific settings described after I repeat these instructions to those Winlozers in small simple words.

Windows
Since you are trapped in Windows, you have no Perl pre-installed. So first, go get Strawberry Perl. Be sure to get the right architecture for your machine: 32-bit or 64-bit. If you're not sure which one you have, then you probably don't want to go any farther with this project anyway. Strawberry Perl was written for Windows users, so it chooses bloat over customization. That means you don't need to install any of those packages I mentioned earlier, because Strawberry Perl pre-installs all of them for you. And yes, that strawberry on their home page is HUGE.

Next get the perl script here, and save it somewhere convenient that you can find again, like your Desktop. In the same place, create an empty text file such as foursquare.txt. In that file, paste the contents of the text box on the media-rich and highly advanced authentication page mentioned earlier. Add the IRC-specific settings described below after I insult some Mac people.

Mac
Go away.

IRC Settings
The highly advanced and media-rich webpage doesn't talk about IRC settings, because there is another version of this script for IRC-impaired people that doesn't use IRC, and I didn't want to confuse them with excess settings. So you'll need to manually add the following settings. Note that none of the stuff in parentheses is real - you have to come up with your own.


IRCChannel= (your IRC channel here, such as #RiskOfRuin)
IRCServer= (your IRC server here, such as irc.foonetic.net)
IRCPort=6667 (probably right, check your server)
IRCNick= (a probably-unique nickname for this script, such as oexkubhtn234)
IRCBoss= (YOUR nick on IRC - the bot only takes orders from this nick)

Run That Sucker
With all the settings in place, go connect your own nick to the IRC channel. Then execute the script:
(Linux) ./foursquare_irc.pl foursquare.cfg
(Windows) .\foursquare_irc.pl foursquare.txt
Yes, Windows people, you're going to need to open a command window. Sorry.

If you've configured everything correctly, you'll see the bot connect to your IRC channel and report its readiness. To interact with it, precede your command with its nick: oexkubhtn234 quit. Simple. It responds to the following commands:
  • quit - quits.
  • start - starts at first venue after waiting [0 .. MaxSlop] minutes.
  • start n - starts at nth venue.
  • status - tells you what it's up to in case you forgot.
  • settings - reports its settings and venues.
Please use this script responsibly!