Circular path with webring links Hotline Webring < Previous Next >

Nuthole

Entombed in the shrine of zeroes and ones

The Worst Object-Oriented Language

I’ve been doing object-oriented programming and design since 1994. Most of that work has been centered on Objective-C, with a bit of dabbling in Smalltalk quite some time ago, occasional forays into Java, and increasingly more Python during the past few years. During the past year, I’ve finally had a reason to get deep into a project with C++, and now I know what I’ve been missing: A heap of nasty syntax and inflexibility, that’s what!


Don’t get me wrong, C++ is definitely a lot more powerful than just plain old C, and you can do some clever things with its templates and some other language features (with the caveat that in doing these clever things, you are relying heavily on the compiler doing lots of things that are far from explicit in the code, which is quite different from standard C). My main gripe with C++ is that the object-oriented constructs it provides are really very not suited to the practice of object-oriented programming as it stands today (which may be a subject of future postings here).


On a whim, I recently googled "worst object oriented language", and got some interesting results. This query produced 103 results, which Google whittled down to just 12 after removing what it thinks are probably duplicates. Four of those were essentially the same quote from one article, pasted into different contexts, while the other eight seemed to be unique utterances. In all of these cases, the language being described was (drumroll, please…) yes, C++. At least I’m not alone in feeling this way.

Pandora

My pal <a target=“_blank” href =“http://peoplesflag.blogspot.com/”>James tipped me off to the existence of <a target=“_blank” href =“http://www.pandora.com”>pandora, which lets you create your own streaming virtual radio station, continually feeding your head with music you like, often things you had never heard of and wouldn’t have guessed you would like! The way it works is that you tell pandora the names of some bands you like, and it uses that as a basis to begin choosing songs that it thinks you will like. The “editors” at pandora have listened to thousands of albums, categorized their content by assigning attributes based on the sounds, and put it all in a database. So, if you start off by entering Tiny Tim as your favorite artist, presumably you’d get a stream full of artists who sing falsetto, or play ukelele, or both. [note to self: create Tiny Tim-based pandora station and see what happens]


To top it off, the virtual stations you create can be shared with others! I now submit for your listening pleasure my first pandora-station: <a target=“_blank” href =“http://www.pandora.com/?sc=sh12811124”>rock bastard. It gave <a target=“_blank” href =“http://peoplesflag.blogspot.com/”>James a headache; hopefully you’re made of harder stuff.

Scratch

A few weeks ago, I became the proud owner of an iPod Nano. It now accompanies me everywhere. Whether I’m commuting, coding, or cooking, chances are I’ve got my preciousss in a pocket or otherwise on my person.


The only downside is that the shiny black surface gets scratched insanely easily! When reports first came out about this last fall, I figured it was the whining of some perfectionists. But now that I’ve got one myself, I’ve seen the light (and the scratches). I’ve carried cellphones around for years without this kind of scuffing. I used one phone from June 2003 to December 2005, and that phone looks better than my iPod did after just a week of use! During that week, I either carried it in a soft jacket pocket containing nothing else than the iPod and the headphones, but the surface looks like I’ve been dragging it behind a car.


Fortunately, I’m a pragmatic person, and I don’ t much care how my devices look, as long as they do what they’re supposed to. Unfortunately the scratching was beginning to mar the display as well, so I decided to buy some protection in the form of an iSkin Duo. This is a dual-layer silicone “condom” for the iPod. It comes in a range of color combinations, most of them brutally ugly. I chose the brown/orange combo, which I would classify as only “moderately ugly”. A hard transparent plastic bit covers the screen, while the click-wheel is covered by a single layer of silicone and an optional thin plastic bit to make the wheel a little smoother. All in all, I’m really happy with this:


  • I can toss my iPod into a pocket without worrrying that it’s scratching up even more.

  • The silicone skin makes it a little less slippery, therefore easier to grab and more difficult to drop.

  • The ugliness may prevent would-be thieves from even recognizing the iPod for what it is.

Universal Christmas Poo

Did I release the very first third-party screensaver for Intel Macs? It seems like it! I released the latest version of the Mister Hankey Screensaver way back in November, compiled as a Universal Binary so that it would work on Intel Macs. I didn’t have access to a developer Intel Mac, so I had a friend try it briefly and verify that it worked.


Now that Intel Macs are actually available, I checked versiontracker’s Mac Intel page to see what else was out there. Imagine my surprise when I found only five other Mac Intel screensavers there, all of them released in the past couple weeks! Google can’t seem to find anything else, either.


So, as far as I can tell, Mister Hankey is the first screensaver ever released for Intel Macs by a third party. Hooray!

Chomsky on the Lack of a War on Terror

Just read a mercifully short interview with Noam Chomsky. I say “mercifully short” because, as much as I admire the old guy, lots of his writings tend to be long and dense. Good to see a bite-sized piece for a change.


Some salient bits:


A large majority of the population is in favor of a national health care system of some kind. […] But whenever that comes up […] it’s called politically impossible, or “lacking political support,” which is a way of saying that the insurance industry doesn’t want it, the pharmaceutical corporations don’t want it, and so on.


[…] we are under a rigid doctrine in the West, a religious fanaticism, that says we must believe that the United States would have invaded Iraq even if its main product was lettuce and pickles, and the oil resources of the world were in Central Africa. Anyone who doesn’t believe that is condemned as a conspiracy theorist, a Marxist, a madman, or something.

What gives me hope actually is public opinion. Public opinion in the United States is very well studied, we know a lot about it. It’s rarely reported, but we know about it. And it turns out that, you know, I’m pretty much in the mainstream of public opinion on most issues.

Pass it along to your conservative friends!

