Basement Storage

May 15th, 2012

It’s been half a year since I posted, but I have three excuses: new house, new job, and new baby in the span of three months. It’s been busy to say the least!

For now I’ll start with the house: we moved out to the suburbs/country outside Madison to get some more space to grow. It’s a 96-year old farmhouse that is in very good shape for its age but also has a lot of options for projects. Hence a new “Home Improvement” category for the blog.

One of my first projects is building some open shelving for a storage room in our basement. We don’t have very much shelving for large items, so we have some stuff lying around in the basement and garage that sorely needs a home. We’re hoping this room can be a great spot to store all kinds of larger household supplies.

Here’s what the room looked like when we moved in: 1970’s cabinets and cheap carpet. It was an incredibly inefficient use of space that was ok for lots of little items, but had zero ability to store anything the size of a rubbermaid container or larger.

Original attempt at 'storage'

So, we started off by taking out all of those original cabinets and pulling up the carpet. Then I painted the walls a gray-blue (for some reason, just about every new paint we pick out at the store ends up being this gray-blue color).

Same angle, with all those cabinets and carpet ripped out, and the walls painted

Now I’m in the process of building the shelf frames. We need 8 in total: two for the far short wall, and two stacks of three each for the long wall.

Frame building in progress

I’m using a circular saw with a new carbide-tipped blade, a great drill my parents got me, and various other tools. I’m enjoying the irony coincidence of each tool being a different bright color, like a set of tinker toys (the circular saw blade, not really visible above, is an obnoxious red). The materials at this point are 2x4s and 3″ decking screws – plywood and heavy-duty bolts to come later.

Here are a couple of the mistakes I’ve made so far:

Drill bit snapped off on top (the small hole), and the bottom screw split the board

I had intended to drill holes before putting in the screws, as you can see by the snapped-off drill bit on top. But then since it snapped off, I figured maybe I could get away without it, and the bottom screw there is the result. I think it is still more or less strong enough to be usable in the frame, just have to make sure the shelf’s weight isn’t pulling directly against that fracture.

And here’s the finished product, the first shelf frame.

First shelf built, not too many mistakes...

If you look close you can also see the scrapes on the wall that I made while trying to fit it in place, before eventually concluding that it was just too wide. I need to leave more like a half-inch of clearance lengthwise to be able to get the shelf in the short end of the room. I’ll use this frame for the longer wall instead.

Just 7 more shelves to go! Then it’s attaching the plywood surfaces, bolting them into the wall, and bolting on the front vertical supports.

Running Goals update: Fall 2011

November 9th, 2011

Pace graph for my longest-ever run

This fall I bumped up my max distance from about 4 miles (where I was last year) to over 5.5! I didn’t quite hit my goal of a sub-25-minute 5k, but I did get down to 25:28 which beat my previous best by about fifty seconds.

Overall I feel like I had a fairly successful running season, with slow and steady improvement throughout the year. My trick for longer runs has been listening to hour-long podcasts to keep my mind off the monotony. That got me over the hump into the 5+ mile range, and I feel like I’m now limited mostly by calf and knee soreness at the end of the long run.

Switching to forefoot striking earlier in the summer was a big help too, since I ran into basically no foot pain all year. I highly recommend trying it, even if you want to use normal running shoes (I’m not running in any special shoes, although my current shoes do have nice padding under the ball).

GitHub profile

November 2nd, 2011

In an attempt to keep on building up my online portfolio, and to force myself to learn how to development the “right way” on OS X, I’ve created a github profile and moved my AJAX shopping list project over to git. I’m starting to get the hang of commits being local instead of remote. That feature has already come in handy to let me make commits while in an airport with no WiFi, which was cool.

You can see my profile here: Right now I have only the one repository up there, but once I get git running on Windows I might put up my WordBridge code so I have some C#/.NET stuff up too.

So far it seems like a nice idea. I like the standardized way to show off my code and projects to anyone I might want to work with/for in the future. I’m not sure if that’s the ‘right’ motivation to use a code-sharing site like this, but I don’t think it’s uncommon. It also helps to relieve a little bit of my paranoia that all of my local storage will someday be lost/destroyed, and my revision history lost.

“Slingshotting” – a review of Fresco

October 27th, 2011

