Friday, July 29, 2016

Amazon AWS IoT button controlling my lights

When I saw the AWS IoT button for sale, I had to have one. I ordered it back in May, and it arrived at the end of July. I immediately set it up and did a proof of concept that turned on my kitchen and dining room lights. As you can see from the above video, it works! It's dog slow, as there is a very long pause as the device connects to my wifi in order to send the button press event. But it made me happy, because it is the modern equivalent to this:

In my case:

  • Press button
  • Connect to wifi
  • Send event to AWS SQS
  • AWS Lambda spins up a NodeJS instance to process the request
  • NodeJS calls a NodeJS instance running in my house, telling it to 'turn on kitchen and dining room lights' via a restful API
  • NodeJS adds that command to its queue, which resides back out in the AWS cloud
  • NodeJS pulls that command back down from cloud, processes it and sends two restful commands to my ISY-994i (lighting controller), one for each lighting scene
  • ISY-994i initiates a scene change for each room, waiting for the switches to acknowledge receipt of change command.
  • Lights turns on.

Sunday, June 12, 2016

Fiddler crabs are neat

Not much substance to this post, but I just think fiddler crabs are fun. We currently have two of them living in our living room tank, along with a pair of constantly breeding angelfish. They are always very busy (the crabs).

Google stylized this. Instagram-crab.

Pardon me. Ahhhh!

Wednesday, June 8, 2016

Alice's Castle Bed

In the winter of 2014-2015, Alice and I started talking about building a fancy bunk bed. I don't remember exactly what got us going down that path, but I knew that she was outgrowing her toddler bed, and would need a twin bed soon enough... And having a bunk would give her lots of extra room in her relatively small bedroom.

Revision 1
We started off by sketching up a house-based bed. Gemma was concerned about having Alice go up and down a ladder, so I added stairs... And they were going to be awesome, with a hidden passage through the bottom two treads and into the house. Alice carefully chose the colors, and then promptly decided that she actually wanted a castle, not a house.

There are some great examples of castle beds on the internet, but they were nearly all well too big for her room and the location of windows, heaters, etc. So we stayed with the basic layout of revision 1 (which by the way allows a toddler bed mattress under the roofed section, or a twin mattress going the longer dimension). We dropped the stairs, going back to a ladder, but a 'safe' ladder with nice big rungs.

Revision 2
The drawing for revision 2 is reasonably accurate to the final build, including the cutouts for the radiator passthroughs. But as I was building, I realized the height wasn't going to be enough, so I raised the platform another 18", and stretched everything out to accommodate that. This has turned out to be a very good decision. I'd originally envisioned Alice sleeping up top and playing down below, but it's turn out the opposite. So Gemma and I are routinely down underneath this bed during bedtime, linen changes, etc. We fit!

The bed is made of four sheets of 3/4" oak plywood. The back two sides of the bed rest on 2x4s anchored into the studs of the walls, with the room's walls forming the back walls of the bed.

Top platform resting on 2x4 anchors
I cut each sheet of plywood outdoors (starting in July, so this was a well-rested project when we finally started it up), then carried each sheet up for installation. Due to some non squareness in her room, I did have to carry some sheets back out to recut, but phase 1 went together pretty quick, which was the basic bed and walls minus the ladder, crenelations, and other detailing.
End of day 1

On the first night, I ended up dragging her little toddler bed inside the castle so she could sleep in it. She slept there for several weeks, as various details were added. Added the heart and shadow details to the top of the castle, window sills, a ladder (my proudest part of the build), and a rails.

This is my ladder. There are many like it,
but this one is mine!
Testing the ladder
The ladder was a surprisingly large pain in the rear to build! I built a jig to allow me to dado one side with perfect angle and spacing. I then confidently flipped the jig over to do the other side of the ladder,  only to find out that my brilliant plan was totally flawed! After the jig was flipped around still did the same angle as it did on the other side. I had to attach new guides on the back side, remove the guides on the front side, and finally I was able to route correctly. I have never felt happier to do something so simple as build this ladder. It is solid, easy to climb, is angled correctly... It's beautiful! And no one will ever care, because the bed itself is the main event when you enter the room. Don't worry, Ladder, I will always love you.

Every castle needs some DRAGONS!
Finally, we're nearing completion! Lots and lots of sanding for all the details and nooks on this bed. Obviously don't want any splinters on a bed! Due to time constraints (shopping late at night) I had to head over to Home Depot and buy Behr paint. OMFG that stuff is the worst! I had to do 3-4 coats in order to get decent coverage, and it dripped like crazy. In contrast, the green I used on the ladder was left over from painting the dining room, and that was from Benjamin Moore. That stuff went on in one coat. ONE COAT. Last project I'll ever use anything else, if I can help it!

LED light string for down below
Testing the railing
Finishing touches coming along now, as we began adding dragons. Alice was very much in love with the How to Train Your Dragon movies and TV show at the time, so we added a giant Stormfly sticker to the upper bunk, and a similarly giant Toothless sticker down below.

And finally it is complete! Alice sleeps below on her toddler mattress.

