Sometimes you wonder about things. Strange things. I’ve been watching the stepper motor row in the vending machine, and seeing motors quickly disappear. I wonder where they go. It seemed like yesterday we had a huge box of them. Mostly, I don’t know what happens to them. They go to live a second or maybe third life somewhere, in some project. The machine is just a temporal stop in their exciting life of spin and step.
Sometimes though, people bring their projects in, and we get a peek at their new function and snap a blurry picture. A few weeks ago, Michael came by to show us his propeller powered etch-a-sketch. We were all amazed. We boggled at the speed, accuracy and awesomeness of this project, then we wondered how he did it.
Now we know. He’s detailed every gory detail (including source) of the propetcher here. It’s also up on Hackaday, which has some less blurry pictures than our Flickr stream, as well as the normal flurry of helpful suggestions from the peanut gallery.
If you’ve been curious how to drive our 3 wire steppers, Michael has also produced this very helpful diagram.

Last night, Dominic Muren, Willow Brughe and I presented a night of “Fab Lab” to the Dorkbot Seattle crowd. I saw later on twitter that some 120+ people showed up, which is not only uncommon for dorkbot, but it shows that whole physical computing and home fabrication thing is generating lots of interest.
Dominic’s talk was awesome, and it covered pretty much every way to digitally fabricate things. He’s annotating the whole thing with links and should be uploading it to Humblefacture shortly, so if you didn’t make it to the talk, you should dig through the slides. Probably the best list of fabbing technologies and software for modeling I’ve seen in a while. Makes me want to rethink my current toolchains.
Willow Brugh, director of Jigsaw Renaissance, talked about their space in SODO, admittedly hard to find and hard to type, it sounds like a fun place to hang out. They’re a non-profit, under the umbrella of Milwaukee-based Bucketworks, and they have some access to Artillery’s tools. This is the second time we’ve met. Last was at KUOW. Hopefully I can get down to Jigsaw one of these days and check it out. Sounds interesting. Too bad it’s not within my ridiculously short live/work radius.
Milo the makerbot hummed away for a while on a print, but ultimately it’s extruder failed. The makerbot portion of my presentation didn’t get to have a live maple syrup smelling robot giving birth to a Mendel extruder. Suck.
We adorned him with flashy LEDs and magnets, but the demo gods were not amused. More robot maintenance in my future. Unsurprising.
I had a presentation, but I tried to keep it informal, I talked about the history of .\C:_ (most people ask), how it came together so quickly (i have the most awesome friends ever), and about some of the things that happen in our strange basement on Broadway. Dorkbot threatened to put the video up on their website soon, and I’ve shared my slides on Google Docs. I’m sure neither will make sense without the context of being there.
The star of the night for me was Professor Mark Ganter, who wasn’t on the schedule, but who has voided the warranty on his departments 5 zcorp printers by printing ceramic and glass. Apparently you can print different materials than $1000 per oz zcorp plastics, all of which are dirt cheap. The glass dust he uses is a byproduct of glass recycling, and is next to free. Printing in wood is easy if you have micron scale wood dust, which is something laser cutting produces. The binders are as simple as cheap vodka and maltodextrin, both easily available at local stores. He has dropped the costs on printing to nothing.
This is huge stuff. Commercial 3D printing is a racket, and the costs ($600 for a gallon of comercial binder) of something so potentially world-changing is ridiculous.
Ganter is putting all of this up on Open3DP, another amazing move for a professor at a University that lives on patents
What happens if you dont have a zCorp printer?
There is a guy in Brazil who has made a Homemade 3D Powder Printer out of an old Lexmark printer. Once we figure out the logistics of where to put something like this, and how we can make it relatively safe (glass dust is probably off the table), I think we’ve got a new shop project. And with that, more maintenance. Awesome.
Nike+iPod sensors are small, flat wireless motion detectors that chirp a unique serial number (among other data), to tell your iPod how many steps you have taken, and at what pace. Its a great way to stay in shape.
However, they also make great presence detectors. They all transmit on a single channel, unencrypted, for about 60 feet in the 2.4GHz band. List price? $19.99, or $29.99 for shoe sensor and radio. It also looks kinda trendy too.
One really annoying thing about Foursquare or any other venue check-in application, is having to remember to actually check-in when you arrive. Wouldn’t it be a whole lot better if it worked automatically?
My system could eventually plug into something like stumble.to. If you are not familiar with “stumble.to”, it is a way of providing your MAC addresses for your WiFi laptop and phone to check in for you at the venue when you are present. Currently, it is limited to just a few venues now. But instead of having to lug around your laptop, or connect to the local wifi, you could also have your Nike shoes (or sensor in generic shoes) check in for you.
The backend device would need to be located in the venue, but it is internet-independent, low power, and can be located anywhere in the world.
Currently, its on an electronics bread board and rather bulky, and it talks to Foursquare directly…but it (mostly) works.
Here are some screen shots of my first check-in using this system:


What ho? We were featured on CHS Blog again? Goodness!
First, a bit of social commentary.
Sometimes we refer to the way something ought to be accomplished as the RightWay[tm], sarcastically noting that every best practice contains a certain degree of opinion. As we dedicate more time to doing something our way, we become invested in it being the RightWay, and risk becoming defensive about our choices. Adam Jacob calls this “survivorship-bias,” and I’ve spent some time listening to him think about what he feels the risks are, and considering them myself. When we make significant personal investment in a choice, it becomes a personal challenge to remain impartial about the merits of that choice over time.
I’ve previously said that Configuration Management is the act of programatically configuring your systems. Cloud computing says that building servers is undifferentiated heavy lifting; unless your service is building servers, you should really let someone else do it and focus on the product or service you’re actually trying to sell. Configuration Management is the first step in bringing this same ideology to configuring systems. We are not in the business of selling configured servers any more than we are in the business of providing coffee to our employees, we happen to do both. We build our systems to enable our business to conduct business. In my case, operations is enabling our customers to use the web product that we develop.
We are all members of the Configuration Management community, because we believe it is ultimately a better process for building systems. We naturally have different ideas about how that process should execute, which among other differentiating factors is often that “goals are different but are left unstated” in the community. The level of preference here and resulting fragmentation is not any different than holding an opinion over what open source operating system one should use for a specific task. The merits of our choices are worth discussing, but the implication that tools and libraries should all come to the same conclusions about design is like implying that the world only needs one type of hammer.
So, defining the meatcloud as the established notion that having your internet presence grow forms a direct relationship with hiring more people to rack servers, install software, and update configuration files; I asked around a little, why do we think Configuration Management is better?
You don’t need to be a mechanic to drive a car, should you need to be a subject matter expert on Apache to run a webserver? Infrastructure as code shows us how and the resulting communities are starting to implement this. When we spend less time getting the parts working, we can spend more time innovating better solutions with the parts.
Ever rebuild a server that someone built long ago and is no longer with the organization, and find many small parts necessary to make it work that nobody bothered to write down? Placing those small changes and required files in configuration management ensures that even if the code doesn’t run flawlessly on an upgraded operating system, you know everything that went in to making it work. Since you’re configuring the system through configuration management, a lot less falls through the cracks because documentation is often an afterthought to getting the system working.
What is on that system? Everything you told CM to put there. ‘Golden image‘ disk images often leave you in the aforementioned situation where you don’t know how to recreate them, but often you don’t know what else ended up there. Configuration Management allows you to build many copies of the same system easily, from scratch every time.
Did sales tell you they had fifty customers and it turned out to be five hundred? How long will it take you to build the extra servers by hand? How many extra people do you have to put into the meatcloud to get that done in time? Business requirements always change, and slow moving businesses are at a disadvantage to dealing with this. The inability to build and deploy servers fast enough should never be a reason your business fails.
Three applications on one server? Or one application on three servers? Apache doing different jobs on multiple servers? Moving applications between servers and leveraging existing infrastructure code for new projects is easy. We automate tasks that are repeatable, but often scripts are written to accomplish one repeatable task. Here we say, how can we treat configuration as sets of modular tasks that we can mix and match?

Darivanh Vlachos, Alexis Hope and Kate MacCorkle (from left to right above) came down to Metrix this evening to learn about MakerBots. This is not in itself noteworthy, especially since we’re pretty much the only shop in the neighborhood with any. What was different about this visit was that Darivanh, Alexis and Kate are all part of the Human Centered Design and Engineering at UW. They’re going to be making a MakerBot and documenting how they learn how to make and use it as their class project on how everyday, non-technical folks learn how to use technology.
This is possibly the most meta and intellectual use of Metrix I have yet to write about. It’s especially meta when I consider the fact that I am now documenting the documentation of their project…woo, recursion vertigo. Anyway, one more example of just how interesting and creative things can get when you put a bunch of tools in a basement open to the general public.

