Studio711.com – Ben Martens

Computer Upgrades

It dawned on me recently that my main home desktop is coming up on seven years old. SEVEN YEARS. I used to be happy if I got four years out of a computer and here I am at 7 years and I can’t come up with any reason why I’d need to upgrade. I took a look at CPU benchmarks and stuff in my price range would only be a ~30% increase of what I have now. Increases in RAM speed and major increases in SSD technology would definitely give me an improvement but I can’t say that I’d notice it much with my use case. I love getting new computer gear, but I think it’s going to be a while before that happens again.

This seems like a good excuse to update my computer ownership history though. The ones in italics are still in use.

  • 1998 – Gateway Pentium 2 350 with a 10GB hard drive and a tape backup.
  • 2002 – Dell P4 2.4GHz with 512MB RAM and an 80GB hard drive. $900
  • 2006 – Dell Core 2 Duo E6600 2.4GHz with 2GB RAM and a 250GB hard drive. $1200
  • 2010 – Core i7 860 2.8GHz quad core with 8 GB RAM. $1000 (Replaced motherboard and CPU ins 2014 for $260)
  • 2011 – Lenovo Thinkpad Edge $700
  • 2012 – Core i7 3770 3.4GHz quad core with 16GB RAM. $1400.
  • 2013 – HP Pavilion Touchsmart 15-b154nr AMD A8-4555M quad core 1.6GHZ and 6 GB of RAM. $550
  • 2015 – Dell XPS 13. $800
  • 2016 – Intel Core i3-6100 CPU with 8GB RAM. $360

I suspect that the next thing we’ll replace is the laptop only because that gets more abuse than the desktop machines. I’ve been very happy with the XPS 13 though. It has held up much longer than our previous laptops and isn’t showing any signs of impending doom.

Snow Storm Recap

We survived Snowmaggedon 2019! February was the third coldest February on record in Seattle and all that cold weather meant that our normally wet weather ended up being snow. The snow kept coming and coming over many days and schools were closed for the majority of two straight weeks. The official total ended up being around 20″ which puts it just behind the 2008 storm and almost double the 2012 storm.

Thankfully it didn’t have a huge effect on us other than some canceled school days. We had plenty of food in the house and we were able to restock easily by walking down to Safeway. I kept waiting for the power to go out towards the end of the storm cycle when we had a really heavy snow, but it never went out for more than a few seconds. I guess I’ll have to keep waiting to use my fancy transfer switch that lets me plug the generator right into the electrical panel.

Elijah LOVED all the snow. He spent a ton of time outside with Tyla sledding down the street, building forts in the snow piles and playing with all the neighbor kids. A huge thanks goes out to Tyla for all the time she spent playing with him!

Analyzing Water Data in Azure Data Explorer

One of my favorite systems at work officially launched a couple weeks ago as Azure Data Explorer (internally called Kusto). I’ve been doing some blogging for their team on their Tech Community site. You can see all my posts on my profile page. This post will use Azure Data Explorer too but I thought it fit better on this blog.

A year or two ago, our local water company replaced all of the meters with digital, cellular meters. I immediately asked if that meant we’d get access to more data and they said it was coming in the future. The future is now! If you happen to live in Woodinville, you can get connected with these instructions.

The site is nice and lets you see charts, but by now you probably know that I love collecting data about random things so I immediately tried to figure out how to download the raw data. The only download directly supported form their site is the bi-monthly usage from the bills, but from the charts, I could see that hourly data was available somewhere. A little spelunking in the Chrome dev tools revealed the right REST endpoint to call to get a big JSON array full of the water usage for every hour in the last ~11 months.

I pulled that into Azure Data Explorer and started querying to see what I could learn. This first chart shows the median water usage by three hour chunks of the day. Tyla and I usually both shower in the morning so it makes sense that 6-9am has the heaviest usage.

WaterUsage
| summarize 
    sum(Gallons)
    by Hour=bin(hourofday(Timestamp), 3), bin(Timestamp, 1d)
| summarize percentile(sum_Gallons, 50) by Hour
| render columnchart  with (title = 'Median Water Usage by 3 Hour Bin', legend = hidden)

I feel like there’s probably a better way to do write the next query, but this works. It’s the cumulative usage throughout each month. The four lines at the top of the chart are the summer months when I’m using the irrigation in the yard. The lines that drop off at the end of the month are because I ran the x axis all the way from 1 to 31 for every month so months don’t have enough data, but it still conveys the general idea. It’s interesting how similar all the non-watering months are.