A few months ago we played a new game called Fresco, which unfortunately ended up disappointing all of us. It had a nice, tight theme of painting pieces of the fresco with different colors that you buy and mix together. The calculation of whether to mix yellow, red, and blue paints together or save them as distinct colors was an interesting mechanic I don’t think I’ve seen anywhere else.

There was also a fun track where you had to balance how early your painter wakes up with how happy you are. Too many early mornings in a row would eventually make you cranky and reduce your ability to take actions.

Unfortunately, it had two serious flaws:

  1. The starting player each turn had an absolutely enormous efficiency advantage over all the other players, because he could take the “buy paint” action and buy up to three-quarters of the paint on the board, denying all the other players any way to get paint whatsoever. This meant that on average we had to wait 4 turns to get resources to do basically anything at all. All the other actions the other players could take were decidedly lame in comparison. Having 3 “off” turns for every “on” turn felt so boring that we all assumed we must have read the rules wrong, but apparently not.
  2. The player who was last in points each turn got first move on the “wake-up time” track, which meant that whoever was in last place could force their way into starting player and buy all the paint. The result was that we all “slingshotted” for the entire game – whenever anyone got ahead on the point track, they would then be unable to do anything for a few turns until the other players caught up. It seemed the only way to win was to be efficient right at the end of the game, and get fairly lucky with the timing of your turns.

The idea of a “slingshotting” mechanic is, I think, fairly distinctive among games. I can’t recall seeing such a blatant leveling effect anywhere else, even though some other games have minor boosts for players who are trailing. Many of the resource gathering board games even have the opposite “snowballing” effect where being a little bit ahead economically can give you the ability to get even further ahead, and they don’t seem to suffer for it. While I appreciate the idea of helping trailing players stay in the game and not feel eliminated, making the boost so big that it forces all the players to try to do worse in the early parts of the game is frustrating and detracted substantially from the game.

Ludum Dare 21: Not ready for primetime

August 30th, 2011

A couple weekends ago I took a shot at a game development competition, and learned that I’m not quite there yet. The theme was “Escape”; basically, make a game which can be described by that word. Given that freedom, here’s what I came up with in 48 hours (about 6 hours of actual development):

Basic working 'graphics' for a sliding puzzle escape game. The player would start in the middle.

I got a game world in place – a 2D grid on which cars can live. I got some quick car sketches done in Paint.NET. But that’s pretty much it. The obstacle that did me in was a control scheme: annoyingly painful to implement, and I couldn’t really decide on how I wanted it to work. My idea was to have a player actually walk around the game world and tell the car he was facing to go forward or reverse. I’m not sure I had a better reason for this than that I wanted to use the keyboard and not the mouse.

For next time, I think I need to have more time to devote (which really means making it a priority, more than anything else), a better plan for how to brainstorm a concept, and more practice creating assets. Being able to create quality art would have gotten me a lot farther along, I think.

Full Moon 5k

July 14th, 2011

Today I ran a night race, my second official 5k. There were 500 runners, starting in a big mob at the beach and running around Monona Bay. I started near the back of the pack and passed maybe 50-100 runners by the time 3.1 miles had gone by.

My finishing time was about 26:50, which I was pretty happy with. Not my best time but not bad either. They used RFID chips attached to everyone’s shoes, so I guess I’ll get a more precise time (and my final position) published soon.

Despite the full moon, some sections of the course were almost pitch black where there was a lot of tree cover. It was interesting trying to avoid running into anyone when we could only see a few feet!

The race entry fee netted me a very cool green shirt:

My race number, running belt, and the new shirt. I didn't wear it tonight - stuck with my orange shirt so I'd stand out more.

Including walking out to the finish station and back before and after the race, my total distance traveled was about 6.5 miles. Not bad for an evening!

New board game: Ascension expansion

July 12th, 2011

Today we were in the mood for a board game, so we headed out to the local game store to pick up a new game: the expansion to the card game Ascension. Times like this make us happy to live in a town big enough to have conveniences like this! Just a quick 15 minute drive out and back and we were ready to play.

We are fans of the original game and excited to try this one. Our fascination may be partially because we never got into Dominion that much, so we’re riding that wave now. Anyway, here are some photos of our first playthrough:

The expansion can be played on its own with 2

Set up and ready to play. Since including another copy of the board would be redundant, the expansion box doesn't have one. We have to check how many cards are supposed to go in the center row, then just set it up like a card game.

Partway through the game. I've drawn a pretty boring hand with nothing but +7 Runes, but hey - could be worse.