Here at Metrix Create:Space, we don’t really sell coffee. We provide it as an amenity to our members and customers and we drink a lot of it ourselves. It does cost a dollar, but that dollar doesn’t go into paying staff, or rent, or even paying back the upfront cost of the robot (eventually we’ll pay for that thing somehow). It goes towards Vivace beans, our nifty poker draw cups, milk, and tasty tasty Oregon Chai. We’re not a coffee shop. We’re a workshop. We like coffee, it keeps us moving, so we have the good stuff.
We do understand how coffee shops work , and how you and many of the laptop carrying, working-from-home mobile workforce out there live within their rules. You see, at one time, we worked on software, and we were laptop hobos.
Working from home, or working ‘out of the office’ is a hard thing (well, it’s not hard like a salt mine or working at a desk or anything, but it can be inconvenient). For the most part, coffee shops have become the haven of the hobo. There are lots of social rules to setting up camp in a coffee shop. Mostly they involve picking up a coffee or a pastry every now and then, trying not to tie a table up every single day at the same place, tipping the barista kind of heavy so they don’t glare at you (too hard), not bringing in packed lunches and outside drinks. There’s a fine line you tread to not wear out your welcome, or run the place out of business. That’s why you’re buying the scones even though you don’t really like them. That’s why you don’t sleep much. It’s not the stress of the workplace, it’s the 4 latte a day habit.
Coffee shops, have become the third place for workers, some by design, some by accident. For the most part though, coffee shops focus on their coffee, not their Internet. And for coffee shops, the Internet is an amenity that they have to have, rarely understand and don’t like paying for. Lots of coffee shops don’t even have a computer in them other than a cash register. Which is why their Internet is slow and laggy.
Here at our workshop, we spend a lot of time working on our robots, building shop projects, buying tools and supplies and going about the things we need to do to make your projects go smoother. For that we need the Internet, and we like the Internet, so we make sure our Internet is awesome.
Some of you may have noticed that there is effectively no lag at Metrix Create:Space. That’s because we have fast tubes (50mbps/10mpbs). We have a managed Cisco switch rather than a linksys hub. Our WiFi gear is from our ‘other store’, which primarily sells WiFi gear to people building WiFi businesses. We give you a publicly routeable IPV6 address. If the wireless is too slow for you (because 802.11g is only 20mbps), we even have a couple of wall jacks that you can plug in to, and get the full 50. Remember we mentioned that we like the Internet here? That may have been an understatement.
Unfortunately, this makes us both appealing to the laptop hobo , and confusing. The rules are different here. It’s a new thing. We don’t have scones. The coffee doesn’t really pay for anything. How can you hobo without running us out of business? We know a lot of you are concerned about how we survive, because you ask us, and sometimes we wonder ourselves. We have thought about your concerns, and are offering you an option.
Today we are introducing Hobo Tokens and an actual tip jar. Hobo Tokens are a totally optional currency of goodwill. They let us know that you care about us, and remind us to keep that awesome Internet connection around. There are no rules, you can buy them and lock them up in a curio cabinet, give them away as gifts, or put them in the tip jar. They have no monetary value and are worth nothing in the store. Rest assured though, if you hobo hard, and you tip us in tokens, we know you care about the shop.
Like the rest of the shop, this is kind of a weird experiment.
They’re available online (we will mail them wherever you want) or at the counter for $5. 5 for $20
We’ll also put them on Thingiverse. They take 3 minutes each to cut, so if you cut them yourselves, they’re $4.80 each. If you have your own laser and material, they’re free goodwill.
With AT&T saying that “with each passing day, more and more communications services migrate to broadband and IP-based services, leaving the public switched telephone network (“PSTN”) and plain-old telephone service (“POTS”) as relics of a by-gone era,” I thought it would be a good time to get a snapshot of the North American telephone network as it exists now. In the early 1970s, phone phreaks like Evan Doorbell and Mark Bernay started recording what they saw as the demise of the electromechanical telephone network. The switches then were crossbars and panels and steps and the like, with early computerized switches like the 1ESS just starting to appear. Now, the 1ESS is nearly gone from the network, and the North American network consists mostly of the Western Electric/AT&T/Lucent/Alcatel 5ESS (the 1ESS’s successor), the Nortel DMS-10 and DMS-100, the GTE Automatic Electric GTD-5 EAX, and the Stromberg-Carlson/Siemens DCO. A few other switches in the network, like the Siemens EWSD and the Ericsson AXE 10 have found more popularity in North America as cellular switches (and as wireline switches in other countries).
The oddball switches are the ones that really interest me, and they’ll be the first ones to disappear from the network. I’ve been told that the TRW Vidar ITS-5 and the Mitel GX5000 switches may be gone from the North American network. To see what might be left, I decided to do some digging, and I’ve come up with a list of the telephone switches (minus remotes) still in use in the North American network. There’s undoubtedly some stale data in this database, and so for rare switches, I think the numbers listed are the upper boundary — the lower boundary may be as low as 0. The list also contains the mystery “Digital Switching System”. There seems to be an awfully large number of them for it to be the North Electric DSS-1, which became the ITT 1210 — maybe it just means “unknown digital switch”?
The picture above of the GTD-5 EAX was shamelessly stolen from the site of a GTD-5 consultant, the only place I could find a picture.
.even { background-color: #FFC } .odd { background-color: #EEA } table#table_results { border-spacing: 0; } table#table_results td { padding: 5px; }Top 10 Switches
| Manufacturer | Switch | Count |
|---|---|---|
| NORTEL | DMS 100 | 2513 |
| LUCENT | 5 ESS | 2236 |
| NORTEL | DMS 10 | 1968 |
| AUTOMATIC ELECTRIC | GTD-5 EAX | 668 |
| SIEMENS | DCO | 522 |
| DIGITAL SWITCHING SYSTEM | 247 | |
| REDCOM | MDX 384 | 155 |
| ERICSSON | AXE 10 | 102 |
| SIEMENS | EWSD | 91 |
| LUCENT | 1A ESS | 66 |
The Whole List
| Manufacturer | Switch | Count |
|---|---|---|
| NORTEL | DMS 100 | 2513 |
| LUCENT | 5 ESS | 2236 |
| NORTEL | DMS 10 | 1968 |
| AUTOMATIC ELECTRIC | GTD-5 EAX | 668 |
| SIEMENS | DCO | 522 |
| DIGITAL SWITCHING SYSTEM | 247 | |
| REDCOM | MDX 384 | 155 |
| ERICSSON | AXE 10 | 102 |
| SIEMENS | EWSD | 91 |
| LUCENT | 1A ESS | 66 |
| MITEL CORP LTD | GX5000 DIGITAL SWITCH | 64 |
| PACKET END OFFICE | 54 | |
| METASWITCH, INC. | METASWITCH VP3510 | 28 |
| NORTEL | SA1 | 24 |
| LUCENT | 5ESS-2000 SWITCH | 22 |
| NORTEL | DMS 200 | 21 |
| SIEMENS | DCO 21 | 18 |
| METASWITCH, INC. | METASWITCH VP3500 | 17 |
| TEKELEC INC | IX7000 (TM) NEXT GENERATION CLASS 5 SWITCH | 16 |
| REDCOM LABORATORIES | MDX 10K (MODULAR DIGITAL EXCHANGE) | 15 |
| VIDAR | ITS 5 | 14 |
| METASWITCH, INC. | METASWITCH VP2510 | 12 |
| NORTEL | CS 1500 | 12 |
| TEKELEC INC | OPEN COMPACT EXCHANGE (OCX) | 12 |
| COMMUNITY DIAL OFFICE | 12 | |
| CIT-ALCATEL INC | E10 – FIVE SWITCHING SYSTEM | 11 |
| NORTEL | DMS 500 | 11 |
| SIEMENS | CENTURY DCO6000 | 10 |
| AUTOMATIC ELECTRIC | STEP BY STEP | 8 |
| LUCENT | 5ESS-2000 SWITCH VCDX | 8 |
| NEC CORPORATION OF AMERICA | NEAX – 61 | 8 |
| 9A ANNOUNCEMENT-WEATHER | 8 | |
| ANNOUNCEMENT SYSTEM | 8 | |
| SIEMENS | EMD55 | 7 |
| LUCENT | 4 ESS | 6 |
| SIEMENS | XY | 6 |
| HARRIS CORPORATION | RURAL ELECTRONIC EXCHANGE | 5 |
| NORTH ELECTRIC | DSS 1 | 5 |
| ALCATEL | 1210 | 4 |
| ALCATEL | CRX | 4 |
| NEC | NEAX – 61E | 4 |
| NORTH ELECTRIC | DSS | 4 |
| SIEMENS | DTM | 4 |
| TEKELEC INC | 7000 CLASS 5 PACKET SWITCH (T7000) | 4 |
| ALCATEL | 12 (HOST) | 3 |
| LUCENT | 5ESS-2000 CDX (COMPACT DIGITAL EXCHANGE) | 3 |
| METASWITCH, INC. | MG3510 | 3 |
| SIEMENS | DCOSE SMALL EXCHANGE | 3 |
| 4A ANNOUNCEMENT TIME | 3 | |
| CALL AGENT | 3 | |
| VIDAR | IMA2 | 3 |
| ALCATEL | A1 – SPC | 2 |
| METASWITCH, INC. | METASWITCH VP3000 | 2 |
| NORTH ELECTRIC | CX 200 | 2 |
| NORTH ELECTRIC | NX2A | 2 |
| REDCOM LABORATORIES | IGX-MT END OFFICE SWITCH | 2 |
| SANTERA SYSTEMS INC. | SANTERAONE (BOX) BROADBAND OFFICE EXCHANGE | 2 |
| SIEMENS | DCO 80 | 2 |
| SIEMENS | DCO 200 | 2 |
| SIEMENS | ESC(1) | 2 |
| AUTOMATIC CALL DISTRIBUTOR | 2 | |
| ALCATEL | RELAYMATIC | 1 |
| AUTOMATIC ELECTRIC | 375A | 1 |
| GLUON NETWORKS INC. | CLX(TM) CONVERGED LOCAL EXCHANGE | 1 |
| ITEC INC | EMS-1 | 1 |
| LUCENT | 1 ESS – 2WIRE | 1 |
| LUCENT | 1 ESS – 4WIRE | 1 |
| LUCENT | 1 ESS – HILO | 1 |
| LUCENT | 2B ESS | 1 |
| LUCENT | NO 5 CROSSBAR-4WIRE | 1 |
| LUCENT | NO 5 CROSSBAR-ETS | 1 |
| LUCENT | PLEXUS 9000 | 1 |
| LUCENT | STEP BY STEP | 1 |
| NORTEL | CS 100 | 1 |
| NORTEL | DMS-10 AP | 1 |
| NORTEL | DMS10 SIGNALLING RELAY POINT | 1 |
| NORTEL | NO 5 CROSSBAR | 1 |
| NORTEL | STEP BY STEP | 1 |
| NORTH ELECTRIC | CX 30 | 1 |
| ROCKWELL INTERNATIONAL | ISS 3000 | 1 |
| SIEMENS | MAINSTREETXPRESS 36170 | 1 |
| TEKELEC INC | 9000 DISTRIBUTED SWITCHING SYSTEM (DDS) | 1 |
| ANALOG SWITCHING SYSTEM | 1 | |
| CONCENTRATOR | 1 | |
| CROSSBAR SWITCHING SYSTEM | 1 | |
| PACKET SWITCH | 1 | |
| SWITCHED DIGITAL DATA SYSTEM | 1 | |
| LXP – 4 | 1 |

Our first Using Transistors workshop went well today. We managed to
continue the tradition of blowing up at least one component per class.
This time it was a transistor that shattered due to excessive current.
As usual, the exploding component served to highlight the facts
covered in the class. The workshop attendees got to play with logic
gates, switches, sensors, and motors.
Interest in both of our electronics workshops has remained strong. The
Intro to Electronics workshop on Thursday has been full for a few
weeks, and we already have people on the waiting list for our next
classes. Next month we’ll be having another set of electronics
workshops, so register early to reserve your spot.
We haven’t forgotten about those of you who want a soldering workshop.
We’re hard at work designing a workshop that’s worthy of you. As soon
as we’ve got a curriculum we’re satisfied with, we’ll start scheduling
the soldering workshops.
Introduction to Electronics
Sunday, February 7 2010
2-4:30
Cost: $40
This workshop covers everything you need to know to get started in
electronics. We’ll start from the basics of electricity and work our
way up to using integrated circuits. You’ll leave the class with some
simple components and the knowledge to use them.
Using Transistors
Sunday, February 21 2010
2-4:30
Cost: $40
We’ll explore transistors, what they’re used for, and how to use them.
After an overview of the function of transistors, we’ll spend the
class making some simple switches, logic gates, and an amplifier.
Required Equipment:
Breadboard, Multimeter

Morgan’s tasty transistors workshop - transistors are like delicious grilled cheese sandwiches, except that if you eat them you will get sick. Also, transistors can do a lot more neat things than a sandwich can.
~ Jen




Jesse and Angela (pic 2, right) were down here tonight make some nifty LED light boards (pics 1 & 4) - when those things are on it’s like Christmas all over again. You can’t see it in the still shots, but they can be programmed to oscillate and generally look even more spectacular. They’re from a kit for LED light bricks, but Angela and Jesse are going to put them in a translucent acrylic case rather than setting them in an acrylic brick so they can access the board to reprogram it later if they want.
Their friends Kevin and Jaime (pic 2, left) were also down here putting together bliplaces (pic 3), sound-reactive LED button kits they got from the vending machine of wonder. That’s a pretty impressive night’s work for some first-time solderers, and they got to walk away with a badass homemade piece of shiny.
~ Jen

He did it! At approximately 3am this morning, Matt finally finished the 2-axis laser writer he’s been working for the past week. Congratulations Matt :)
~ Jen
Well a couple people used the 0.7.16wt1 release, including Thom May who had issues with that version number. Consequently I took out the ‘wt’ from the version, but this is still an unofficial, unsupported release.
I pulled in the changes on Thom’s internal branch and grabbed some more low hanging fruit. Don’t ask what methodology I used. It’s magic.
Grab the github branch, or the debs in my launchpad ppa. I’ve only tested this on Ubuntu Karmic, as it goes.
** Bug
* [CHEF-454] - Centos4 yum provider failure
* [CHEF-616] - rake install in chef-repo breaks if there is no git origin
* [CHEF-637] - duplicate copies of FileEdit: file_edit.rb & fileedit.rb
* [CHEF-639] - git resource fails on subsequent checkouts of the same repostiry
* [CHEF-642] - Services will always issue a WARN when status is not present
* [CHEF-684] - Should be possible for roles to be created without anything in the run_list
* [CHEF-704] - Ruby block device does not have a default action
* [CHEF-722] - Link provider doesn’t understand paths requiring expansion
* [CHEF-843] - FileEdit permission issues
** Improvement
* [CHEF-598] - Upstart service provider
* [CHEF-617] - Install to chef repository on a remote machine
* [CHEF-709] - Support for backup up files in another directory than the original file
* [CHEF-752] - No way to pass parameters to useradd provider
I’ve periodically been having DNS lookup issues with internal domains and isolated them to remote SSL VPN clients connecting to a Cisco ASA 5520 using the Anyconnect SSL VPN client. I eventually got frustrated and troubleshooted the issue by using the command line ‘vpn’ client to initiate a connection on a remote Ubuntu Linux machine while here in the office. nslookup would produce the error “Got recursion not available from x.x.x.x, trying next server” and dig would respond with “status: REFUSED” and “;; WARNING: recursion requested but not available”. I noticed traffic was not making it to the Windows Server 2008 DNS server by watching wireshark and enabling DNS debugging.
Having been acquired six months ago our list of internal domains increased quite a bit. I found the ’split-dns’ setting in the default group access policy set to the old list of internal domains and set this to ’split-dns none’. This resolved the issue. Apparently the client was comparing the query to its list of split-dns domains, and the match was failing so it was sending the resolver (operating system) an error message so it would go through the list of DNS servers until it tried the local server. Rather than trying to make a list of all the possible domain names in the company, I’m going to leave this off since the internal DNS servers have recursion enabled and can handle DNS lookups just fine for the remote clients.
Wow, Kraft Nite is doing wonders for my productivity…I made seven wooden cog pins, I’m on my way to finishing a couple more little hip-pockets, and I’ve got pictures of everything I made. It’s amazing what you can pull of if you just have the right tools. If I can do all that in a few hours, just think of all the progress you could make on your own crafty goodness :D
There’s also a fractal quilt in progress - if you stop by in a few Kraft Nites from now, you might even get to see the finished product.
Jen Power is a nerdy crafter, Cap Hill resident, and writer of Life on the Hill and Other Stories

