Category Archives: General

Spring 2010 Semester Retrospective

One of the intents of this blog is to publicly keep track of my before and after impressions of classes to share, and since another semester is complete, it’s time to repeat the process. The Spring 2010 “Before” post can be found here, and the link chain can be followed back. This one is a little belated from travelling immediately after the semester ended.

CS585:Linux Internals/Finkel
This is a very, very good class, which is also a HEAP of work. It really is taught by discussing the inner workings of some part of the kernel in class, and writing programs that manipulate them in some way… unfortunately, the detailed discussions and programs are not necessarily in the same order, or even the same topics, so very much of the value of the class is being given pointers on topics to learn indipendently. With that in mind, resources wise, Robert Love’s Linux Kernel Development is a really excellent book, that I would have done well to actually read ahead in instead of constantly using to catch up, and LXR is unbelievably useful for working with kernel code.
Keeping it short, if you want to be able to do *useful* things with operating systems, this class is perfect, and Dr. Finkel’s instruction was, as always, excellent. Just be aware you will be doing a lot of time consuming independent learning and programming.

PSY562:Human Technology Interaction/ Carswell
This class is in the unusual position of being at once very interesting and very easy. I love the topic, to the point that my current first-choice PhD program when the time comes is in the area, so getting some formal credentials to support my interest was a high-value proposition. While I would have liked a little more depth, and a little more variety in perspective; we took a very Human Factors/ Ergonomic perspective most of the time; the topic has historically also been approached from a more classical psychological perspective, an Industrial Design perspective, and (my favorite) an Information Theory perspective, it provided an excellent overview for people who didn’t have as much prior reading, and was still an excellent exercise for those of us who did.
The class dynamic was pretty cool with the mixture of psychology seniors and other-topic “upper level” (mostly graduate) students. The other-topic graduate students tended to be considerably more vocal (sometimes to a fault) than other groups in class, and we all seemed to have higher expectations of what would be demanded of us than other students or the actual expectations, which was instrumental in preventing it from ever becoming stressful. From talking to other students, finding the class easy wasn’t limited to people with significant prior knowledge, so I’m reasonably sure I’m not just expressing my own skewed perception.
The project around which a lot of the class work and discussion was based was a usability/Human-Factors analysis of Lexington’s Mass Transit System (LexTran). Although it wouldn’t have occurred to me as an obviously suitable topic, the sad state of LexTran, the broad variety of issues to be addressed, and the LexTran official’s willingness to to get involved made for a very good situation. My particular project was on designing appropriate mechanisms to display bus tracking (AVL/GPS) information to users, and focused chiefly on the design of suitable smart signage, but other individual projects included website design, map design, route planning and representation, and environmental improvements for the transit center itself. This is the UK PR article (which is, amusingly, on a webpage that is a usability nightmare) about the class project, and even has a terrible picture of me from the final poster session.
Apparently it will be offered again next semester, which is interesting because this was the first time it had been offered in a while, and I highly recommend anyone interested sign up, especially if you have an otherwise intense semester planned, as it manages to not be difficult or time consuming, while also avoiding being a waste of time. As best I can make out, the requirements for instructor consent are “Seem Competent/Interesting” and “Express Interest,” since Dr. Carswell is quite interested in having a variety of disciplines represented, making it is an option for a wide variety of students.

TAing EE281
It turns out I really do enjoy teaching, which is extremely fortunate given my intended career. Most of the kids actually seem to have learned something from being in my class, and initial opinions from both students and faculty seem to be that I did a good job. I cleaned up the grading policies (created a set of fixed-form rubrics for all the assignments, etc.), and have a set of notes from the labs on necessary modifications and improvements. It also really, really improved my ability to work with Verilog, especially debugging, since dealing with 30some inexperienced coder’s problems exposes one to a LOT of code, with a lot of different approaches and bugs.
The plan is for me to do a little bit of writing up (ABET, and some internal-to-UK thing) from my notes over the summer, and TA the same course again in the fall, which I’m actually kind of looking forward to.

Overall: Hooray. I like what I’m doing, I like where it’s headed, and I’m not feeling over-extended like I did in some of my more intense semesters as an undergraduate.

Posted in General, Navel Gazing, OldBlog, School | 1 Comment

Singer 201-2

I just spent the week out of town, helping move the grandparents on my mother’s side into a more appropriate house, closer to some of the aunts to make life easier as they age. I’m not saying this because I intend to make my blog more personal; it is just prelude to a couple other posts, including the below.