Victory chips and cards laid out for final scoring. It was a close one, with my Mechana Constructs making the difference.

In the last photo you can see some of the new cards. The one new mechanic that’s unexpected is “Fate”: when a card with Fate appears in the center row, each player gets a minor benefit. Some of these are good to get on your turn (return a construct from your discard pile to your hand) and some are better to have happen on the opponent’s turn (draw a card).

Other than that, the new cards are pretty much what you would expect in a first expansion: variations and explorations on the existing mechanics, with not too much brand new. The new stuff strays a little bit more into gimmicky territory, with cards like Deathseeker (3 points if you can banish it somehow) and Dartha’s Retreat (gives you 2 cards on your next turn if you somehow don’t acquire or defeat anything this turn) that are only good when combined with specific other effects.

We enjoyed the two-player version quite a bit, but I think we probably won’t go back to it all that often once we get our copy of the base game back. Some of the interactions between cards feel a little strained when every card has a twist, and there are none of the more basic “draw cards”, “gain runes”, “kill monsters” cards that the base game has in droves.

Looking forward to trying out the new 6-player version as well once we get it all put together. I think we may need to sleeve the decks to do so, though, because inexplicably the cardstock is different! These cards feel exactly like Magic: the Gathering cards, while the base game had thicker, less flexible cards that were slightly glossier. Not sure yet whether mixing these will have any adverse gameplay effects.

Soda + Keyboard

July 4th, 2011

A couple weeks ago I had a tragic accident involving a soda bottle that got too cold, and thus way too carbonated. I made the mistake of starting to open it while sitting at my computer, and it went everywhere.

The damage pattern on the keyboard was particularly interesting, because it had little correlation to which keys actually got hit with liquid. The main parts of the spill hit the kl;’ and Insert/Home/Delete/End areas, but those keys amazingly worked after being cleaned. Sadly, many others did not.

Everything circled in red was nonfunctional even after cleaning with soap + water and drying:

Keys circled in red were nonfunctional after being hit with soda

Fortunately, this keyboard is easily replaceable at at Best Buy for now. I wonder if I should buy a few extras for when it’s inevitably discontinued and more unfortunate accidents happen. Somehow, buying extras of a piece of current technology to use in the future seems wrong, though.

In case your curiosity is insatiable, it was a diet coke + vanilla mix. And it was delicious.

AJAX Shopping List

June 1st, 2011

Over the Memorial Day weekend I learned a new style of programming: Asynchronous Javascript and XML, aka “AJAX“. This is the technology used any time you perform an action on a web page that loads or saves information but doesn’t reload the entire page. It’s been around since 2005, but I’m still playing catch-up in web programming.

A great example of AJAX in action is the “comments” feature in Facebook: when you add a comment to or like someone’s status, you don’t have to wait for the entire page to reload to see your comment appear (thankfully, since the news feed does not load quickly to begin with). Instead, it just appears in the right spot after a second or two. Contrast this with most shopping cart apps (like Amazon’s), which force you to reload the entire page, ads and all, every time you change a quantity or delete an item.

I created a small AJAX app that maintains a shopping list:

My "Shopping List" app

The functionality is pretty limited: you can add items, remove items, and mark items ‘gotten’ (couldn’t for the life of me think of a better word for this state – ‘acquired’, maybe?). Also, there’s only a single list so the scalability of this app is basically zero.

I’m not posting the link here because of the scalability problem and to prevent junk from getting added by Random Internet Strangers(TM), but if you’d like to try it out let me know. We’re hoping to take it for a test run soon and see if we can get rid of one more need for paper around the house!


March 19th, 2011

Today was an interesting day for astronomers: the moon is both full and at its perigee (closest point to the Earth), creating a “supermoon”. There’s apparently a whole mythos surrounding supermoons and the natural disasters they can cause.

The story going around the news this week is that this is the closest approach of the moon since 1993, setting tonight above normal every-other-year-ish supermoons (maybe creating a super-supermoon?). I’m not sure of the exact science but supposedly tonight’s moon is 14% brighter than the average full moon.

New telescope pointing at the moon

We got out the Newtonian telescope on the deck and checked it out – very good first use. We were able to see many of the craters really well, and get a much better science of the size of some of the rock formations there. It’s a little scary to see such massive chunks taken out of the moon and imagine what would happen if the Earth had an impact that big.

Too bad we can’t really see much else from our backyard in the city!