Category Archives: General

Shapeoko: Part 2

This continues from where I left off in my previous post Shapeoko: Part 1.

I alternated my Sunday afternoon/evening between tackling my grading backlog and building pieces of the Shapeoko. This pattern works well for tapping since they are both exceptionally tedious tasks, but in different ways. Gallery with captions below the fold:
Continue reading

Posted in DIY, Electronics, Entertainment, General, Objects | Tagged , | Leave a comment

Shapeoko: Part 1

My Shapeoko kit arrived from Inventables while I was away at SC.

I’ve been trying to build myself a small CNC milling machine since 2009, and contemplating it for longer than that. It became clear that my original design, however educational, was a dead end sometime last year. I’d been idly watching the Shapeoko project for some time as it had similar aspirations to my design, and a couple months ago I was in a particularly mechanical mood when I saw that a batch had reached enough buyers to be produced, so I bought in for a mechanical kit to mount my existing electronics on.

The Shapeoko community is really excellent, and the kit was designed to be flexible, so I’m starting off with some suggested modifications – I’m using NEMA23 motors instead of the usual NEMA17 on the X and Y axis, because I already had some nice Lin Engineering 130 oz-in NEMA23 motors and the frame can fit them. I’m configuring for dual Y motors, which give more even force across the Y axis, and routing my belts on the outside of the frame, since I needed to buy different hardware for the NEMA23 motors anyway and this particular modification is widely recommended.

There is a gallery to document my first round of assembly below the fold (captions don’t display properly in the RSS feed).
Continue reading

Posted in Announcements, DIY, Electronics, Entertainment, General, Objects | Tagged , | 2 Comments

SC12 Impressions

I’ve got my pictures from the event up in an album in google’s cloud.

Here are the big, cool things I learned on the floor or at the various evening events:

  • Xeon Phi. Xeon Phi everywhere. Intel may have backed off on Larrabee, but the MIC descendants are proliferating quickly, and appear to actually be in use. They really are interesting parts – 60 node Linux x86 SMP box attached to a host system over PCI Express via a network-like interface. Somewhere between a tiny desk-side cluster and a GPU with a programming model you can actually use.
  • The population was much less male dominated than is typical for computing events. This is always a good thing.
  • The average age of attendees also seemed to be down by the better part of a decade.
  • The national labs losing their booths to the government-wide travel restrictions (apparently some folks went junketing in Vegas and it was that bad) changed the feel of the floor. Fewer, but longer and deeper conversations. More open layout, because many of the usual big constructed booths belong to the national labs. Users from the national labs hanging out at vendor’s booths. Not altogether a bad thing, but it was quite different.
  • ARM64 (aka aarch64, aka ARMv8). It is happening. It is odd (64KB pages, etc.). Large companies are being bet on it. We’re talking many billions of dollars, biggest bet since Itanium kind of big. The priority seems to be avoiding the Itanium mistakes, making sure the designs arrive promptly, and making sure software support is ready. Dell is talking quietly, Calxeda is gunning for it, Nvidia was showing (but only quietly) plans, AMD is being pointed to as a likely leader, and ARM was is sitting in their little 10×10 booth along one wall of the exhibit floor looking very pleased with themselves.
  • AMD is dying. The untimely (and vigorously denied) rumor that they hired J.P. Morgan to begin plans to sell part or all of themselves made it look even worse, but they had almost no presence on the floor, and scheduled a tiny booth next year.
  • We talked to a number of networking vendors making interesting things (free-air optical switching, multi-port Ethernet NICs, etc.). Infiniband is so good and so cheap (in a relative sense) for cluster applications right now that everyone else is hunting for an edge. This is a good thing for researchers.

There will be at least one more SC12 post later, when my cube of schwag arrives. The T-shirt harvest was great this year…

Posted in Computers, DIY, General, School | Tagged , , , | Leave a comment

SC12

I will be at SC12 November 10-16, with the Aggregate.org/University of Kentucky exhibit in booth 631.

I will be posting pictures and impressions through at least one of my online presence mechanisms . I fully expect it to be weird this year with a bunch of the national labs pulled out due to travel restrictions, but it should be interesting.

