Category Archives: School

Breaking In to your Own Devices

I gave an informal talk for the IEEE student branch about breaking in to your own devices this evening. I did the low-postable-content notes with live examples and links thing, but at least one person wanted to watch the video links, so here are the notes. There is something delightful about giving talks that require legal disclaimers. I don’t think there is anything in here that will get me in trouble…

Continue reading

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

University Email Simulator

A generic version of the email you will receive on a daily basis from the University of BS (Which is probably the school you deal with), as you will read it after the first few repetitions. Graduates can relive their college experience, or, for current students, simply stop checking your email and skim this page every day.


From: Dean of Posterior Coverage <sanjay@ubs.edu>
To: ALL-STUDENTS@UBS.EDU
Subject: Mandatory CYA Training
Body: All students need to take this course that the university paid a fortune to a third-party ed-tech carpetbagger to license, which provides the absolute minimum coverage of an issue required under a new federal regulation. Everyone must take it, because otherwise we might be liable for your behavior.
This is why tuition is so high.
Continue reading

Posted in Computers, Entertainment, General, School | Tagged , | 1 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

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

Spring 2014 Semester Retrospective

Continuing my habit of posting before and after notes on my courses, after notes for Spring 2014.
Continue reading

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

Prezi

My Instructional Technology class asked us to play with Prezi, Some thoughts:

  1. I don’t think I’ve ever seen a presentation using Prezi that wasn’t made worse by it. Sometimes because the internet connection wasn’t good enough to support it, and it wasn’t installed locally. Usually because the transitions were distracting. Sometimes because there were better less spatial schema available for the information.
  2. I don’t think this is necessarily a general problem with Prezi, I think it is just that we have decades of experience designing slides, and (at least in principle) roughly know how not to suck at it, while no such body of knowledge exists for zooming presentations. Especially because it plays on our tendency to use novel features because they are there, just like we’ve slowly learned to exercise restraint with the awful things that can be done with fonts and colors in most slideware.
  3. Prezi’s designers clearly read Jef Raskin’s The Humane Interface and took it as gospel. It looks like a subset of a ZUI (Zooming User Interface) that he advocated for, unselfconsciously ignoring subsequent criticisms.
  4. Building something like that on top of Flash in this day and age is utter, inexcusable insanity. I went through four OS+Browser combinations before I found an environment where it didn’t crash Flash immediately.
  5. Their motion interpolation is the most annoying, nauseating motion in a world of annoying, nauseating smooth scrolling schemes.
  6. Sign up with your .edu address through the “for education” link if you have one. You basically get the small paid plan for free.
  7. By default, they appear to send you email every fucking day, and have one of those intentionally obtuse tools (not accessible except for via the unsubscribe link in the email footer, unsubscribe button set up to look like it might delete your whole account, etc.) to fix it.

Bah. 99 times out of 100, I’m sticking with Beamer.

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

WNR3500L Repair

Some years ago the KAOS lab bought a number of Netgear WNR3500L routers to use as network glue. A pair of them have been in constant service since 2011 in the lab and machine room, and both of those died in the last two weeks. I’ve finally satisfactorily tracked down the culprit, and figure it’s worth a quick write up.

The WNR3500L is a bit of a false-promise machine; it was sold as an “open router” with excellent community firmware support, but it has some pretty extensive blobs that mean it really only runs versions of DD or Tomato with a small range of 2.6 kernels.

I initially just swapped the first one to die out for a spare (which happened to be flashed with Tomato instead of DD, it was an experiment when they were first set up), and reloaded most of the settings by hand (we failed to save or document many of the settings elsewhere. Our fault.) until I had time to investigate. When the second one died, it became urgent.

WNR3500LScrew

Conveniently, the WNR3500L has a 3.3V RS-232-like serial port (115200/8/n/1) under an easily removed panel, retained by one small torx screw/pin thing (Both are out in the picture while I was figuring out which side was which).

WNR3500LBP

This leads to another victory for the Bus Pirate. Any 3.3V compatible UART adapter would work, but the bus pirate has much nicer cables for this sort of thing. In retrospect, those headers are correctly sized to just plug the female harness ends directly, but I used clips out of habit.

It turns out they were booting right up with only warnings, but the configuration was sufficiently garbled that neither the WLAN nor the Ethernet ports were coming up. I blew the first one’s settings away (note: at least on the old version these were running, reboot TWICE after clearing the NVRAM to get back to a consistent state: the first time it writes default values, the second time it boots cleanly). With the software-only nature of the problem established, I took more time to investigate the second one, at which point…

nvram show
[1310 lines excluded]
size: 32782 bytes (-14 left)

Well, There’s Your Problem.

Turns out the tiny little log fields for monthly traffic statistics filled up the nvram and were causing configuration corruption, and thus failures.

There are some forum threads and bug reports on the matter, and it was fixed about two years ago with a test to prevent writing past the end of the file, a default setting to automatically delete traff logs after 12 months, and various other enhancements. Now that we’re up and running again it isn’t desperate, but it looks like there is a DD release from mid-2013 with the fixes applied that still supports these things, and they are probably due to be re-flashed to keep this from happening again.

Lessons:

  • My home OpenWRT on a TP-Link 1043ND uses a connected USB key for logging and such. This is a much better behavior (like most things in OpenWRT: DD-WRT appears to be kind of an unmaintainble mess).
  • Keep an eye on appliances like routers, they’re still just computers.
  • Back up your damn configurations, or at least retain copies of the information required to regenerate them. Regenerating settings, especially when it involves manual tasks like MAC address hunting, sucks.

Other notes:

  • These things’ bootloaders appear to always look at 192.168.1.2 through the non-WAN ports for a tftp payload named vmlinuz. There may be a way to disable that, but I think I’d prefer to leave it on, since it only enables local attacks and provides a rescue mechanism.
  • The WNR3500L has a documented weakness about WAN-LAN throughput with various firmwares. Our uplink is actually good enough for it to matter, so perhaps one of the newer versions will improve that.
Posted in Computers, DIY, Electronics, General, Objects, School | Tagged , , , | Leave a comment