union
(
    WaterUsage
    | summarize Gallons=sum(Gallons) by bin(Timestamp, 1d)
    | extend Month=monthofyear(Timestamp), Day = dayofmonth(Timestamp)
),
(
    // Original data had some missing rows
    datatable(Timestamp:datetime, Gallons:long, Month:long, Day:long)
    [
        datetime(2018-11-26T00:00:00.0000000Z), 0, 11, 26, 
        datetime(2018-11-27T00:00:00.0000000Z), 0, 11, 27, 
    ]
)
| order by Timestamp asc
| serialize MonthlyWater=row_cumsum(Gallons, Month != prev(Month))
| project Month, Day, MonthlyWater
| make-series sum(MonthlyWater) on Day from 1 to 32 step 1 by Month
| render linechart with  (ycolumns = sum_MonthlyWater, series = Day, Month, legend=hidden, title='Cumulative Gallons By Month')

The data is in 10 gallon increments so it’s not super precise but it’s a LOT better than the two month resolution I had previously. I’m excited to play around with this data and see if we can start decreasing our usage.

Along these same lines, I heard that the local power company is starting to install power meters with Zigbee connectivity so there’s a chance that I’ll be able to start getting more insight into my power consumption in a similar fashion…

Best Of YouTube

First up is Steve Ramsey with a bunch of woodworking tips. I love watching woodworking and making videos on YouTube, but it’s really easy to fall in to some traps if you only learn that way. Steve gets real and gives 18 good tips for woodworking. He labels the video as tips for beginners but I think that any level of experience would benefit, even if it’s as a reminder.

Over in Toledo, David Picciuto enjoys going to the antique mall and rehabilitating old things. His xylophone video is a great example and the soundtrack he made using the xylophone is one of my favorite parts.

And why not stay with David to show his “bowl without a lathe” video. Tyla has been asking me to make a bowl for a long time and this might be a way I could pull it off. I’m not sure it’s exactly what she’s looking for but I’m interested in trying this.

Big Decisions

There are points in my life where I’m faced with big decisions even though I feel largely unqualified to make the right choice. Two of those came up recently.

The first was “Where should we send Elijah to school?” Proximity to school through grade 8 was a big reason why we bought this house. It would be so nice to just walk out the door and be at school instead of dealing with traffic and commute time. But on the flip side, we’ve really been enjoying our experience at our church preschool and kindergarten. Tyla and I both attended WELS grade schools and we have reaped the benefits both spiritually and intellectually. There are some great WELS schools in the area but they are too far away to make them work.

At the marriage retreat last fall, we talked to a Pastor from our area who mentioned Zion Lutheran School up in Lake Stevens. It’s an LCMS school and after visiting it, we felt like God was nudging us in that direction. It will mean a ~30 minute commute one way to school, but it’s doable and we’re going to give it a shot. We don’t love it as much as we’ve loved the WELS schools and we’ll need to pay closer attention to the doctrine he’s taught, but we’re going to give it a go.

The second big issue arose after I popped my head up into the attic for my annual (well… less than that because I’m lazy) check of the crawl space and attic. I discovered obvious mold. I stared at it for quite a while before acknowledging that there was no way to ignore this and hope it went away. Thankfully, we found a contractor who has been great to work with and the remediation plan is well underway. We caught it plenty early so that no structural damage was done and there were no health concerns. Once we finish the remediation plan, there will be a lifetime warranty that gets transferred to future owners so I feel pretty good about the situation.

During the decision making processes, there was no avoiding the fact that both choices could have dramatic and long-reaching effects on our future. The school one was obviously more important, but making the wrong choice with the house could easily cost us tens of thousands of dollars in the short term or when we sell the house. Through it all, my prayer was always “Lord, you know the path I should take. I feel like you’re leading me to this choice. Please make it obvious if I’m supposed to choose something different.” God has it all planned out for us and it can feel like a shock when he reveals some of the bumps to us, but there’s comfort in knowing that he’s going to make it all work out for the best. (Romans 8:28, Jeremiah 29:11)

Cord Cutting the Super Bowl

We canceled cable last summer and for the most part, our antenna has filled our needs. We get great reception on FOX, but not great on NBC. CBS and ABC are somewhere in the middle. Since we host a party every year, reception of the game is kind of important.

CBS had been working fine in the days leading up to the game so I wasn’t too concerned, but then it started snowing (for the first time this year) a couple hours before the game. Since we’re kind of on the fringe with our reception, the snow was just enough to start messing with the signal a little more. If it was just me, I wouldn’t have worried about it, but it’s not fun having 20 people watching a glitchy signal.

Thankfully CBS was streaming the game for free and they even supported Chromecast so I used that on the projector. Our experience there was generally good but it probably buffered 10 times and once I had to restart the stream completely. Downstairs I needed it on the Roku so I signed up for a free trial of CBS All Access. (I used a privacy.com temporary credit card number so that I don’t have to worry about forgetting to cancel my subscription!) I didn’t watch that TV but the people downstairs didn’t ever see it buffer and didn’t realize that it wasn’t a “normal” TV feed.

