Howdy!

Welcome to my blog where I write about software development, cycling, and other random nonsense. This is not the only place I write, you can find more words I typed on the Buoyant Data blog, Scribd tech blog, and GitHub.

So. I'm married.

A few weeks ago I finally tied the knot after a rather long engagement, putting my relationship with then-fianceé into a legally binding relationship. While a wedding should hold a very special place in the bride and groom’s heart forever, I feel like it is safe to say that our wedding objectively rocked.

I don’t want to dive too much into the nitty-gritty details of the entire weekend which culminated in a great ceremony and reception at the phenomenal Madrona Manor Restaurant and Inn. The entire atmosphere, from both families having a great time together, to impeccable weather and the fantastically prepared dinner, was damned near perfect. Cue a brief slideshow of pictures taken by my good friends Dave Young and Annika Lindner:

</param> </param> </param></embed>

Now that we’re properly married, and no longer engaged, the typical annoying question has changed from “When are you getting married?” to “When are you having children?

Considering I can barely take care of our big moron of a cat, I don’t think children are in the cards anytime soon. I’m curious what milestone comes after children though, “when are you going to retire” might be next and then perhaps “when are you going to die” after that.

Either way, I think it’s safe to say, it’s all down hill from here.

Read more →

Being a Croy

The name change that I mentioned in my previous post is now official. This means I now have to update everything. I’m in for a world of hurt between the DMV, banks, brothels and strip-Parcheesi clubs.

The only thing you need to do is update your address book, lucky you! I know at least one friend of mine has, who messaged me to say:

I put your old surname in the “Maiden Name” field in Address Book. Just thought you’d want to know.

I spoke to my step-dad George on the phone immediately after the hearing was over and asked if there are “any perks to being a Croy?”

Still haven’t gotten a response to that one yet.

Read more →

What's in a name?

Tomorrow morning I will be in court, hopefully finalizing a process I started earlier this year. I will be changing my name.

When I was first considering it, I found the entire idea a bit scary. I have worked tremendously hard to make a name for myself, from my work in the open source community to conferences I’ve spoken at and interactions with numerous companies and people who have been instrumental in my whittling out a career in software engineering. I have been very particular about being referred to as “R. Tyler Ballance,” ensuring that my “self-branding” remains consistent, netting me somewhere north of 36,000 results when searching Google.

Tomorrow I intend on throwing all that out the window, there are more important things in life than Google results (as shocking as that may sound).

I’m hesitant to go too much into the motivations for the change, knowing full well that everything I publish might as well be set in stone on the internet.

Those close to me know that my parents divorced when I was young. After a particularly nasty divorce, my mother and my three sisters parted ways with my father who I have since only had sporadic contact with. After a couple dark years for my sisters and I, my mother married another Navy man, George P. Croy, III. George came into the marriage with his daughter, bringing my sister-count up to four.

Over the past fifteen years or so, I have become George’s son. Successfully exploring his emotional spectrum from tears of joy to turning him a bright crimson shade of pissed-off, never once treating me as if I were anything less than his kin. I’m convinced my attitudes towards family, women and friends not to mention my strong opinions on honor and integrity have all been heavily influenced by him

Plainly put, I would not be the man I am today without his guiding hand.

Provided everything goes well at the courthouse, I enter as R. Tyler Ballance and leave as R. Tyler Croy.

Might as well update your address books.

Read more →

Unclog the tubes; blocking detection in Eventlet

Colleagues of mine are all very familiar with my admiration of Eventlet, a Python concurrency library, built on top of greenlet, that provides lightweight “greenthreads” that naturally yield around I/O points. For me, the biggest draw of Eventlet besides its maturity, is how well it integrates with standard Python code. Any code that uses the built-in socket module can be “monkey-patched” (i.e. modified at runtime) to use the “green” version of the socket module which allows Eventlet to turn regular ol’ Python into code with asynchronous I/O.

The problem with using libraries like Eventlet, is that some Python code just blocks, meaning that code will hit an I/O point and not yield but instead block the entire process until that network operation completes.

In practical terms, imagine you have a web crawler that uses 10 “green threads”, each crawling a different site. The first greenthread (GT1) will send an HTTP request to the first site, then it will yield to GT2 and so on. If each HTTP request blocks for 100ms, that means when crawling the 10 sites, you’re going to block the whole process, preventing anything from running, for a whole second. Doesn’t sound too terrible, but imagine you’ve got 1000 greenthreads, instead of everything smoothly yielding from one thread to another the process will lock up very often resulting in painful slowdowns.

Starting with Eventlet 0.9.10 “blocking detection” code has been incorporated into Eventlet to make it far easier for developers to find these portions of code that can block the entire process. import eventlet.debug eventlet.debug.hub_blocking_detection(True)

While using the blocking detection is fairly simple, its implementation is a bit “magical” in that it’s not entirely obvious how it works. The detector is built around signals, inside of Eventlet a signal handler is set up prior to firing some code and then after said code has executed, if a certain time-threshhold has passed, an alarm is raised dumping a stack trace to the console. I’m not entirely convinced I’m explaining this appropriately so here’s some pseudo-code:

