Monday, February 16, 2015

Journaling: Because you forget stuff

When my brother went to China in 2013, he bought a beautiful leather-bound notebook for me. At the time, I didn't really know what to do with it; I draw terribly, and I don't write much. I decided, however, to use it as a (nearly) daily log of anything for which I could look back on positively. I occasionally flip through my notebook -- now about half filled -- to find things I am thankful for, progress I've made on goals or around the house, or good times I've had with our boys.

One thing I've noticed, though, is that I am often too lazy to write every day, no matter how much I want to. I have tried and am still trying different ways of outsmarting myself, such as leaving the journal on my pillow so I have to consciously set it aside before bed. Nonetheless, I occasionally find myself behind by a week or more.

While I still plan to write every day, as one of my goals of doing more software development for fun, I coded up a hastily-written, hastily-named, lightweight application and put it up on GitHub: Journal Today, which lets you write daily notes about... whatever.


The first version exe can be found here: JournalToday_20150216.zip (361kb). The program will create a SQLite database to store your notes. The entire package is small enough to be kept on your OneDrive, Google Drive, Dropbox, or what have you.

UpdateJournalToday_20150227.zip (373kb) now uses DateTimes internally for better date calculations.

Friday, November 7, 2014

Pew pew meets vroom vroom

Continuing my mostly pointless exploits with Microsoft's Epilog laser, I spent a bit of time last night experimenting with etching some leather scraps my folks sent me. Using the worst piece in the lot, I started some dog identification tags for our newly-adopted rescue, calibrating the speed and power to etch and cut... well enough.

Turns out cutting leather with a laser is possible, but it burns the sides pretty good. I ended up doing the cut on lower power and using an X ACTO knife to finish it. This proved quite difficult to do cleanly with the hole. Overall, it turned out pretty well.



I thought it would also be neat to make myself a new keychain for my motorcycle, so I did a quick search and came up with this guy:

Very clean, no gradients, one color, and a rather large image, to boot. I then used the open source Potrace to turn it into a vector image. The resulting SVG contained seven groups -- one for each letter and another for the logo's shape. In Visio -- the software we use for sending print jobs to the laser -- I was able to easily dispatch the letters, change the fill and line width in the logo, and I was left with a very simple SVG that contained a single path that looks something like this:

<path d="M4735 9954 c-253 -19 ... 160 2z"/>

The relevant components of the SVG specification are the "moveto" command ("M") and the "closepath" ("Z"). Looking at the full text of the path, there are actually three polygons. Expanding the XML a little, you see the following:

<path d="M4735 9954...-1020 18z m955 -288...965 -14z m3340 -3685...160 2z"/>

This is a single path with multiple polygons. This first polygon represents the overall guitar-pick-shape. The second is the upper space in which the text resides, and the last polygon is the lower space. I simply deleted the second two polygons and was left with a very clean vector representing what would become the shape of my cutout.

Adding the image back, sizing and aligning them gives the final image to be sent to the laser.

The vector border is set to a very thin (basically zero-width) line that the laser interprets as a cut, whereas the rest of the logo is rasterized and is done as an etch.

After a test run on a higher power, I brought it back a bit and ran the final job.


Another X ACTO cut gave me the raw piece.



With a reasonable hole punched out, it's ready for use.


Wednesday, October 22, 2014

A day at the other Garage

I put in about 13 hours at work last night on my new project. When I was done, I figured I'd spend a little time at the Microsoft Garage, a Microsoft-funded, open-use makerspace just a couple blocks from my building in Redmond. Among the cool equipment we get to play with is an Epilog Helix laser -- the same machine I used for my first project, a 13x13 go board.

This time, I wanted to try out my port of BoxMaker with SVG output functionality -- a very useful feature that lets me import my file into Visio and add extra raster etches or vector cuts before I send the job to the laser.

I created two 3" cubed boxes and etched "REED" on one and "JACOB" on the other. The job took only about five minutes to cut all 12 pieces.



When I got home, I assembled both boxes, using wood glue on all but the top piece to keep them assembled. 


The boys were quite happy this morning when they got their own treasure boxes.

After hitting the main Garage space, I went over to Microsoft's other lab that, among other things, contains a vinyl cutter. After a short time playing around with the configuration, I was up and running. I grabbed a couple Foo Fighters logos, converted them to SVG using potrace, then cut them out on the machine, removed the unnecessary vinyl pieces and added the adhesive front. The result isn't much to look at, but it's the completed product, ready to be applied.


I cut two of the top designs, deciding partway through today that I would put one of them on my laptop. So I cleaned up the plastic with some rubbing alcohol and a paper towel, removed the backing, and applied the vinyl with a credit card to ensure it stuck.


With the adhesive removed, the result is rather nice.



Foo Fighters on the inside, Seattle + Mt. Rainier on the outside (designed by the talented Luke Kackman).


Tuesday, October 7, 2014

It's not a garage until it's got a work bench

