blog

Yes, yes, I’m pushing a whole day late on this one — and none of you called me on it! Jeez, folks, the whole point of doing this performance in public thing is you giving me shit when I’m late. It’s like you don’t even appreciate what I’m doing for you here.

Um, anyway. This week felt a good bit more settled and productive, but I don’t know that I ended up getting that much more done. I do feel a bit more settled into my routines and the new habits I’m trying to cultivate. I think the thing I’m going to be working on next is making sure there’s a clear connection between the day-to-day TODO items that I’m trying to check off and the bigger weekly/monthly/yearly goals that I’m (theoretically, at least) working towards.

So, about those goals:

  • Be more intentional: See above — the routine is firming up; the connection between the day-to-day and longer term is lacking. Didn’t get squat done on any of the automation stuff either. Did intentionally opt out of a direct role in a work project that I’d been helping out on, which is good. Call it a ‘B-‘.

  • Re-develop exercise routine: Finished week 2 of C25K and did 3 days of bodyweight stuff too. Clear ‘A’ week on this one.

  • Speak at 3 events: Let’s just re-use the report from last week: “CFPs submitted to this week: big fat zero. Grade: ‘F’” sigh

  • Revive my blog and make at least 2 posts / month: I did a tiny amount of work on the “port to another blog platform” sub-project, but no posts. Middle of the road ‘D’ there.

  • Learn C# and Swift: Again, repeating last week: “No C# progress. Read more about Swift, but haven’t gotten to the point of writing any real code yet. Grade: ‘C-‘.” The good news here is, divesting myself of that work project frees up some cycles for this one.

  • Fix up landscaping on front and west side of the new house: Still in a weather-related holding pattern on this one.. Grade: N/A.

  • Build brick path from back door to office door: Ditto — but still more office progress, which is a good sign.Grade: N/A.

  • Host one dinner party a month: Zero progress on identifying invitees. Grade: ‘F’

  • Cool thing I heard last week: Another Spotify new music playlist discovery, Palisade, by Mineral. At first I was convinced this was a new Sunny Day Real Estate track. But no, it’s a different band, that broke up going on 20 years ago. Have I mentioned I’m really enjoying Spotify? Because it’s totally proving to be worth the money. I apologize to all of you that I’ve scoffed at in the past when you’ve raved about it — I was totally wrong!

As always, thanks for reading. See you next week if not sooner.

Really felt like a bit of a crap week, didn’t feel like I accomplished much of anything and my mojo was totally missing in action. Let’s look at the board:

  • Be more intentional: I finally (about 20 minutes ago) got the mess of crap I dumped into OmniFocus semi-organized. I did spend some time thinking about how this is all going to work, and it’s clear that I need to do a little automation around Jira, and maybe Trello, if I’m really going to stick to the “one inbox to rule them all” plan. Solid ‘B’ on this one this week.

  • Re-develop exercise routine: Finished week 1 of C25K and did a couple days of bodyweight exercises as well. Giving myself a C+, because one of my January goals was to get to week 2, and I didn’t, despite having a decent overall week.

  • Speak at 3 events: CFPs submitted to this week: big fat zero. Grade: ‘F’

  • Revive my blog and make at least 2 posts / month: I think I’m going to revise this goal to be “2 non-goal-summary posts / month”… In true yak-shaving fashion, my immediate goal is to convert the blog to a different platform, which I did zero work on this past week. Another ‘F’.

  • Learn C# and Swift: No C# progress. Read more about Swift, but haven’t gotten to the point of writing any real code yet. Grade: ‘C-‘.

  • Fix up landscaping on front and west side of the new house: Still in a weather-related holding pattern on this one.. Grade: N/A.

  • Build brick path from back door to office door: Ditto — although some solid progress was on the office renovation this week, so maybe I’ll be able to actually start on this one this month. We shall see. Grade: N/A.

  • Host one dinner party a month: Talked to the wife about the plan and she approves. We still need to figure out who to invite. Another ‘C-‘.

  • Cool thing I saw last week: Chapter One: When Hearts Are Large — came up on my Spotify new music list and it is just beautiful. When it comes to music, I’m totally a lyrics guy, and this one has several spots that are just gut-punchingly good.