Posted in Announcements, Computers, General, School | Tagged , , , | Leave a comment

I just wanted to make a pointer to this /r/archlinux thread about dropping ConsoleKit support for a systemd-specific replacement, because I think the discussion (that I waded in to) is revealing about how the current “Linux is increasingly un-UNIX-like, and … Continue reading

Posted on by pappp | 1 Comment

Pigeonhole Contamination

I just had one of those “My whole life is a lie!” moments while preparing to teach the CS275 (discrete math) recitation that includes the Pigeon Hole Principle section.
Years ago, I took my basic discrete math course from Dr. Ken Calvert, who notably recieved his Ph. D. from U.T. Austin during the time Edsger W. Dijkstra was faculty there (this will become important in a moment). Dr. Calvert taught us several formulations of the Pigeon Hole Principle, including the traditional

Pigenhole Principle: “if more than n objects are distributed into a set of n compartments, some compartment must receive more than one of the objects.”

the Purified Pigeonhole Principle: “For a non-empty, finite bag of numbers, the maximum value is at least the average value.”

And finally the Refined, Purified Pigenhole Principle:“In any finite set of numbers, the maximum is at least the average, and the minimum is at most the average.”

What I didn’t realize until now is that the Purified Pigeonhole Principle is a Dijkstra-ism, and the Refined, Purified Pigenhole Principle may be unique to Dr. Calvert (or at least some set of people contaminated by Dijkstra).

Dijkstra objected to teaching the traditional formulation of the pigeonhole principle, and lays out his argument against it in EWD980 (for those not familiar, one of Dijkstra’s famous quirks is that he took meticulous hand-written notes, all marked “EWD” and numbered. There are a number of mathematical concepts named for whoever related them to Dijkstra, simply because his notes are the first rigorous written record.) Basically, he claims that the typical form requires explicit instantiation, is an operational formulation (and those are bad), and is a statement that locks the student into its chosen analogy. The PPP formulation is also more general than the traditional PP formulation with less verbiage, and makes the (also correct) contrapositive more obvious. I am not as clever as he was, just go read the EWD. Furthermore, I can’t find any mention of the RPPP online except for on Dr. Calvert’s own pages. Since the RPPP is the PPP with the contrapositive manifestly stated, I suspect the name may simply be to indicate it is a refinement of Dijkstra’s approach to teaching the PP.

…So naturally, I started at EWD980 until I understood it well enough to teach, took some notes, and will contaminate my students with the alternative formulations tomorrow, because it is a better formulation for many tasks, and because EWD is one of those rare people who is generally more correct than the common wisdom. I do think knowing the traditional formulation is important, and easier to apply to a variety of common tasks, but knowing both is better than either.

Posted in Computers, General, School | Leave a comment

ThruNite Lights

ThruNite T10 and Ti flashlights, with a quarter for scale.

I recently decided I wanted a “reasonably nice flashlight”, and discovered that “nice flashlights” are objects of serious obsession. Originally I was planning to just throw something attractive in to an Amazon or DealExtreme order, but then I started reading reviews from EDCForums and CandlePower, and… uh… this happened. The important thing I leaned is a lot of lights have ridiculous tacticool features, like dazzler or SOS blink modes, or design features to improve their use as a Kubotan and damage whatever touches them in a pocket or bag, and set out to avoid such things.

Eventually I found my way to BudgetLightForum where interested people who do not think it is reasonable to drop hundreds of dollars on flashlights reside, and based on feedback there, decided to try the combo deal ThruNite had running to get a AA T10 and a AAA Ti for $30 for the pair.

They showed up today (in nice packaging) and are rather interesting, so pictures and text below.
Continue reading

Posted in General, Objects | 1 Comment

Linux Future

