Skip to content
April 21, 2016 / gus3

In Real, Visual Terms

“If a 6600 used paper tape instead of core memory, it would use up tape at about 30 miles/second.” — Grishman, Assembly Language Programming

As legend has it, Grace Hopper (the original designer of COBOL) would hold up a length of wire, and ask her first-year students how long it was. It was just under 1 ft. (30.48cm) long. Most of her students answered with the visual length that they saw, and their answers were factually correct, but useless for the purpose of her class. The answer she wanted was “one nanosecond,” that is, the distance of the signal from one end of the wire to the other. On the lowest level, things happen in nanoseconds. (In silicon wafers, the design involves picosecond-timing considerations.)

But even in a nanosecond system, the physical design sometimes slows things down to microseconds or even milliseconds. The stored-program (Harvard) paradigm could be like this, with the executable instructions stored on some tangible medium like paper tape, while the executable’s data resided in fast-access, electronic storage.

And now, the world mostly uses the shared (von Neumann) paradigm, where the executable and the data may be stored in the same silicon wafer. Memory management can provide an architectural barrier between them, but 1’s and 0’s ultimately are just 1’s and 0’s. (But take a look at the postscript below.)

Let’s look back on that. 1’s and 0’s, but on punched tape.

Read more…

January 5, 2016 / gus3

An Open Letter to Mark Zuckerberg

“Don’t date the nerd…” Wait, you really said that to our nation’s female students?

That’s rich coming from you, Mr. Married-Three-Years-and-Counting. It’s a good thing for you Priscilla doesn’t think like that.

“Don’t date the nerd”? Thank heavens Chuck Lorre and Bill Prady have already decided that’s bad advice. Otherwise, a major plotline of our #1 TV comedy wouldn’t exist. Yet Kaley Cuoco, Mayim Biyalik, and Melissa Rauch bring their performances to show just how wrong-minded you are. Judging from the ratings, I’d say it’s a fair assessment that millions of their viewers agree: it’s OK to date the nerd. It’s even OK to marry the nerd.

(I can already hear lots of people responding, “it’s only a TV show!” I answer that with, “Of course. But the best comedy is grounded in reality.”)

Then again, would you advise our male students not to date nerds? No way; you’d be a stereotypical sexist pig to say something like that. So why is it OK to give our female students the same advice? Reverse sexism is still sexism.

Oh, but context matters, right? Not in this case. You made a blanket statement, to the effect that intimate relationships where one person who doesn’t work in STEM fields should avoid dating someone else who does work in STEM. Because, clearly (at least in your eyes) the one who doesn’t work in STEM is trying to find a sugar daddy (or sugar mama).

And that wasn’t even the case you were responding to. The girl’s grandmother was advising her to look for a provider, for her and their children. The grandmother may have been mis-guided about a “potential” provider, but she understands one crucial point: someone must bring the food, clothing, and shelter for the family.

But why should any of us take relationship advice from you? Because you founded Facebook? That isn’t a qualification. Because you run a massively popular website and can broadcast such advice to millions (even through third-party news outlets)? That doesn’t automatically make it good advice. Our relationships, on any level, are not for you to judge. In this case, your so-called “advice” is worthy only of contempt. And so, in reponse I say:

Piss off, you sexist hypocrite.

October 6, 2015 / gus3

A Little Diversion


The XtraScreenHacks screensaver collection for X11 has an interesting, if unusual, clock: the Berlin Clock, or “berlinuhr.” Based on the Set Theory Clock, it has four counting rows: five hours, single hours, five minutes, and single minutes, plus a single flashing second indicator on top.

As an independent study, I wanted to create a text-based version of the Berlin Clock, to learn a little ncurses programming, plus the ability to handle a terminal window resize. Read more…

January 12, 2015 / gus3

Getting a Time Without NTP

One of the drawbacks of a Raspberry Pi is its lack of an on-board clock. After a reboot, its clock is set to midnight, New Year’s Day, 1970 UTC, the beginning of the Unix epoch, and then the kernel boots. However, it is possible to get the current time early in the boot process, with one condition: an NFS root filesystem.

Read more…

August 11, 2014 / gus3

Intel Finally Slims Down

I know it’s been, oh, over a year since my last post. It’s been kind of like the Olympic gold medalist’s let-down: what do I do now? I’ve done a lot of tinkering, and “what happens if I do this?” kind of stuff, but nothing really big.

But this afternoon, I read about Intel’s new 14-nanometer process for making a CPU, giving 52-nm interconnects. Now, given that the covalent diameter of silicon is 222 picometers, a 52-nm interconnect would be:

52000 / 222 = 234 silicon atoms wide.

The mind boggles.

August 9, 2013 / gus3

Accessing the Raspberry Pi’s 1MHz timer, via kernel driver


As it turns out, my previous effort was, shall we say, somewhat off-base. Being a member of the “kmem” group, or running a SUID-root program, isn’t enough to access /dev/mem; the program capability CAP_SYS_RAWIO must also be present.
Read more…

July 1, 2013 / gus3

ARM VFP Vector Programming, Part 3: Source

Here are the source code and Make files for the two examples discussed in Part 2.

Read more…


Get every new post delivered to your Inbox.