Thanks for reading, folks. Really appreciate those of you that took the time to send in positive feedback on the experiment here — it’s still early, but I think it’s helping.

Now to start growing.

(Aside: I need to figure out a way to title these that isn’t going to drive me nuts and isn’t a complete ripoff of Allen’s week number scheme. What I’ve got now isn’t it.)

So, let’s see how we did on those goals last week, eh?

  • Be more intentional: I declared OmniFocus bankruptcy and started re-populating based on my current commitments, but it was way more of a struggle to do that than it should have been. Giving myself a ‘D’ on this one this week.

  • Re-develop exercise routine: I did squat here. Solid ‘F’ on the week.

  • Speak at 3 events: I got the news that the talk I submitted to DCBPW was accepted, so that’s good. I intended to submit to a number of new CFPs this week, but didn’t get any further than looking past the open tabs. Another ‘D’.

  • Revive my blog and make at least 2 posts / month: This is the second post so far this month, assuming it’s not totally cheesy to count this as distinct from the previous post (it’s totally cheesy). Rating this one a ‘B’.

  • Learn C# and Swift: I bought a(nother) Swift book and read a few pages in it. Didn’t make any progress on C# to speak of. Giving this one a very generous ‘C’.

  • Fix up landscaping on front and west side of the new house: Not quite the season to start with this work yet. Did spend some time thinking about what the landscaping might end up looking like. Grade: N/A.

  • Build brick path from back door to office door: In a holding pattern, waiting on both the weather and the office renovation work. Grade: N/A.

  • Host one dinner party a month: Zero progress here, for another solid ‘F’.

Not really a great first week with this new system, but this means there’s nowhere to go but up, y/y?

Next update should happen this upcoming Sunday (the 31st); please apply virtual asskickings if that doesn’t happen.

Happy 2016!

| No Comments | No TrackBacks

Now that I’m on the other side of my company’s annual summit/retreat/gathering, it’s starting to feel like the new year is really underway. I’ve been spending some time thinking about goals (as one does), and I’ve spent what feels like a huge chunk of the last year (the parts that weren’t filled with cancer and surgery and stuff, anyway) thinking about accountability and how I can do a better job of getting myself to do the things I’d like to do, instead of the stuff that seems to end up filling my days.

