John Carmack and Software Patents

I have long been opposed to the way many software and business process patents are granted and enforced. While my gut instinct says the only solution is to abolish the patent system, as a developer I can’t quite agree that there should be no protection for innovative ideas other than trade secrets and copyright. However there is clearly a problem with the system and something needs to be done to fix it. This quote from John Carmack, hero of game programmers everywhere, sums up the problem better than most:

The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying. – John Carmack

My new CNC router, from Probotix

I recently ordered and assembled a Fireball CNC Router from Probotix. With it, I can cut out designs in wood, plastic and aluminum, and achieve a greater precision in projects I build in the future. For cost reasons, I went with the smaller model, that can cut stock up to 12″ x 18″ x 3″. While this limits its use to smaller projects, larger projects require less precision and can be cut out by hand.

The kit came in a large, 75 lb box, and took about 2 hours to assemble. The instructions online were straightforward and easy to follow, and the machine worked great the first time I tried it. I bought a cheap re-furbished computer from Microcenter to drive it, and installed Ubuntu with the open source EMC2 as the controlling software.

Running the machine is easy, and produces good, clean, accurate results. The challenge is in the design software, which I am still figuring out. The majority of CAD software for CNC use is overpriced and over complicated, so I am trying a variety of open source alternatives and less expensive trial software. Once I find something that works, running the completed designs through the EMC2 control software and the Fireball should be effortless, and should enable me to make some very cool stuff in very little time.

Fireball v90 Probotix CNC Router Open Box

Fireball v90 Probotix CNC Router Open Box

CNC Router Parts Laid Out

CNC Router Parts Laid Out

Probotix Fireball CNC Router - Partial Asembly

CNC Router - Partial Asembly

CNC Router from Probotix - Full Setup

CNC Router - Full Setup with Computer

Today, I made a can of nuts and stuffed it with monkeys.

Yesterday, via their blog, Woot released a papercraft version of a classic prank: the can of nuts filled with springy snakes that leap out and surprise, anger and confuse an unsuspecting (supposedly) victim. Woot added a very Woot-like twist to the prank by substituting springy screaming monkeys that leap out in place of the classic snakes. Of course, being made of card-stock, the whole prank lacked a certain believability factor. Nevertheless, since I have enjoyed papercrafting in the past, I could not resist taking up the minor challenge of building the thing.

Woot's Fancy Mixed Nuts - A Papercraft April Fool's day prank

Woot's Fancy Mixed Nuts - A Papercraft April Fool's day prank

The whole process took about an hour — Woot’s design had some small details that took some patience with a hobby knife to prepare. The monkeys were especially delicate. Thirteen different minisucle parts for each monkey had to be individually trimmed from the printed sheet, some of them barely an eighth-inch across. After some careful cutting, not so careful folding, and patient glueing, I completed the kit. A test run was successful; the monkeys successfully sprung out of their container after opening with as much vigor and speed as one could hope for from paper springs. It was both cheesy and horrible, yet still it worked much better than expected. I packed the parts separately so as to avoid ruining the limited spring of the paper, and waited until this morning to deliver the result to an unsuspecting victim.

Building the Woot Papercraft Mixed Nuts April Fool's Day Prank

Papercraft takes a sharp hobby knife, tacky glue, and patience

After a quick re-assembly, I gave the thing to my brother today. His skepticism was apparent as he took the paper tube and opened it apprehensively. One solitary monkey half-heatedly oozed from the paper tube of mixed nuts, and the other two stuck behind requiring a show of force to wrest them from their hiding spot. Apparently, I packed them in a bit too tight, or overlaped, or maybe the paper springs only had enough juice in them for that first test run the previous night. Whatever the case, it was a disappointing result. Despite the poor showing, I was and am still impressed with the creativity of Woot’s April Fool’s day offering, and had fun assembling their kit. Maybe with some modifications, I could make a version that worked…

A completed flying woot monkey papercraft

A completed papercraft flying woot monkey

Woot's can of mixed nuts - a papercraft April Fool's day prank

A can of mixed nuts? Or a dangerous trap?

SparkFun – Introduction to Arduino

Using Shift Registers to control multiple LEDs - SparkFun Introduction to Arduino class

Using Shift Registers to control multiple LEDs

I recently drove to Boulder, CO to attend SparkFun Electronics’ inaugural Introduction to Arduino Class. I have been interested in Arduino development for a while, and jumped at the opportunity to participate in this great learning experience run by one of the best known companies in the hobby electronics field. Besides proving a thorough introduction to te Arduino development platform, the class provided a great starter kit of components, and an in depth tour of SparkFun’s facilities. The experience was fantastic, and very worth the long drive through Kansas.

Spark Fun Arduino Class - Students assemble!

About 30-40 people attended the class

The class was run for most of the day Saturday, and covered all of the basics of working with the Arduino platform. SparkFun provided a good array of materials to go with the class, including a binder full of information, tutorials, documentation, and background information to keep us going after the class. We were all also provided with their Arduino inventors kit: one of their famous red boxes containing an Arduino Uno, a nice holder and breadboard station to work on, and a host of sensors, buttons, LEDs and other components to experiment with.

The first arduino project - a single blinking LED

The first arduino project - a single blinking LED

We started the class by installing the software needed to our laptops, and connecting a few components to complete our first working prototype: a singe red LED that would blink in any pattern we programmed it for. It was a simple beginning, but impressive nonetheless. It took only a few minutes, and was a great demonstration of how easy the Arduino platform is to work with. From there, we moved on to more complex circuits. We learned how to read both analog and digital input from sensors and buttons. We explored outputs though digital, analog (well PWM, or pulse width modulation), and serial communicatons. We worked with servos, speakers, and motors. We learned the basics of ICs by building a circuit using a shift register to control many outputs with only few inputs. It was a whirlwind class, and by the time it was over I felt I had solid grasp of the platform and those few topics I had not yet learned I now know where to look to figure them out on my own.