While we were packing things up, I expressed interest in “The Singer” to the aunts, having spotted a featherweight (I believe it was a 221) in it’s case in the basement. My grandmother decided to keep it, but there was a second antique Singer down there, which wasn’t going, and is now mine. The second machine is a 201-2, made in 1947 (old enough to have the pretty metal work), in a Singer #42 “Deco” cabinet. It apparently belonged (briefly?) to my great grandmother, and later to one of the great aunts, where my mother learned on it, before finding it’s way into my grandmother’s basement. Most of it’s doodads (special function feet, zigzag, buttonholer, etc.) are still with it, and everything seems to be in reasonably good condition.

The machine (I’m aware the cabinet is not quite fully open in any dimension):
singer2012_sm.jpg
Some of the accessories, labelled as best as I am able:
accessoriesid_sm.jpg
Buttonholer:
buttonholer.jpg
If anyone who knows about these machines can tell me what the other metal bits are, or correct my tentative identifications, that would be really cool.

I had read about old sewing machines in general a while ago, because of my fascination with old electromechanical devices, but had never really got into the specifics. Because of this one falling into my possession, I’ve started reading in more detail, and there are lots of interesting things to read thanks to the big, active community around the things. As far as I can tell, this machine and its accessories are perfect candidates for restoring and using; nothing particularly unusual or desirable (at least that I’ve identified so far), not in extraordinary collector type good condition, but a very well liked old machine, and in good enough shape to be beautiful and functional with a little work. I know it’s going to need a thorough cleaning/oiling, and have the entire wiring harness replaced (the EE portion of me recoiled in horror when I looked it over, the existing wiring is a disaster in potentia), which should be a fun project in itself.
Right now, it’s sitting in the basement at an aunt on the other side of the family who lives near the grandparent’s old house until I can transport and store it, but eventually I’d love to restore and use it; it’s beautiful and has history, and based on the pictures of work produced on similar machines, very functional once you learn to work one.

Posted in General, Objects, OldBlog | Tagged , , | 1 Comment

Roasted Eggplant with Red Pepper Cream Sauce

My post-semester “I have time to cook again!” food, Roasted Eggplant with Red Pepper Cream Sauce:
peppercreameggplant_sm.jpg
The recipe was one of those “Popped, mostly formed, into my head” things that are always the most fun to make. The eggplant is just sliced into eighths, drizzled with salt, pepper, and olive oil, and broiled until cooked. The sauce is the real fun of the affair. In one pan, I cooked down a thinly sliced red pepper and some crushed tomato in herbs, garlic, and olive oil, to make delicious red slime.
peppersauce.jpg
In another pan, I set up a roux with some milk, then added the pepper mixture, some appropriate cheeses for texture (In retrospect, probably would have been better without), and more milk until it reached roughly the right consistency.
The combination was served over farfalle, which the foodblogging category here should make clear is my default pasta.
I got lazy and used the toaster oven to do the broiling, so the slices were too close to the source and got a little dry/singed on the tips. I also missed on ratios a bit, and made too much roux for the volume of cooked-down pepper, so the sauce was thicker and richer than I intended. For a first pass at an unreferenced idea, though, this was a pretty solid success. Very interesting flavors and textures, particularly the herb/garlic/spice mating to the sweetness of the cooked down peppers, and the two distinct kinds of creaminess from the sauce and the flesh of the eggplant.
As a side note, making this is caused me covet knives; despite the fact that the housemates and I have a pretty nice set of knives between us there isn’t a narrow bladed slicer or a Nikiri in the house, and they both would have been handy here.

Posted in FoodBlogging, OldBlog | Tagged , | Leave a comment

User Time Logged In

A lab I sometimes do computer work for asked for a mechanism to account how long each user spends logged in on some *nix (Linux and ancient Solaris) boxes. I don’t know of a “proper” solution, so I did things the UNIX way: I wrote a stupid little awk script that parses the output of last -R to get a minute total. This isn’t a terribly clean or safe script, but it does “just enough” input sanitizing, and seems to work. Some (Linux) boxes I have access to appear to clear/archive/rotate wtmp on boot, so it doesn’t help on those.
Does anyone know of a better way to do this? Is there some utility I’m forgetting? Is this script dangerous in some way I’m not thinking of? Script follows:

