NixOS Install Options

Posted on November 13, 2014 by Daniel

Nix can be overwhelming because it has so many different ways to install software. I’m going to muse aloud about 5 ways to install packages.

System Wide

System wide install is the closest to how other Linux distros handle packages. It’s only available in NixOS, not if you’re running Nix on top of some other distribution. You can download the latest package list and upgrade with nixos-rebuild switch --upgrade. The complete package list is stored in the file /etc/nixos/configuration.nix.

I think this is great — other distros I’ve used over the years haven’t made it easy to see all the packages I’ve requested, without the clutter of all their dependencies. It’s also easy to version control. Finally, NixOS adds options to the boot menu to boot into previous configurations. I haven’t broken my system badly enough to need this yet.

User Profiles

User profiles are the first step into limiting which installed software is available in a given context.

Read more

My First PCB

Posted on May 19, 2014 by Daniel

Today I received my PCBs from OSHPark. This is the first PCB I’ve ever designed, so I’m pretty excited, simple as it is. The board is a revised version of our Berrybasket Raspberry Pi data logging board. Last year, when we used this logger with 5th and 6th graders, we wired the hardware onto an Adafruit permaproto. The picture below shows the fully stuffed prototype and the new PCB without any components.

The permaproto was a good compromise between mechanical robustness and rapid prototyping, but I wouldn’t want to make a bunch that way. So I wanted to get some proper boards made, but between my inexperience and the lack of outside pressure, I kept putting it off. More recently, I realized that I’m eventually going to want PCBs for my keyboard glove, and those are going to be middling complicated. I wanted to try out the process with something simpler, and the Berrybasket design, with just one IC (repeated twice) and some connectors, all through-hole, seemed perfect.

After messing around with kicad for a while, including a full schematic, I ended up laying out the board in Upverter. I really like their Octopart connection, which makes it easy to associate parts on the schematics with their data sheets and purchase info. Having schematic, Gerbers, and BOM all at one URL is great for sharing small open hardware projects, where if documentation isn’t easy, it may not happen at all. All my usual reservations about webapps still apply, of course.

Upverter provides few-click PCB manufacturing also, with some options about the price-time tradeoff. I went with OSHPark because they have good reviews, use a known manufacturer, and were cheaper than the cheapest price at Upverter, with better turnaround. OSHPark recognizes the file naming convention that Upverter uses in exporting Gerbers, so that was easy.

Kicad developers, meanwhile, are working hard on a new, better format for components, and packaging a much more extensive and useful set of standard footprints with Kicad. (OK, I like any format that looks like Lisp.) I’m looking forward to revisiting Kicad when a version with these features makes it into Linux distributions.

pouring from mason jars

Posted on May 4, 2014 by Daniel

A while back I acquired a sippy lid for Mason jars (aka Ball jars, canning jars). I have a lot of Mason jars, and the lid is really cute, but it never seemed terribly practical. I figure when one needs a sipping lid, one also needs a cup that isn’t made of glass. (I suppose I might feel differently if I commuted by car.)

Among other things, some of my Mason jars are full of vodka infusing plums, clementines, ginger, coffee, et cetera. Mason jars are convenient for getting the solids into and out of, but they’re not so great for pouring a shot or less worth. I’m pleased to confirm that the Cuppow makes a great pouring lid.