contrapunctus, by Christopher League
 

Dijkstra: Discipline in Thought

I keep a picture of Dijkstra in my office as motivation. I don’t necessarily agree (anymore) with his perspective on correctness and formality, but I have to respect his persistent pursuit of the ideal.

If in physics there’s something you don’t understand, you can always hide behind the uncharted depths of nature.  You can always blame God. You didn’t make it so complex yourself.  But if your program doesn’t work; there is no one to hide behind.  You cannot hide behind an obstinate nature.  A zero is a zero, a 1 is a 1.  If it doesn’t work, you’ve messed up.

YouTube – Discipline in Thought – Part 1 of 3.

Ubiquitous Internet access

The other day I could not access the Internet from a coffee shop, so I took a screen-capture of what went wrong.  I’m trying to acquire some video production skills for teaching, so today I looked for some CC-licensed images on flickr and turned the experience into a complete video (just over 1 minute).


Ubiquitous Internet access – it’s worth doing right from Christopher League on Vimeo.

Transcript: Ubiquitous internet access is still in that awkward adolescent phase.  Many mobile professionals and geeks now rely on it heavily, but access is never as straightforward as it should be.

At Starbucks I’m entitled to two free hours of access from AT&T after using my card.  This shop has two providers, but neither one works.  AT&T rejects my login with an error message branded by T-Mobile — how’s that for collaboration.  But I know have the correct credentials because I can log in to AT&T to access my account — I even updated my mailing address.

The lesson of ubiquitous internet is that it costs more to meter than it’s actually worth.  Try to restrict individual users and suddenly you need a whole infrastructure for tech support and credit card processing and refunds.  Bryant Park in Manhattan offers free wireless, and it costs them less per month than they spend on trash bags.  When a cafe offers unimpeded wireless to its customers, it nearly always works.

Photo credits: el_jong, mightykenny, mybloodyself, marionzetta, xiaming.

Focus on load

The ability to run code in your web browser has given us many great things, such as Google Maps. But once in a while a tiny annoyance will make me long for the days when a browser was just a browser, and not a platform. Today’s annoyance is the trick to place the keyboard focus in a text box when the page loads. Here is a screen-cast of my unscripted rant and demonstration of the effect (1:43).

The main problem with these script tricks is that there’s not a good way to customize them across the board, apart from disabling Javascript entirely.  Each web site has its own user interface, even if it’s ostensibly just a document.  The example is Atlassian because I happened to be browsing their stuff today, but I’m not picking on them in particular.  Actually I’m finding Confluence to be fairly impressive, and (dare I admit it) less clunky for non-technical users than the open source options (the best of which might be Twiki).

Kinesthetic computer science

CS Unplugged is the source of many of my activities and demonstrations for introducing concepts in computer science.  I recently found that Tim Bell (University of Canterbury, New Zealand) delivered a Google Tech Talk [50 min.] about the project.  Here is a much shorter video [1:44] just on the sorting network activity.  Watching the kids put themselves in order is pretty amazing, once you get past the silly-looking school uniforms.

Earlier this week, I had an array of students model the gnome sort at the front of the classroom.  It really is the simplest sorting algorithm.  They stood in some arbitrary order, then I handed the left-most person a page with these instructions:

My Ducks In A Row
  1. If there is no one to your right, pass these instructions to the person on your left.
  2. If the person to your right is shorter than you, pass these instructions to the person on your left.
  3. Otherwise, swap positions with the person on your right (but keep the instructions).
  4. Go back to step 1.

They tried it out, and before long they were standing in order by height.  (The algorithm is written without a stop condition, so I had to be in the right place as a sentinel.)  The follow-up questions: how long did this take?  How fast does it go if you’re already in the intended order?  What if you’re in the reverse order?  This one is simple to understand because there’s only one pointer, and all swaps are local.

Another Microsoft rant

One would think that keyboard entry is a pretty basic feature of a spreadsheet program. Maybe I’m a newb — I just started using spreadsheets in, let’s see… 1984… with Lotus 1-2-3. Here is Excel 2004 for Mac, completely unusable for data entry. (One minute Flash movie, may not appear in feed.)

And people pay money for this? Denigrate free/open-source software all you wish, but I never had a problem just entering data with Gnumeric or OpenOffice.

Someone appears to have found a workaround, posted just a few days ago. Note that a workaround is not a fix. Normally, “edit directly in cell” is something you might want to do.

Low-tech screencast

Common Craft has a fun and engaging style for presenting “Web 2.0” technologies with paper and white-boards. Found at Presentation Zen, but I chose a different video than the two that appear there. Enjoy “Wikis in Plain English”…

Image Inanity

A short video (1:22) of me venting my frustrations about email formats:

Transcript: In the old days, email was always plain text. And hard-core techies like me liked it that way.

Grudgingly, we came to accept HTML email. With hypertext markup, you can have bold-face, fonts, images.

But this is still okay because you can resize the text if you need to, the text is searchable, and Apple Mail on Leopard even recognizes dates and integrates well with the calendar program.

Where I have to draw the line is emails where the entire message is an image. It’s extremely common in our institution to create a full-page flier and then distribute it via email as an image. It doesn’t resize. It’s not searchable. The dates are not recognized. The MIME standard for multimedia email allows for plain-text alternatives in this case, but they are rarely available.

Here’s an even more egregious example, about the availability of our schedule of classes online. The link is blue. It’s underlined. But it’s not clickable. I can’t even copy and paste. I have to type it in from sight.

Just say no to image-based email. (And nevermind the inconsistency of distributing a 4 MB flash applet to demonstrate this simple point! At least I provided a plain text alternative.)

Automated programming tutor

This short video (3:24) is about an idea I have for an automated tool that would tutor and assess students on fundamental skills in computer programming. I call it the ‘codeTutor’. I find that students that need a lot of practice on rudiments are often not willing or not confident enough to create their own exercises, and I don’t have the time to keep them inundated with practice problems. So here’s my idea:

If you think this is a {useful,great,dumb,old,…} idea, leave a comment or get in touch by email. If you’d like to participate in building or testing, even better. I’d want the tool to run as some kind of {Flash,Java} applet, or maybe Java WebStart program, just to lower the barrier to running it. Since it will do some non-trivial manipulation of syntax trees (and for a variety of other good reasons), I may write it in Scala instead of just Java. I’ve been toying with Scala for a few days, even producing little Swing (GUI) apps, and I’m fairly pleased.

Testing embedded screen-cast

Unfortunately, the image size is somewhat big for the design of my web site, unless your browser is already maximized. Anyway, ‘jing’ is a tool to record and upload screen-shots and screen-casts in pretty much one shot. Then they can be linked and embedded from screencast.com just like YouTube.

Unfortunately, it seems hard or impossible to edit videos effectively after recording. Same as other one-shot recording tools like iShowU and Snapz Pro. If you want to edit, transition, or separately mix audio and video, then it seems iMovie needs to get involved. Still need to read up on that. But Jing seems to be the most convenient of the one-shot tools.