Yay, Kraft Nite! If you want to join the fun, just stop by any Tuesday night after 6pm and get your craft on :)
I recently purchased a Kodak Easyshare Wireless Digital Picture Frame off woot for an amazing price of $49.99. Infact, I bought two. The model number is W820, which is an 8″ frame, but there is also a 10 inch version as well. These picture frames have built in WiFi and can grab content off the internet.
The most exciting part about this picture frame has nothing to do with putting an SD card full of baby pictures, and everything to do with adding fun widgets to your photo roll! Facebook status updates, facebook photos, tweets, news, weather, live sports scores, flickr accounts, and the ability to have it make use nearly any RSS feed. Oh, and it shows baby pictures too I guess in the mix, if thats what you want.
The widgets are powered by FrameChannel, which is a sort of third party service that provides this functionality to Kodak picture frames everywhere. You setup an account with a special secret code that is shown on your picture frame (which nobody is supposed to have access to, otherwise they could load content on your frame before you even take it out of the box), and then you are off to widget building land where you can construct a slideshow based on time of day and frequency of display.
However, deep on the website i noticed this little innocent piece of information:

Advanced Settings
What’s this at the bottom? Some strange little RSS URL?
Well, lets just plug it in and see what happens:
http://rss.framechannel.com//productId=KD9371/frameId=00:23:4D:B8:07:6D
Look, its an RSS feed of what my picture frame is showing now! I can send this nice URL to everyone I know so they can look at all my private content I have configured for this device. Now, under no circumstances would I recommend changing the last digits of this MAC address frame ID to another number….because you would get someone else’s picture frame content. Why would you want to do that?
UPDATE: 1/6/2010 It is quite apparent that FrameChannel is no longer interested in providing the public RSS feature to its customers. As other people have indicated, the RSS URL has been removed from the user interface. In addition, they are filtering by User-Agent. I am sure that will put an end to sharing of my RSS feed of my frame because User-Agents are impossible to fake. No word if they intend to update firmware for the “AVOS/1.1″-based device.
Slashdot has coined this feature documented on the web interface a “major privacy/security issue” and some discussion has ensued on the forum: http://yro.slashdot.org/story/10/01/05/0413228/Kodak-Wireless-Picture-Frames-Open-To-Public.