Alice's feet had started to stick out the castle windows, so she's has upgraded to a twin mattress. Both exciting and sad to see our little one grow up

180 Gallon Red-Eared Slider Aquarium Build - Part 1

Quickly basking (SPOILER, new tank)
This is Quickly, my wife's very chill red-eared slider. She's had him about 10 years now... Longer than she and I have known each other. He's likely to live another 30. There's a story behind his name, but I'll leave that for her to tell.

When I met Quickly, he was living in a 20 gallon aquarium, and had outgrown it. When we moved in together, we upsized him to a 50 gallon tank. That seemed like plenty. But he kept growing, and we began to realize that he really didn't have enough space, the tank was difficult to keep clean (turtles are messy!) and he didn't have any stimulation. This became really apparent when we moved his tank out of the den during some renovations. He was right there with us as we'd eat dinner, and we started to plan a new tank.

Here he is in his 50 gallon tank.
Not enough space for a turtle.
 We researched all sorts of tanks, and went so far as to purchase a 100 gallon black rubbermaid tank to build a habitat. But having him in with us during renovation really made us aware that he had a personality, and we wanted to see him. So we began looking at options for the largest glass tank we could fit into our den, and we'd knock a hole in the wall so we could see him. The largest tank we could fit was going to be 6 feet by 3 feet, and hold about 270 gallons. After pricing all that out for a while, realizing it would have to be a custom tank, we turned it down a notch. Gemma found a used 180 gallon tank (2 feet front to back instead of 3) in Astoria, I managed to wrangle that ~400 pound tank into the trusty minivan, and home I went. And then back again, to pick up the stand.

Steel stand in process of being
sanded and repainted
The stand was steel, and looked fine... At night. In light of day, as I was sanding and repainting, I realized that this was something some welder had tacked together. I needed this to handle more than 2000 pounds of glass and water, as well as not crack the slate flooring in the den, so I decided I'd have to build my own stand. I'll probably turn the steel one into a garage workbench or something.

