New anime blog: Bridge Bunnies.com, which is run by Ubu Roi from Houblog. What is it you young people say? Huzzah? Very well then: Huzzah!
DM of the Rings XI:
Failure to Communicate
![]() |
The DM will do a lot of talking, but if he’s not rolling the dice then what he’s saying is probably not important.
Experience != Knowledge
Steven was talking about computer-science education and computer sorting systems yesterday. This subject made my brain tingle for a number of reasons, not the least of which is that he likened the game of solitaire to a sort algorithm with very specific restrictions. I must resist the urge to turn my blog into a morass of code theory and C++ snippets that would interest only me, but this is a very interesting idea
On the subject of Computer Science education, he says:
I’ve mentioned before that I program for a living, but I have no formal education. Steven mentions “linked lists”, which is a programming technique for dealing with lists of things where you don’t know ahead of time how many things you’ll be dealing with. You may need three, or three thousand. Linked lists are easy to implement, although they have several drawbacks I won’t list here because of the damage your face would sustain when it hit the keyboard at the onset of deep-REM sleep.
Since I was not formally educated, I was never taught linked lists. I was a programmer for several years before I even saw one. When I did, I told my boss (who had written the bit of code I was reading) that I thought it was pretty slick; I thought it was his idea. Then he explained linked lists to me, and I learned that they were a very common technique. Oops. Heh. I still have odd gaps like this in my knowledge.
For contrast, I have a cousin who took the other route. He was educated at CMU. He stayed with our family for a time after graduation, and we talked programming quite a bit. It was obvious that he was the better coder by far. I was still cutting my teeth on vanilla C, and he had several languages under his belt. He was faster at coding, better at debugging, better at understanding the limits of the hardware he was working with, and better at designing software in his head. I started to get pretty scared – if this is what all programmers were like coming out of college, then the chances of me landing a job were pretty slim.
(This was both true and false. All programmers were not like my cousin, who was naturally talented and had a passion for coding, and who went to a fairly impressive college. However, is was true that my chances of getting a job were slim. Not because of the knowledge deficit on my part, but because people want to hire coders with degrees. I assumed employers knew how to tell a good coder from a bad one. They don’t. But they can tell someone who has a degree from someone who doesn’t. Even when comparing two candidates with degrees, they can usually tell who has the most expensive education.)
At one point we were talking about sorting techniques. Suddenly my cousin blurted out that bubble sort was a stupid sorting system and there was no justification for using it, ever. I wasn’t holding a CS degree, but I was smart enough to identify dogma when I saw it. I pressed him on this point, which he believed with great conviction but little evidence.
“Bubble sort” is a technique of sorting stuff – any kind of data in the computer – that is easy to understand, but quite slow in implementation. It’s a sort of brute-force approach. I’ve heard it said that it is the slowest, although I’ve never sat down and tried to prove that for myself.
Anyway, my cousin was obviously just repeating some nonsense that an instructor had pounded into his head. “Bubble sort was the slowest, therefore it was the worst and should never be used.” I pointed out the Tetris clone I was working on (which floated around on various BBS systems for a number of years) and that bubble sort was a perfectly acceptable way of dealing with the high score list. He countered, saying that it was very slow, and I could speed up performance of the sorting algorithm many, many times by simply using a less stone-age method of sorting. I pointed out that I was sorting a list of 10 names. Even on the decrepit 8mhz machine I was using, the sort was instant. If I made it a list of the top 100 names, I’m sure it would still have been instant. If I made the sort ten times faster, the user would not be able to tell the difference. There was simply no justification for optimizing the thing.
This was a heartening moment for me. It showed me that while formal education was valuable, it could never take the place of experience. A seasoned programmer would not go around spouting absolutes like this. They would know better. Idealogical purity is one of the first things out of the window when trying to accomplish something instead of learning to accomplish something.
Classroom assignments almost never capture the chaos and uncertainty of the real world. If it did, students would go crazy. Imagine an instructor that gave a lengthy coding assignment, and then every day for the next week he would change some of the goals of the assignment. Once he saw a working prototype, he would inform them that while they gave him what he asked for, it still wasn’t what he really wanted, and he would change the requirements again. Let’s also assume that even though the students had to start over many times, the instructor never altered the original due date. This is the world of professional coding, and no professor could teach it without getting lynched.
It’s a shame that higher education works the way it does. Colleges are great at taking an established body of knowledge and distilling it into courses and curriculum. This works well as long as the body of knowledge isn’t changing too fast. CS changes at a shocking pace, and it’s hard for educators to keep up. Heck, it’s hard for those of us working in the field to keep up. How much harder is it for teachers who are trying to teach what they know, instead of fighting to learn new things! College is a very expensive way to gain knowledge, although there are clearly gems of learning in there that are difficult to learn by other means. The most difficult part of filling in the gaps in my self-taught knowledge is that I don’t know where the gaps are.
The Motivator
Via Ministry of Minor Perfidy I find a link to this thing, which lets you make your own faux-motivational posters. This is a lot like making comics, so I thought it might be fun to try. Somehow it all went wrong on me…
![]() |
![]() |
![]() |
These were coming accross as condescending and mean-spirited so I had to quit. Maybe I’ll try again when I’m in a different mood. I’m not sure what my problem is today.
A predictable mistake
I like to have a few cookies with my coffee in the morning. Not a lot – just a small handfull. Now, we don’t usually have enough bowls in the house to last the day, but we have plenty of mugs. So, instead of using a bowl, I grab a coffee mug to hold my cookies. I sit down in my home office with two mugs – one full of coffee and one with a few cookies in it. Anyone with any degree of common sense will note that this is a terrible idea.
I’ve reached into the wrong mug on more than one occasion, dipping my fingers into the bottom of a long-cold cup of coffee. Other times I would lift the cup to drink and get hit in the lip with a cookie. These were my warnings, which I did not heed.
It was only a matter of time before I stuck my hand into hot coffee, thus burning my fingers, causing a mess, and making myself look like an idiot. Thankfully, nobody was around when I pullled this stunt, but my face turned red anyway.
There are some things which are embarrasing even when nobody is looking.
Harshing Our Mellow
Jay Barnson on anti-videogame legislation:
What he said.
I’ll take Lara Croft over Janice Joplin any day. (And I don’t even LIKE Tomb Raider.)
DM of the Rings X:
Our Growing Family
![]() |
Even more reviled than a typical roleplayer is a roleplayer who insists on roleplaying. When the dorks need to feel superior, this is the guy they denounce as a dork. Honestly. The only person worse than him is the DM himself.
Megatextures
A video discussing Megatexture technology. Why we needed it, what it was supposed to do, and why it maybe didn't totally work.
D&D Campaign
WAY back in 2005, I wrote about a D&D campaign I was running. The campaign is still there, in the bottom-most strata of the archives.
id Software Coding Style
When the source code for Doom 3 was released, we got a look at some of the style conventions used by the developers. Here I analyze this style and explain what it all means.
Trekrospective
A look back at Star Trek, from the Original Series to the Abrams Reboot.
The Best of 2013
My picks for what was important, awesome, or worth talking about in 2013.
Batman: Arkham Origins
A breakdown of how this game faltered when the franchise was given to a different studio.
This Scene Breaks a Character
Small changes to the animations can have a huge impact on how the audience interprets a scene.
Self-Balancing Gameplay
There's a wonderful way to balance difficulty in RPGs, and designers try to prevent it. For some reason.
Bowlercoaster
Two minutes of fun at the expense of a badly-run theme park.
The Witch Watch
My first REAL published book, about a guy who comes back from the dead due to a misunderstanding.
T w e n t y S i d e d