#!/bin/sh
last -R | 
awk '
{
	user=$1;
	uselength=$9;
	
#	Check line format
	if (NF != 9) {
	print "Line " NR " discarded, " NF " entries. (Reboot messages, etc.)"
	}
	else if( $NF == "in"){
	print "Line " NR " discarded, still logged in."
	}
	else{
	
	logins[user]++;
# These times are (Days+Hours:Minutes)
	parsedtime=0;
	gsub("[()]","",uselength);
	split(uselength, sptime, "[+:]");
	parsedtime+=sptime[1]*24*60;
	parsedtime+=sptime[2]*60;
	parsedtime+=sptime[3];
	logintime[user]+=parsedtime;
	}
}
	
END {
	for (i in logins) {
		print i " Logged in " logins[i] " times, for a total of " logintime[i] " minutes";
	}
}'
Posted in Computers, DIY, General, OldBlog | Leave a comment

Windicator Fail.

I’ve been following the recent noise about Mark Shuttleworth’s suggestion for future UI improvements in Ubuntu, and they seem to be steadily headed from “bad idea” to “worst idea.” I found the notification behavior in recent Ubuntu releases (especially that horrible, noisy, hard to interpret unified presence icon) pretty awful, but easily disabled without completely replacing the UI (I run XFCE where all is equal, but XFCE users are definitely second class citizens on Ubuntu). Then there was bitching because of the unpopular, unilateral decision to move window buttons to the left, which is pretty much ass backwards as far as most users are concerned. Hopefully, that will remain easy to replace by swapping the theme.
The crowning glory of bad ideas, however, is the latest. He is calling for the addition of “Windicators” to all windows, and proposing that it be implemented in the worst possible way. Let’s count reasons this is a really bad idea:
* Client-side rendering makes every application need a rewrite to use the feature – They just finished getting almost all tray rendering over to the server like it should be, don’t recreate the problem.
* No standard interface – If there were some kind of “I want a notifier” interface added to the standards, that would be one thing, but adding noncompliant behavior, downstream, to one environment is just silly.
* Break existing standard interfaces – DBus, NetWM and friends specify window interactions, that work right with any supporting environment. These don’t fit.
* Break existing assumptions – Except for title bar text (ie. the (n) next to gmail titles to indicate unread messages), the title bar is a title bar. The buttons up there manipulate the WINDOW via the WINDOW MANAGER.
* Replicate existing functionality – We’ve got a global notification area. We’ve got per-window notification. Tell me again why this is better?
* Clutter, Clutter, Clutter – Why the hell would I want more little doodads vying for attention on my screen?

This excellent refutation, and the discussion at OSNews are a more thorough description of the problem. Hopefully, the upstream devs will squash this by refusing to cooperate. Otherwise, this might be nice as it will drive users to other window managers/distros, and help keep the Ubuntu and Linux communities vibrant and diverse that way.

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

Saturday Grading

gradings10.jpg
See the giant piles of paper in the left of the picture? That is my last round of grading for the semester, and the entire plan for my Saturday. On the upside, FPAT is empty the Saturday before finals week, so I can spread out all over the ECE Commons and play loud music while I do it. Every time I use a massive 3-sided desk/table/workbench rig like that it makes me want one, it’s so nice to spread out on a huge solid accessible workspace.

Posted in General, OldBlog, School | Leave a comment

Daeji Bulgogi

daejibulgogi_sm2.jpg
I made something fairly close to Daeji Bulgogi (spicy Korean barbecue pork) for dinner today. I’ve been trying to figure out how to approximate Korean Barbecue for a while, and the current arrangement is pretty close. It’s made from very thin slices of pork briefly marinated in roughly equal parts brown sugar and Guilin chili sauce, about half as much each crushed garlic and rice vinegar, a splash of sesame oil, and enough shoyu to get it into a suitable marinade consistency. Cooked in oil in a HOT cast iron pan to try for nice searing, with a thinly sliced onion added about half way through cooking to get caramelization. It is very tasty, and has that excellent sweet heat to it, but lacks a little bit of the upfront intensity (both hot and sweet) from what I’ve had in restaurants. A-, Would Nom Again.

Posted in FoodBlogging, OldBlog | Leave a comment

The Ugliest Little RepRap Stepper Driver

I’ve been playing with my CNC Mill project a little bit in some “spare” time(= time I should be working on things for school, but can’t focus), and just got my third RepRap Stepper Motor Driver v2.3 working after some replacement parts and judicious green-wiring.