def runloop(): while True: signal.alarm(handler, 1) execute_next_block() if (time.time() - start) < resolution: clear_signal() # Clear the signal if we're less than a second, otherwise it will alarm

The blocking detection is a bit crude and can raise false positives if you have bits of code that churn the CPU for longer than a second but it has been instrumental in incorporating non-blocking DNS support into Eventlet, which was also introduced in 0.9.10 (ported over from Slide’s gogreen package).

If you are using Eventlet, I highly recommend running your code periodically with blocking detection enabled, it is an invaluable tool for determining whether you’re running as fast and as asynchronous as possible. In my case, it has been the difference between web services that are fast in development but slow under heavy stress, and web services that are fast always regardless of load.

Read more →

Paw paw?

I feel like I’m slowly starting to blog like @cansar with just excerpts of other stuff that other people have said on the internet, so this is the last non-technical post for a little bit, promise.

This thread on reddit just about made my morning, well, in addition to that delicious peach I ate.

The mere thought of my own grandfather on reddit or any other online community I frequent is a pretty big stretch, but to have him be a notable member of the community is unfathomable (not to mention, run a part of it like r/mayonnaise).

I suggest you read the whole thread and enjoy a hearty belly laugh, only so long as you’re not doing anything important like driving a bus or performing a colonoscopy.


Updated: As with most things, too good to be true. Although, I must say one of the most well done trolling performances I’ve seen yet. I remain unrepentant in my enjoying of a good belly laugh however

Read more →

I love Sonic.net already

Thanks to @pemullen, I was introduced to Sonic.net some time ago. Unfortunately I never took the time in my old apartment to switch out my AT&T DSL for Sonic.net’s Fusion service; the thought of home internet downtime was just too dreadful to even contemplate changing, despite AT&T’s absolutely awful service.

Now that I’ve left that apartment, I can finally take the dive into some delightful Sonic.net service, and while it’s not even installed yet, I can tell this is going to be a wonderful relationship just by some of the support emails I’ve been exchanging with their folks.

From me:

Like an idiot I moved in last weekend instead of this upcoming weekend, so I’m now in the unenviable position of zero home internet service. In the interest of time, can you guys just ship the kit instead of sending some poor tech to Berkeley? :)

I understand that AT&T still needs to install a line, but after that I’m hoping to get up and running as soon as possible, I’m almost to the point of considering opening a book to read.

Oh the horror.

After only a couple hours Kelly R. got back to me:

Sorry to hear that you’ve been driven to such desperate measures. I know the lead time takes a while from AT&T, but we here at Sonic.net have been working on expediting our end of the install process as much as possible. I’ll keep my fingers crossed that this installation process doesn’t result in a library membership.

Read more →

Pride

This fourth of July I find myself thinking a great deal about being an American in the 21st century, and pride. In the back of my head I have that hokey country song “God Bless the USA” with its chorus:

That I’m proud to be an American, where at least I know I’m free. And I wont forget the men who died, who gave that right to me.

The concept comes off so comical to me, “proud to be an American.” What does that even mean? I am no more proud to be an American than I am:

  • Proud to have been born in California
  • Proud to be white
  • Proud to be tall
  • Proud to have four sisters
  • Proud to have a grandpa named Bob

I had no control in any of it, I won the birth lottery and just happened to be born in the United States. I just happened to have grown up to be a tall, white guy with four sisters and a grandpa named Bob, I didn’t select this configuration, it just happened to me. What’s to be proud of?

Taking pride in one’s country however, I entirely understand. I feel that one should take pride in the positive actions that we undertake as a nation, since it’s actions are theoretically comprised of our collective wills, by the same token, I think one should feel ashamed of the negative actions.

That said, I’m struggling to find things to be proud of America lately, there’s certainly a good bit to be angry and ashamed of:

  • Our participating in the secret ACTA treaty negotiations
  • The tarring of the Gulf of Mexico, a body of water I’ve spent nearly 40% of my life around.
  • Guantanamo
  • The shrinking middle class
  • Shutting down Shuttle service without a viable Shuttle replacement
  • Four horrifically expensive failed wars:
    • Drugs
    • Terror
    • Afghanistan
    • Iraq
  • A bloated federal government, with representatives who’ve forgotten who they represent (looking at you Orrin Hatch)
  • Irrational fear of nuclear power

I could go on, I could even start a whole new list of all the things we’ve screwed up here in California too, but it just makes angry, then sad, and then sleepy.

I’m sure there are plenty of things that Americans have done lately that one could take pride in, but none are coming to mind.

We have a mighty big hole to dig ourselves out of.

Read more →

Fatso Adventures: "I wonder what's down here?"