The member badges have been cut. If you signed up for a membership in 2009, your very own, uniquely identifiable badge is now ready for you to pick up.
Yes, there is a secret contest. I’ve probably said too much.
It’s New Year’s Eve, and what am I doing? Hanging out in the best basement EVER. And getting lured into blogging for Metrix cuz, well, I hang out here too much anyway, and I might as well write about it. So while everyone else is getting drunk waaay too early in order to be obnoxious well before midnight, I’ll be here watching Helen Cook make laser-cut puzzle boxes and while I create tiny adorable purses out of upholstery fabric samples. And blogging about it.
Jen Power is your friendly neighborhood geekcraft blogger, as well as the author/pontificator of Life on the Hill and Other Stories
I sent an email out to the chef list today about releasing an unofficial Chef 0.7.16 fork to tide some of us over until 0.8 ships as Opscode does not plan any more 0.7.x releases. I use this internally at $job and pushed it out to github by request. I have no plans to push another release but will if there is demand internally or externally. This includes the security patches in 0.7.16 and a couple bug fixes:
* [CHEF-706] - mount provider fails to mount samba/cifs devices (Device does not exist)
* [CHEF-634] - UI fails silently when unable to save node
* [CHEF-659] - UI expands some escaped characters from JSON, then fails to encode them again
You can grab this tree from github, or use the debs built in my launchpad PPA.
Rather than making additional blog posts as the build for Chef 0.8 alpha has progressed, I’ve been updating this gist each time I test another build cycle. My original instructions are here. There is another blog posts here and some instructions for running under screen as well.
The Chef site starts out with, “Chef is a systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.” There is an important point hidden in that description; Chef is not a CM tool. Of course it can be used as one, and many do, but from its beginning it has been leveraged by others such as Engine Yard inside of their own infrastructure. You can safely bet it will be an integral part of the Opscode platform when released as well.
While I was off dealing with my startup’s acquisition this fall, a chef user wrote knife. It was a command line client for interacting with a chef server. An impressively simple prototype, made possible and powered by the chef libraries and API. This has happened before with chef; for instance a while ago in the 0.6 era, an OS X GUI client called Casserole was written by another chef user with an itch to scratch. However, something has happened with knife that is interesting enough I’d like to specifically point out; it got mainlined and heavily expanded.
This happened for a handful of reasons. For one, it was simply a great idea. The kind of user who would be attracted to chef as a tool is very likely to be a power user who would rather not spend their time clicking around a graphical interface. It’s much easier to script a command line tool where needed, passing data in and out for quick hacks to your infrastructure. The folks at Opscode saw this, agreed, and set out to add full functionality to it for the upcoming 0.8 release.
What I think is most important is the planning a full API from the start. From hearing Adam talk about other tools being “first-class citizens” in chef-land, and knowing his experience writing iClassify as an early open source external node tool for puppet, I know this design was intentional. Using iClassify to tell puppet about your nodes was great, but puppet assumed that you only wanted this tool to classify nodes in the way puppet thought about nodes. Consequentially, when you wanted to to use data in iClassify about your nodes to make decisions about your infrastructure on the fly, you were forced to do it in templates. This created the expected repetition of loading the iClassify library and accessing iClassify in many templates, but also required you at times to do some fancy footwork to get data between templates when you really wanted puppet to know about the data itself.
Reductive Labs recently announced a dashboard for puppet. I was hoping this meant those barriers had been removed. It certainly creates really nice graphs from your puppet report data. However from the README it looks like you’re still pushing limited data into puppet using the external node interface. Reductive is going to have to expand this interface greatly if dashboard is to have any meaningful node integration benefits that we didn’t already have two years ago with iClassify.
Just as you can see some concepts from other configuration management tools in chef, you can see parts of iClassify. It was a great start and it was disappointing that the puppet community didn’t engage it further. Perhaps it was simply before its time, but I believe it was that there were too few doors into puppet-land to let you really take advantage of and grow external tools.
I think this was the lesson that Opscode learned, and consequently chef was born with an API. With it we can accomplish nearly anything we dream up. What is most exciting about this is that we can do whatever everyone else dreams up. I can’t wait to see what that is.

If you’ve been around the shop lately, you’ve probably heard us mention that we’re going to build Johnathan Wards’ MTM PCB Mill. We’ve been making good progress.
We don’t have a shopbot, and our first attempt at getting some parts made on a neighbor’s CNC didn’t work out, so we lasercut our assembly out of 6mm plywood and did a bit of glue work to get a nice solid frame. This not only looks nice, it gives us a lot more control over how we can build the thing. Turns out the first failure was a good thing because other than the initial body, our mill isn’t going to be very much like the original at all. Which is of course the point of Open Source Hardware. It’s not really a blueprint, it’s a starting point.
We’ve been really interested in is seeing if we could build the mill without going through the MTM BOM. Sure, it’s reasonable pricing if you’re looking at CNC mills, but buying 108 bucks worth of Frelon lined linear bearings when we already have a bunch of tools that make tools seems silly. We can make linear bearings. We have a makerbot and a spool of HDPE (slippery plastic for the uninitiated). Add to that we have printer rods in the Junk Box, extra threaded rod from our second makerbot build, stepper motors, drivers, arduinos, DC motors, and pounds upon pounds of screws and nuts. We started looking around the shop and figured out we can make this thing with stuff we have laying around. Once it’s built, we can use it to make itself better too!
Tonight was all about hacksaws and printing with HDPE for the first time. It was a bit of effort, but we got all our rods cut and built an X axis that slides pretty smooth. We also got some ideas for the next round of cuts, which we should be able to fit in the scrap from the first round. We’ll keep you updated on our progress, and publish our plans so you can make what we do, and change what you want.
Once it’s done, we’re going to put this robot to work. Come in and make surface mount PCBs in a little under an hour.
If you’re wondering how to make boards (we sure are), we’ve started up a wiki page on the toolchain that the Center for Bits and Atoms uses. It’s pretty cool stuff.

Here at Metrix, we like being crafty- and not just in the clever sense.
Come join us on Tuesday evenings for crafting of all varieties. Take advantage of the laser cutter and makerbot for the base structure for multi-media projects (see decorated tree: laser cut tree, knit decoration, makerbot star). And remember, the bottomless toolbox can include a sewing machine or surger. You can even use the laser cutter to cut felt, fabric, paper, and more!
So, bring your knitting, crocheting, quilting, sewing, painting, origami, jewelry making, … and join us for an evening of awesome creation.
Retrieving the COM class factory for component with CLSID {BA785E28-3D7B-47AE-A4F9-4784F61B598A} failed due to the following error: 80070005. (Microsoft.SqlServer.ManagedDTS)
Trying to access SSIS (DTS) on Microsoft SQL 2008 with SSMS (SQL Server Management Studio) on Microsoft Windows Server 2008 gave the above error. Trying to create a maintenance plan provided the same error, since it uses SSIS. There were indications online that I should try running SSMS with elevated permissions using the ‘Run as administrator’ option on the context (right-click) menu, however that provided a “The parameter is incorrect” error on startup. Eventually I discovered that the disk that the SQL tools were installed on did not have default (R+X) permissions to the local users group. Once I added this group, I was able to connect to SSIS and create a maintenance plan without issue.

Metrix Create:Space is about building, learning and discovery. What have we discovered? People love Workshops.
The Introduction to Electronics workshop this Sunday filled up last week, and even before we finished writing this blog post, we got a signup for January.
We know you have a thirst for knowledge, and flashing LEDs are just the beginning, so we’ve added Using Transistors to our lineup. A quick google search shows that an Intel Pentium D has 230 million transistors, but do you even know what that means? Come to Using Transistors and find out just what all the fuss is about. We wont come close to building a CPU, but we’ll show you how to build switches, logic gates, and even a simple amplifier circuit.
For those of you that want something a bit more permanent than breadboard buildouts, we’ve got soldering and advanced soldering in the pipeline, but are still scheduling times. Watch the blog and twitter for updates.
Using Transistors
Sunday, January 10 2010
2-4:30
Cost: $40
We’ll explore transistors, what they’re used for, and how to use them. After an overview of the function of transistors, we’ll spend the class making some simple switches, logic gates, and an amplifier.
Required Equipment: Everything we gave you in the Intro to Electronics class. (You can buy this stuff here if you don’t have it already).
Breadboard
Multimeter
LEDs and resistors
9 V battery and connector
Introduction to Electronics
Thursday, January 14 2010
6:30 - 9
Cost: $40
This workshop covers everything you need to know to get started in electronics. We’ll start from the basics of electricity and work our way up to using integrated circuits. You’ll leave the class with some simple components and the knowledge to use them.

Christmas is here, and there’s no better time to make one of a kind objects for yourself or the ones you love.
We’ve been thinking about the pricing on the Makerbot, and now that we have two, we’ve decided to slash it in half.
Makerbot 3D Prints are now $0.50/minute, material included at the walk-in rate.
All previous thingiverse and member discounts apply, and we’ve added a fun bonus. If you’re the FourSquare mayor of Metrix Create:Space, you get half off on 3D Printing, and we count that AFTER the other discounts. You can make a virtual object a physical one for $0.15/min!
What does this mean?
If you print a large version of Dominic’s Skull (yes, we know it’s not very christmas-ey, but if you’ve been to the counter, you’ve seen it.), it takes 44 minutes. That’s $17.60 (20% discount because it’s on thingiverse)
If you are a member, it’s $13.20 (20% discount for members). If you’re the mayor, it’s $6.60
What if you can’t find something on Thingiverse?
Make something and upload it!
If you need help with creating something, you can always ask for help too. We love making things and want to help you make your creations happen. That’s why we’re here.
On Ubuntu 9.04 (jaunty) I had been generating and setting the root password in a bootstrapping script using:
# Generated MD5 encrypted password
/usr/bin/openssl passwd -1
# Set the password
/bin/echo 'root:ENCRYPTED_PASSWORD' | /usr/sbin/chpasswd -e
With shadow 4.1.4, chpasswd now uses PAM, and has dropped the -e option used above, as well as the -c option that I’d used to generate sha512 encrypted passwords. You’ll want to use mkpasswd from the whois package (yeah, weird) for that now, such as:
mkpasswd -m sha-512 -s
The password can be presented to useradd / usermod in encrypted format, such as:
/usr/sbin/useradd -m -p 'ENCRYPTED_PASSWORD' -G admin -s /bin/bash toor