I bought three drivers as kits, because they were cheap and well regarded, but the boards are largely surface-mount, and the first attempt to populate them didn’t go well, thanks to distorted lead frames and UK’s shifty surface mount equipment. With a little bit of hand soldering to fix lifted pads, I got two of the three boards going, but one of them …ignited… when tested because of a lifted ground on the main IC. The bad board has been sitting in it’s bag waiting for me to do something about it for most of a year now, and the other night I realized I could probably remove the chip, order a replacement Allegro A3982 from one of the electronics suppliers for a couple dollars, and try again. Pulling the chip by hand lifted four pads, but left it looking workable, so I picked up a pair of spare chips from DigiKey (who, for a pleasant but startling change, only charged me a very modest shipping fee).

My replacements arrived earlier today, and I couldn’t resist taking a crack at it. As the title suggests, this resulted in a UGLY but working driver board (click for larger):
redwire_sm.jpg
Check out the run of magnet wire across the bottom of the board, up through a via, and then under the pad it goes to. That is some quality fabrication (also, I checked, that path never carries much current, so magnet wire is OK). The other fixes are all relatively easy (and large-current) runs across one side of the board.

This time, instead of catching fire and destroying an IDC cable, connecting power and my supremely ghetto-rigged test circuit (a 555 timer set up to generate a pulse train on step, and some buttons and switches to control direction and enable) resulted in a smoothly turning motor. Success. I’ll probably only have to make one more small electronics order (remember that melted IDC cable…) and all the drive electronics will be together to run it from a EMC2/Linux box.

The hangup now is the connections between the axes and the drive nuts: my old bent-steel-sheet brackets were not square enough, and were causing walking and uneven tension and all manner of badness, but I haven’t managed to design a replacement I’m both satisfied with and able to build/source. If anyone has an idea for mounting a 1.25” long, .56” flat-to-flat hexagonal coupling nut to a metal panel 1” away from the rod the nut rides on, which will take large lateral torque and remain square to the rod, let me know. I have a half-baked plan with some modified heavy L-brackets, but there must be something better.

Posted in DIY, Electronics, General, Objects, OldBlog | Tagged , | 1 Comment

NAK Build Party

buildnak.png
My research group will be building our new (smallish) research supercomputer NAK:(NVIDIA Athlon XP cluster in Kentucky) on Friday, April 16, 2010 from 10A to 4P in FPAT672. UK students and other interested Lexingtonians are invited to come help with the build, so if you would like to play with the guts of a big cluster, you will be welcome at the (re)Build Party.

If you can come up with a better phrase (with a better acronym) for the “NoBuPAG” principle discussed in the machine description, that will be really welcome too.

NAK will provide a testbed for continuing research into building tools for performing useful compute work on GPUs. It presents a different model than the conventional GPU as an attached co-processor to powerful compute nodes model, which has thus far proven impractical to program for. Instead, NAK treats the nodes as “Nothing But Power And Ground” (and a network interface…), and will be running all of the heavy compute on the GPUs themselves, through a mechanism extended from our MOG project.

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

Splinternet?

I just ran into this article, which basically states that the rise of walled gardens and locked-down proprietary devices are bringing about the end of web interoperability. It’s an interesting premise, and I’m not sure how much I agree with it.
On one hand, every time I hear “It’s on Facebook,” try to actually pay for music downloads only to find the album I want is only offered through iTunes (and piracy), or run into a service who’s mobile device path is carefully structured to fit the iPhone’s (tiny, awful) capabilities, I get a little more willing to believe it.
On the other hand, most of the examples are built heavily on said interoperable standards; what everyone really wants is content (and a shiny, shiny toy) so over time, most things are going to normalize in a way that allows everyone to more or less use the mechanism of their choice to get to the content of their choice. This may not result in formal standards, but will at least create de-facto standards which allow for reasonable interoperability (possibly with Flash-like issues). Google’s continued role in making that process happen is a major part of why I am so tolerant of their various obnoxious behaviors.

On the flipside, I wonder if there is going to be a new Eternal September effect if some of these things ever come to interoperate with the rest of the Internet. Imagine a mass exodus from Facebook, or a defection from the iPhone platorm; it seems like everyone in those systems should be able to take their skills elsewhere, but both systems are designed to actively prevent the user from forming an accurate mental model of what they are using, and people’s capacity for being selectively cognizant of technology never fails to amaze me.

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