I read the Dispossessed by Ursula K. Le Guin. Finally an interesting book! It did have aspects of the socialist utopia that threw me into such a rage last time and it also had a capitalist society fully justified in its own self righteousness. The author actually struck a pretty good balance. Since one has to win in the end there obviously was some thumb on the scales but the argument was not totally one sided.

I also felt that the feel of this sci-fi was timeless. I’m pretty sure it’s modern (yep, 2010) but nothing dated it to now. The technology could have existed in a Asimov book from 1950, but the physics was so much more involved, without going off the deep end like Rainbows End.

It was not perfect, but it was a nice surprise give some of the mediocre sci-fi I’ve had recommended by Audible lately. Also, perfect would have been predictable, and this largely escaped from that crime.


I listened through the Ramayana. Twice.

It’s not that it was so great I had to enjoy it again, nor was it overly complicated. The best reason was that it was short. It was also enjoyable and the kind of archetype laden story that can be used as the basis of other stories I make up for my boys. A hero so talented he can shoot a tree on the horizon and it blasts trough the 6 trees behind it and then returns to the quiver. A ten headed demon who knows the best way to hurt the hero is to steal the woman he loves. And a monkey warrior who flies and battles mountains for fun.

Only drawback is the ending which is so sad if only because it is considered happy for the audience it was written for a few hundredodd years ago. The woman, though blameless and untouched in her captivity is so ostracized by her husbands people after her rescue that she must not only be banished, but when their twin sons come of age and she is inconvenient, she is swallowed up by the earth for her piety.

But it’s so episodic that you can just stop the story at any point. Say the earth swallowed the ending for being inconvenient, and the family lived happily ever after.

Island by Aldous Huxley

I just finished Island by Aldous Huxley. The performance was great and the author had some great one liners, which is probably why I recognised the name. But I didn’t enjoy the book.

It was very peachy. Every single thing Will Farnaby did was in the employ of telling why their world was so great, how they solved some problem, or don’t succumb to some vice. It was exactly the same book as Atlas Shrugged, except for left-leaning politics. At least this one had a reader who didn’t pour his soul into every single word, coining for me the definition of overwrought.

The end was worth reading if only because Will takes mushrooms and the author was free to be flowery without the confines of plot. That was supposed to be a compliment because it did end on a high note but it that doesn’t sound one, you probably should not read this book.

I didn’t want to go so long between posts, and certainly not to return on a sour note but I just have to push myself to write and this is the break from reading plus motivation I’ve got. Looking back at my audible history, I’ve had a lot of mediocre books lately so I guess this one was just slightly more inspirational to write about.

– The fifth season by N. K. Jemisin (middling fantasy, maybe good if you like magic and earthquakes, I will not continue series)

– I am legend by Richard Matheson (zombies. I never saw the movie but could see how it might be fun. To much racisism undertone)

– West Cork by Sam Burgandy and Jennifer Forde (actually pretty interesting. I got this Audible original for free)

– Ilium and Olympus by Dan Simmons (above average SciFi making it a disappointment for Dan Simmons. I loved the Hyperion trilogy and Song of Kali)

– Rainbows End – Vernor Vinge (another below-average SciFi trying too hard to be the matrix but coming off as random)

Tricky Adults story

I have always believed that story telling is important. Blogging was supposed to be a place I could write stories about. Fortunately it’s one area that fatherhood has not interfered. My son now asks daily to make up a story. Usually with Rescue Bots and math but sometimes super spies or dragons. I do my best to put everything into a common story like goldilocks and the three dragons or I try to teach a skill like plotting Cartesian coordinates of a high speed chase. 

But sometimes I barely service those requests. Like tonight when he wanted Rescue Bots, math, and toys but I wanted to incorporate Tricky Adults, the modern equivalent of “stranger danger”. So here it is.  

