Seveneves

I binged Neil Stevenson’s new[ish] novel, Seveneves, in the last 4 days while I should have been doing other things. I’ll call it my holiday. It isn’t my favorite of his (that would be Cryptonomicon followed by Snow Crash), and it isn’t my favorite genre piece, let’s call it long-perspective hard SciFi, but it’s damn good, and extremely fun. I have some thoughts that may be worth sharing.
[SOME SPOILERS, I’M AVOIDING BUT CAN’T MENTION THE LATTER THIRD WITHOUT]
Continue reading

Posted in Entertainment, General, Literature | Tagged , , | Leave a comment

RFID Exploration

I recently picked up a USB RFID reader/writer pod to play with, partly to learn enough to be dangerous about the tech, and partly hoping to tamper with the RFIDs in the current university ID cards. I’m pretty sure I failed on the latter point, but am succeeding at the former in the process.

RFIDKit

Notes from the first round of fiddling with it follow.

Continue reading

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

Galaxy S5

MyTouch 4G Slide vs. SGS5, flat dimensions.

MyTouch 4G Slide vs. SGS5, flat dimensions.

I got a Samsung Galaxy S5 (The T-Mobile flavor, SM-900T) a week ago. I’m pretty pleased with it overall, but many of the impressions worth sharing are not positive, particularly of the small-but-stupid variety. Much of the animus (and credit) is really for Google, not Samsung.
Continue reading

Posted in Computers, Electronics, General, Objects | Tagged , | Leave a comment

New Chorder

I’ve been playing with chorded input devices for years, and got the itch again recently.

CNChorder
Continue reading

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

Rescuing Ancient FreeBSD Discs with Linux

The ancient FreeBSD/i386 box that was running cgi.aggregate.org finally keeled over. I just blew my afternoon/evening scraping the data off of it because while the most critical stuff was backed up, not everything was. Some keyword and error string filled notes that will hopefully save others swearing and googling:
Continue reading

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

3D Printing KC Talk

I gave a quick primer on 3D printing as a Keeping Current (CS departmental) seminar yesterday.

It’s not a great standalone deck but posted (in reduced quality, gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=/path/to/output.pdf /path/to/input.pdf is good magic).

It seemed to be well-received, printed objects were played with, thoughtful questions were asked, I think this is the first time I’ve given a 3D printing primer to a wider group and not been asked the “guns” question.

Posted in Computers, DIY, Electronics, General, Objects, School | Leave a comment

Our regular reminder of Wirth’s Law

Another response that outgrew G+ and its failings for long form and references (Which is all I’ve thought to post here recently: I need to see to that and get a couple other things written and posted). Also, a great outpouring of pessimism about the tech industry, but that isn’t exactly new.

My feeds brought me Joshua Barczak’s Stop Misquoting Donald Knuth! yesterday. I generally agree with the idea [that we need to think a great deal more about efficiency when developing software], thought the particular pesentation is a narrow and mediocre version of the argument. Niklaus Wirth made the cleanest, classic version of the argument in 1995 with Wirth’s law, which gets restated and updated for current trends by a major figure every couple years as it does an extremely expensive job of making technology miserable for everyone.

I’ll argue even deeper though. The more fundamental problem is that computing got way too “mainstream” (mostly terms of penetration) way too fast, and continues on that unhealthy vector. Neither the technology, the methods, nor the society we unleashed ourselves on was really ready. That’s a large part of why we have goldrush mechanics (I’m mostly referring to social features here) in the tech industry, which is a source of all kinds of problems. It’s also a major reason why we’re building dangerously crappy products instead of technologies as a matter of product cycle and methodology. Peter Sewell’s recent talk at 31c3 Why are computers so @#!*, and what can we do about it? is one of the better presentations on the methodolgy matter, which is largely that we’re not building on the shoulders of giants, we’re building on top of a garbage pile. I always find the arguments for verifiable languages an irritating combination of deeply desirable, and utterly naive: anyone who has ever fought one of the more verifiable languages to actually do something useful probably knows this inconsistency – the Mesa/Ceder/Modula family are probably the least miserable options and no one has used them for anything of substance in decades. Ada even introduced whole new classes of interesting bugs as a result of its so-called reliability features (What do you mean you initialized my IO registers to 0 when we entered the function scope? The peripheral is now on fire.). I’m particularly disgusted with the recent-ish move toward even less disciplining languages, most of which don’t even have a specification, or have an ignored, post-hoc one if they do, though the same batch of languages have made us so accustomed to terrible performance overhead and performance opacity that the overhead introduced by safety and verifiability now seems reasonable; I mean this in the least complimentary light possible.