Cypher → Arrr Arrr Arrr

Often, non-Swedish movies are given new Swedish titles for the Swedish market, e.g. The Hulk becomes Hulken. This choice is made by whoever acquires the rights for distributing the film in Sweden.


Sometimes, however, movies are given new titles that are, at best, inexplicable, and, at worst, unintentionally hilarious. Some of the worst of these occur when a movie with an English title gets a new title which is—get this—another English title.


Case in point: A week or two ago, I noticed a movie in the Swedish TV schedule that looked interesting. Its original title is Cypher, which is of course just an odd misspelling of the word “cipher”.


Now, Swedish has a perfectly good word for “cipher”, that could be used to translate this film title for Swedes who may not know the word “cipher”: The word is “chiffer”. The distributer could have chosen to call the movie Chiffer or some artificial misspelling like Skiffer or Chyffer, whatever, to emulate the original. But they made a different choice. They chose to call the movie Brainstorm.


Don’t get me wrong, “Brainstorm” is a perfectly good name for a movie. I quite liked the 1983 movie with that name, starring Christopher Walken, when I was a kid. But that’s just it; If you’re going to rename a movie to suit the local language, why choose a new name that (A) is not in the local language, (B) has already been used by no less than two other feature films, and © bears no relation to the original title! Why, oh silly film distributor, why???!?!

Presenting Torched Turf

screenshotLadies and Gentlemen,


Please welcome Torched Turf to the world. Torched Turf is based on the standard old “artillery” style of computer game, but with a few new elements that make it stand out on its own.


Torched Turf was created for the iDevGames Original Mac Game Cup contest. The terms of the contest call for a game with one complete, playable level, and currently that’s what we’ve got. In other words, despite its 1.0 status, Torched Turf is still a work in progress, and will be enhanced further in the future.


In the meantime, download the Mac version or the Windows version and give it a try! Later, sometime between Dec 1 2005 and Dec 15 2005, be sure to go vote for this or any other game you feel is a worthy winner.


I am proud to consider myself a member of this world-spanning team of like-minded would-be game-builders, and hope that the release of Torched Turf paves the way for yet more games featuring exploding sheep.

Election Theft

The notion that electronic voting machines without paper trails are dangerous to democracy is something that’s been talked about before. Now, a General Accountability Office report shows pretty clearly that there were lots of irregularities in the 2004 U.S. elections, connected to the use of electronic voting machines.


Regardless of your political affiliations, regardless of whether you believe that Bush & co stole the elections, it’s important to understand that electronic voting machines without paper trails produce unverifiable results. The simple fact is the actual results of last year’s elections are, inherently, UNKNOWABLE. There is simply no way to know how many people voted, or for which candidates they voted.


This goes beyond the issues of "hanging chads" that vexed us after the 2000 elections; Then, you could at least theorize the existence of a person or device that could divine the intent of the voter with a high degree of precision. With unverifiable electronic voting machines, it’s just a total crapshoot. The GAO report cites several known cases where large numbers of votes went to the wrong candidates, which were supposedly “fixed” afterwards. The problem is, how many unknown, similar cases are there? We’ll just never know.


Again, this is an issue for EVERYONE concerned with the preservation of American democracy, regardless of party ties. This time it may have been criminal, unethical Republican asshats who used some wide-open holes the security of these machines to secure elections for their candidates; Next time it could be criminal, unethical Democratic asshats doing the same! For that matter, it may be that BOTH parties had people trying to fake out the voting machines in 2004, and that the Republicans just did a better job at it. Who knows?

Spinvaders 1.0.0

I’m pleased to announce the release of spinvaders 1.0.0!


The main change in this release is the introduction of fantastic music and sound effects courtesy of David Tweet. Collaborating with David on this release has produced fantastic results. It’s almost like a whole new game!


Also new for this release is that spinvaders is now open source, with its own project hosted at sourceforge. This means that not only can Mac and Windows users download a precompiled package, now users of BSD, Linux, or other unixy platforms can download the source and all its dependencies (which aren’t too terribly many) and run it on their platforms as well.
screenshot

Here’s where to get it:

Installation is the same as before: The Mac version is in a disk image; you can copy the enclosed application and run it from wherever you like. The Windows version is a zip file containing a directory; unpack the directory wherever you like, and run it by starting “spinvaders.exe” from within the directory.

Software Design Sketching

Peter Lindberg posted some thoughts about the lack of "sketching" in software development, which got me thinking a bit. The following was my emailed response to Peter:




Personally, I do a fair amount of software “modeling”, in the form of prototypes. If an application calls for a new GUI component, for instance, I’ll set up an empty application/shell/playground with some “scaffolding” to provide the component with its inputs, then start “playing” with it until I find something that feels right. Sometimes it will be a continual evolution of the design in the code, but sometimes I’ll duplicate classes, and rename them with some sort of version ID in the class names, so that I can view several stages of the evolution at once.


The same applies to games I’m designing, or ideas I have for new applications, or, for that matter, changes I’m considering in the CSS code for a website. Seldom do I start off by mapping out “here’s exactly what I want to implement” in my own projects; Almost always, in work that I’m doing for myself, I start off with an exploratory phase just to see what comes out of my fingers, and after a few iterations of coding, and trying out what I’ve done, and sometimes putting the project away for a few days or weeks, eventually things tend to settle into a zone that feels right.


In a group effort, this doesn’t always work that well. When several people are involved from the beginning of a project, if everyone just spins off into an exploration of their own ideas, it can be harder to gather everyone back to some common point to get everything working together. Maybe that’s why software design tends, as you say, to be focused on “producing construction plans” and defining APIs for how modules will work together.