Once upon a time, Cody, Frankie, and Jet wanted to go play outside. Chase warned them, beware of tricky adults or you may get eaten by space monsters!
So the three of them went outside and began playing. Before long, a tricky adult came along and said, “Do you want to play with some toys?” Cody said yes and left. 3 minus 1 is?

And how do we know it was a tricky adult? “Adults don’t just give away toys” replied my son. I was impressed!

Jet and Frankie were playing when another tricky adult came along and said, “please help me! My cat is stuck in a tree!” Frankie went along to help. 3 minus 2 is?

And how do we know it was a tricky adult? This one stumped him. I incorporated it because of the article I linked earlier so I said, “adults don’t ask kids for help when they are in trouble, they ask other adults for help.” 

Jet was playing when an adult came by and said, “your mommie and daddy are stuck in traffic and asked me to pick you up. They said the code word is (and here we gave him one)” and Jet knew this person and remembered the code word that nobody should know but mommy and daddy. So he went along and waited for his parents to pick him. 

Jet was the only one not fooled. The others were eaten by Space Monsters because they did not listen to Chases advice.
Then he asked, “do adults ever trick other adults?” Yes, they try. When I was little I lived in a house with two enormous trees out front. One day two guys came by and offered to trim the branches for $50. It was a good deal for my parents because they didn’t have the equipment or time to cut the tree themselves. (I made up the numbers since I have vague memories of this story.)

After a few hours, the doorbell rang and both were standing there, one with a sling on his arm. They said that an accident occurred while they worked and a hospital visit cost them lots of money. Could they have $500 to cover the bill? My parents felt bad if he was really hurt but also felt they were being tricked. They paid the money they originally agreed upon and the two men went on their way. 

Sort Email by Automator + AppleScript

I made this to help with the crush of email. Why not implement sort rules? Well then the messages don’t hit my inbox and I never see them. This way, I read messages, select all, and run this script from the Scripts menu bar which you can enable from AppleScript.app. This is for Apple’s Mail.app. This script is not fast, maybe there’s a better way to do it, but I just run it and leave after reading my messages.

Note: It’s less important now with a TouchBar Mac because the automatic sort button is awesome. I’m putting this out there so it can be an example of how to automate Mail.

  1. open Automator
  2. create a new Script
  3. add Get Selected Mail Messages
  4. add Run AppleScript
  5. Paste in something like this:
-- Post-process Mail messages
-- By Troy Koelling, 2013

-- This script requires creating a plist (the location of which is defined below)

-- <?xml version="1.0" encoding="UTF-8"?> 
-- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
-- <plist version="1.0"> 
--   <array> 
--     <dict> 
--       <key>subject_search</key> 
--       <string>Subject of Email to filter</string> 
--       <key>mailbox_key</key> 
--       <string>MailboxName to put it in</string> 
--     </dict> 
--   </array> 
-- </plist> 
-- Every rule must have a mailbox_key and one of these:
--     recipient_search
--     subject_search
--     sender_search