There are some related phenomena: It is my feeling that the “too much, too soon” problem also ties deeply into the distorted ideas about usability that crawled out of the early ’80s and got into everything, and some scary thoughts about professionalism in computing – not in the awful “businesslike” sense, but in the sense of respect for something that is sincerely hard to do well, which can be made largely by analogy to illuminating historical parallels with what has happened to teaching in the U.S. in the early public-education era.

… And this is a large part of why I have a pile of degrees in computing disciplines and contempt for the industry.

Posted in Computers, General | 1 Comment

Command Line Bullshittery?

I started responding to Philip Guo’s Helping my students overcome command-line bullshittery that passed through my news feeds today, and my thought quickly outgrew the appropriate size for social media, so it’s going up here.

I understand and often share his frustration, but only selectively agree with his conclusion, and would like to clarify the distinction because I think it is very valuable to understand it.

It is often annoyingly difficult to leverage existing tools, especially the various development toolchains whose install process involves blood sacrifice or perfect replication of the (naturally, undocumented) platform they were developed on, but I object to dismissing all such difficulty as bullshit.

Continue reading

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

Course Impressions Fall 2014

Most of my online presence has been in other venues recently, but I’ll at least make sure my semester before/after chain here remains unbroken.

Taking CS571: Computer Networks
I’m pleased with the general design of the course. There is nice mix of textbook structure and primary document context, and the assignments look to offer the generally desirable mixture of explicit problems and programming. Unfortunately, while it is well designed, the instructor seems a little weak in classroom execution, so the lectures are fairly traditional and not particularly good at that. I’m also a little weirded out about differences in background affecting which things are expected context – wire encoding and line delay are being presented as more novel concepts than packet encoding and topology, while I think of of them as things we do with sophomores. I’ve long felt guilty about my lack of formal networking background for ages, so it’ll be good for me.

Taking CS535: Intermediate Computer Graphics
Taking to finish out my core requirements, because it sounded more fun than numerical methods. The instructor is a bit of a slide-reader, and so far we’ve had more context than content. I’m all for context-heavy instruction, but it’s getting to the point where it’s misleading because what we are being provided is out of date and slightly hand-wavy, and what content we have had has been distressingly shallow. It’s a small class and we’re almost all pretty friendly, so it’s working out anyway. At worst I finally have an excuse to learn some rudimentary OpenGL.

Taking EPE672: College Teaching & Learning
Like all Preparing Future Faculty program courses, it’s a room full of jaded grad students, being jaded. That situation is always fun, and it’s no more grim than all those courses. We’re mostly reading a whole bunch of primary publications and discussing, which is a good course format that I don’t get to do often because it’s unpopular in engineering disciplines.
I’m a little pissed that it manages to block both the weekly Keeping Current seminar and Collexion open hours every week, but I’ve been trying to get into it for over a year, so I’ll take it.

Teaching: EE101
I’m not a standard instructor, I’ve been brought in to run the embedded systems unit that I helped design a couple years ago. Leading 230 freshmen through recognizing all the little embedded systems their world is built out of, and building neat shit with Arduinos and bags of parts to get an appreciation for them.
I’m not exactly being well-compensated for doing it, but they are paying me, and both the material and course composition are always a good time.

It’s not lining up to be a terribly stimulating semester, but it also won’t be terribly difficult, and will get me fundamentals and basic credentials in some things I should have them in.

Posted in General, Navel Gazing, School | Leave a comment

Lab Fridge Repair: Thinking with 3D Printing

I’m posting this because it’s such a nice example for the standard “What are 3D printers really good for?” question.

When I got to the lab today, I was told the can chute in our mini-fridge was broken. Inspection showed that too many of the little plastic inserts/bushings that retain the bars were missing and/or broken. This is a years-old cheap GE minifridge, so it isn’t even worth looking for OEM replacements.

Now we get to the “Thinking with 3D printing” part: I plucked one of the remaining ones, went over it with some calipers, transferred the measurements into OpenSCAD, and printed one off to test fit. The ID was a little tight, so I adjusted the model, printed 6 more, and fixed the problem.

In case the model is useful for anyone else: OpenSCAD and STL.

Important Details:

  • This took like an hour from start to finish, and wasn’t the only thing I was doing at the time. The printing itself was around 1 minute per insert.
  • The new inserts are better than the originals. Not quite as pretty in some ways (though they are blue and glow-in-the-dark, because that’s our current junk filament), but the fit is considerably better.
  • That “iterate” step in the middle, where you just try it and adjust if needed is among the most beautiful things about 3D printers.
Posted in DIY, General, Objects, School | Tagged , , , | 4 Comments