One of the most satisfying uses of tools is making new ones.
Welcome to the world Milo. Now you get to make things.

Normally the vending machine is a random grab, but since it’s the holiday season and we’re big fans of both awesome and cheap, it’s probably worth noting these two new $10 additions.
The Bliplace Kit and the sack-o-duino.
You may have seen the Bliplace on hackaday a while back, it’s Tanjent’s awesome wearable sound activated toy, but the sack-o-duino is something we cooked up here. We couldn’t find any breadboard compatible arduinos for $10, so we came up with this. A bag of parts, ready to drop into a bread/proto board that will give you pre-flashed arduino on the cheap.
Included in the bag is:
The Create:Space will be closed for Thanksgiving. We’ll be back for all your maker needs on Friday.
When we open again on Friday, we’ll have a new feature for you: the junk box. Most great tinkerers and artists that I’ve met have a junk box. The junk in that box isn’t useless stuff, though. This junk is there for inspiration and for random materials. I see people looking in their junk box when they need something, but don’t know what it is. I see them using the junk box when they don’t know what there next project will be. It’s a great place to get ideas and to see old things in a new way.
With this in mind, Black Friday is the the debut of the Create:Space’s new Junk Box. This is a ratty old card board box filled with magical treasures that are yours for the taking. Here are the rules:
1) If you bring something for the box, you can take something for free.
2) If you want something without trading, it costs a dollar.
3) If you want to leave something without trading, it costs a dollar.
4) No hazardous materials.
The box already has lots of cool things. Come see if there’s anything to inspire your next great project.
Theres push to get Chef 0.8 out the door because we’re all anxious for its awesome list of features and fixes, so we’re all hunkering down on fixing bugs. Scott Likens has similar notes and theres some more to be found in Dan Deleo’s 08boot bootstrap recipe. This should help get you going.
On a fresh Ubuntu Karmic install (a VM makes this easy of course):
# Add the Canonical Ubuntu ‘multiverse’ repository for Java.
sudo vi /etc/apt/sources.list # add multiverse to your ‘deb’ lines if it is not there
sudo apt-get update
# Start Chef Gem bootstrap with some notes
# note that I don’t like to install rubygems from source and use the packages instead. this adds a step or two.
sudo apt-get install ruby ruby1.8-dev libopenssl-ruby1.8 rdoc ri irb build-essential wget ssl-cert rubygems git-core -y
sudo gem sources -a http://gems.opscode.com
sudo gem sources -a http://gemcutter.org # for nanite
sudo gem install ohai chef json –no-ri –no-rdoc
We now have enough chef to bootstrap ourselves
# Create ~/chef.json:
{
"bootstrap": {
"chef": {
"url_type": "http",
"init_style": "runit",
"path": "/srv/chef",
"serve_path": "/srv/chef",
"server_fqdn": "localhost"
}
},
"recipes": "bootstrap::server"
}
# End of file
# Create ~/solo.rb:
file_cache_path "/tmp/chef-solo" cookbook_path "/tmp/chef-solo/cookbooks" # End of file
mkdir /tmp/chef-solo
cd /tmp/chef-solo
# Get kallistec’s 08boot bootstrap cookbook
git clone git://github.com/danielsdeleo/cookbooks.git
cd cookbooks
git checkout 08boot
# Bootstrap chef
sudo /var/lib/gems/1.8/bin/chef-solo -j ~/chef.json -c ~/solo.rb
# If the bootstrap hangs for more than a minute after “Installing package[couchdb] version 0.10.0-0ubuntu3″ then hit ctrl+c and run again
Now prepare to install the development versions
# install some development tools
sudo apt-get install rake librspec-ruby -y
sudo gem install cucumber merb-core nanite jeweler uuidtools
# install missing dependencies
sudo apt-get install libxml-ruby thin -y
# get chef from the repository
mkdir ~/src
cd ~/src
git clone git://github.com/opscode/chef.git
cd chef
rake install
# remove the old version of chef
sudo gem uninstall chef -v0.7.14
# patch up some runit paths
sudo sed -i s_chef-_/var/lib/gems/1.8/gems/chef-solr-0.8.0/bin/chef-_ /etc/sv/chef-solr*/run
# allow access to futon for development purposes (http://IPADDRESS:5984/_utils)
sudo sed -i ’s/;bind_address = 127.0.0.1/bind_address = 0.0.0.0/’ /etc/couchdb/local.ini
sudo apt-get install psmisc # for killall
sudo /etc/init.d/couchdb stop
sudo killall -15 couchdb # stubborn
sudo killall -15 beam.smp # yup
# shut it all down
sudo /etc/init.d/chef-solr stop
sudo /etc/init.d/chef-solr-indexer stop
sudo /etc/init.d/chef-solr-client stop
sudo /etc/init.d/chef-client stop
sudo /etc/init.d/chef-server stop
sudo killall -15 chef-server
Build some data and start up Chef
# start up the integration environment
cd ~/src/chef
sudo rake dev:features
# this will create a database
# now hit ctrl+c
sudo mv /var/lib/couchdb/0.10.0/chef_integration.couch /var/lib/couchdb/0.10.0/chef.couch
sudo chown couchdb:couchdb /var/lib/couchdb/0.10.0/chef.couch
# start it all up
sudo /etc/init.d/couchdb start
sudo /etc/init.d/rabbitmq-server start
sudo /etc/init.d/chef-solr start
sudo /etc/init.d/chef-solr-indexer start
sudo /etc/init.d/chef-server start
Start the web server
# the web server is now a separate application and uses the API to reach the server
sudo cp /tmp/chef_integration/webui.pem /etc/chef
cd ~/src/chef/chef-server-webui
sudo /var/lib/gems/1.8/bin/slice -p 4002
Using knife
From the user interface you can create a client keypair to use knife from the web interface. I recommend using ‘view source’ to copy the private key, and remember to save it without any leading whitespace and run knife like so:
OPSCODE_USER=’btm’ OPSCODE_KEY=’/home/btm/btm.key’ /var/lib/gems/1.8/bin/knife
If you can’t get it to work, you can always use the webui’s key:
sudo OPSCODE_USER=’chef-webui’ OPSCODE_KEY=’/etc/chef/webui.pem’ /var/lib/gems/1.8/bin/knife
Hopefully that is enough to get you going. Jump on #chef on irc.freenode.net or join the chef list if you have any problems. Tickets/bugs/features are tracked in JIRA, and all sorts of other useful information is in the wiki.