So it was definitely not as easy as traditional cable, but it was pretty good. I think next time I’d use my Xbox to stream the game through a paid service (like CBS All Access) instead of using the free stream from the website and I suspect that would have gotten rid of the few problems that we did have.

Leavenworth Condo

Last weekend, Don kindly let us use some of his timeshare credits and we all went over to Leavenworth for the weekend. Thankfully there wasn’t any new snow in the pass so it made the drive relatively quick and easy.

It was a quick trip since we arrived Friday evening and left Sunday morning. Saturday was our big day and we got things started with sledding. There was a great U-shaped hill right behind the condos. Even those the snow was hardpacked and icy in spots, we were able to find a gentle slope that was just right for Elijah. I figured he’d be bored after a couple runs but he must have made 20 or 30 trips up that hill by himself to come ripping down.

Later in the afternoon we walked around the shops and then we had dinner at Andreas Keller Restaurant. I’ve never been to German so I don’t know how authentic it was, but it sure tasted good! Watch out for the $10 draft beers though. That was a surprise when we got the bill.

Elijah really wanted to go sledding again so we did a little more on Sunday. Unfortunately the run had changed a bit overnight and it shot him off the side head first into a park bench. OUCH. Tyla and I were pretty nervous about a concussion but he showed now signs for the rest of the day and even got back on his sled and tried it again. Note to self: teach my son how to bail out.

It’s always a lot of work traveling with a family, but it was a nice weekend. Thank you Don for sharing your credits with us!

Ecobee Thermostat Plate

After making a simple zero clearance insert with my new Shapeoko 3 XXL, I wanted to try something else fairly simple but slightly more challenging. Ever since I installed our Ecobee 3, I’ve wanted to replace the white plastic plate that goes around the thermostat. But building something that has a nice shape and fits well would be a challenge so I dropped it in my “if I ever get a CNC” project list.

To get started, I grabbed a photo of my model online (there are a lot of slight variations through the years!) and traced around the outside in Inkscape. I used some cheap 1/4″ MDF as test pieces on the Shapeoko and after 4 attempts with tweaks in between, I had a good fit around the thermostat.

Then I added a lot more complexity. Instead of just being cut out, that original hole that I designed became a pocket in the material. I added in a hole all the way through the back for the wires and two more for the mounting screws to pass through. That all went pretty smoothly but the tricky part was making room for the vent on the bottom of the thermostat to exhaust air but not making the vent bigger than it needed to be. I’m still not convinced I have that designed as well as I could, but it got to the “good enough” point after 4 attempts in 3/4″ pine.

For the final cut, I milled up some walnut and put it on the CNC. The first attempt went ok but ended up failing near the end. Despite slowing down the program to account for hardwood, I think I was still a little too aggressive and I might have had the router carriage adjusted a little too loosely. The second attempt went slower (about 35 minutes instead of 20 minutes in pine) but it came out perfectly. I finished up with some sanding and routed a chamfer around the outside using the router table. I finished it with a coat of boiled linseed oil and mounted it on the wall.

This project really made me feel the value of the CNC. It was awesome to tweak my design by fractions of an inch and have a completely new part in under half an hour. It’s a lot easier to experiment than if I was trying to do this all carefully by hand.

Fun fact: about 80% of the way through this project, I was installing a test plate and when I put the thermostat on, it didn’t turn on. Of course this was the last thing I was doing before going to bed. After some panic and opening up service panels on my furnace, I found a fuse that had blown. The next morning, I called my favorite HVAC expert, and verified that replacing the fuse would work. After a quick trip to the store and $2, I was back in action, but boy was that a cold and stressful night! Always turn off your equipment before working on it!

Navy Clock

When Tyla’s dad was in the Navy, he served on the USS Hector fixing clocks. He ended up with one of the clocks from the ship and for his birthday this year, the kids got it fixed up and running again. It sat on a counter in their house until I snagged it and mounted it for his Christmas gift.

I was able to make it with some scrap walnut and maple, but just barely. After I had it all done I realized that I should include a place to hold the winding key. It was kind of hard to work that into the design so I carved out a spot on the top where it can rest. I took the piece of maple to work to use the laser engraver there. The clock has two keyhole mounts routed into the back so hopefully that will be enough to hold the heavy clock onto the wall.

Merry Christmas, Don!

Garage Storage