So, here we are. I’m going to list out some 2016 goals now (which I totally reserve the right to change, of course), and I’m also announcing my intention to do end-of-week posts (inspired by the series currently running on my friend’s site at mackenab.com.

Please feel free to smack me around if you see me doing stuff that seems like it’s not contributing to one of these goals, or if I start slacking off on the end-of-week roundup posts.

Current 2016 goal list:

  • Be more intentional and deliberate in what I’m doing
  • Re-develop regular exercise routine
  • Speak at 3 events
  • Revive my blog and make at least 2 posts / month (halfway there!)
  • Learn C# and Swift
  • Fix up landscaping on front and west side of the new house
  • Build brick path from back door to office door
  • Host one dinner party a month

A copy of this letter was left in the comment box at Venti’s Taphouse on 16 Oct 2015.

Hi Mr. Venti -

We’re John and Laura Jacobs Anderson. You probably don’t know who we are, but as regular customers of Venti’s Taphouse, we wanted to let you know we’re extremely disappointed with the stance you’ve taken on the transport funding initiative that’s on the ballot this election. We’re disappointed enough that our patronage of your restaurants is going to be significantly curtailed, if not outright eliminated. We’d rather spend our discretionary income at an establishment that believes in contributing to Salem’s infrastructure, rather than one that wants to avoid this responsibility.

A few words about us: we’ve been regulars at Venti’s Taphouse since we moved to Salem 3 years ago. When we say “regulars”, we mean it: we’ve been there almost every Friday for 3 years straight. On one memorable occasion, when we weren’t able to make our usual Friday reservation, the hostess called us to make sure everything was okay. Ask your Friday evening crew about “the Andersons”, or ask your social media team about @genehack and @MrsGenehack - they all know who we are!

In addition to our regular Friday evening meal there, John has frequently hosted business lunches at the Taphouse, and any time we have an out-of-town guest, we have made sure to take them to Venti’s. We’ve made several great friends from people who we met while they were working at Venti’s. After visiting from Kansas, John’s dad even made Venti’s branded growler carriers! In short, we have been dedicated patrons, and we’re very sorry that your position on this transportation issue means we’re having to re-consider that.

The size of the tax contribution employers are being asked to make is small. It will be dwarfed by the economic impact of an improved transit system, the benefits of which will accrue to the businesses paying the tax. That’s not to mention secondary impacts, such as making it possible for your employees to get to work without relying on a car.

We’ve read your statement on the Venti’s website about your opposition to the tax. Your argument that the state isn’t contributing a fair share is, at best, disingenuous - they already pay a percentage of payroll directly into transportation funds in lieu of a payroll tax. Additionally, your statement that this 0.21% tax increase is going to make it “potentially impossible” for you to provide health care benefits to your salaried employees is, frankly, ludicrous.

Finally, there’s another reason where opposing this tax is a bad idea for you: the business you’re going to lose by having adopted this position.

Some quick back-of-the-envelope math tells us our family is spending somewhere between $5,000 and $7,500 a year at your restaurant. That’s based on roughly 1 visit for 50 weeks a year and a bill of around $100 (pre-tip) per visit. We typically have 2 kids, 2 adults, and we order appetizer, 2-3 adult entrees, 1-2 child entrees, 2 to 4 beers, and generally fill one or two growlers. Then you have to figure in the random business lunches, the beer pairing dinners that we’ve attended, the occasional summer afternoon beer on the patio, and so on - we’re fairly confident $5,000 represents a good “low” estimate for the amount of money we give you in a year.

Now, with a 0.21% tax, in order for you to be assessed $5,000 a year, the payroll for Venti’s - and that’s payroll, not gross revenue, that’s just the amount of money you’re paying employees - your annual payroll would need to be in excess of 2.3 million dollars, or not quite $200,000 a month. We realize you employ many people between your two locations, but find it hard to believe your payroll is quite that large, given that the majority of them are wait staff that are exempt from normal minimum wage standards — see below, this last bit was incorrect.

If our guess is right, you’re going to lose more income from just our family over this issue than you’ll end up paying when the measure passes - and based on the responses we’ve seen on social media to our posts about your position, we’re not the only ones that won’t be patronizing your establishments any more. In other words, in addition to displaying a shocking lack of community support, by taking this position, you’ve made a bad business decision.

We’re having one last meal at Venti’s tonight, because we need to explain to our friends who work there why they won’t be seeing at the Taphouse as much in the future. We’ll take that chance to leave this letter in the comment box, where we trust you’ll see it. We’ll also be sharing it on social media and urging others to join us in boycotting establishments displaying the “Stop the Employer Tax” signs.

We urge you to reconsider your position on this issue, for the good of the community, for the good of your business, and most selfishly, so that we can continue to patronize Venti’s Cafe and Venti’s Taphouse for years to come.

Sincerely,
John & Laura Jacobs Anderson
Salem OR

Update: I have been informed by a reputable source that in Oregon, servers make the state minimum wage. I apologize for the assumption above, but still believe this tax will not add a significant burden to Venti’s bottom line.

I’ve had a couple people reach out to me over the past couple weeks, asking about my health, so I thought I’d do another quick update on how that’s going: everything’s fine. 8^)

I’m completely recovered from the surgery, and pretty much settled back into “normal life”, whatever that is. I do have one last follow-up test this week, an IV pyelogram, that’s going to show how much function remains in the half-kidney they left behind. The test itself shouldn’t be any problem, but it requires a day of fasting and ‘bowel prep’ the day before. Not really looking forward to that part of the exercise.