This weekend and last were spent mostly in the garage and in the back yard, and we started pushing the limits of our Mazda 3 for its lumber-carrying capabilities.

We started with some 4x4 posts from Lowes that I used for the legs of my work bench. They just barely fit in the car with the trunk closed:



However, it required we move Jacob into the front seat. He was quite happy to accommodate this for the trip home.


Once home, I cut the posts to length and did some notch cuts at the top and about a third of the way down for the 2x4s that would support the top- and shelf-level plywood, respectively. With the notches cut, I had two very eager helpers to clean and chisel out the notches.



With a very basic frame setup and not enough supplies to finish, I waited until this Saturday to continue. First thing Saturday morning, I ran to Lowes again and picked up some 2x4s and a sheet of plywood. Who knew plywood was so expensive? Fifty dollars for this thing, which dwarfs the cost of all other materials. I didn't have any idea how wide the opening was with the rear seats folded down, so I had to simply hope (since I lacked the foresight to check) that it would fit. Only a few quizzical looks from others as I prepared to load this into the car.



But it worked! and with only a couple feet sticking out the back.



Once home, I proceeded to make more notch cuts. I previously was doing so with my new-to-me table saw, but I realized my circular saw would do a much better job (in no small part because I could move that around as I saw fit rather than trying to run a full bench across the table saw).

Not knowing what I was doing, I winged it, first by marking the edges of where the 2x4 would go and cutting two lines (having already set the depth on my saw).



Then it was a half-dozen or so intermediate cuts for every cutout I wanted to do.




And ever so gently, I smashed out the chips with my 5lb sledge.



With my cheapy set of chisels, I cleaned out the notch as best I could. Often, this was good enough, but I wanted these to be as clean and even as reasonable, so I took my circular saw and ran it back and forth (perpendicular to the direction of the blade) and got them nice and smooth.


With the notch cleaned out, I could then place and set my 2x4 to make a much more solid frame.



With the two braces already in-place on the lower section, I added two more then four on the top for 12 notches total to cut out, which probably only took 45 minutes or so. Some screws to hold them in place and I was nearly complete.



I originally planned on the bench being three feet deep, but we later decided to put the bench in a different area, and three feet was too big. I reduced it to 2.5', so I had to run the plywood through my table saw to make it fit properly. The shelf is now two pieces of plywood 'scrap', but it works out well.


Friday, September 12, 2014

An inefficient way to draw a grid

Last night, I hit up the Microsoft Garage MakerLab in Redmond with a coworker. We got trained/certified on use of the Epilog laser cutter -- a somewhat astonishingly quick and easy process. Working the Epilog is hardly any different than any other printer, except you only need to unjam it if something starts on fire.

My goal for the evening was to create a go board that the boys and I can use together. (Recall that Reed has played before and done quite well on his own.) While in Minnesota this August, I used Dad's woodworking equipment to cut some plywood blanks that were to be two go boards -- 13x13 on one side, 9x9 on the other. They fit nicely into my backpack for the return trip.

Ahead of time, I created a quick and dirty C# app to generate a 13x13 SVG board and a 9x9 SVG board. Once in the MakerLab and ready to go, I used some scrap cardboard and a low power setting to start a test run:

You can see a faint grid below the fast-moving laser head


Once I was reasonably confident in the placement of the grid, I loaded one of my blanks into the laser. Within 15 seconds or so, I realized that I had hosed up the margins in my input file, as the top and right edges are quite narrow.




The finished product, while not perfect, seems pretty good. This was etched at 600dpi, and when you inspect the lines (and especially the dots), you can see that it's fairly low-resolution.



With the 13x13 board done, I flipped the board over, printed the 9x9 grid with a 1200dpi setting and, I believe, used a slightly lower speed, which made the lines a bit deeper and more distinct. Here, Chase records a time-lapse while the Look of Disapproval watches with contempt:




The 9x9 turned out quite well, albeit also slightly off-center.
Before I left, I loaded up a couple Calvin & Hobbes images to see how raster etching worked out. I etched and cut two small images, one for each of my boys.


When they woke up this morning, they found Calvin, Hobbes, and Spaceman Spiff on their toy box waiting for them.

Friday, July 18, 2014

July 6-12 in Pictures

I discovered Jakes blankie at Rattlesnake Ledge on Sunday after it was lost Saturday

Bedtime reading...

...and some more reading the next morning

Jake has been climbing our maple tree with the help of my rope

A lone soldier fights back an entire army. Jake wanted this picture titled, "Uh oh."

The Cascades from Camp Muir shortly before bed

Little Tahoma, the third tallest point in Washington State

Monday, July 7, 2014

June 29-July 5 in Pictures

The boys work on building cots for their puppies

I check out the goal from the 13th floor of my building

The boys relax in the back yard, playing with some sort of racquet set they got

We get the boys KCLS library cards while they play on the computer

The lavender in the front has many and frequent apian visitors

The boys play with sparklers on the Fourth

Rattlesnake Lake, post-hike