on run {input, parameters}
	-- Edit this path (or see below for an inline solution without dependent files)
	set shared_rules_path to "~/Dropbox/Scripts/MailRules.plist"
	-- Edit this account name to match the account you have in mail. It is possible to add account_key: to the my_rules instead, if you want to route things per rule but this is not tested.
	set account_key_global to "Apple"
	-- Edit this list of rules and un-comment, or implement the above plist solution
	-- set my_rules to {¬
	-- 	{subject_search:"Discover Card", mailbox_key:"Bills"}, ¬
	-- 	{recipient_search:"cocoa-dev", mailbox_key:"Cocoa"}, ¬
	-- 	{sender_search:"brooksreview", mailbox_key:"Very Important"} ¬
	-- 		}
	-- Dropbox solution
	tell application "System Events"
		set rules_p_list to property list file (shared_rules_path)
		set my_rules to value of rules_p_list
	end tell
	-- Loop through the input messages
	repeat with the_message in input
		tell application "Mail"
			-- First, get some information from the message that will be checked against each rule
			set subject_line to subject of the_message as string
			set sender_line to sender of the_message as string
			-- check the recipient list by building a long string to search through
			set recipient_line to ""
			repeat with to_recipient in to recipients of the_message
				set recipient_line to recipient_line & address of to_recipient as string
			end repeat
			-- loop also through the cc recipients	
			repeat with to_recipient in cc recipients of the_message
				set recipient_line to recipient_line & address of to_recipient as string
			end repeat
			repeat with a_rule in my_rules
				-- Fill in our search strings based on the current rule (and some defaults)
				set a_account to account_key of (a_rule & {account_key:account_key_global})
				set a_mailbox_name to mailbox_key of a_rule
				set a_subject to subject_search of (a_rule & {subject_search:default})
				set a_recipient to recipient_search of (a_rule & {recipient_search:default})
				set a_sender to sender_search of (a_rule & {sender_search:default})
				-- This is the best way to get a nested mailbox
				set target_mailbox to (get 1st mailbox in account a_account whose name is a_mailbox_name)
				-- check the subject
				if subject_line contains a_subject then
					move the_message to target_mailbox
					exit repeat
				end if
				if sender_line contains a_sender then
					move the_message to target_mailbox
					exit repeat
				end if
				-- set recipient_line to to recipients of the_message as string
				if recipient_line contains a_recipient then
					move the_message to target_mailbox
					exit repeat
				end if
			end repeat -- over rules in my_rules
		end tell -- application "Mail"
	end repeat -- over messages in input
end run

Regaining my identity

I haven’t posted in a while.

There are a few reasons: busy at work, busy as a new dad, busy as a second time dad, new house, new yard in the house, primary cook for the family, really epic Minecraft worlds, commuting with one car for the whole family…

I like doing those things, but they are not what define me. I’ve decided as the new year begins that I need to figure out who I am and what I like doing. I resist saying it’s a mid-life crisis, but I’m technically middle age and I feel stuck, so yeah maybe it is.

I watched a video of some guy getting a tattoo and although I’d never get one myself, I started thinking about all the cool symbolism I’d put in mine. Then I wondered what I’d do if I were honest? So here it is. Can you guess the elements? Scroll down to check!

On to of everything, work. Even that has lost its shiny brand and its just a computer. In the periphery are my hobbies, Audible books and Minecraft. Cutting right through everything are the symbols of my role as father: household cook and poopsmith. Yes sometimes you need a shovel to clean up the crap. 

The day I grew up

Steve Jobs died on October 5, 2011. As a long time Apple fan, Steve was a hero of my childhood. When he stepped down as CEO 6 weeks earlier, I posted on Facebook, “Steve is a personal hero, and I congratulate him on his epic career. Now I hope he will take some time to step back, enjoy his family, and let us younger folks change the world for a while.” To which a perceptive friend took up Steve’s voice and replied, “Just don’t ƒ*^& it up.” This is a story about how I grew up on that day.

As far back as I can remember, my best friend and I decided to be Mac game programmers. I think, although I did not know them by name, we saw ourselves as the next garage startup like Steve Jobs and Steve Wozniak. We calculated how long it would take to save up our allowance to get our own computers. My friend had a slightly higher allowance than I, but I was no less determined to save for 1,299 weeks to get a Mac Quadra. That goal turned into a PowerMac, then an iMac as the years went by but I kept on saving.

Fortunately, in high school I started making more money by mowing lawns and working at Michael’s craft store so my budget caught up with technology. I got an iMac, the blueberry gumdrop that was my prized possession. With it, I learned to render 3D animations, and develop websites, and played whatever shareware games I could get my hands on. Eventually that computer landed on my college dorm desk, where I upgraded it to OS X and learned how to use its UNIX underpinnings in my computer programming classes.