Because 2015 is apparently dead set on being the year of Much Drama, we’ve also been forced into moving a year earlier than we had been hoping for. Our plan had been to sell our Maryland house this fall when the lease was up, then buy a house here in Salem next summer. Our current landlords, however, had other plans: they too wanted to sell their house this fall. This presented us with an issue, being as that’s the house we’ve been renting (and we weren’t really interested in buying it, for a variety of reasons, much to the disappointment of the current landlords).

We threw things into high gear (actually, mostly Laura threw things into high gear, honestly), located a house here, and got the incredibly slow-moving process of house buying kicked off. We sign final loan documents and other stuff tomorrow, then close of escrow and possession is scheduled for Tuesday. Pretty excited at the sweet 1936 former farmhouse we found. We plan to be all moved in before October 1 — and then the years of “projects” start. (Project #1: Getting the detached workshop renovated into my office space.)

We were also able to list our house in Maryland. It sold pretty quickly (although not without its own share of petty drama which isn’t even worth going into). That closing is scheduled for this Friday. Not having that house anymore is really going to feel like the “East Coast” chapter of our life is fully completed. I guess we’re full-on Oregonian now.

Overall, things are incredibly busy and pretty good. Hope you’re the same. <3

(For context, it will probably be useful to read Code blue and Code blue, part two. Otherwise, none of this is going to make a whole lot of sense. Also, unless you’re a Perl programmer, you can probably safely skip this one…)

I decided to go ahead and reply publicly, since this information may also be useful to other people. Also, I’ve submitted a talk proposal for the Pittsburgh Perl Workshop based on the idea of letting people who aren’t super connected to the community know about some of the improvements of the last several years (because I think you’re far from alone in your “WTF is all this shit anyway” reaction), and writing this reply is sort of research for that.

Some parts of your rant I’m just going to bypass — in particular, the stuff about deep dependency chains. This is something that the people maintaining these important distributions think about quite a lot (or at least the ones I hang out with do). I think the trade-offs they’re considering and the trade-offs you’re considering are not very well aligned — you’re looking at installation difficulties; they’re looking at not having to maintain as much code, or at organizing code across modules to maximize code reuse. For better or worse, deep dependency chains and the “I had to install half of CPAN” problem is just a fact of life in the Perl world these days. (IME, it’s generally a fact of life for any higher-level language, but that’s a different topic entirely.)

I know you said that saying “use a package manager” was missing the point of your rant, but … geez, use a package manager already. It will make your life better. You want to use cpanm, which you get by installing App::cpanminus. (The ‘minus’ in the name is because it has a much smaller set of ambitions than the native cpan client, and especially the other alternative client, CPAN-Plus.) One of the nicest things about cpanm is how much less verbose it is than cpan. For your particular use case, I think if you used cpanm and captured the output into a log file, you’d be able to easily edit that log file down into the set of notes you want showing exact versions of what got installed (the output is regular enough that you could even automate that step). Here’s part of the output of running cpanm LWP:

% cpanm LWP
--> Working on LWP
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/libwww-perl-6.13.tar.gz ... OK
Configuring libwww-perl-6.13 ... OK
==> Found dependencies: HTTP::Date, File::Listing, Encode::Locale, HTTP::Daemon, HTTP::Cookies, WWW::RobotRules, HTTP::Request, Net::HTTP, HTML::Entities, HTTP::Response, LWP::MediaTypes, URI, URI::Escape, HTTP::Request::Common, HTTP::Status, HTTP::Negotiate, HTML::HeadParser
--> Working on HTTP::Date
Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz ... OK
Configuring HTTP-Date-6.02 ... OK
Building and testing HTTP-Date-6.02 ... OK
Successfully installed HTTP-Date-6.02
--> Working on File::Listing
Fetching http://www.cpan.org/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz ... OK
Configuring File-Listing-6.04 ... OK
Building and testing File-Listing-6.04 ... OK
Successfully installed File-Listing-6.04
--> Working on Encode::Locale
Fetching http://www.cpan.org/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz ... OK
Configuring Encode-Locale-1.05 ... OK
Building and testing Encode-Locale-1.05 ... OK
Successfully installed Encode-Locale-1.05
--> Working on HTTP::Daemon
Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz ... OK
Configuring HTTP-Daemon-6.01 ... OK
==> Found dependencies: HTTP::Request, HTTP::Status, HTTP::Response, LWP::MediaTypes
--> Working on HTTP::Request
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/HTTP-Message-6.10.tar.gz ... OK
Configuring HTTP-Message-6.10 ... OK
==> Found dependencies: LWP::MediaTypes, URI, IO::HTML
...

So you see what depends on what. You see what versions of what gets installed. You don’t have to download everything by hand, extract it, and run the build yourself. This will make your life better.

Now, to respond to your list of “things I don’t know”…

  • MetaCPAN is an alternative interface to CPAN. It uses the exact same underlying data as search.cpan.org, but I think it looks nicer, and it provides a lot of additional information in a much more accessible fashion. Particularly useful are seeing how many people have ‘++’-ed a module (which is akin to starring a Github repo or faving a tweet), which gives you some idea about the consensus around module quality, which can be useful when you’re trying to decide between two libraries that do the same thing. MetaCPAN also links to bug trackers, code repos, and shows upstream and downstream dependencies for a module. It also happens to be where the ‘!cpan’ DuckDuckGo search shortcut goes to, which is what I use for searching CPAN these days.
  • I recommended Cpanel::JSON::XS as an alternative to JSON::XS. I did this before I realized you weren’t using JSON::XS directly yourself. Given that you’re only getting it as a dependency of JSON::Util, you don’t have a lot of alternatives. I am sort of interested in what you’re using out of JSON::Util, because, to me, the latter looks like a very thin wrapper around JSON::XS and IO::All — basically, almost exactly the sort of thing you ranted about earlier, that would be trivial to do yourself.
  • The module is called ‘Cpanel::JSON::XS’ because it is a fork of ‘JSON::XS’ that was created by somebody working for Cpanel after they decided that the module was too important for their business for them to rely on the asshole maintainer of JSON::XS. It was something that was originally only intended for use inside Cpanel (hence the name), but ended up getting released to the public because other people were considering a public fork (because, again, asshole maintainer). So, basically, the name is an unfortunate accident of history.
  • All JSON::XS does is serialize Perl data structures into JSON, and deserialize JSON back into Perl data structures. That’s it. The ‘XS’ in the name is because it’s written using something called ‘XS’, which is a way of calling C code from Perl. What that really means is, it’s fast — much faster than JSON::PP (where ‘PP’ stands for ‘pure Perl’, which means you can build it without a C compiler, because it’s just Perl).
  • All the JSON::* modules have exactly the same API (and there’s even a module that will use the fast XS one if possible and the slow PP one if not, or error out if neither of them are available), so you could update JSON::Util to use Cpanel::JSON::XS and everything would — well, should — still work just fine. That said, as I said above, I bet you could trivially replace JSON::Util with a couple of your own lines of code that use Cpanel::JSON::XS. Alternatively, I found the JSON::Util Github repo, so you could send in a patch switching that over to a different JSON library. (I may just do that myself…) (Update: I did it myself.)

It may surprise you that I agree with you about treating CPAN modules as black boxes. I pretty much treat them as black boxes too — with one major difference, which is that when something in one of them breaks, then I open up the box and try to figure out what went wrong, and either send in a patch or at least a bug report. And, yes, I do know quite a lot of these people, to one degree or another, and I assure you: they’re not above your pay grade. They are, generally, just like you: people who are trying to solve problems. Some of them are raging assholes, but most of them are reasonably nice and do appreciate hearing about things that are broken or poorly documented or whatever — just like you appreciate hearing about those things from your users.

My reasons for doing this have less to do with knowing the authors of the code, and more out of a sense of obligation. Someone (often, many someones) have given me the gift of their labor, in the form of code I don’t have to write or maintain. Letting them know when it doesn’t work, and trying to fix it if I can, or at least wrap the failure up in the form of a bug report or maybe a failing automated test case, seems like the least I can do to return the favor.

Finally, as far as HTTP::FuckingSimple, you may want to investigate HTTP::Tiny or even HTTP::Thin::UserAgent (although mind the alpha API warnings on that last one).

Hopefully this was at least somewhat helpful for you. Sorry it took me so long to respond.

Well, I made it. (I assume if you’re reading this, you’re probably also interested enough to be following along with the Twitter updates, so this isn’t a huge surprise…) I figured I’d re-cap what happened on the day of the surgery, from my first-hand perspective.

Last Wednesday, as scheduled, we got to the hospital around 10:45am. We checked in with registration, and got handed something that looked very much like the buzzer you get when waiting for a table at a chain restaurant. After a ten-minute eternity of sitting around, the intake nurse came and took Laura and I back. I was given a hospital gown and a pair of ‘safety socks’ to change into, and a bag to throw everything else into. I got changed, and pretty quickly after that, we had a succession of different nurses come through the room, each doing their own specialized task. The first one was responsible for a task I had not anticipated: shaving the right side of my body.

Shoulders to hips, they shaved my right side. I didn't think I was all that hairy ... until I saw what was left behind!

The other nurses had more stereotypical responsibilities: asking various questions, placing a couple of IVs in my left hand and lower arm, and so on. Once that was done, we went back to waiting. After a bit, they let my parents come back to the prep room too, and then … there were twice as many people sitting around waiting.

At this point, we had what could have been a total catastrophe: the bus depot called to tell us Ms12’s bus was waiting at our house and where was somebody to get her off the bus? It was her last day of school, and somehow got converted into a half-day without anybody giving us any sort of notification at all. Fortunately, since my parents were there, they were able to rush home to take care of her.

We eventually found out that previous surgeries were taking a little longer than expected, so we were waiting both for an available operating room and for my urologist and anesthesiologist to finish up their first surgeries of the day. Nothing quite makes time slow down like waiting to go under the knife, lemme tell you.

My urologist came by, and marked my right side with a Sharpie. I joked with her that I had thought about marking my left side with a big red ‘NO’ or an ‘X’, but then I started to worry that a big red ‘X’ would be the symbol they would use for the correct site. A little bit after she was on her way, Dr. Chen, the anesthesiologist stopped by and we had a quick chat. And not too long after that, we were off to the races.

I remember being wheeled into the operating room, and I distinctly remember the sense of surprise I had at how the room felt. I was expecting something sterile and vaguely high tech-ish. Instead, it felt more like the very clean woodshop of somebody who is extremely serious about their tools and craft. (I liked the actual room better than the one I expected to be in.) I also remember that I chatted with the people in the room a little. I remember sitting up so that they could place an epidural needle in my spine … and that’s about where things start to get fuzzy.

The next thing I remember is waking up in the recovery room. Sadly, my memory doesn’t include any particularly silly things I said while waking up, and none of the recovery room staff could remember specifics of what I had said. I laid in the recovery bay for a while, mostly out of it, and then the staff began the prep work to move me to my actual hospital room. At that point, I said, “I’m either getting hungry, or I’m nauseous.” - followed, a few minutes later, by, “Nope, I’m for sure nauseous.” That slowed the move down a bit, as they pumped me full of some anti-nausea drugs and figured out that my blood pressure was super low. Eventually that recovered, and I got wheeled over to my room.

Surprisingly, I got a private room - I hadn’t really thought about this at all in advance, but I’d been assuming I’d be sharing a room with somebody. It wasn’t anything I was going to complain about, that’s for sure. I was happy to be able to see Laura again. I think I slept a little more at that point. I was pretty determined to get out of bed the same day, so after Dr. Ganeshappa came by and okayed it, I gave it a shot. I got as far as sitting up, but then had another wave of light-headedness and nausea, and decided that maybe the next day was good enough for getting up. Sleep happened soon after that.

Five not-terribly-exciting days of hospital stay followed. I moved from only ice chips, to clear liquids, to a full diet. I worked up to progressively longer and longer walks. I took lots of naps, was given lots of drugs, and generally tried to be good natured about the whole thing, even when somebody was waking me up at 0300 to stick a needle in me.

We got the pathology report while I was still in the hospital, and I’m happy to say that this should be the end of this particular adventure: the mass they removed was a cancerous tumor, but it had not yet begun to spread. Having it removed was the only necessary treatment. I will be having yearly imaging follow-ups of the abdomen for the rest of my life, just to confirm something else hasn’t sprung up, but that’s a pretty small burden to bear.

I’ve been home for a little bit more than 48 hours now. Trying to settle back into a routine, hampered by the limitations of what my body still can’t do. Not quite stir-crazy yet, but I am getting to the point where I’m wishing I could push the “recovery montage” button and compress the next several weeks down into a 45 second burst of still shots and a driven soundtrack.

Please feel free to watch my Fitbit step count and yell at me on Twitter or Facebook or email if you don’t see a nice gradual increase in total steps there from day to day. I’ve got one more post-op follow-up appointment on Friday, to get the staples removed from the incision, and after that, I’m hoping the pace of the “back to normal” movement around here just continues to increase and we settle into a nice, quiet, drama-free summer.

Thanks again to everybody that helped out with this — Laura, my parents for coming out to help, all the doctors and nurses and other hospital staff, and last-but-not-least, all y’all, my Internet pals. Being able to share things and chat with people on Twitter and Facebook from my hospital bed was really an amazing thing, I think without that outlet, that stage of the process would have seemed so much worse. <3

The past few weeks have, most of the time, felt like the initial part of a rollercoaster ride — a rollercoaster you’ve never ridden before. Just sitting there, strapped down, no real control or ability to alter what’s going to happen, not really sure what is going to happen, just waiting, anticipating, as the car makes that long slow climb up to the top of the first drop.

Not really my favorite part of the ride.

Fortunately(?), that’s about over. After I post this, I’m going to go take my shower with the special anti-bacterial soap. I’m going to pack my overnight bag for the hospital. And then I’m going to fidget some more until it’s finally time to leave.

I report to the hospital at 10:45am PT. Last I heard, the operating room was booked from noon until 4pm (and here’s hoping they won’t use it for that whole time!) Not sure what time I might be expected to wake back up, but I would bet it’ll probably be early evening, Pacific Time. (If you’re curious about those times in your time zone, see this link which my crazy internet friends put together.)

Not sure when I’ll be back on the air, but I’m going to pass my phone over to Laura so she can tweet out any updates from my account. So watch @genehack for those updates, or maybe even her account, @mrsgenehack if you want to make sure you don’t miss anything.

I do want to thank everybody that was at YAPC::NA this week for all the support and distraction provided by interacting over Twitter and IRC. I didn’t end up watching that many talks but I’m looking forward to you all providing many distractions during my recovery process.

Special thanks to those of you that bought shirts, and extra special thanks to Stevan Little, Sawyer X, Mark Prather, and Chris “Bosley” Prather for organizing that whole effort.

Okay, just about at the top of the hill, so I should probably finish getting ready now.

(Put your hands up on the way down, that’s more fun!)

Today, I learned that my surgery has been scheduled for next Wednesday (the 10th). Upon learning this, I briefly considered the possibility of making it down to SLC for the first day of YAPC, and then dashing back home for the surgery — but that, with due consideration, seems like not the wisest course of action. So, YAPC::NA::2015 is definitely a miss for me.

However, since OSCON isn’t until later in July, I expect I’ll be able to make it up to Portland for a little hanging out while that’s going on, assuming all the surgical stuff and subsequent recovery goes as expected, so if you’re going to be in town for that, hit me up and we can grab a beer or whatever.

In other good news: the other odd-looking spots that were seen in my kidneys on the CAT scan have gone away in the MRI. They were probably somehow related to the bladder infection that originally led to the discovery of all these problems. This is good news because it confirms that just taking out the part of the kidney containing the tumor is the best course of action.

I just want to say, thanks again to everybody that has offered help and support while all of this has unfolded. It is really, deeply appreciated. I’m lucky to have some thoughtful friends in my life. 8^) <3