What: Introduction to Electronics
When: 2009, December 13 2-4:30
Where: Metrix Create:Space
Who: Morgan Redfield, you, other interesting people
Why: electronics is a shockingly good time
How: sign up at the counter
We’re scheduling another Introduction to Electronics for December 13. The last workshop was so great, we decided to make this one half an hour longer. The workshop is from 2 to 4:30, and will cover everything you need to know to get started in electronics. We’ll start from the basics of electricity and work our way up to using integrated circuits. Just like last time, the $40 fee covers the workshop and necessary materials.
For those of you who came to the last class (or already know this stuff from somewhere else), we’ll be having another class on transistor basics in January. Stay tuned for more information.
About the Instructor:
Morgan Redfield has a degree in electrical engineering from the University of Washington. He’s been working with electronics for eight years, and has designed and built USB devices, an EEG detector, and a modem. He enjoys long walks on the beach, robots, and cyberpunk novels.
I recently had to install HP’s System Management Homepage (SMH) on Ubuntu Karmic (9.10) on hardware I had never touched for Hosted Operations to monitor. The hardware wasn’t my choice, but I’m indifferent to it. The operating system is my choice. Apparently they support Debian Lenny (5.0) and Ubuntu Jaunty (9.04), but ours was too new. However, while I commend them for building debs, they’re a little sketchy and broken. Granted, I wasn’t deploying to a supported release, but nonetheless. Here’s a link to download options for the DL360 G6, that may never work because the HP site isn’t meant to be linked to.
Downloading the provided Ubuntu Jaunty iso and mounting it produced a standard debian repository tree for both lenny and jaunty.
sudo mount -o loop HP_ProLiant_Value_Add_Software-8.25-19-12.iso /mnt
I added these packages to our local respository, but you can copy them to every server and install them by hand using ‘dpkg -i DEB’ instead of ‘apt-get install PACKAGE’. You’ll end up installing all of them really. The HP SMH package is mostly an apache fork and a ton of included/vendored libraries.
You’ll log in to HP SMH on port 2381 over HTTPS. As usual, if you get a data stream, you are likely connecting over HTTP by accident. By default a user must be in the ‘root’ group. You can use ‘vigr’ to add another user to the root group as you usually don’t have a root user on Ubuntu. You can edit ‘/opt/hp/hpsmh/conf/smhpd.xml’ and put another group in the ‘admin-group’ element. I put ‘domain-admins’ there because we use likewise to authenticate against a windows domain. I couldn’t figure out how to have groups added via the web interface to save, but that really was a hoop anyway since I wanted to push the configuration files out via configuration management.
I don’t know if HP SMH reads snmpd.conf to figure out how to connect back to snmp locally, but I had to initially run ‘/sbin/hpsnmpconfig’ to generate a few wizardy lines in /etc/snmp/snmpd.conf’. I later pushed this out via configuration management, but if you check that script it does create an “answer file” which looked like a bunch of variables you could export before you run the script non-interactively.
HP SMH gets its information from the HP SNMP agents, so if you log in and don’t see any data, it can not contact the SNMP source. You should see a page like this. Because so many libraries are shipped in the debs rather than being required, libraries are the most common source of issues. I had to restart ‘hp-snmp-agents’ after installation, getting this error on the initial startup in ‘/var/log/hp-snmp-agents/cma.log’:
libcmacommon.so.1: cannot open shared object file: No such file or directory
Another way to say all of this is via my chef recipe:
# # Cookbook Name:: hpsmh # Recipe:: default # # Copyright 2009, Webtrends # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # Restart hp-snmp-agents later. it is buggy and has issues with its own libraries when started on package installation service "hp-snmp-agents" do action :nothing end package "hp-health" package "hpacucli" package "cpqacuxe" package "hp-snmp-agents" do notifies :restart, resources(:service => "hp-snmp-agents") end package "hp-smh-templates" package "hpsmh" service "hpsmhd" do action [ :start, :enable ] end service "snmpd" do action [ :start, :enable ] end remote_file "/opt/hp/hpsmh/conf/smhpd.xml" do source "smhpd.xml" owner "root" group "root" mode 0644 notifies :restart, resources(:service => "hpsmhd") end remote_file "/etc/snmp/snmpd.conf" do source "snmpd.conf" owner "root" group "root" mode 0644 notifies :restart, resources(:service => "snmpd") end
As I look back at growing up in a small town, there was a surprising lack of everyone wanting to move to the city as soon as they could. Perhaps that was because there is not a recognizible city anywhere near coastal eastern Maine. Despite, there still was a lingering belief that people were different elsewhere. Granted, they’re different, but in the same ways.
The majority of those I consider my colleagues have not worked for the same companies that I have. While our projects are of importance to our companies, it is usually our passion and not our employment that drive them. Some days I feel certain this is commonly understood, but it only takes a personal blog policy or a social media marketing drive to remind me that I’m actually isolated on an island of like-minded individuals hiding under the radar like stowaways. You can’t escape culture, but you can find different ones.
In Paul Graham’s recent essay about Apple, he markedly warns of mistreating the developers of your platform, lest they form a distaste for your brand altogether. Before I read the essay I was feeling quite sure that it was commonly understood today that developers are your greatest asset. Perhaps more valuable than even your big idea. Likely due to being mentioned by name in the essay, I was reminded of the great Google interview algorithm; commonly known for streamlining their processes at the cost of the interviewee. This seems to only alienate the prospect, unless they happen to enjoy passing tests over creating value. As the strengths of mass-collaboration become more accepted, it strikes me odd that on the whole we’re still missing that it is made up of individual human talent.
The product of our creativity is no longer hidden behind towering walls of corporations. We are global citizens innovating for the sake of it. You won’t see this on a college transcript, in ones knowledge of inodes, or in a six month product road map of release stability. The pieces are not exactly hidden either. I’m tempted to point out how slowly we’re changing by example with the United States’ difficulty transitioning from educating factory workers to innovators now that globalization has helped much of the the rest of the world catch up as industrial nations. However I can’t help but remember that we’ve gotten this far on our own.
Despite reminding us that we are living in a small town, the murmuring you’ve heard from pundits and rabble-rousers but could not make out sounds perfectly clear here. We are not going to wait for you to get it. The catch is that we no longer need to move to the city, because we’re building it every day. Coming?
Recently, Google Maps has started returning search results for townships (probably since Google’s change to being their own geodata provider). As I love tiny dots on the map and obscure entities, this got me excited. In some cases, the township name will even show up as a dot with a link to the township’s Wikipedia article. I think this only happens when the township also has a town with the same name inside it. Townships can be found by searching by whatever uniquely identifies them, e.g. Chilgren for Chilgren Township, Lake of the Woods County, Minnesota, Laona, MN for Laona Township, Roseau County, MN, or Lincoln, Marshall, MN for Lincoln Township, Marshall County, Minnesota.
The data for these features is coming from the USGS’s Geographic Names Information System (GNIS) database. I’ve put up a unique interface that combines that database with a few others, including databases of Canadian locations, zip codes, railroad stations, and telephone switch locations, at afiler.com/dots/. Want to see the list of every named place in Washington State? Or every place in the US and Canada named Springfield? Or even every place named Springfield in Georgia? The GNIS database lists 9 Springfields in Georgia, though only one is an incorporated city. The rest are so small, most don’t even get their name on Google Maps at any zoom level.
Dots lets you dig into extremely obscure place names, and this lets me dig up other secretly searchable Google Maps place names. Townships are called minor civil divisions by the US Census and some form of MCDs exist in 28 states. MCDs have some sort of official government function (though often small) — they include urbanized areas (cities, towns, villages, boroughs), townships, New England towns, parish governing authority districts (Louisiana), magisterial districts (Virginia and West Virginia), election districts/precincts (parts of Illinois, Maryland, and Nebraska), supervisors’ districts (Mississippi), and “catch all” entities, when nothing else applies (assessment districts, gores, grants, plantations, purchases, road districts, and unorganized territories). I’m still exploring what MCDs, other than townships and cites/towns/villages are searchable in Google Maps.
The other 22 states are divided into census county divisions instead of MCDs. These were created with the cooperation of the census and the state governments and may only be used for census tabulation or may also be used by county governments, for example, as electoral districts. MCDs are also are searchable in Google Maps. That means that you can find the census division of Early Winters in Okanogan County, Washington by searching for Early Winters, Okanogan, WA (or just Early Winters, WA, or even just Early Winters).
In Canada, Google Maps uses the census division as the county is in the US. Census divisions correspond to a county or county-like entity in most provinces where those exist. This includes BC (regional districts and municipalities), Nova Scotia, New Brunswick, and Prince Edward Island (counties), Ontario (upper-tier municipalities: counties, districts, regional municipalities, cities) and Quebec (municipalités régionales de comté). Elsewhere, census divisions do not correspond to local government. Newfoundland and Labrador, Nunavut, and the Northwest territories have named census divisions. Census divisions are simply numbered in Alberta, Manitoba, Saskatchewan (even though Alberta has some entities named “County”, they’re municipal districts and are treated like the rural municipalities in Manitoba and Saskatchewan). (Early in its history, Manitoba also had counties, though the names only persist in land records and in the name of the Dennis County Planning District. I was able to find the names and locations of counties from the 1880s in Manitoba statute books on Google Books, and used that to write up a Wikipedia article, a list of historic counties in Manitoba.)
Searching for Springfield, Canada will get Google Maps to display its most-expanded name (other times they’re shortened to City, Province or City, County, Province). Results include “Springfield, Division No. 12, MB” (the RM of Springfield, a local government unit, inside a nongovernmental census division), but also “Springfield, Woodstock, Carleton County, NB”, (a named place inside Woodstock Parish in Carleton County), and “Springfield, Swift Current No. 137, Division No. 8, SK” (a named place inside a rural municipality, inside a nongovernmental census divisions). The results from Google Maps appear mostly consistent with a search for Springfield at Statistics Canada.
For even more obscure geodata info, check out the Census’s list of county subdivision types, or their maps of MCDs and CCDs, by state. There’s also an even more obscure geographic subdivision not used by the census, the hundred, in Delaware. The hundred once also existed in the UK (where some Local Government Districts took the name of a hundred), and Australia (where they’re still used in land descriptions as as one of the cadastral divisions of Australia).
I have a number of Windows Server 2008 hosts running under KVM in a remote datacenter and using virt-manager to access libvirt+kvm over SSH for a remote console was disappointly slow, so I set out to try libvirt+kvm over SSL/TLS for comparison. In the process of which I had to upgrade virt-manager to 0.8.0 on my workstation to remove a VNC lag issue in the viewer built into virt-manager on karmic. In the end, I’m quite happy with the end result.
The available documentation for configuring TLS authentication for libvirt is a little daunting. My chosen references were these documents for libvirtd and virt-manager.
First create two certificates, one with the hostname for your server (SERVER.EXAMPLE.ORG below) and one for your workstation (CLIENT.EXAMPLE.ORG below), setting the fully qualified domain name (FQDN, the hostname including the domain name) as the Common Name, or CN, when prompted.
openssl genrsa -des3 -out host.example.org.tmp
openssl rsa -in host.example.org.tmp -out host.example.org.key
rm host.example.org.tmp
openssl req -new -key host.example.org.key -out host.example.org.csr
Providing the CSR to your local CA should present you with a signed certificate (host.example.com.cer). Be sure it is in Base64 format (text) and not DER (binary) if interacting with a Microsoft CA. If you are unfamiliar with this process, you’ll want to go and read up a bit first, it’s a useful hoop to learn to jump through.
# Libvirt Server
mkdir -p /etc/pki/CA
mkdir -p /etc/pki/libvirt/private
mkdir -p /etc/pki/libvirt-vnc
cp CA.EXAMPLE.ORG /etc/pki/CA/cacert.pem
cp CA.EXAMPLE.ORG /etc/pki/libvirt-vnc/ca-cert.pem
cp SERVER.EXAMPLE.ORG.key /etc/pki/libvirt/private/serverkey.pem
cp SERVER.EXAMPLE.ORG.key /etc/pki/libvirt-vnc/server-key.pem
cp SERVER.EXAMPLE.ORG.cer /etc/pki/libvirt/servercert.pem
cp SERVER.EXAMPLE.ORG.cer /etc/pki/libvirt-vnc/server-cert.pem
# Virt-manager client
# notice the lack of dashes in clientcert.pem
mkdir -p /etc/pki/CA
mkdir -p /etc/pki/libvirt/private
mkdir -p /etc/pki/libvirt-vnc
cp CA.EXAMPLE.ORG /etc/pki/CA/cacert.pem
cp CA.EXAMPLE.ORG /etc/pki/libvirt-vnc/ca-cert.pem
cp CLIENT.EXAMPLE.ORG.key /etc/pki/libvirt/private/clientkey.pem
cp CLIENT.EXAMPLE.ORG.key /etc/pki/libvirt-vnc/clientkey.pem
cp CLIENT.EXAMPLE.ORG.cer /etc/pki/libvirt/clientcert.pem
cp CLIENT.EXAMPLE.ORG.cer /etc/pki/libvirt-vnc/clientcert.pem
If libvirtd fails to start (which it likely will without these fixes) you’ll see errors in ‘/var/log/user.log’ such as:
Nov 17 17:08:09 lasvirt01 kernel: [69476.008895] type=1503 audit(1258506489.178:77): operation=”open” pid=17104 parent=1 profile=”libvirt-600d5dae-6373-107e-5f1b-5010aff3ffed” requested_mask=”r::” denied_mask=”r::” fsuid=0 ouid=0 name=”/etc/pki/libvirt-vnc/ca-cert.pem”
You’ll need to patch up the apparmor definitions a little:
By default libvirt and VNC don’t allow remote connections and rely on unix sockets for connections. You’ll need to enable
Add a new connection, choosing ‘QEMU/KVM’ as the Hypervisor and ‘Remote SSL/TLS with x509 certificate’ as the Connection, with the full hostname of the remote server and choose Connect. Otherwise operate like you used to.
I had an issue where the display was lagging every view seconds on the VNC session via virt-manager, but when I connected directly using virt-viewer (virt-viewer –connect qemu://HOST.EXAMPLE.ORG/system GUEST_DOMAIN) there was no lag. Interestingly, when you kept both open at the same and ran a command like ‘ls -lR /’ you could easily see the difference. To correct this, I had to backport virt-manager=0.8.0-2 from debian sid, including ‘virtinst’ and ‘libvirt’, the latter requiring a change of ‘libxen3-dev’ to ‘libxen-dev’ in the Build-Depends. This is a somewhat complicated task for those unfamiliar with debian packaging.
I found most of my apparmor related errors by running ‘tail -f /var/log/user.log’. A lot of documentation recommended uncommenting ‘vnc_listen’ in ‘/etc/libvirt/qemu.conf’ but I found that the aforementioned listen xml attribute in the guest configuration overrode that by looking at the ‘-vnc’ options passed to kvm by libvirt by running ‘ps ax’. I’ve had libvirtd on the host segfault a couple times when connecting, perusing the Changelog in the version of libvirt I backported on my desktop noted some fixes that may be relevant to that.

Today’s Introduction to Electronics workshop was a blast. I was surprised by the turnout, since I hadn’t expected the class to fill up. Lots of people were interested, and we even had to ask some people to come to next month’s class.
The students spent the two hour class pushing electrons around and experimenting with different ways of lighting LEDs. There were lots of interesting questions and playful experimentation, at the low cost of a few burned out LEDs. I had a great time teaching the workshop. Judging from the requests for a follow up class, the students had a great time too.

Tomorrow is The Blitz Capitol Hill Art Walk, and we’ve got two great artists presenting. Jessie Heaven Lotz, who’s photographs you may have seen hanging over the past month, and Amy Johnston, with her teeny tiny army of robot jewelry.
More information is up on the wiki. Maps and fliers of the entire artwalk are available at Blitz.

Metrix Create:Space will be holding its first workshop on Sunday, November 15th, 2-4PM
Introduction to Electronics
Ever wondered how your T.V. or computer works? How about your cell phone. Come find out the basics behind these complicated devices at our Introduction to Electronics workshop. You’ll learn what current and voltage really are, how to read a circuit diagram, and how to put together your own small projects using discrete and integrated components.
$40 includes instructor and all parts and equipment.
Space is limited, sign up now!
The nonexistent Argleton in Lancashire, England
From the Telegraph in the UK: “Argleton, a ‘phantom town’ in Lancashire that appears on Google Maps and online directories but doesn’t actually exist, has puzzled internet experts.” The photo is from Picasa user Mister Roy, who walked and photographed the nonexistent place in February 2009.
I’ve seen hundreds of Argletons in North Dakota. Of course, the difference is that North Dakota’s Argletons usually had, at some point in the past, a bit more concrete existence — though not necessarily that much more. Some of the places I photographed were ever only a railroad siding or post office. If they were big enough to end up on USGS topological maps in the 1970s, they’ve now secured a permanent digital existence thanks to the place name database distributed by the US Board on Geographic Names.

Happy Halloween!
We are part of the CHCC Halloween Walk, and will be passing out candy to costumed revelers between 6 and 8PM tomorrow.
Trick or Treat!
It’s no secret that I think configuration management is epic. I spent yesterday hopping around the office in excitement due to Opscode’s alpha announcement of their new Cookbooks site. This is exactly the next step needed in the CM community. Shortly thereafter, while talking with another developer about how awesome Cookbooks is, he quipped about it being second in awesome to chef itself. I argue that chef exists for cookbooks, not the other way around. It was later said “Chef is the tool, cookbooks are the art”. Cookbooks is all about community.
Chef is a tool, and an open-source one, so it does have a community. A vibrant one at that; a recent ohloh factoid claims “This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh.” Cookbooks is the other way around, it is a community first and at tool second. Cookbooks has already been compared to github and launchpad (with PPAs), because like these sites it brings people with a common task together around a tool like git or ubuntu. It has been noted that every configuration management project needs something like Cookbooks, and I agree.
The community that builds around Cookbooks will be a vanguard of agile system administrators looking to reduce their undifferentiated heavy lifting. These include the people who recognized that it is their product that they are selling and no longer their infrastructure, and took up cloud computing as a result. They will soon find that the configuration management community will help them continue to spend less time reinventing the operations wheel, and more time innovating it. Cookbooks will make it easier to share infrastructure-code with like-minded individuals and is the next step beyond github and wikis for this material. These models still required concerted effort to share back with the community when you finished up your recipe, but the Cookbooks site and it’s open API stands to change that. We are now poised to leverage the open source model to increase the rise of infrastructure as code.
Brandon had never touched a breadboard or played with electronics until two weeks ago. He got inspired by the vending machine and grabbed a Really Bare Bones Board, FTDI cable, Switched Reluctance Motor, prototyping breadboard and some snacks and started hacking away.
As of tonight (our two week anniversary of being open!) he has a working arduino-controlled single digit split-flap display. He’s uploaded his laser design to the thingiverse, so you can have one too.
Rock on!
I've changed my route, and pretty much destroyed my commute reports. Now, instead of walking 8 blocks to and from work every morning, I've shortened it to two.
I've opened up a shop on Broadway called Metrix Create:Space, and it is for the hackers, crafters, makers and creative types of Seattle. It's on Broadway and Roy, underneath the Deluxe Bar and Grill, and I do hope you'll come check it out.
We have Tools, Tubes, Coffee, Soldering, Laser Cutting, 3D printing, Sewing machines and much much more.
These are my grandparents. They went on vacation to the USSR in 1982. I have to assume the two men in hats to the left are KGB spies. Presumably the closer one is going for the young, hip look. I think the blue jacket my grandpa is wearing was bought at GUM.
There’s a whole reel of slides, some of which I’ve got scanned and on flickr. I’ve also digitized a recording of my grandpa narrating the slides. Once I’ve got all the images, I’ll try to sync up the slides and the audio.

We love Thingiverse. it’s a great spot to go get objects, put objects online to print or cut.
There are a little over 1000 things on thingiverse currently, and it is a great starting point for people interested in creating objects with high tech tools. To see if our little shop can stimulate the thingularity, we’re offering a 20% discount on objects printed or cut at Metrix Create:Space.
We love custom made one-offs, but we’d like to see more things online. Upload your design, or grab one from the thingiverse, and we’ll apply the discount to your machine time. The only catch is that we have to pull the file from thingiverse. Don’t make a derivative and give it to us. You have to contribute to the site.
If you’re a full member of Metrix Create:Space, this brings your discount to 40% on thingiverse objects!
We opened up yesterday and I was so busy I couldn’t blog about it at the time. I have to say, it was awesome to meet neighbors, get some members in the door and get an idea of how this show is going to go.
Thanks to the folks at CHS Blog for getting the word out, and thanks to the SeattleWireless HackNight crew, this never would have been possible without your hard hard work over the past few months.
The Go table turned out to be popular, with people teaching and learning how to play. Dave even showed us his App Engine driven Go game.
I finally got to meet Comrade Bunny, and she did a little write up on Life on the Hill about the grand opening. She also dropped off a flyer for the Seattle Mayoral Candidate Forum (presented by the CHCC), which reminded me I need to put up a bulletin board.
Everyone seems to have loved the vending machine, and there were a couple of arduino projects going on until close. The Hack the Badges still haven’t showed up yet, which is making me think the USPS might have wondered what all the blinking was about and delayed the mail.
Not everyone seems to have loved the espresso bot at first sight, but I think once they start hanging out, they’ll come around. I have been drinking this stuff for a month or two now and although I do love those Vivace lattes, the Vita beans have been doing pretty well by the robot. And you cannot beat the price anywhere on the hill.
It’s time to open the doors for day two, so I’ll stop writing and go do that.
I’ll try to get those lights installed on the tables too.
Windows Server 2008 R2 currently requires the beta version of winpcap, and you need to run the installer in compatibility mode to install it.
There is a lot of buzz in the world of software defined radio, or SDR. White space this, cognitive radio that, but most of that is probably tucked away in some lab somewhere. The limelight has been stolen away from current commercial and experimental uses of the technology today.
What is software defined radio anyway? Traditionally, radios are frequency and application specific. They usually, but not all the time, have a very narrow frequency operating range, and can only do limited amounts of very specific things. For example, your cell phone can only send and receive cellular phone signal. The idea of turning it into a garage door opener with an application at the App Store is laughable. Your WiFi card cannot be told to start receiving TV signals in the UHF band, and your old FM stereo cannot be reprogrammed to start receiving HD digital radio.
However, with SDR, these things start to become big possibilities. Its not so much that there is a demand to do these strange things. There is demand for generic hardware that could be programmed by hackers, small businesses and large companies alike at little cost. Software is something that can be easily changed, hardware is not.
How the heck can you do all the stuff that coils of wire, tank circuits, crystals, and other radio paraphernalia have dominated for the last 100 years? Its actually quite simple.
Radio signals operate at various frequencies, and most of the action occurs around 500KHz-6GHz. A radio frequency is no different than a sound. We already know that we can take a microphone, plug it into a sound card (which converts analog signals to digital signals), and record something. We can even process it, auto-tune it, amplify it, and detect frequency ranges with software you have on your computer. We also have the ability to flip it around, and turn those digital signals to analog ones, and reproduce it using an amplifier and speaker. Audio frequencies are typically between 20Hz and 20KHz, so as long as we take a measurement at least double that, we can safely represent and reproduce the frequency of interest. Thats why CD quality audio operates at 44.1KHz — double the frequency. Some sound cards and media offer 96KHz and beyond. In the land of radiowaves, there isn’t too much going on in this realm, but you could actually connect your microphone jack to an antenna and amplifier and do SDR today.
But that sound card is only good for audio frequencies anyway, what if we took it a step further. What if we could find a really, really, really fast analog-to-digital (ADC) and digital-to-analog (DAC) converter that took samples of information millions of times a second? If we used a 2 million samples per second ADC, we could easily represent an AM radio station of 1000KHz (1MHz). If we had one that did 10 million samples per second, we could represent the time standard station on 5MHz and decode shortwave radio. All we’d need to do is sample twice the rate of the frequency, use some of that FFT software that isolates it to a certain band of frequencies, watch the signal move up and down (amplitude modulation) or side to side (frequency modulation), and we could even send an audio version of it out a speaker–like a real radio receiver.
SDR is a little bit more complicated than that, but it gives you a very good idea on what exactly is going on. We can even use mixers and frequency synthesizers to extend our frequency range of our ADC/DAC to any frequency we want. So now all the ADC/DAC sample rates represent is the size of band of frequencies we can capture at once.
After years of putting it off and keeping an eye on the SDR scene, in particular GNURadio, I decided to see what it was all about. I ordered a USRP 1 from Ettus Research, and a week later, I was the proud owner of a software radio with dual MIMO transceivers that operate between 700MHz-1000MHz and 1.5GHz to 2.0GHz (RFX1800/RFX900).
SDR is highly experimental and has a considerable price barrier that nobody but the most enthusiastic hobbyists would even dream to consider. Even the most simplest setups are well over $1000. However, for any radio hobbyist (in particular, amateur radio operators) or software developer who wants to venture into radio, this is nothing usual. A good amateur radio rig or repeater will cost you this amount or more. Eventually, SDR will become the cheapest form of radio, because the part count is incredibly low, and non-exotic functionality will cost much less. Think of the USRP as an evaluation kit of what SDR can provide, not exactly the production costs if you were to send off your application to the factory today.
SDR, by itself, has a very high learning curve, however, the GNURadio project as mostly corrected this. Infact, you barely need to know anything about radio at all. A newbie could inbox a USRP in the morning, perhaps read a few wikipedia articles about different modulations and radio basics in the afternoon, and have several working examples before dinner. This is mostly due to the fact that not only does GNURadio have great building blocks for developers, it also has a very easy to use set of python modules to get you going.
GNURadio, whether it be C++ or python, involves setting parameters of the components of your radio, telling it how to connect stuff together, and hitting go. To be the most useful, you may want to change characteristics or provide dynamic inputs and outputs as the application runs, but its not required for very basic demo apps.
For example, if you wanted to make an FM radio receiver, you would tell gnuradio what frequency you wanted to receive, and how much bandwidth. Since FM radio only deviates back and forth about 200KHz, 400KHz would probably be enough. Then you would tell it to connect that receiver to a FM demodulator. This decodes the movement in frequency to a movement in amplitude (what us humans can hear and understand). Then you would finally connect it to a speaker. Its only a couple lines of code, there are more details, but you could take an example, change a few pieces of code around, and really do some amazing stuff.
What am I going to do with this thing? Two things: 1) start seeing what i can contribute to the amateur radio community with software defined radio 2) explore OpenBTS, an open source GSM cell site.
Both have great applications for rural and underserved communities, both in the first world and third world in terms of cost. Both also have incredible emergency applications and would be easily configured, deployed, and reconfigured as other needs arise.
This will not be the last word from me in regards to Software Defined Radio. I am actually quite far along with both explorations, and will publish my results so you could also do the same.
One last thing I will point out is, as with any software defined radio experiments, its extremely important not to interfere or hinder existing users in the frequency bands you operate in. I also plan to cover this in detail to help you comply with your local regulations, but its by no means legal advice. SDR on the USRP is a very powerful tool, and care needs to be taken that its output is “clean” and that you do not exceed the very, very small power emissions permitted by FCC (and other) regulations. If you are a licensed amateur radio operator, with proper filtering, nothing more would probably need to be done for experimental radio. Also, if you are interested in operating in other bands, FCC experimental licenses and frequency coordination are not impossible to obtain. I will also provide examples of what others have done to keep things legal. There’s really no need for unexpected visits by angry license holders and enforcement agencies!

