Skip to content
April 24, 2018 / gus3

Scripting an Animation

I remember watching the science programs of the 1980’s, such as Nova, National Geographic, and Cosmos. Their occasional computer animations, bringing to life some dry concept of mathematics or physics, were an endless source of awe. Partly, it was jealousy that someone had the equipment to make the animations real; also, some individual had the imagination to lay out what such an explanation should look like.

Fast-forward 30-some years, and I have the tools, the hardware and software, to do basic animations. But in typical Unix fashion, it’s up to me to put them together, to get them to work the way I want. Add to that the KISS principle, and it’s a simple matter of shell scripting!

Read more…

January 22, 2017 / gus3

Hello Debugger!

Sometimes, we get ideas we wish we’d thought of sooner. A few nights ago, I got this one: break to the debugger from the source code.

I’m a huge fan of GDB and DDD, but for anything beyond basic breakpoints, I’ve found myself wading through too much user documentation. What if I want a consistent conditional breakpoint, even if I add or remove earlier code? Never mind setting an initial breakpoint, then adding a data-dependent watchpoint… already, the terminology is getting thick. There has to be a better way.

Read more…

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.