General

Counting is hard

(Hmmm. I was all ready to write a little post about how we talk like counting is the easiest thing to do, but really, it’s pretty hard, and was going to use examples based on cognitive science and applied computing… But then I realized that the word ‘hard’ in ‘counting is hard’ has a pretty different meaning than the word ‘hard’ in ‘quantum electrodynamics is hard’. So I’d have to lay down a whole epistemological breadcrumb trail for you to be able to follow me through my little forest and back out again.

Instead, I’ll just ask you to watch this and read this and see if you see what I mean. And I don’t really mean this, but you can read that if you want anyway, because it’s not totally unrelated.)

General

Crazy

Is it just me, or is the world going crazy? And by that, of course, I mean: isn’t it true that I’m extrapolating hyperbolically from a highly non-representative sampling of human activity as glibly reported in the mass media and repeated in idle chatter around me, which sampling was selected precisely because it is novel and unusually disturbing? Yes, the world is going crazy, in that sense.

General

The universal measure of intelligence

There is a unique, predefined, immutable set F of facts, and a unique, predefined, immutable set S of basic cognitive skills. The exact definitions of these sets are elided in this discussion, but some example members of F are “Raindrops are formed by nucleation on dust particles”, “Spain is east of Portugal”, “Two US presidents have had last names starting with ‘W'”. Some example members of S are the ability to add four-digit numbers, the ability to envision an approximate partition of a 3D volume into tetrahedra, the ability to enumerate notes in pentatonic scales.

For any given human, there is a set F’ of facts and a set S’ of basic cognitive skills that this person has acquired and can use immediately.

The universal measure of intelligence of said human is calculated simply as follows:
formula

Oh, wait, I didn’t finish reading my notes. What I meant to say was that the degree to which you believe the above is a definition of intelligence is the degree to which you are an ass-monkey. Sorry for the confusion.

General

The subtlety of user interface

I wonder how many user interface features are pretty much subliminal. I was working on one particular interface feature and got stuck. To do it one way is pretty easy, but to do it another, better, way, is a lot more work. Then I was trying to write a little tweet about this to try to convey to my masses the difference between the two approaches, and realized that for the average user, the difference would be very subtle and they might never notice it unless it was carefully pointed out to them, and they might never really care on a conscious level. As a developer, I’d prefer to give them the better solution, but the difference is probably subliminal.

When I think about it, that’s true for a lot of software features. I’m sure it’s true in any design context.

General

Those unsettling Facebook suggestions

From time to time on Facebook I get suggestions for friends, where I think “How the hell did they know about that person?”, i.e. I do actually know the person, but can’t figure out how Facebook would have been apprised of that.

I’m surely late to the game, but in doing some poking around on the web, I was made to realize that anyone with whom I’ve exchanged email in the past might have run the “search my contacts” feature Facebook has… and their contacts would contain me either because they’d added me or because email programs tend to auto-capture anyone in your From/To/CC lines.

Like any bit of data on the internet, once it’s out there, it stays out there forever and spreads slowly across the universe…

General

Mass production is a sin

… or at least, that’s the way I feel after a frustrating encounter with tech support. Tech support would certainly not be so problematic if it weren’t for the large numbers of people to be supported, but then of course, there wouldn’t be any money to pay tech support people if there weren’t all the profit potential opened up by economies of scale.

But dammit, I want my shit to work! Ah well, I guess I can just retreat to the fantasy world in my head where things either always work or I have access to all the internals and knowledge to be able to fix ’em myself.

General

Bugs, oy

You ever have a situation where there are three independent bug symptoms that are caused by two independent causal paths, where you saw one path and someone else saw another path, so that when you fix the three problems, that person is still seeing all three, and you’re just _sure_ that they are looking at old code, but they’re not?

Man, that’s weird.

General

HP HDX suspend/resume under Linux

If you happen to own an HP HDX series (or other) laptop, and have been having no luck using suspend/resume, help is here. HP released a new BIOS today that fixes a problem with accessing hard drives after a resume. It now seems to work quite beautifully for me. That was the only thing that didn’t work well out of the box with Ubuntu, so I’m really glad it’s fixed.

Here’s a ticket in the kernel bugzilla with all kinds of details about this:
Kernel bugzilla
HDX BIOS update F23A

General

Collected Facebookings, part 1

(because they’re so bleedin’ precious.)
Steven Ourada pretended to have a dream about being an ‘always-on’ performance artist whose life’s project was to become so bland, inoffensive, noteworthless, timid and unlovable that whenever he left the room, anyone remaining would, if queried, be completely unable to describe any attribute of him. They would not, of course, be so queried.

Steven Ourada needs your money to continue a research agenda to explore the hypothesis that extraterrestrials have discovered a neurological loophole by which they can cause humans to hear snippets of music and jingles that to us seem random, but are actually carefully planned to try to convey an important message. (cont.)

Steven Ourada … Currently, we believe the message to be somewhere between ‘Who wants cake?’ and ‘Left hip pocket, fourth drawer down, 501 Wembly Road’. As you can see, there is more work to do, so please give generously.

Steven Ourada would sometime like to visit the Over Easy universe. You know, that universe in which the laws of physics are sufficiently different from our own as to permit the possibility of cooking eggs over easy. I bet in that universe, Falco had a series of hits through the early 90’s.

Steven Ourada imagines a world in which surfaces of all genera can live in harmony. Yes, you’ll openly point out that cones and spheres are homeomorphic, but who among you will say “And tori, too, are members of this equivalence class!”?

General

Programming, these days

With the confluence of open source, web forums and search engines, Linux distros, email, etc., it’s certainly a different world in which to program than it was when I was first learning to program 27 years ago. My little experience today was in trying to get a little command-line client to FreshBooks for quickly logging a bit of time.

  • Search for such a thing. No good hits.
  • Search for FreshBooks API wrappers. Don’t wanna write in Perl, PHP, or ActionScript, so I’ll go with Ruby.
  • Get Ruby: apt-get install ruby.
  • Learn how to write some stuff in Ruby with various web searches leading to tutorials, forum posts, blog entries, etc.
  • Learn what Ruby gems are, install the gem installer (apt-get install rubygems), install the FreshBooks API gem (gem install freshbooks).
  • Write some code that fails. Dig into gem code and put some debugging puts’s in there. Find the root cause of the bug in about 20 minutes, try a hack to fix it, it works.
  • Try to report problem to maintainer. Find that the version in the gem whosit is actually an old version written by the previous author/maintainer.
  • Find a link to the new maintainer and the project page on rubyforge.
  • Browse the source and see that the gem is totally different. Uninstall old one, download this one.
  • Learn what Rakefiles are with some web searches, install rake (apt-get install rake), install some dependencies with gem installer, rake it.
  • Adapt my code to one of the changes by reading the code (_not_, I might add, the comments, because the comments were out of date).
  • Find that the code now fails again, which I sort of expected.
  • Repeat puts-based debugging process and learn that the old bug was fixed but a new one was introduced.
  • Hack a fix for new bug, it works.
  • Report problem to new maintainer. He might tell me that it’s my problem and not a bug in the gem, but whatever, I have what I need and maybe the code will be better for it next time someone tries it…

I won’t bother to enumerate all the differences between that and my early experiences with programming, but to give a little taste, here was the scene for 9-year-old Steven: 4kB pocket computer programmed in BASIC, the only I/O being the keyboard and screen, the only contact with the larger programming world being the computer’s 100-page manual, etc.