Metrix Create:Space is open to the public on 10/15
12PM to 12AM. 7 Days a week.
Tools, Tubes, Laser Cutting, Coffee and 3D printing robots. Capitol Hill. Fuck yeah.

We’ve got some Hack The Badge boards coming up from SF to stick in the vending machine. If you’re interested in some wearable computing power, you might want to pick one up.
We’ve got Twitter, Flickr, a Google Calendar, a Wiki and a tumblr blog. There will probably be some custom webapps that we will need to make. but this seems like the baseline for any new URL. Agreed?
Also, if you’re tagging on flickr or twitter or anything else, use #metrixcreate as the tag.
Best I can tell, there is some functionality missing from traditional etherboot images that you can install on Ubuntu via the ‘kvm-pxe’ package that prevents a KVM guest from booting off of a Windows Deployment Services (WDS) server. Perhaps UNDI or such, it isn’t clear. The guest will accept an DHCP offer, but go no further. Occasionally looking for more offers, it obviously isn’t getting the traditional DHCP options it is looking for and I’m willing to bet that WDS doesn’t recognize it as a PXE client enough to speak up for itself.
Fortunately the etherboot project is alive and well under a massive rewrite coined gPXE, and there is much exciting development going on there, like iSCSI boot support. I tried creating different gPXE ROMs from rom-o-matic for the different NICs that KVM supports and replacing the roms placed in /usr/share/kvm by the kvm-pxe package, but didn’t get very far. I wasn’t sure if I had to match up the PCI id’s that KVM produced with the options on rom-o-matic or not. The e1000 ROM hit the “Too many option ROMS” error, apparently common when your PXE ROM exceeds about 60k. You can toggle different KVM NIC models via libvirt by using ‘virsh edit guestName’ and then adding a “<model type=’e1000′/>” line in the interface section of the guest definition. change e1000 to virtio, pcnet, whatever. There’s a list on the Ubuntu wiki KVM page that may provide you with further help choosing a functional gPXE ROM.
I ended up using the gPXE ISO (gPXE:all-drivers from the first pulldown) and booting off that by placing it in /var/lib/libvirt/images and adding it as an IDE CDROM storage device to the guest. Initially it gave up far two quickly when left to its own devices but I found that accessing the command prompt and running the ‘autoboot’ commant worked for me.