All the while, I was a fervent Apple fanboy, or as we preferred to be called, “Mac Evangelists”. In elementary school I argued the merits of GUI interfaces and single button mice; graduating to topics like CISC vs. RISC instruction sets and big endian byte order in high school. In college I joined and helped lead the Mac User Group at CU and spent many hours in the club’s office with the premise that students would come by and ask Mac questions. In reality, the Apple plug-and-play ethos I heralded meant nobody really needed our help. The office was just a nice place to do homework, or read rumors about Apple’s latest developments. When I got a job at Apple, some of my friends said, “They just gave you the job because you’ve been such a fan for so long, right?”

Moving from Colorado to start at Apple was a trial of growth, since I did the 1,300 mile drive in a 22-foot U-Haul & car trailer all by myself. I drove through the mountains of Wyoming, Utah, Nevada and California in February, through whiteout blizzards and un-plowed roads. I was homeless, trusting my meager savings to afford necessities along the way. But I also saw a lot of beauty, such as the Great Salt Lake and Sierra Nevada mountains.

One powerful lesson was discovering that the $1000 limit on my only credit card couldn’t be paid off fast enough to outpace the “holds” on credit for the truck and trailer and one night in a motel. On the second night I ended up sleeping in the cab of my rental truck at a rest-stop in the middle of Wyoming. I donned 2 pairs of pants and all the sweaters I owned to stay warm in the freezing February night.

When I finally arrived in Cupertino and without any local friends, I had to unload the truck myself. I got so lost returning the truck that I had to call back to Boulder, interrupting a super bowl party to have someone look up Google Maps and tell me where I was. That made me late to return the truck, which I hated driving so much that I decided to abandon it until I could return the keys early before work the next day. Because of that errand and my unfamiliarity with bay-area rush hour traffic on a Monday morning, I was almost late to orientation. I regret none of it, because the thing I remember most about that weekend was walking into the atrium of 1 Infinite loop, giddy with anticipation and awe. 

So when Steve Jobs died, a part of my childhood died with him. But that is not entirely why I feel I crossed into adulthood on October 5th, 2011.


I awoke to the sound of helicopters. One, two… there’s a third one. What’s going on? Doesn’t matter, we have to get to an appointment and then go to work. It’s hard to judge the distance to a flying object, I wonder if those helicopters are over Mountain View or closer to us in Cupertino? Ah well, it’ll be cleared up before our appointment is over and it won’t even bother us.

I go have breakfast and check Twitter for trending topics about helicopters. Nothing yet, maybe Twitter is not the omnipotent service I’ve been led to believe. Surely someone with a smartphone has seen the helicopters. Maybe Silicon Valley hasn’t woken up yet? Can’t blame them, it’s early by engineer’s standards. But we have that appointment so there’s no time to waste.

After showers, my wife finds something in the news. There has been a work dispute at the Cupertino quarry causing an unstable employee to gun down his boss and coworkers. Huh, that’s not like the typical, sleepy, best-schools-nationally, restaurants-close-by-9pm, safe city news Cupertino usually gets. But the quarry is all the way across town, and we have an appointment to get to. I silently, insensitively hope it doesn’t affect traffic for us.

We arrive at the doctor’s office where my wife has her scheduled appointment. In the waiting room, the news is on TV. “The gunman left the quarry and drove East down Homestead.” Uh-oh, that’s right by our house. But we’re now in Mountain View, and I’m sure they’ll catch him soon. Besides, it’s time for our appointment.

After the doctor’s visit, I drive my wife to work and head back to Apple. Having missed half a day of work, and already late for lunch, I scarf down some leftover pizza and get to work. An email from Apple facilities arrives, “There is a shooter on the loose at Homestead and Wolfe. He has shot a motorist leaving HP campus in an attempted car-jacking. All Apple buildings at Pruneridge are on lock down, please report suspicious activity.” Wow, shit just got real. HP campus is right outside our window, Pruneridge is our home address. If we had left an hour sooner we could have been the target for the car jacking. Did we see this guy as we left home this morning? Retroactive memory is a powerful and corruptible thing.