I planned to drill the tank for overflows (I'm a reef guy at heart) and have a sump, so I needed to get that done first. I've drilled holes in tanks a few times before, but never something this big (or expensive). But the standard stuff about drilling glass applied, going slow, don't push, etc, etc. I have a right-angle Milwaukee drill that is about 200x overmatched for this job, so that was obviously the one I used!

Like a donut hole, but glass
Big drill w/ diamond bit

Three holes, zero cracked tanks

Alright! Three holes, no cracks, things looking good! Previous owner had painted the back glass black, I removed that. You'll notice the leaves on the driveway, this is October of 2015. This project took a very long time, and I am very happy that it took its sweet time to snow that year! Since I wasn't liking the stand that I'd received along with this tank, I had to build my own. I was comfortable building a strong stand. The 240 gallon reef tank I built in 2011 is doing fine, the stand is rock solid, the engineermanship is sound. But that stand is hidden, built into a wall, and not finished in any sort of furniture-grade style. This one would need to be. Furthermore, we wanted the maximum amount of swimming area for Quickly, so his basking area would be above the main tank.

Sketchup makes neat drawings!
So the plan I came up with was a standard 2x4 construction stand, just like the one I'd built before, but this time wrapped with a craftsman-style veneer. The back would be open. The glass above the main tank is 11 inches high, and there to keep Quickly from climbing out and cracking himself into pieces on the stone floor. His basking platform would be on the right hand third of the tank.

The previous owner of the tank had included the terrible metal stand, which takes up space in my driveway even as I type this, but he'd also given me a 4 foot LED lighting fixture. Not enough to grow plants, but enough to light the tank not under the basking platform. Basically, perfect for a turtle tank.

Again, thanks Mother Nature for not snowing me in and preventing this build!

2x4 and 2x8 construction, sheathed
in plywood. The plywood on the back
extends down about 12".
If you follow along closely later on, you'll notice that the original design had the doors coming together with a very narrow separator. The entire front was going to be openable, no supports. I second-guessed this later in the process and added a middle support. Very likely not needed, but I'm not disappointed with the final result, and it is definitely not going to sag. So the doors have a 3" margin between them.

The doors are glued and pocket-screwed together, with the center panel dadoed to accept some pine paneling pieces. I really like how these came out.

The tricky part was cutting the plywood that I planned to use on the front of the cabinet to accept these panels. I initially tried using a thin-kerf circular saw, but found that the blade wandered enough to absolutely wreck the cut out, and I had to start over. Similar variances happened when I tested using a jigsaw and a regular kerf saw. Starting fresh, I ended up creating a jig and then using a router with a bearing to follow the jig and cut the opening PERFECTLY. Should have done it that way to start.

Hallelujah, perfect fit!
The top of the stand was a challenge, more for sourcing the correct materials than for any complicated cutting. I wanted it to be at least 1.5" thick and solid wood. I ended up getting several .75" boards and gluing them up.

That almost immediately failed, as the boards began to dry out unevenly and cupped up like crazy. Then I weighted the top down with buckets of water overnight to straighten the top out, one bucket leaked, dissolved the glue, and the piece came apart. That was... Frustrating.

So back to the hardware store I went, and purchased a flat, solid wood door. The door was about 18" too long, so I sliced it down. Turns out 'solid wood' is one of those marketing terms. Yes, what was inside that door is technically wood, in the same sense that a hotdog is technically beef. It was a very chippy, sawdusty mess! So I then had to cut it down more and attach a 'real wood' end and back piece. Wouldn't matter for looks, as it was being painted, but it sure did put me in a bad mood, as I was probably about $400 into wood just for the stand top, and it was taking weeks to get it ready. But then, just like that, it was done!

Waddya mean we need to
get this into the house?
OK, not exactly done, but it sure looks like a stand now, don't you think? Since this was getting painted, I just screwed straight through the plywood into the 2x4 frame. The 2x4s carry the load, and the plywood prevents them from racking sideways under load. The screws would be covered over. The strap hinges are great, I love them.

Looking in from outside...
Tank stand!
Finally, on December 21, 2015, I got the tank stand into the house with its first coat of paint. This about two and a half months after Gemma first found the tank, so this project is not proceeding quickly (pardon the pun), but it's moving. Next step, shore up the floor. The last thing we want is this tank to land up next to the saltwater tank in the basement.

All told, the tank plus stand plus water plus rocks plus sump plus whatever was going to approach 3000 pounds. I knew the direction of the
joists, their span, etc. The tank is only a few feet from a foundation wall. It's unlikely that there would be a problem even if I did nothing. BUT, it's perched on a stone floor, and even a little flex is likely to crack the slate. So I added a 4x4 reinforcement to the basement below the tank. It's belt and suspenders.

Or I hope it is!

It took until January 10 before it was finally time to wrassle the tank into the house. No white Christmas this year, no snow to speak of. Last year the tank would have been under a foot of ice and snow, but not this time. I'd managed to find my suction-based lifting handles, so the wrangling wasn't nearly as bad as getting the thing into and out of the minivan. But finally, the tank was in the house, no more worries about the weather, and phase two could commence!

Leak check! Buying on Craiglist and not testing
anything for three months could have gone - badly. All OK!

Part 2 to follow!

Tuesday, June 7, 2016

Am I back?

Always tough to tell how long the motivation to share will keep hold. Pretty motivated right now though. With three years of backlog to get through, there's a pretty long list of projects that are reaching completion, and a number of old projects are ready to be revisited again... And bunches of miscellaneous stuff that probably should have been posted long ago

Things to cover on the list, probably in roughly the order I'll cover them:
  • 180 gallon turtle tank
    • Stand design and buildPart 1
    • Automatic water change system
  • Castle bed build - Read
  • Programming my LED Christmas tree
  • Mr. Webster
  • 240 gallon saltwater reef
    • completion summary
    • aftermath and learned lessons
    • upcoming support room rebuild
  • Hacking Amazon Echo
  • Insteon reliability
  • Z-wave thermostats
  • 3D printer
  • Google I/O trip
    • Computer History Museum
  • 6 gallon planted nano tank
  • 25 gallon planted tank
    • Neverending angelfish breeding and care
    • Fiddler crabs are neat - Read
  • Surveilance
  • Bathroom remodel
  • Maple kitchen peninsula
  • Feeding cats
  • Node.js
  • Groovy
  • Datadog
  • Fixing the minivan
  • Baking vegan cakes

Thursday, February 28, 2013

Fix for perpetual dropbox 'Connecting'

I recently had an issue with my Dropbox installation on my Mac. It had been working fine for many months, but at some point it began to get locked into a mode where it never connected to the service. I could hit the site without problem. I followed all the procedures I could find on the web to reinstall, deleting the app fully, deleting settings, deleting the entire dropbox folder... Nothing worked. After reinstallation, it got even worse, as the setup wizard couldn't complete. Telling the app to close would hang the app, and I'd have to kill it manually from the command line.

Well, to make a long story short, and preserve this so hopefully folks having this same issue in the future can find my solution:

First, go to 'Terminal'. Make sure that Dropbox is not running by typing the following:
sudo killall -9 Dropbox

After that, you'll want to flush the DNS cache:
sudo killall -HUP mDNSResponder

Then start dropbox and wait a little while (let's say 30 seconds). Now we want to get a summary of all the servers your machine has tried to connect to. This first command logs that info to the system log:
sudo killall -INFO mDNSResponder

The second command searches that log for entries matching dropbox:
cat /var/log/system.log|grep dropbox

The resulting information for me showed an entry for ''. When I did an nslookup for that domain on my box, I got a strange error. When I did a lookup using an online DNS tool, it worked fine... I never bothered to determine the problem, the solution was to add the following line to /etc/hosts:

I killed Dropbox again using the killall command, restarted it, and it immediately went to the wizard step where it asked for my credentials, and it's been fine ever since. Huzzah!

Tuesday, February 7, 2012

Lots of valves and bits

Here are the parts, assembled for your viewing pleasure, about to go into building out the backend waterworks for my reef tank. The size reference is difficult to see, but the valves on the back left are about 12" tall. They're massive.
Related Posts Plugin for WordPress, Blogger...