Some time ago I came across yet another angry discussion[1] about systemd, and have been reading and thinking a great deal about the design of Systemd, and what it says about Linux. I’ve come to realize that the strife in the Linux community is because an active and well-funded group of developers who have been driving the direction of various core components are not building UNIX. They are building some other philosophically divergent system on top of the Linux kernel, with roughly the same relationship to UNIX as Plan9[2]. For convenience I’m going to call the non-UNIX environment they’re building FLOS for the remainder of this post (F since the FreeDesktop.org folks, and their backers in the Fedora project, are driving this, L for the Linux kernel, OS should be self-explanatory). I intend this term to be value-neutral[3].

To me, the core of a UNIX system is a philosophical matter. To quote Mike Gancarz’s The UNIX Philosophy from 1994, UNIX has 9 paramount precepts:

  1. Small is beautiful.
  2. Make each program do one thing well.
  3. Build a prototype as soon as possible.
  4. Choose portability over efficiency.
  5. Store data in flat text files.
  6. Use software leverage to your advantage.
  7. Use shell scripts to increase leverage and portability.
  8. Avoid captive user interfaces.
  9. Make every program a filter.

FLOS is a nearly diametrically opposed design, with design concepts like the following:

  • FLOS avoids scripts, and prefers to split tasks into compiled logic interacting with logic-less configuration files.
  • FLOS prioritizes ease of machine manipulablity over human manipulablity.
  • The components of FLOS communicate over D-Bus rather than sockets and pipes.
  • FLOS is built on a core of monolithic programs which attempt to synergisticly manage multiple complex components.
  • FLOS leverages features specific to Linux and ignores portability.
  • FLOS prefers tightly integrated components to generic solutions.

I’m not sure that this is a bad design, but it is most definitely not UNIX or anything like it. I’ve seen some fairly convincing arguments that the FLOS design philosophy has serious benefits, and there are decades of convincing arguments that abandoning the UNIX way is the path to ruin. Systemd is the big realization of the FLOS design, but many projects, especially FreeDesktop projects, have been working this way for some time. I’m going to pick out a couple examples and talk about them under the fold.

Continue reading

Posted in Computers, DIY, General | Tagged , , | 114 Comments

25!

Once again, a year older and largely unchanged.

I sent out another round of Ph.D. applications, got another round of shitty responses, threw my hands up, and took an offer to stay at UK and do a Ph.D. with the CS department here. The dichotomy between how pleased folks at UK seem to be about keeping me and how little interest I got elsewhere is a bit distressing, but I understand how it happened, and UK has been and continues to be amazingly accommodating, so I can’t complain much.

In the coming semester I’m TAing for CS275 (undergraduate Discrete Math course), which lacks many (by which I mean “all”) of the exciting hands-on aspects of EE281 and EE101, but is sophomores (which are generally my favorite to teach), and is a sufficiently presentation-dependent set of material that it has serious potential to be be rewarding. I was asked about teaching any of several things for ECE again after CS picked me up, because apparently people think I know what I’m doing in front of a classroom, which might have been more fun, but I had already committed, and this will certainly be more broadening.

I amazingly failed to get clear of my MS for another year, largely because the lack of medium-range plan pressure supplanted with a bit of a reddit habit made it easy to avoid cleaning out the remaining not-fun bits – things are mostly written and written up, it’s just a matter of sucking it up and dealing with the last few bits and pieces. As I’m finishing that I’m trying to arrange people and resources to just do a Ph.D.-sized project I’ve had in the back of my head for years …but that is a large separate topic.

In perhaps the only really substantive difference, I’m living alone in an apartment instead of in a house with people I’ve known since high school. I’m enjoying being able to impose order on my entire living space, and the greater opportunity to spend time, as a former housemate was fond of phrasing it, free from the tyranny of pants, but there certainly is less built-in variety.

I’m pleased with the state of my existence – perhaps too pleased in that I’m getting a bit complacent – but I’m not really suffering on any time scale as a result of not being in a hurry, and I’m getting to indulge in all sorts of interesting side projects, so I’m pretty OK with it.

Posted in General, Navel Gazing | Leave a comment

As a fun aside to the previous post, there is a story my parents like to tell from my childhood, which generalizes the kind of permissive learning objects learning computers are an instance of. When I was very little, I … Continue reading

Posted on by pappp | Leave a comment