The minutes tick away and he is still not caught. I have plans to meet up with the guys for our Wednesday night game night but I’m beginning to have strong man-stincts to stay home and protect my wife. She’ll be taking the shuttle and I don’t want her getting off the bus at Valco mall, less than 1 mile from the last sighting of the shooter any more than I want to wait there for her in the car. We make plans for me to pick her up in Mountain View, and have dinner at Google.

The whispers down the hall of my floor have been serious, but waning as the day went by. Suddenly, at 4:31 they pick up perceptively. I hear, “Is it true?” “He’s dead?” I start to relax. Until I check my email. Tim Cook sent an email with the subject “Steve” informing us of his passing. For a moment, nothing else is important. My childhood hero, an impressive visionary and ultimately, my boss, has passed away. 

Tragedy and fear have a way of changing a person. To experience both on one day is a life changing moment. But even that is not enough to make a boy grow up. Ready for another thousand words of my life story? No, the moment of my transformation was a quick thing. That morning, at the appointment for which we unknowingly risked life and limb, I saw my unborn child on sonogram. 

In the weeks that followed his death, I read about Steve’s accomplishments. One interview quoted him about having kids, “It’s 10,000 times better than anything I’ve ever done.” I feel the weight of this responsibility now, knowing the grey blob on the sonogram is counting on me.

For everyone, including Steve Jobs – a genius who wouldn’t accept mediocrity to Shareef Allman, a simple concrete miner trying to get by, life is short. There is a lot to fear in the world, but there are always younger generations ready to change it.

And that’s how I grew up.



I made this!

This is my second sewing project, and the first where I actually planned what I wanted, went to the fabric store, and put the whole thing together.
The reason– besides having a hobby away from the computer when I go home from work, was to have some super comfortable lounge wear. “Oversized” sweatshirts are more like “vaguely appropriate” sized to me and I always get gipped on my gorilla arms. I figured I could make one myself with all the excesses size I desired.
I found a tutorial here:

I wanted to reclaim whatever manliness I lost by using a sewing machine so I bought some kickass skull and cross-bone pirate fabric. The fact that it’s super soft fleece doesn’t help, but I’m not wearing it out-of-doors so only the internet knows. Having but one sweatshirt to pattern from, I turned to my Strong Bad hoodie, which I also think is pretty sweet. My wife points out that I should have changed the quilt on the guest bedroom to maintain my image, but I guess it’s too late for that.
The instructions start by folding the sweatshirt and cutting out the body with room for seams. I couldn’t tell at the time I took this picture, but that cutout is MUCH larger than my sweatshirt+seams; this could probably fit André the Giant.
Sewing up the body and the sleeves was no problem, but I did have to turn to the internet to figure out how to sew the two together. This video was extraordinarily helpful.

Despite the fact that the sleeves were the most difficult, I made the most mistakes on the hood. I had already hemmed the neck, which was a mistake. I also found the neck shrank after putting it on, so I had to rip out the seam and cut a larger V-Neck. Fortunately, I over-cut the hood (like everything else) so I had room along the bottom to sew into the V.
The finishing touch was a pocket just the right size for my iPhone. Because of the crazy pattern, I can’t take any good pictures to show it off so just call that a “feature” that the iPhone pocket is camouflaged.
My next goal is to make something I can wear out of the house without looking like a clown 🙂

Word Lens

This is so awesome:

I just downloaded the app to my iPhone, and it works impressively well. The app is free with a demo mode that reverses words, and language packs are $5. The best part is the whole app works offline, so it works, you know, when you actually need it.
I did buy the Spanish to English pack for emergencies, but this picture is really fun so I’ll post it instead. Can you read it? (iPad is apparently not in their dictionary.) Note the crazy angles and it even got my keyboard keys!