SparkFun's world headquarters in Boulder, CO

SparkFun's world headquarters in Boulder, Colorado

After the class, SparkFun invited those students who were interested in a tour of their offices and facilities. They recently expanded to fill the entire two story office building they occupied, and despite some construction, it was an impressive and inspiring workspace. Obviously populated by a diverse group of hackers and makers, projects in various states of completion were scattered throughout the offices and work areas. SparkFun encourages its employees to experiment and build personal projects, and the results are a host of varied, inventive and interesting creations filling any available workspace in the building. Those projects did more to demonstrate the culture of sparkfun and the personalities of the employees than any of the kitsch, posters, and expensively designed offices I have seen anywhere else.

A LED tetris game and the famous tweeting beer keg from SparkFun

A LED tetris game and the famous tweeting kegerator

A multiplayer Tron game console built with LED displays

A multiplayer Tron game console built with LED displays

A huge NES controller coffee table built by sparkfun

Sparkfun's famous massive NES controller

Where SparkFun films their video podcasts and take product photos

Where SparkFun films their video podcasts

Posters made by employees for SparkFun's CEO

Posters made by employees for SparkFun's CEO

The tour continued downstairs into the warehouse and assembly rooms. SparkFun assembles many of their own boards and components, and does most of the work by hand. They use solder stenciling stations to prepare pre-printed boards for the pick and place machines, after which they put the assembled though massive ovens which dry the components and flow the solder into place. Finished components are individually tested using custom test boards that run each completed component through a series of tests to ensure proper assembly and programming. SparkFun claims to be the only company to use such an extensive quality control process. For a small company, it is an impressive operation.

Touring the sparkfun warehouse in boulder, co

Touring the sparkfun warehouse

The sparkfun assembly and testing floor

The sparkfun assembly and testing floor

Sparkfun workstation for assembly of components

One of the workstations

A soldering station at Sparkfun's headquarters

A soldering station

a pick in place machine

One of SparkFun's Pick and Place machines

I built an arcade cabinet for my brother

I built this arcade cabinet as a christmas gift for my brother. After everything he has done to help me this past year, I knew I had to give him an epic gift, so this is what I came up with. The desktop based design turned out great, and makes it easy to sit in front of it for long gaming sessions. I spent most of my free time in early December working on it, and it came out great!

I built it in my garage from my own plans I designed in Google SketchUp. It uses an old Dell 1907FP lcd monitor as the screen and competition grade controls I bought from Ultimarc online. The top marquee has a fluorescent light behind it that lights up the acrylic and paper image in front of it. The rest is built mostly from MDF and finished with textured spray-paint and t-molding. It works as a peripheral right now, connecting through USB to an external computer, but we have a ATOM based small computer on order that I will mount inside so it will be self-contained and only require a power connection.

The project was fun and a great learning experience, and I felt it was a worthy gift for my brother.

I am posting a full guide on how I made it with more pics here.

NaNoWriMo – I won!

A few years ago I learned about NaNoWriMo, or National Novel Writing Month, from a post written by Cory Doctorow on BoingBoing. Ever since then, I have wanted to participate in the mad challenge of writing a complete novel, of at least 50,000 words in only a month’s time. But for several years, life got in the way. Either I would forget about NaNoWriMo until it was much too late to join, or intense work deadlines or other plans kept me from participating. Last month, however, I decided that this year I had to participate, and I had to win.

I used to consider myself a writer. Ten years ago it was my dream to write for a living, to pen novels that would be read by millions. But as I followed the varied paths my life wandered down, I lost that dream and found new ones. I don’t regret that; I love where life has taken me and am fond of my current career choices. But still, somewhere in me is a part of my old self begging for the chance to write again.

Writing is a very freeing and remarkably calming past time. It is a chance to purge a mind of ideas that have been floating around and clogging thoughts while screaming for attention. It can be enlightening as well, since the act of committing ideas to paper, or in this case a digital document, forces a writer to make decisions, solidify half formed ideas, and explore flashes of inspiration to their fullest conclusion. It is a very narcissistic form of meditation. Writers are forced to look deep inside themselves to find and clarify the ideas that they will commit to the page. For someone like me, who’s chosen job path in life focuses on mental exercise, solving problems, and constantly exploring new ideas, writing is a great way to clear the mind and free it from the stresses of work.

NaNoWriMo reminded me of that calming effect writing could have. Not that the month was easy, many days I did not want to write, or I felt like I was too busy to write. Other days writing felt like a chore, an unwanted task that made every word I typed feel like I had to force it out. But even on those days, even when I had trouble focusing, or felt like quitting, even then when I finished my writing I felt a wave of calm. My mind would be clear, I would be at ease, and I felt a great sense of accomplishment. NaNoWriMo was not easy, but it was fun, it was enlightening, and I am so very glad that I signed up.

I finished my novel at just over the required fifty thousand words, reaching a total of 50,339 a few days before the deadline. It is done. But, since the novel was penned in such a short time, there are plot holes, rambling parts that make little sense, forced dialogue, cliched phrasing, and flat characters. I am not sure I ever want anyone to read the thing in its ugly rushed state, but that was not the point. I took the challenge, I fought my apprehensions and fears, and came through a winner. I hit fifty thousand words. I wrote a complete novel. I won. And it feels great!

Michael Shermer: The pattern behind self-deception

“Michael Shermer says the human tendency to believe strange things — from alien abductions to dowsing rods — boils down to two of the brain’s most basic, hard-wired survival skills. He explains what they are, and how they get us into trouble.” – Great Video, worth a watch