Tag: open source

  • Developing a cribbage game on my own terms

    I’ve been working on developing a cribbage game. If you are a fan of cribbage, please try it out and let me know what you think.

    You can play cribbage live right here, or you can follow the instructions on the wp-cribbage github repository to play it on your own website.

    What did I learn?

    In my day job, I’m working at Automattic, helping to build the Jetpack plugin and Calypso ( a WordPress.com dashboard ). Both of these are built with React.js, and by the time I started working on them, they were fully realized projects. So I never got to explore the build process or setting up unit tests.

    In building my cribbage game, I learned how to use npm to compile a React project. I learned that both github and npm have helpful alerts to let you know when your project’s dependencies have security vulnerabilities.

    I learned how to properly use Test Driven Development in making the artificial intelligence that powers your cribbage opponent. ( It’s pretty good. It defeats me often, without cheating! )

    What’s next?

    I’ve always wanted to learn socket.io, so I plan to make a v2 of my cribbage game where two people can play each other. I’d also like to improve the UI for mobile devices, and update the graphics to something a bit more shiny.

    Let me know in the comments if you tried it out. Thanks for reading!

  • Thoughts on pocket hole joinery

    Thoughts on pocket hole joinery

    This weekend I completed my first furniture design project. Instead of buying the tools for traditional wood joinery I opted to use pocket holes. It is less expensive, and requires less time and patience. I was able to build two nightstands in a week. I haven’t been this excited since I was gifted my first pack of Legos. Pocket hole joinery is like building stuff with wooden Legos that you design! Here’s what I learned.

    There are three fundaments to consider when building furniture with pocket holes:

    1. Placement of pocket holes – they should be placed either hidden from view, or in a spot that integrates with your design
    2. Order of assemblage – if you screw the pieces together correctly, you can achieve a level design with little effort. The Kreg Jig ensures a tight angle.
    3. Plugging the holes – after the holes are drilled, and the parts are assembled, you can plug the holes with wooden dowels to make them visually appealing

    This was my first attempt, so I messed up all three of those points! Even though I planned out the placement of holes in advance, as I proceeded with the project I learned I could have placed the holes more optimally. By then it was too late to re-drill. Also, if I could start over, I’d rethink how I assembled the pieces. As you put the pieces together you want to consider stability, as well as easy-access to other pocket holes. Finally, I was not able to plug the holes in the end. It turns out that Kreg’s plugs need to be sanded after they are inserted. I did not realize that, and because of their position, and because I had already polycoated the wood, I was not able to plug and sand any visible holes.

    I used pine, a soft, forgiving wood, and thus my mistakes were not fatal ones. I thrilled to have a beautiful, functional, though slightly flawed set of nightstands. Up next, I’m going to revise my plans for these tables, and open source them so that you can build them if you want! I’m also working on a design for a medicine cabinet. In the meantime, enjoy these photos.