Quite the mixed bag today has been, I went to court (more on that later), I signed a lease (more on that later too), and I worked from home. Since ET and I are leaving this apartment soon, the management company has been showing the apartment during the day. Not a big deal, strangers walk around the apartment, all the windows are opened, all the lights are turned on, doors are opened and closed and if you’re lucky enough to be around, you get to field questions.

About an hour or two after the showing of the apartment was over, ET looks up from the couch and asks “Where’s Buddy” (a.k.a. Fatso). After looking in all of the usual hiding places, she grabs a can of food and taps the lid and listens. A faint meowing is heard. She opens the closet door and taps the lid again. Meow, meow, meow. I think to myself “no way in hell is that cat in the closet, so I hold the can out the window and tap, tap, tap. Meows are coming from outside of the bathroom window. The window Our bathroom window opens onto this tiny area between two buildings, and is rarely opened because the view sucks, and we don’t stink up our bathroom too much.

Not entirely sure where the cat is, I go to the other side of this little area, in the buildings stairwell and open the window, climb out, and poke around for Fatso, a.k.a Buddy, a.k.a Missing Kitty #1. I can’t see Fatso at all but I can hear him. I tapped on the hood for the ventilation shaft and I hear meowing. I tap again, meowing. Reaching my hand around under the hood, I hear more meowing but I don’t feel anything.

Thanks to a flashlight and mirror loaned from a friendly neighbor, who’s more earthquake prepared than ET and I, I was able to look down the ventilation shaft. and I see Fatso’s stupid little face, all the way at the bottom.

The inlet

Running down to the basement confirms two things, this cat is stuck, secondly, he’s stuck in the ventilation inlet to the heating system for the building. Stupid cat. While I continue to investigate possible exit strategies, something Fatso clearly hadn’t considered, ET is on telephone duty. First we call the management company, who are characteristically useless, then it’s on to the fire department’s non-emergency line. From the garage

When the calvary (see: firemen) arrive, the first thing we do is rip the hood off the ventilation shaft to determine whether we can fish the stupid cat from the depths, which after removing the hood, turns out to be about 15ft. To add insult to injury, there are a couple pieces of wood fastened into place at the top, preventing any beings larger than a 12 pound stupid cat from fitting down the shaft. Looks like we’ll have to attack it from the basement, and be “we” I mean the firemen, I’m useless.

The good boys from the SFFD find a seam in the sheet metal where the shaft attaches to the furnace and using some basic tools (pick) and their hands, are able to tear back some sheet metal so I can poke my head in the bottom of the buildings furnace, only to see our stupid cat, a.k.a Fatso, a.k.a Buddy, a.k.a Missing Cat #1, as far away as possible, entirely unwilling to exit the dark bowels of the furnace he’s occupied for nigh three hours now.

I explain to the firemen, that I can probably handle it from here since they likely have “real shit to do”, but they are unwilling to budge, waiting on “verification” of the cat; they had not actually seen the cat at all up until this point. I shove my head back in the furnace, this time with an arm and grab Fatso by the neck and drag him, against his will, from the furnace to greet the four smiling faces of the SFFD’s finest (and ET). The escape route

The firemen are kind enough to seal the now warped sheet metal enough to hold the system over until the management company can repair the damage, and after thanking them they were on their merry way, ideally to save somebody’s life, but most likely to watch Real Housewives of New Jersey back at the station while they wait for something to catch on fire or some stupid cat to poke its head where it doesn’t belong.

Fatso’s favoring his hind-legs a little right now but is all and all in good condition. I want to say he’s learned his lesson, but I’m certain he hasn’t.

Read more →

Silly Problems

In the next few weeks, ET and I will be moving out of San Francisco, perhaps for good. I am living up on the promise I made back in April and leaving. Over the past weekend I was struck by how picky I’ve become, particularly with where I live.

For starters, living in San Francisco, I live in a place with:

  • A thriving bicycle culture, which is only looking to get better
  • Hundreds of restaurants with all sorts of delicious food stuffs
  • Surprisingly few douchebags (hipsters and Mission bartenders not-withstanding)
  • Fantastic weather
  • Low violent crime

And I’m still not happy with it.

In the past, I’ve lived in places where enormous cars are a status symbol, giant belt buckles that double as shields are accepted; truck nuts. Moving here from Texas I left, stale, windless 100+ degree heat, random people shouting “faggot” at pedestrians from their cars, no tolerance drug policies coupled with binge drinking and drunk driving. To its credit however, Texas is cheap and areas like Austin are wonderful (not counting traffic). When I lived in eastern Germany, I was constantly confused, cold and more than once crashed a bike due to black ice on the roads. Before that, Northern Virginia, living dangerously close to the “south will rise again” group of folks, an area of the country where the Ku Klux Klan is still surprisingly strong, albeit more hidden than before.

Every place that I have lived has had its own unique set of problems, San Francisco included; the lack of progress for a progressive city still irritates the hell out of me.

There are so many parts of this country that unabashedly fucking suck compared to San Francisco, and I’m still not satisfied. What a silly problem to have.

Read more →