The Right Glue
2009 archives
By Dean
I've been using Google Wave for about a week now, thanks to an invite from everyone's favourite Linux monster qedi (who still hasn't updated his website to work properly in Chrome, by the way). From this week of use I have come to my conclusion about Wave: it's weird.
Wave is designed to be a replacement for a lot of communication technologies: e-mail, chat, forums, wikis and blogs. To that end, Google has come up with its own protocols and whatnot to deliver the basis for other companies and nerds to create their own Wave-based applications and websites. But Google hasn't released this yet, and what we're given (for now), is a web application that demonstrates all of the different functions that other apps can take advantage of later.
So we're given a web application, which itself almost resembles an e-mail client, with a list of saved searches (which are effectively directories), a list of contacts, a listing of active "waves" (the Google Wave word for "thread") and a big area to actually view the waves. The listing of waves is a lot like an inbox in an e-mail client, and indeed one of the views is called an inbox. When waves are created, the creator can attach participants to the wave. Those participants will see that wave appear in their inboxes, very much like e-mail.
Latest comments:
By Dean
A lot of my job is e-mail. Administrative e-mails from my boss, assertive e-mails to my boss, informative e-mails from my team, donut-centric e-mails to my team, questioning e-mails from other teams, advisory e-mails to other teams, sales e-mails from vendors, bug-report e-mails to vendors, furious and confused e-mails from users, reassuring e-mails to users, garbled e-mails from some other country, clarification-request e-mails to some other country, automated e-mails from software. Lots and lots of e-mails.
I just get too many damned e-mails, and so does everyone else. I get so many e-mails that I can't turn on my e-mail client's notification features, since I would be swamped otherwise. Likewise, I have to route automated status e-mails originating from some of our software to special directories and have them automatically marked as read so that I don't have them clogging up my inbox (which, ideally, should just contain real e-mails that I need to address). I only answer e-mails if I am not in the zone, so that I don't lose massive amounts of time dealing with something synchronously that is designed to be handled asynchronously.
I've seen other people's e-mail clients at the office and they too are swamped with e-mails. They all have various methods of organizing things, some of which work well for them and some of which don't. What's important is that they all recognize that there is a problem with the quantity of messages and they're trying to figure out how to best deal with it.
Latest comment:
By Dean
How many of you users have software that you simply put up with because you already have it? Or maybe because someone you know uses it?
How many of you programmers write software using a language or style because it's what you've always used? Or maybe because your boss told you to?
For an overthinker like me, it boggles my mind when I see people who just accept mediocre things because they think it will take too much effort to switch to something better. Even if it's little things like the position of the taskbar, or what music software you prefer to use. Just how bad does an application have to be for you to not use it?
Latest comments:
By Dean
On the 256th day of the year, the timid programmer (Homo sapiens analyticus) emerges from his technology-covered desk to eat delicious cake and discusses Markov chains with fellow members of his subspecies. He does this because programmers like nice, round numbers like 256, 65536 and 2147483647.
Similar to the chlorophyll in green plants, the thin, pale skin of a programmer is capable of converting light into simple sugars used to power their analytic brains. However, unlike chlorophyll, a programmer's skin can only work properly in the presence of a computer monitor refreshing at 60Hz. (A fluorescent light source at 60Hz produces a similar, albeit weaker, effect.) The process works through biochemical induction, and is finely tuned to the technology produced by engineers (Homo sapiens constructor) due to their long-lasting symbiotic relationship. Because of this, programmers are not able to leave their monitors for prolonged periods of time.
While programmers are powered primarily through the skin, they can also consume the flesh of animals such as donuts and cakes to provide them with limited autonomous power supply. It is imperfect, but when the programmer has to move from one monitor to a superior, distant one it is the only way to avoid the slow death of starvation.
Latest comments:
By Dean
Last night, Youtube raised its cocky little head and said, "Hey, Dean! I have a new TED talk for you to watch!" TED talks, being my only subscription on Youtube, have shown me hours of insightful ideas. If you haven't heard about them, you should check a few of them out. They're definitely the best thing on Youtube.
But most importantly is Daniel Pink's talk regarding the nature of motivation and how performance incentives affect performance. If you don't have the 20 minutes or so to watch the video, allow me to paraphrase:
When people are given tasks that can be accomplished largely by rote, performance incentives will increase productivity. In other words, if I have a task I need done, and that task doesn't require anything other than an uncreative, mechanical approach, I can get people to do it faster by offering to pay more to the people who get done first.

So far, that's just basic economics: people are motivated by payoffs.

But when the tasks require creativity, such as solving a puzzle whose solution isn't immediately obvious, performance incentives actually decrease productivity. The idea is that incentives help to narrow focus onto the task, preventing people from seeing creative solutions as quickly as they would without the incentives.
Daniel gives many examples of studies from different cultures that all show this effect. Incentives statistically stifle creativity and slow productivity. This is in contrast to how most businesses operate, a point Daniel makes many times in his talk.
Latest comments:
By Dean
Note that the following post has nothing to do with fishing, fish, tackles, lures, "catching the big one" or any other euphemisms. It is brought on by the fact that it's been too long since the last post and that it's too hot to turn on my gaming desktop. Why is it so hot? I choose to blame NASA arbitrarily for this heat. It's Hubble space telescope's fault. (Also, this laptop I'm using has a very non-standard keyboard so if you see a lot of out-of-place slashes you may join me in cursing HP for putting slashes in places slashes just should not be.)
Today I wanted to write about teaching and learning. While these things don't have anything specifically to do with software development I'm going to write about them anyway because I find them interesting. And it's not like the off-topic police are going to come shoot me with tasers or lasers or radars if I post something slightly tangential to my site's primary topic. Like a lot of things I've written about recently, this one is driven by behaviour I have observed on Stack Overflow.
I believe very strongly and fundamentally in helping people who help themselves. This is at the very core of how I approach learning and teaching. To bastardize an old proverb, I don't believe in giving a man a fish, I believe in teaching him to fish, provided that he is capable of learning how to fish. In other words, I need to be able to guarantee that he'll be able to help himself once I've helped him. If he's going to forget how to fish before the end of the week, there's no point in teaching him to fish because that's just a waste of time and effort.
Latest comments:
By Dean
The programmer of the night is at it again. This time he's claiming that software engineering is dead. I think he's got the wrong idea. But enough about that pale-skinned apparition; his post is merely the muse of today's post.
The thing I found most interesting was in the comments of his post. In particular, the article Coding is less science and more craft by someone named Joe Stump, written earlier this year. I think that article stumbles around a concept I've written about before, namely the difference between those with the engineering knack who are passionate about programming and Gehn programmers who see software development as just a job. Obviously there are more than two types of programmers, but those are the only two groups Joe's article touches on.
But a more subtle point that both Jeff and Joe mention is the standards and practices that are associated with the term "software engineering": things like project estimates, measuring deliverables, formalization of coding standards used at organizations, etc. They are concerned with treating software design and development as a manufacturing process. This is definitely true, but engineering isn't a manufacturing process either. It's unfair to claim that software can't be engineered simply because it resembles craftsmanship. One does not preclude the other.
Latest comments:
By Dean
People often walk up to me and ask, "Dean, you indomitable man, why do you have your taskbar at the top of every machine you use?" Be they online looking at screenshots of my desktop or standing behind me awkwardly watching me working, people are often dumbfounded by my preference for keeping the taskbar (or dock, or whatever the OS in question calls is) at the top of the screen instead of the (usual) default bottom.
This is another one of those cases where I think too much about software, or at least more than casual users do. As someone who spends nearly all day working on (or playing with) a computer, I've had a lot of time to try out different methods of interacting with them to make my life easier.
Think about your most-used applications. If you're like most people the applications you use the most will be your web browser at home and your e-mail client at work (or integrated development environment if you're a programmer). Unless you're qedi, your web browser, e-mail client and IDE are all going to be graphical (meaning you use a mouse to interact with them). Most modern applications are.
Latest comments:
By Dean
Some things I have seen in the last couple of weeks have made me want to talk to you about my views regarding anonymity in general and this blog's comment system specifically.
Let's get this out of the way first: no, I am not just talking about 4chan. I'm talking about account-creation, moderation, commenting and other general stuff like that. Yes, I have advocated anonymity before and will certainly do so again today.
It all started when someone on Stack Overflow brought up the question How can I moderate trolls algorithmically? My answer was, of course, you can't. There is no way to detect a benevolent human from a malevolent human, at least with today's technology. The best we can do is detect non-human spammers based on their predictable behaviour. Malevolent humans will pass any Turing test by definition.
Latest comments:
By Dean
Invariably, people on Stack Overflow ask questions about how to parse XML, HTML and their ugly daughter XHTML. Ignoring the most obvious solution to their problem (which would be to use a pre-existing XML parser), they think they should use regular expressions (regex for short). Now they have two problems, to quote the famous anti-regex saying.
Now, don't get me wrong. I like regular expressions. Parsing, formal languages, finite automata; these are among my favourite things. Regular expressions course through my veins. That's why it hurts me so when people try to misapply them and then emit quotes like the one in the previous paragraph.
Regular expressions were not designed to apply in every situation. They are not even remotely close to a universal parser (that would be a Turing machine). For some reason, inexperienced programmers equate the concept of parsing things with using regular expressions. Not only is that just plain misinformed, it's often more work to bend an algorithm to use regular expressions in the wrong situation than it is to do something more directly.
Latest comments:
By Dean
Me, I love pseudocode. It's useful in so many situations, like duct tape. Or dogs. Or dogs covered in duct tape.
But recently the world's computerscience-est Nosferatu (and I swear both of those are words) wrote an article which can be paraphrased down to "pseudocode is overrated". Paraphrasing an article down to a string smaller than its Kolmogorov complexity is a feat only possible by a mathemagician like me. That's how I can defeat this creature of the night: lossy compression.
Alright, now I'm going to start making sense. Insofar as I normally do. Yeah.
Latest comments:
By Dean
Recently I had the opportunity to meet someone online who hates programmers.
Seriously, he hates programmers. I had trouble understanding why at first. It seemed to me like he was taking the common "Microsoft sucks" attitude one step farther than normal. He extended all of the little issues he has with software to programmers in general. This isn't completely unjustified. Programmers are the root cause of his issues, after all.
After I spent a few minutes arguing with him, trying to understand his point of view, he mentioned in passing a complaint that Vista was an example of poor programming because of how much space it takes up on his hard drive. His reasoning was that smaller programs are faster, because to him this was obvious. As he stated this I realized that this argument, though completely incorrect, seems obvious to people who don't have a background in computer science.
Latest comments:
By Dean
I've made some changes to the site since the last big update. Mostly little things here and there, but once again I want to bring them into the spotlight in the interest of full disclosure, sharing ideas and to elaborate on why I do these crazy things that I do.
The first thing is I've changed the way URLs are constructed on this site. I got the idea from Stack Overflow to use URLs that are a bit more descriptive and friendly than simply view.php?postid=50. In reality, the title portion of the URL isn't used by any part of the site, it's just there to give people an idea of what the page is about if it's posted bare on a forum or IRC channel. It's also something that should help my site's ranking in search engines (a process called search engine optimization). Not that I haven't already gotten lots of weird hits from Google before...
Another thing I've done that you may have seen is the year and month drop-down lists next to the search text box. It used to have one entry for every month/year combination. At the time I changed it, there were 19 fields in that drop-down list.
Latest comments:
By Doug
To celebrate my new layout I wanted to talk to you about donutomological biology. You see, I am the world's foremost donutomologist and wanted to cover with you some details regarding donut taxonomy.
(If you can't read this post due to the colours, please refresh your browser for a new set of colours. If you can't read this post, then how do you know you should refresh your browser to get a new set of colours? This kind of mystery is better left to a mysterographer. I'm just a donutomologist. Leave me alone.)
It all started when I was but a boy of five. I got to see Tim Horton, the world famous donut hunter, for my birthday. I was thrilled. The man was seven feet tall, covered from head to toe in donut skeletons. I had always idolized him for bringing the delicious donut from the plains of Saskatchewan to my plate at his store. I'll never forget what he told me that day: "Donuts never sleep." I dedicated my life to studying this elusive animal from that day forth.
Latest comments:
By Dean
From the world's nerdiest vampire and some guy who writes an awful lot comes my favourite massively multiplayer online role-playing game Stack Overflow. I was introduced to Stack Overflow by the world's best-paid Internet troll Rich B (who, like bstorer before him, is stealing my face for his avatar) a few months ago as a place to post some anonymous WTF code for a good laugh.
At first glance, I thought that Stack Overflow was a very bad idea. I wanted to post about it here almost immediately, but then reason struck me in the head and told me it would be better if I use it for a while before forming an opinion about it. Instead of just relying on my first impressions of the site, I decided to hang around, gain some levels and gank some noobs before coming to a conclusion.
So now, after two months, I can tell you that Stack Overflow is a very bad idea. But it's a damned entertaining bad idea.
Latest comment:
By Dean
I had a number of things I wanted to write about that are pretty interesting to me, but I am currently in that state of mind in which I can't write what I want to write and have been for almost a month now.
One theme you may have noticed on The Right Glue is my general dislike of the Mozilla Firefox browser. It's there in the footnote on every page, and a few comments some have made on related subjects.
Firefox is a fine browser. It's got plenty of nice features, it's got a good rendering engine. It eats RAM like a bloodthirsty vampire, but I don't really hold that against it. What I can't stand is its users.
Latest comments:
By Dean
I'm the kind of guy who thinks about stuff that exists solely so you never have to think about it. Things like user interfaces. Sometimes things even more subtle and pervasive than that, like why some technologies even exist in the first place.
For example, I know why desktop search applications are so damned popular, and why Microsoft never thought of it until Google introduced the idea to the masses. Think about all of the version of Windows up to Vista. None of them had any kind of search functionality other than an inefficient "look at every file every time you want to search" algorithm. Google introduced an application that pre-computes an index over all of your files to make searching faster and it was incredibly popular. Microsoft obviously had the capability of creating this kind of software, since Windows Search was released with Vista to compete with Google Desktop.
There are three important points I want to bring up with respect to this bit of trivia.
Latest comments:
By Dean
If you thought my last post was too technical, then you'd best just skip this one.
After a grueling week of upgrading my PC's hardware a dealing with flawed Seagate firmware updates, I decided to celebrate by adding yet another Markov chain feature to KevBot. There's not a lot of story to this. Qedi (who still hasn't updated his website since his reply to one of my very first posts), decided to call me on my claim that I couldn't make a full Markov conditional probability matrix out of KevBot's factoid database. He claimed that a graph-like data structure should be able to store the entire Markov table and also that it could be computed in 1.5 seconds.
With this in mind I took out my whiteboard and started coming up with a data structure that would be suited. Since qedi is interested in this structure, I will be outlining what I required and why I designed the structure the way I did. (The things I do for ex-roommates.)
By Dean
Weapons, a poem by KevBot:
When the reticle turns red,
The reticle turns red,
The guy is dead.
WARNING: This post assumes you have at least some idea of what conditional probability is, at least in the context of Markov chains. For those who do not know, here is my poor rough explanation: let's say someone has split a deck of cards into two 26-card piles. If I pick a card from either pile, I have 25% chance to get a diamond. But if I knew that the pile on the left only has red cards, and the pile on the right only has black cards, I know that the probably of picking a diamond from the left pile is 50% and 0% from the right pile. That's conditional probability: the change in probability of an outcome given some extra information. Probability is fun stuff, guys.
As you'll recall, I have something of a passion for creating things whose primary purpose is to cause general aggravation in my peers. The last time I updated my IRC bot, I added a Markov chaining algorithm whose output resembles English statistically rather than syntactically or grammatically (words that end in -tically are fun to say aloud).
This is some kind of footnote. This webpage is awesome and can be viewed in any browser. Even ones that suck ass like Safari and Firefox. Isn't that awesome? This site is best viewed with browsers that aren't maximized on large-resolution displays (> 1024 pixels in width). But then again, if you are running a large resolution and browsing maximized, then you're a terrible person so you don't really deserve to see this site at its finest. Jerk. I mean, seriously. I spend all this time making a nice site and your silly browsing habits ruin its look. That's really cold, man. If you're using IE6, then in order to see the cool avatar effects you need to enable JavaScript. No rights reserved by Dean Whelton (who is awesome) of any of the content, images, design, backend or electrons used in this site. Steal at your convenience. None of it is worth stealing anyway, so there. I have even made an RSS feed for more efficient theft of my intellectual property: CLICK IT NOW!!! Now, don't say I'm not generous. I guess if you want to know more about me, you can visit the about page. It's not really an about page, though. It's just one of the first posts. I don't feel like making a real about page. You can contact me, too. If you feel like it. Are you really wasting time reading this? Go outside or something.