My woodshop is the third bay of our garage so I basically have one long wall to work with. It has always been a catch-all spot where I storage random sheets of plywood and generally dream of what might go there some day. It was time to stop dreaming and make use of it. I find that in my workshop I repeatedly get stuck in indecision. It’s silly because I will be making it all myself and I can just change it later if I decide I want to. Pick a path and go for it!

I saved some money by not building actual individual cabinets but rather each cabinet shares a wall with the one next to it. It was going to be a LOT of plywood, so I started by drawing the whole thing out in Sketchup, figuring out what pieces I’d need to cut and then I used a free cut list generator to help me optimize my plywood usage.

Part of the plan was to make a more permanent place for my miter saw to sit. The cart that I built in 2015 has been working great, but I’m tired of having it be in the way. With this new plan, the miter saw sits lower than the other cabinets so that wood rests flat across the saw onto the top of the cabinets. At some point I’ll put some T-track into the top of the cabinets to add a stop block with a tape measure for quick, accurate cuts on the miter saw. Normally you see these built with outfeed support on both sides, but I don’t have enough room for that. And while I’d prefer to have the outfeed support on the left side, this made more sense. The garage door is on the left so if I have to cut a really long piece, I can open up the door and get some extra room.

I used 3/4″ pine plywood (~$35/sheet at Home Depot). I’ve used that for most of my shop projects and I’m always impressed at how nice it is for the price. The tops of the cabinets got two sheets of the plywood. It adds a bit of cost but it really strengthens the top and makes the cabinets feel more solid.

The first step was cutting each of the vertical pieces. These were basically just rectangles with a notch cut out for a toe kick, but there were two complications. First of all, I had to cut out a notch for the foundation wall. Secondly, the garage floor isn’t level. I wanted to spend a little extra time to make the top work surface be level to avoid hassle with the drawers later. So each of the vertical pieces was going to be a slightly different height. Instead of trying to get that perfect, I left each one about an inch short. Then when it came time to mount them in place, I would hold them at the right height, slide a piece of scrap plywood up next to the bottom and screw the scrap into the vertical divider. So the cabinets are screwed into the studs and then rest on the floor.

I don’t know if I’d do it this way again or not, but to space out the vertical dividers, I cut a bunch of pieces the with of the cabinet and pocket holed them into the dividers. On the plus side, it made it easy to assemble each section one by one and keep them all evenly spaced, but on the down side, it was a lot of screwing and cutting.

You’ll see that not every opening is the same width. I went with 3″ multiples since that’s what normal cabinets use, but I tried to add in some variety for storing different things.

After adding the top (YAY! Finally a place to put some tools!), I ripped down some 2x4s to make a face frame. Hiding the plywood edges looks nice but it also helped me make perfectly rectangular openings which pays dividends down the road when it’s time for drawers. The laser level was instrumental in getting the top of the cabinets level and also at this point in the process when I was making the dividers perfectly vertical and the horizontal face frames perfectly flat.

Now it was time to make the drawers. A LOT of drawers. 20 to be exact. Again, I probably could have gone an easier route, but I chose to assemble the drawers by using dadoes. This gives a bit of additional glue surface and helps to keep things square during assembly. Unfortunately my little shop vac can’t handle the dust collection duties for dadoes so it repeatedly slogged up the hose inside my table saw. I finally just gave up on dust collection with the dadoes, disconnected everything, and cleaned up afterwards.

Most of the drawer sizes were pretty standard, but there were two special ones. One of them is full height and my plan is to use that for scrap hardwood storage. I have a bunch of smallish pieces and I had previously been standing them up in a trash can. The other one holds my planer. That planer is pretty heavy so I ended up using a double set of drawer slides which seems to be working well so far. If it starts to sag I can always kick a block under the end of the extended drawer when I’m using the planer. I don’t know how well both of these special drawers will work in the long run, but it’s easy enough to take them out and add standard drawers later.

Speaking of drawer slides, that part of the project can really break the bank. I have bought some very cheap slides from Amazon in the past and had good success so I went that route again. This time I got Promark full extension slides along with some mounting screws.

After the above photo, I finished off the last six drawers and now it’s fully functional. I moved on to some other projects, but soon I will add drawer fronts. Those will help to hide the uneven spacing of the actual drawers and bring them up flush with the face frames. I’m planning to design and cut some drawer pulls on my new CNC machine as well.

This was a huge project and it was a pain breaking down 13 sheets of plywood, but man I’m loving it! I have a huge new work surface and so much storage. Building drawers takes a lot of extra time and money, but I find that they are a lot better than deep shelves because you can actually use the whole depth instead of forgetting what’s behind the first row of stuff.

Elijah came in at the end of this post and wanted to help so I’ll close out with his thoughts. “I just really like those cabinets. I love them. I just really love those cabinets. They’re so great. They’re just so great. That’s all.”