Man Cave to Nursery

There’s really only one space available in the Nuthaus for Rooby to hang out. It’s the room that used to be my office.

So we’ve spent the past couple of weekends finding other places for my “absolutely vital” stuff. Most of which has been sitting around in boxes for the past few years anyway.

You might possibly be surprised (if you didn’t know me) to learn that at least half of it was garbage. Or, at least, prime candidates for recycling. Which still wound up in the land fill…Austin’s recycling schedule just does not work well with this sort of activity.

I found some interesting artifacts. It looks like Grandma filed all of the letters to her by family tree. And I seem to have inherited everything from Mom. Maybe it was supposed to just be the letters that were about me, but I’m willing to bet that no one bothered to trim them down by subject.

I was more than a little amazed at some of the stuff my mom had packed away for me. There were samples of our 4th grade newspaper. A box of 10-d nails. A Christmas tree ornament shaped like a train engine stamped “James”. A package of glue sticks. A knitted baby mitten.

This room feels empty to me now. I think it’s screaming for Rooby’s stuff. I wanted to start moving that in.

But Laura wants to wait until I really have it empty, and I can understand that. We’re planning to move the rest of my stuff out next weekend, but now I’m starting to feel the pressure too.

Then again…I tend to get really fidgety when my computer’s turned off. So maybe we’ll wait.

Dead Carrot Barrel

A year(-ish) ago, we got married and moved into the Nuthaus (me first).

I set up a few SIPs to try to grow a few tomatoes and peppers. And a bucket to try to grow some carrots.

We did manage to get a few tomatoes and peppers before the Texas heat really kicked in last year. I think we were all looking forward to trying again this year, but my day job just left me too brain-dead on the weekends to even think about it.

The carrots were weird. They sort of arrived this spring, in little baby batches.

Oh, and we also picked up a hibiscus to leave in a pot to cover up a spot on the porch where the tile is falling apart.

We got absolutely slammed with a torrential rainstorm 2 nights ago. The lightning was popping around the way it does on a normal tornado-season weekend in Stillwater. The rain…

I’ve read about rain cascading down in sheets since I was a little kid. This was the second time I’ve seen it in my life. Daphne sat up with me to watch until around 1 am.

She asked about pulling the hibiscus and carrot barrels out of the downpour. I felt sorry for the hibiscus, but the carrots were all dead anyway. So I saved one, but not the other.

When I headed to work yesterday morning, Laura pointed out that the pot we’d set up for the carrots had a blow-out. It was some stupid-ugly container left over from my bachelor days, so I told her to just throw it out and forget about it.

She tried to save the soil that was in it.

I feel like such an ass.

I get attached to some things. They help me remember events that I simply would not without them. I’ve tried to explain this to her to help explain why I hoard things. It’s why she’s promised to never throw away anything without my permission.

She carried this over to a plastic planter full of dirt. I feel like I’ve gone over the top in trying to protect the remnants of my old life (which I know is gone) when she’s this worried about protecting something that’s this worthless.

I can only imagine how painful and frustrating it was for her to try to drag this out of sight, with little bits and pieces of cheap plastic snapping off in her hands every step of the way.

Laura did this for me, on the off-chance that I might care about some of this broken useless crap. I can imagine how frustrating it must have been, and I really wish I’d been there to shrug and let her know that it just isn’t worth wasting our time over dirt.

But I’m humbled and honored (and a little scared) that she put that much effort into something that she knew was useless because she thought it might possibly matter to me.

 

Agents, tools.namespace, and core.async

TL;DR: don’t mix (shutdown-agents) with clojure.tools.namespace.

I just spent most of a frustrating weekend dealing with a really strange behavior in clojure.

I’ve been a huge fan of Stuart Sierra’s Workflow, pretty much since the day I discovered it. I tend to make a bunch of related changes all at once without stopping to verify each one individually. Which, really, probably cuts down on my overall productivity when I’m hacking in clojure.

I admit that I still have a lot of bad habits left over from inferior languages. It would have gotten beat out of me very quickly, if I hadn’t discovered this workflow about the same time that I was able to justify spending significant time on clojure projects.

I just went through the process of changing a symbol to a magic string in about 8 different places. I realize that I should have changed it into a function call instead, so I’ll never have to do this again (programmers who work with me get irritated about how far I’ll take this sort of refactoring), but I was in hacker mode anyway.

I’m intellectually aware that I should have made the change in one place, evaled it, tested it, and rinse/repeat. Except that none of the changes made sense individually. It was really an all-or-none thing. Which is at least a hint of an architectural smell, but…hacker mode. It was quick and painless enough to just run (reset) and then verify that the problem was solved. (For anyone who’s curious: keywords that are stored in monger automatically get converted to strings. Querying for those keywords later is going to fail. Yes, I’m very new to MongoDB).

Well, it would have been quick and painless. Except that my clojure session kept dying on the command after running a (reset). The error was a helpful “SocketException The transport’s socket appears to have lost its connection to the nREPL server”.

Actually, I suspect the server was dying at the end of the reset. But the client didn’t realize it until I tried to run the next command. And it seems like the problem usually happened after the second reset.

Yeah, weird. And horribly painful. I didn’t have a clue where to point the blame. tools.namespace has always seemed rock-solid to me.

I’m working on a brand-new (to me) linux distro that has been incredibly frustrating and painful because nothing seems to work properly. I was half-way inclined to blame it, but I was having a similar problem on my Ubuntu box. (Actually, the reason I switched to the weird server in the first place was because of this: I thought it might have something to do with the monger client because I didn’t have a database to connect it to).

I spent the weekend trying to work around this. I was very conscientious about eval’ing changes right after I made them. Until it got painful enough to really dig in and isolate the issue.

When I got rid of the namespace that uses core.async, the problem went away (along with pretty much all my functionality). For a while, I really believed that was the issue: I just upgraded to a brand-spanking-new version of an alpha-quality library, after all. Of course, it’s really only alpha-quality in the world of heavy-hitting clojure developers.

Long story made short: somewhere along the line, when I was setting up all the basics, I got the impression that calling (shutdown-agents) would be a good idea when things were exiting. Something about the program hanging for a minute or so waiting for work to time out. I mistakenly thought that meant it would be a good idea to do this in my (stop!) code.

That seems to have been the problem. In retrospect, I think I vaguely remember that the whole Workflow Reloaded thing uses an agent for the restart. And I can’t find any documentation about actually restarting this thread pool after you’ve killed it (I haven’t had any real reason to ever use an agent in anger, so this is really my first exposure to any of the associated gotchas).

I can’t say for sure that this was my pain point. But I haven’t had any issues since I commented that line out. So it seemed worth writing down to hopefully help me remember to never do that again.