21 October 2009

Magic indeed

I just noticed Apple came out with the "Magic Mouse" yesterday.

The same Multi-Touch technology first introduced on the revolutionary iPhone comes to the mouse. It’s called Magic Mouse, and it’s the world’s first Multi-Touch mouse. Click anywhere, scroll in any direction, and swipe through images on its smooth, seamless top shell.

The new Magic Mouse redefines what a mouse should do. In addition to its smooth, seamless top-shell design that acts as one button or two, Magic Mouse features a Multi-Touch surface with gesture support. Scroll vertically, horizontally, and diagonally — a full 360 degrees — simply by touching anywhere on the top surface. With a greater surface area for scrolling, you can get around a long timeline in iMovie, through a lengthy web page in Safari, or around a set of images in iPhoto more efficiently. You can also swipe through pages in Safari or photos in iPhoto with two fingers. It’s the most advanced Apple mouse ever made.

...NO. I really wish Apple would knock this off, it drives me insane. Multitouch was not introduced on the revolutionary iPhone, and this isn't the world's first Multitouch mouse. They should know, since they destroyed the company that made them. They've owned Fingerworks' technology for almost five years now. They own it. They don't need to copy it or reproduce it, they've literally got the guys that invented it working for them right now, and after five years they created a legendary magical mouse that lets you:

  • Click anywhere

  • Scroll in any direction

  • Swipe through photos

I realize Apple users are new to the concept of a functional mouse and might be a little behind on all the advances, but last time I checked mice already let you click anywhere. They also let you scroll in any direction, scroll wheels were added to mice 15 years ago, and rocker wheels weren't long after that. Finally, side function buttons for swiping through photos or whatever else you want are maybe a decade old. Calling scrolling in any direction "gesture support" is absurd, this was gesture support

Apple bought out the best multitouch company there was and took five years to incorporate their technology into a mouse that's only ten years behind the rest of the world. Not that I can really argue with their selling point, it is "the most advanced Apple mouse ever made."

08 October 2009

Emacs -> Sprunge

Woo code! I got bored and wrote a function for Emacs that posts the current buffer to sprunge. Since I'm usually pasting IRC snippets, I also threw together a major mode with 4 regexps to syntax highlight IRC. Behold:

Here's the elisp source. The hash table maps major mode names to the corresponding pygments lexer name, which sprunge uses for syntax highlighting; if the mode of the buffer you post is in the map, the sprunge link will include the correct argument to syntax highlight it the same way

(setq sprunge-suffixes (make-hash-table :test 'equal))
(puthash "Python" "py" sprunge-suffixes)
(puthash "Shell-script" "sh" sprunge-suffixes)
(puthash "IRC" "irc" sprunge-suffixes)

(defun sprunge ()
"Posts the current buffer to sprunge, and shows the resulting URL in a new buffer"
(if (buffer-file-name) (save-buffer) (write-file "/tmp/sprunge-post"))
(let ((sprunge-buffer (get-buffer-create "*sprunge*"))
(sprunge-window (split-window-vertically (- (window-height) 5)))
(filename buffer-file-name)
(suffix (if (gethash mode-name sprunge-suffixes) (concat "?" (gethash mode-name sprunge-suffixes)) "")))
(select-window sprunge-window)
(set-window-buffer sprunge-window sprunge-buffer)
(insert (shell-command-to-string (concat "curl -F 'sprunge=<" filename "' http://sprunge.us")))
(delete-char -1) ; Newline after URL
(insert suffix "\n")))

(define-derived-mode irc-mode
text-mode "IRC" "Major mode for IRC logs"
(setq font-lock-defaults
'((("\\[[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\\]" . font-lock-constant-face)
("<.*>" . font-lock-keyword-face)
("[a-zA-Z0-9`^_-]+:" . font-lock-type-face)
(">>> .*" . font-lock-builtin-face)

26 August 2009

Genius bloggers post on occasion

My disagreements/line ratio with the latest Coding Horror is unusually high, and there doesn't seem to be a Proggit post for it yet (and it'll be a cold day in hell before I start submitting Coding Horror posts), so I figured I'd blog instead.

Atwood is a big fan of synecdoche: he has an annoying and incessant habit of using "we" when he really means "I". If he does something, it's not "Jeff Atwood does this", it's "software developers do this". Often it's "professional software developers do this", so we don't get confused and think he's a noob. Virtually every Coding Horror post at some point indirectly contains the assertion that Jeff Atwood is a genius developer, by demonstrating how Atwood does X and then slipping in "on a totally unrelated note, genius developers are known to do X". The most common mechanism is the transparently fake self-demeaning sound bite "all code sucks, especially mine". He says it so often he's starting to become famous for it, and I might respect it if he didn't feel the need to add in, every single time, "and uber-programmers realize this", like it's an afterthought. "Oh gosh, I guess I am a badass after all -- I didn't even realize! That was a close one, readers." I swear he's trying to inculcate his readers to subconsciously associate "Jeff Atwood" with "badass programmer"; I see no other reason for his ostentatious repetition of a fairly commonplace expression. I would honestly prefer if he just flat out said "I'm fucking awesome; deal with it" so I wouldn't need to wade through his obfuscated self-aggrandizement.

The latest post was no exception, of course; despite being less than a page even with graphics, he managed to slip in "the tipping point between amateurs and professionals in our industry: the professionals realize everything they write sucks."TM But before he got to that, he explained why he we blog:

We may kid ourselves into thinking we're writing out of some sense of public good, or to create connections, or contribute some small bit of knowledge to the world. But let's face it. Most of us blog because we're raving egomaniacs. We not only love to hear ourselves talk, we're incredibly eager to hear other people talk about us, and the more the better

Emphasis not mine, but I think it's probably beneath even me to comment much on that part anyway, especially considering what I've already covered. The main assertion that people blog for recognition seems unlikely, however, if only because 99% of blogs are read by pretty much nobody, and I like to think we're all aware of that. I have like three readers; I get way more exposure commenting on Reddit than I do blogging about something. I blog because I enjoy writing about things. And because if I kept my hatred of things bottled up I probably would've attacked someone by now, but that's a secondary benefit. I may not be particularly good at blogging, or particularly knowledgeable about the things I do blog about, but neither of those things matters in the slightest. This blog could just be saved in a file on my computer and I would get the same enjoyment out of writing in it; the only reasons it's online are because I occasionally link to it if a discussion about something I've covered comes up, and because setting up a blog is trivial so I see no reason not to. I occasionally try to "contribute some small bit of knowledge to the world", but most of the time my blog posts are just about things I felt like writing about at that moment. I don't post my blogs to Digg or Reddit (I hate when people do that, actually), or really make any effort to try and garner readers. Maybe that's unusual, but I think most bloggers blog because they enjoy writing about their interests; they're not under the delusion that the rest of the Internet is interested in reading about it

On the other hand, I might just be secretly hoping that Atwood reads my blog, as he has "an automatic Google ego search set up for my name". I really didn't think people googled themselves anymore, and certainly not continuously via a script, but again, maybe that's just me

And really good bloggers say that. Draw your own conclusions

05 July 2009

Quests for Power

I figure I should post before a full year since my last post elapses. I'd like to share the fun story of trying to find a replacement power cable for my SATA dock.

I have a hard drive dock. Sadly, I appear to have misplaced the power cable. No problem! I'm sure power cables are easy to replace. First I went to Radio Shack. I told him I needed a 12V/2A cable with an H-connector, and he proceeded to tell me they didn't carry them. That sounded fairly wrong, so I led him over to the wall where they indeed have power cables with a neat little adaptor that lets you put any connector on the end. However, it turns out the main cable plus the H-connector somehow costs $35, which is considerably more than just buying a whole new dock. Since Radio Shack was probably my best hope of finding a cable, I decide to try and find another dock or enclosure instead, but they don't carry them.

Next I tried to go to Best Buy, but couldn't find it. Probably a good thing, as I imagine the docks there cost more than multi-terabyte hard drives at other stores. In desperation, I went to Walmart. I don't think I've ever bought anything computer-related at Walmart, but I tried anyway. I poked around in their external hard drive section for a minute until one of their very helpful staff came over. This is verbatim, even the last line:

Me: Do you guys have any hard drive enclosures?
Helpful Walmart Employee: ...what?
Me: Any hard drive enclosures? Or docks, maybe?
HWE: Uh...no, we just have...the RAM
Me: ...OK, thanks

In conclusion, I was disappointed in Radio Shack, but completely unsurprised by Walmart.

On a totally unrelated note, I now have the power (I originally typed "ability", but couldn't resist the pun. I'm weak) to control my hall light from my computer, which I'm fairly pleased about. I planned to describe the complicated procedure involved in settings this up, but unfortunately it's pretty much:

  1. Take off a light switch and wire the WS467 in
  2. Plug in a CM11a and connect it to a computer
  3. Install heyu

I'm still awesome though. I need more of these modules. Lots more

21 August 2008


There is massive confusion about C++0x. I've heard the name made fun of no less than five times in the last couple days, most recently in a blog post that spends a good half page mocking the possible pronunciations. On a side note, I recommend not reading that blog post, it's rather impressively packed full of ignorance. I made a joke about the name on Reddit and realized from the subsequent comments that people seriously think the standards' name is going to be C++0x. "0x" is supposed to be the ratification year -- "x" is not going to stay there. If it gets ratified in 2009 like they expect, the standard will be called C++09. This is not in any way new. C had C89 and C99, released in 1989 and 1999, and they're working on C1x (OMG AN X; how will we pronounce it?). C++ had C++98 and C++03, released in 1998 and 2003, and they're working on C++0x. Just like how we don't clarify C89 or C99 unless it's necessary (we just say "C"), we're not going to be saying "C++09"; we'll be saying "C++". C++0x is not a "new language", it's a new standard for the existing C++ language.

16 August 2008

Linux isn't for everyone

I've wanted to write this entry for ages, but I keep forgetting. Fortunately, there's plenty of people on the Internet that helpfully remind me. There's a massive misconception about why people should adopt Linux, and I see it over and over again (because I still read Digg comments; the drama is just too enticing). Quotes like this pretty much sum up the problem:

people want an OS that works OUT OF THE BOX - they don't want to tweak with the kernel ... and no flavor of Linux is getting that done properly.

NO. "they don't want to tweak with the kernel" is 100% wrong, and that is the issue. The inevitable banal response to this is somebody saying "Ubuntu means you don't have to mess with the kernel", which is completely the wrong tack to take. The right answer is "If you want things to work out of the box and you don't like fiddling, Linux is not for you". "I just want it to work" is not the attitude of somebody that should be using Linux, that's not what it's for. Yes, it is entirely possible for things to work out of the box on Linux, and Ubuntu is very good at that, but what's the point? You might as well use Windows, you're not getting the main benefit of Linux: infinite flexibility. You can make arguments for security and reliability, but obviously Windows users (or at least the 87 that dugg up that comment anyway) don't particularly care, or have no issue with Windows in those areas.

I understand the Linux community's desire to convert people to Linux: the more people that use Linux, the more supported it has to be by hardware and software companies. But harrassing every Windows user you find and telling them they should be using Linux if they know what's good for them is nonsense. Linux is not for everyone; it really isn't for most people, since most people are fine with the default configuration of everything and don't particularly need it to change. Leave those people alone and stop getting in arguments with them; if at any point in a Windows/Linux argument the Windows person says "I just want it to work", just let it go -- they'll be happier with Windows

11 August 2008

Reddit power

Apparently I should get reddited more:

Sadly, that now makes the handful of visits I had before look like 0 on the graph, but oh well. I actually posted that entry on a comment to another post, but apparently somebody reposted it as a story. A surprising number of people agreed with me considering I think it's a minority opinion, but there were plenty that disagreed too. And my anti-Windows thing at the end got interpreted backwards, which lead to confusion: I was saying that Pidgin, as an open source project, should be avoiding the very things that tend to drive people away from Windows. The main reason I love Linux is I can customize whatever I want, effortlessly; Windows is far less flexible. Trillian is an example of an unusually flexible Windows program, which is the very reason I used it, but with Linux it's no longer the exception to find a program that lets me configure it the way I want

EDIT: Apparently I should've waited before taking that screenshot:

09 August 2008

DNS flaw released without warning

I think the Kaminsky DNS vulnerability news was big enough that non-tech people heard about it, so hopefully everyone here knows what I'm talking about; if not, it doesn't really matter. There was a serious DNS vulnerability that Dan Kaminsky discovered this year. Ignoring the temptation to hack the entire Internet, he worked with DNS vendors to patch their nameservers; there's a fairly cool video that shows a map of the world over time colored to show if servers are patched or not:

The details of how the exploit worked weren't actually supposed to come out until his black hat presentation a few days ago, but they leaked a week or so early. Nonetheless, watch the clip above and look at how many servers were patched by the time the details came out in late July

Then some Russian guy discovered that the fix isn't completely effective, although it does make poisoning take way longer. Did he quietly share the news with DNS vendors and try to work out a fix? Hell no, not only did he post the story on his blog, he helpfully included exploit code with it, because having to write your own might slow down attackers for a few hours

I understand the desire to release the news as soon as possible; Kaminsky is pretty much the most famous security researcher in the world at the moment, but what the hell? Now the New York Times has picked it up, so anybody with a couple good computers and a few hours on their hands can try poisoning a nameserver just for fun.

05 August 2008

Now I Can Manipulate Pictures in 3D

So I'm told there's this new interface that resembles the thing from Minority Report. For those too terribly sheltered to have seen Minority Report:

That part isn't particularly good, but I can't find the clip I like. You get the idea anyway. I don't expect the example for the real interface to be Tom Cruise solving future crimes, but I really hoped it would be something, anything, besides this:

Why?! Why is it always the freaking picture twiddling? It was the same thing with the damn giant table, is that all multitouch interfaces are good for?

Firefox Password Fail

What happened with Firefox remembering passwords? Around the middle of July I suddenly noticed Firefox wasn't remembering passwords anymore. It still had them all in the saved passwords list (I think -- it doesn't anymore), and I still had it set to remember them, but it wouldn't auto-fill forms anymore and it didn't offer to remember new passwords. Oddly, this happened to both my home and work machines. My work machine runs Windows XP and Firefox 3, while my home machine runs Gentoo and Firefox 2, so it's fairly odd that both broke at the same time. I finally got around to searching for a fix today, and found a bunch of posts with the same problem:

All these people posted right around the same time, the middle of July. It seems Firefox simultaneously broke for a whole bunch of different people, and as far as I can tell nobody knows why; I'm not even sure if people have noticed the connection or not. The fix seems to be deleting the password cache so it can start over, but I haven't heard any explanation for what actually happened

04 August 2008

McCain lies? No!

So this might seem to be somewhat at odds with my last post, but I just couldn't resist posting it. I'm not actually surprised by any of this, but maybe Republicans will be, since every time Obama varies his position in the slightest they go nuts. This guy took the time to make a massive list of all the lies McCain has told. And not small stuff like Obama's generally are, these are complete reversals on virtually every position he's ever had, including the same things Republicans attack Obama about. Technically these aren't "lies", they're more like flip-flops, but I'm more than willing to adopt Republican rhetoric in this case. Next time a Republican whines that Obama changed his position on something, direct them to this list

27 July 2008

Politicians lie? No!

I've been bleeding my RSS feeds dry recently, which means I'm forced to read the bottom of the barrel:

80% of Digg articles are about the same thing: some politician said something that makes people sad. Usually, said politician is on record saying the opposite thing sometime in the past. Diggers are shocked, hurt, betrayed, etc. Diggers will never vote for said politician ever. Unfortunately, every politician is in the category of politicians that can never be voted for, which puts us in a predicament (if we listen to Diggers, anyway).

This just in: All politicians lie an alarming percentage of the time. They have to, or they'd never get elected to anything. Too many voters have positions that are deal-breakers, so if a politician has solid positions on everything a majority of people will disagree with one of them, and they're screwed. Not to say politicians don't have standings on these issues; of course they do. They just have to make sure you don't know about them. This either means they have to dance around things they know will alienate voters (that is, everything), or they need to change their position depending on who they're talking to. Unfortunately, with the Internet this no longer works, because now we know that the things they told people on the other end of the country aren't the same things they're telling us, but that doesn't stop them from doing it over and over again.

Yes, it would be awesome if we could elect politicians who didn't lie to us on a regular basis, but there are so many issues that America is divided on that it can't happen anymore. Stop being surprised when it turns out a politician lied about something.

04 July 2008

Harriet Jones uses Saitek

In the first part of the Doctor Who finale (which, for the record, was excellent), Harriet Jones is controlling the subwave network from her house:

I do believe that's a Saitek Eclipse she's typing on. Nice choice, if I do say so myself, and high five for good product placement. And since the subwave network got the Doctor to Earth, Saitek pretty much saved the world

I am uncreative

I was halfway through a blog post about Haskell when I suddenly realized the blog's name is "Things that amuse me". So apparently my blog title is thoroughly uncreative; if I recall correctly, my title was originally going to be exactly that, but I added the "or depress" when I realized many of my posts would probably be things that are bad. Maybe I'll rename my blog, if I can think of anything else

03 July 2008

Viacom vs Google

There's a fairly unbelievable ridiculous stunning typical case going through the courts right now. I saw it mentioned on other sites, but they focused on the vast privacy violations and generally sidelined the other impressively absurd parts of the lawsuit. Somehow Viacom has gotten it into its head that people occasionally post copyrighted videos on Youtube (Lies!). I read through the filing, it's impressive. For example in (4):

YouTube itself publicly performs the infringing videos on the YouTube site . . . It is YouTube that knowingly reproduces and publicly performs the copyrighted works

This is somewhat clever, and practically ubiquitous in these cases: abusing pre-Internet laws. When they say YouTube "performs the copyrighted works", we all know perfectly well what they mean: YouTube sits there while people stream off them. It's like saying my SMTP server performs recitations of my e-mails as I send them. Obviously that law was meant to forbid me setting up a projector and selling people tickets to watch videos I've bought, that's what "performing" a copyrighted work is. In case there's any doubt, they just come out and say it in (31):

YouTube then publicly performs the chosen video by sending streaming video content from YouTube's servers to the user's computer

Then Viacom complains because they're lazy (6):

it has decided to shift the burden entirely onto copyright owners to monitor the YouTube site on a daily or hourly basis to detect infringing videos and send notices to YouTube demanding that it "take down" the infringing works

Unbelievable, Google. What makes you think you can possibly shift the burden entirely onto copyright owners? Actually, they probably think that because of the DMCA. Yes, I was shocked too, but the DMCA actually does have a section buried in the middle entitled "Limitations on liability relating to material online". And in section 512, subsection d, bullet 3 (actually, pretty much every subsection of 512 is identical, this thing is absurdly redundant) it states that YouTube needs to, "upon notification of claimed infringement as described in subsection (c)(3), respond[] expeditiously to remove, or disable access to, the material that is claimed to be infringing". DMCA: fighting for the people.

The next couple pages is the always impressively boring plaintiff exposition, but in skimming it I noticed something that made me smile: they list some of the videos they disseminate online themselves, including:

"SpongeBob SquarePants," and "Dora the Explorer," among others, from Nickelodeon; and "Beavis and Butthead," "Laguna Beach," and "Jackass", among others, from MTV

I would love nothing more than to hear a $500/hour lawyer expounding about how Viacom has willingly given Dora the Explorer and Laguna Beach to the masses

And while Viacom demands catholicons for their problems (can you have more than one? oh well), I can understand their annoyance. But then I found the latest filing from yesterday, which actually manages to top the aforementioned bitching (legal term). This is the one where the judge responds to Viacom's demands, so it's a nice concise summary of what Viacom wants. For example, the logs of everything everyone has done on YouTube ever ("all data from the Logging database concerning each time a YouTube video has been viewed"). This is obviously crazy, except as the wired article points out, it was granted. Viacom and Google probably stared at the ruling with identical slack-jawed amazement. Viacom claims that this isn't a privacy violation, because (quoting a Google blog post) "an IP address without additional information cannot [identify you]". Technically true, although the "additional information" required is really just the date/time you were using it; that's sufficient for an ISP to pinpoint who was using it. And since the data Viacom is demanding includes "the time when the user started to watch the video", this claim is specious. But other site have already talked about that, this is the epic one:

The computer source code which controls both the YouTube.com search function and Google's internet search tool "Google.com"

...right. Viacom knows perfectly well it'll be a cold day in hell before Google gives them the source code to their search engine, so I'm not sure what their angle is here; maybe it's the patent insanity that's lead other sites to ignore this. I purport that Microsoft has intentionally rigged Windows to blue-screen periodically; can I have the source code now? But wait, they're not done yet:

Defendants have purposefully designed or modified the tool to facilitate the location of infringing content

They're not kidding, they claim Google has modified their search engine to intentionally favor copyrighted data. They've apparently forgotten about their earlier filing, when they accosted Google for doing the opposite:

YouTube has also implemented features that prevent copyright owners from finding infringing videos by searching the Youtube site. YouTube thereby hinders Plaintiffs' attempts to locate infringing videos to protect their rights

So either Google is intentionally helping people find copyrighted videos, or they're intentionally thwarting it -- either way, Viacom is pissed off. It's a bold move claiming that Google is making it harder for them to find copyrighted data by taking it down. Not that this thwarting has actually slowed Viacom down (3):

Plaintiffs have identified more than 150,000 unauthorized clips of their copyrighted programming on YouTube

Way to get around that Google blocking, Viacom. You showed 'em. Here's the judge's actual signature on the order to "compel production of all data from the Logging database", just so you can see it :):

BLAME! E-mail that guy and tell him he should learn how computers work before he makes rulings

EDIT: Wow. Speaking of abusing pre-Internet laws, it's like the government saw this post and wanted to show just how far it can go: a woman was charged with violating the Computer Fraud and Abuse act because she signed up for MySpace with a fake name. Viacom sounds downright competent now

01 July 2008

Heck yes it's Web 2.0

Awhile ago, Digg decided to Web 2.0-ify their site. Which I'm cool with, yay for the future and all. So now when you look at a story, the comments aren't included in the initial request, they're loaded via AJAX right after. Annoying but theoretically faster if there are enough comments on the story. What's actually cool is subthreads aren't loaded, just the initial comment tree; comments on comments are loaded as requested. Even digging and commenting is AJAXified...as long as you're logged in. If you're not, you get this:

Is this AJAX? Hell no it's not, to login you have to go to another page, which means all the progress you've made on your current page (which can be considerable since the rest of it is AJAX) is now lost; you have to start over. And it doesn't check to see if you're logged in at click-time like a real AJAX application, it's hard-coded into the link at load-time, so if you open a bunch of different Digg stories and then try to login, you need to reload all of them. Nicely done Digg. At least I've stopped getting a dialog saying I can't digg stories I've left open for too long, it only took them like a year to fix that one

25 June 2008

Flippable e-books

I found a video about a dual-display e-book reader, which sounded like an interesting idea. And then I watched it:

...huh? They apparently seriously believe that pressing buttons to switch pages is a lot of work for users, and it's much easier to either manually simulate a page flip, or to actually flip the entire device over. I think they must be joking or intentionally lying, because anybody that actually used that device for more than 5 minutes would be so tired of either one of those actions they'd be begging for navigation buttons.

Worse is the "thumbnail" technology used for searching the entire text. The thing I hate most about physical books is it's hard to find a phrase I remember reading if I don't remember where it was. Never in my life have I needed to search through an e-book and thought "well, I can just use the find feature, but I sure miss being able to riffle through the pages hoping to stumble across what I want instead". The thumbnails are so absurdly small as to be useless, especially in a document with no pictures. Next they'll be telling us we should organize our photos on a giant digital table. I don't know how the trend of making digital devices that simulate analog devices and their flaws got started, but it should probably stop soon

21 June 2008

Product placement

I never really understood why companies spend so much money on product placement. I've never stood in a store thinking "Well, I need X. What kind of X does Jack Bauer use?" (obviously if I were to think this, Jack Bauer would be the role model). I figured maybe it was just a subconscious thing, where people choose things they've seen on TV because they vaguely remember hearing of them, but then I found this

hey i was watching Psych and they mentioned something called Kangaroo Paste. What is it? & Where could I buy it?

Bravo, Psych. By having Shawn mention for 10 seconds that he wants a fictional item, you've convinced somebody they want it, without knowing anything about it since it isn't real. I'm much more impressed with marketing people right now

EDIT: Also the verticoli hair brush

20 June 2008

Now I've got you

I'm having an interesting problem with Firefox 3: I'm unable to close my blog. Once I go to my main blog page, I can't close the tab or navigate away from the page, or Firefox segfaults. I like to hope all my readers have this problem, because then it's like a feature of my blog, but I expect not. I tried disabling Flash and all my extensions to no avail; I suspect the problem is one of the other media plugins, like Totem for playing audio clips. On the rare chance that somebody else is having this problem, let me know

18 June 2008

Open Reddit

I'm a big fan of Reddit, particularly the programming subreddit, so I was excited to see that yesterday reddit went open source. I got a copy of the code and started poking around; I never realized that Reddit is written in Python, which automatically makes it good. I also hate the Reddit developers less now; they've had a problem for months now with their RSS feeds showing duplicate entries, and have thus far claimed they have no idea what's wrong. I don't know Pylons (the framework Reddit uses), but after my initial poking around I too have no idea what's wrong, so for the moment they're not idiots anymore, although I plan to look into it further. A comment calling something a hack appears 8 times in their code, which is fairly respectable; I particularly enjoyed this comment I noticed in /r2/r2/config/middleware.py:

#god this shit is disorganized and confusing

17 June 2008

Linux Journal's Captcha

I forgot to post about this in my last article, I was too focused on my rockbox love. Linux Journal has a very unique captcha. Admittedly, the standard find-the-characters-in-the-distorted-image one can be difficult:

However, Linux Journal's solution is probably not the best. It's a particular annoyance because they require you to preview your comment before posting, which loads a new page, and they don't auto-fill/skip the captcha, so even if you fill out all the fields right you have to do at least two captchas. But that's not the problem, I can live with that, the problem is the captcha is a math question. And because (see myspace.com for corroboration) most people on the internet are stupid, they ask you a low number addition problem. Now, computers may suck at complicated OCR, but one thing they've pretty much got down is addition of single digit numbers.

For an amusing proof of concept, here's a greasemonkey script that will automatically fill in the captcha on any Linux Journal comment page:

// LJ-Captcha
// ==UserScript==
// @name LJ-Captcha
// @description Auto-fills the Linux Journal captcha
// @include http://www.linuxjournal.com/comment/reply/*
// ==/UserScript==

nodes = document.getElementsByTagName('span');
for(i in nodes) {
if(nodes[i].className == 'field-prefix') {
mathExpr = nodes[i].innerHTML;
mathRe = /([0-9]+) \+ ([0-9]+) \= /;

first = parseInt(mathExpr.replace(mathRe, "$1"), 10);
second = parseInt(mathExpr.replace(mathRe, "$2"), 10);


Rockbox > Linux Journal

I'm starting to wonder if Linux Journal is like The Onion for Linux. Every article I have ever read on that site (so like 3) has at some point made me stop and wonder if it's just a big joke. But they went too far when they did a video about Rockbox. Now Rockbox is pretty much amazing. It's an alternate firmware for MP3 players, and I've used it on mine since about 20 seconds after I got it. It has a million features and is in general better than whatever firmware you're using, in every possible way. Here is what the 6 minute video Linux Journal did on it consists of:

  • First two minutes -- Talking about how he attempted to install Rockbox on an iPod Nano v3, iPod Nano v2, and Toshiba Gigabeat u, the last of which he actually went to the store to buy just for this video. As he discovered through totally unnecessary trial and error, Rockbox does not support any of these; ironically, it does support these devices, just not these particular versions. You can feel free to go through the same trial and error with your device, or you could just check the compatibility list helpfully offered on rockbox.org

  • Next two minutes -- Playing DOOM

  • Next minute -- Showing "demos" like plasma and fire. At one point he mentions for a few seconds that you can play music

  • Last minute -- Advertisement for GoGrid. Seriously

At the very end he mentions that it can play music, but doesn't actually show it. I'm starting to suspect that maybe this was meant to dissuade people from using rockbox by covertly making it look terrible. He demos it on an ancient, monochrome iPod that he has to have plugged in because it has no battery strength anymore; he mentions several times what a terrible player it is. Super choice there. And then he spends half the time rambling about the players it doesn't support, the problems his ignorance has caused, and how neat GoGrid is.

I posted this as a comment on the video, but apparently they didn't feel it warranted approval: Despite what the video portrays, Rockbox is fantastic. It's not nearly as ugly as it looks in the video; that player blows and he's using an ancient rockbox version, there's a whole bunch of different themes, like:

Everybody who has a supported player go try Rockbox, you'll love it

Crypto-virus, oh noes!

I keep seeing articles on this, and I've even commented on a couple, but I haven't actually mentioned it on here: I don't get the gpcode thing. I'm not exactly old; I'm certainly younger than the people writing these articles about the coming malware armageddon, but this is not exactly unprecedented. There was a virus in the 80s (I can't find the name anywhere now) that copied your FAT to RAM and wiped the main copy, then made you play a slot machine type game to try and win your files back. Sure, not extorting money out of you, but that's only because they lacked the highly networked computers of today necessary. This was 20 years ago, so I don't know why everyone is so shocked by this revolutionary virus. Forget the slot machine virus, I remember before malware was the cool thing to write when viruses actually deleted stuff. None of this encryption, "pay us and you can get everything back" nonsense, and certainly no attempts to be stealthy so they can live on your machine for years sending spam e-mails -- they deleted everything they could find as fast as possible and then laughed at you about it. Why is a virus that encrypts some of your files worse than a virus that deletes all of them?

On an amusing side-note, if you use openoffice instead of office, tar/gzip instead of winzip/winrar, and png files instead of jpgs (none of which are at all unreasonable, my Vista machine does all three), you're practically immune to this virus, it doesn't check for any of those extensions at all.

Firefox 3

I'm told Firefox 3 just launched a few minutes ago. I'm not really sure if it did or not since its Mozilla's whole website is down hardcore, but I guess that's probably a good sign. World record FTW

EDIT: Hey, it works. Most of Mozilla.org is still down, but they must have done some sort of load balancing on just the Firefox download part, so that's working perfectly. I thought I'd post how to patch extensions to work with Firefox 3, as most of mine are apparently written by authors too lazy to do so themselves. Most places will tell you to use the nightly tester tools; this works too, I've used it before, but sadly Firefox's add-ons page is down so I can't download it at the moment. I've also seen instructions on how to patch the XPIs, but there's no need to do that if you already have them installed; this is how you manually patch add-ons that you already had on Firefox 2. Obviously these add-ons haven't been tested under Firefox 3 or their authors probably would've updated them, so there's a chance things will break when you do this:

  1. Open your extensions folder. On Linux it's at ~/.mozilla/firefox/(your profile)/extensions; on Windows, C:\Documents and Settings\(your username)\Application Data\Mozilla\Firefox\Profiles\(your profile)\extensions

  2. Each plugin is in it's own folder, named with a hexadecimal UUID. Open the first one and open it's resource descriptor, install.rdf. It's plain text, so any editor will do (read: use emacs)

  3. Somewhere under em:targetApplication you'll find em:maxVersion. If it's 2. something, change it to 3.0.*

  4. Repeat this procedure for every extension folder

  5. Move all the folders you changed (or all of them, it doesn't matter) to some temporary location

  6. Restart Firefox; your add-on list should be empty now

  7. Move all the folders back to your extensions folder

  8. Restart Firefox again; the add-on window should automatically open to alert you it has detected new extensions. All your extensions should be listed as before, but enabled now

Screenshot from an XP machine:

14 June 2008

Holy crap, people do have rights

Somehow I missed hearing about this for two days, but apparently the Supreme Court essentially overturned the Military Commissions Act. I practically fell out of my chair when I saw, I was under the impression we stopped caring about rights approximately the moment we elected a Republican President. The oral arguments are actually pretty interesting.

On page 31, Ginsberg says "in every practical respect, Guantanamo Bay is U.S. territory", which is one of those things the government tries to skirt. It's thoroughly enjoyable because unlike the typical forums you see these people at (press conferences, etc.) where they can just ignore questions they don't like, the justices don't let them dodge stuff; Souter in particular doesn't put up with their shit. Clement spends a good deal of time dancing around whether or not Guantanamo prisoners are "prisoners of war" or not; they obviously are, but the government has declared pretty emphatically that they're not so we can avoid the Geneva Conventions. Scalia -- and my approval of this one phrase shouldn't be taken to mean I in any way like any decision he's ever made -- says on page 49 "if we had to either charge or release these people, what would they be charged with? Waging war against the United States? Is there a statute that prevents non-citizens from waging war against the United States and provides criminal penalties?", to which Clement brilliantly responded "Not as such". I thought this was excellent, since he's essentially saying these people have broken no laws, and yet they're somehow still not prisoners of war; they're in that fun gray area where we can do whatever we want.

Ultimately this whole argument hinged around the idea of CSRTs. Before this decision, inmates got to go before a "Combatant Status Review Tribunal", which was a sort of laughable affair where officers decided if an inmate was an enemy combatant or not. While they're doing that, the inmate doesn't get a lawyer, doesn't get to see the evidence against him and really doesn't get to do much of anything. Most of the time if the inmate manages to win (i.e. are declared to be a non-combatant), another CSRT is convened so the officers get to decide again. Waxman's explanation of why this whole concept blows is good, starting on page 72. Breyer says it pretty succinctly on page 61: "it has been six years, and habeas is supposed to be speedy."

Kennedy, who wrote the majority opinion, had one of the better quotes I've seen come out of this court: "To hold that the political branches may switch the Constitution on or off at will would lead to a regime in which they, not this court, say ‘what the law is,’"

Too true. And what did McCain have to say? "I think it's one of the worst decisions in history"

Please, sir, can I have another?

I hate religion, but I make an effort to avoid all-out religion-bashing on my blog since I know religious people (although there are exceptions to this rule). However, this drives me crazy. I've seen it a thousand times, and it seems like the most obvious self-deluding nonsense, but again and again I see it. This woman was falsely accused of stealing some cop's gun, and spent 10 months in jail. She sued the city when she got out and won $7.7 million dollars. Her reaction:

"I'm going to go home and lie down for a little bit," an ecstatic Jackson, 41, said after the verdict. "I feel relieved. I'm happy, and I'm thanking God."

Why? Why are you thanking God? Why aren't you pissed off that God made you spend 10 months in jail, that part isn't God's fault? But it's God's doing that you got $7.7 million. God has a pretty good deal going here; he controls everything, gets to take credit for all the good stuff, but doesn't get blamed for bad things. The ultimate religious explanation for why bad stuff happens to religious people is that God gives the greatest tests to those he loves the most. Really? That sounds like a damn fine reason to not be on God's good side, maybe then I won't get thrown in jail for 10 months as part of some sadistic test. God reminds me eerily of a mafia don, and religious people are mafiosi trying to stay on his good side. When bad things happen, the don tends to punish those closest to him, so it's a lot more risky being there than being some random guy he's never heard of. But they stay there anyway, because either they hope they're going to get rewarded someday, they don't realize there's no reason to put up with it, or they're too scared to death to leave. God is Yakavetta, and theists are Rocco

And now it's all too clear why the concept of hell exists in religion, because without hell there would be no reason to put up with God's shit

EDIT: My girlfriend just sent me NeedGod.com; I recommend everyone check it out. It tells you, surprisingly, why you need God. At one point it asked me, "Does the fact that you're headed for Hell concern you?", and when I responded that it did not it exclaimed "It should concern you". Why?

Perhaps you feel safe because you don't believe in Hell. This can be likened to standing in the middle of a busy highway and shouting "I don't believe in trucks!" . . . God has given us HIS WORD on the existence and purpose of Hell...

OH. My bad. I didn't realize God has given us HIS WORD on the subject, what was I thinking. And not to nitpick or anything, but in the highway example, you can see the trucks

08 June 2008

Arguing with users over what they want

I wrote a whole bunch of this a long time ago when I stumbled across the debate that resulted in the FunPidgin (apparently now Carrier) fork of Pidgin. As their website puts it, "Unlike the Pidgin developers, we believe the user should have the final say in what goes into the program."

If you've missed this whole debate (likely even if you use Pidgin), it started with this bug report for Pidgin. The problem was stunningly simple: in the new version of Pidgin, the input text area automatically resizes itself. This is fancy and neat, but it also can't be sized larger than about 4 lines of text, which makes a lot of people sad, and some people find the auto-resizing jarring and unpleasant. This massive support ticket is basically a huge argument between the users and the developers about whether users want this feature or not. Seriously, a whole group of users telling the developers they want something, and the developers telling them they're in some way addled and don't really want it at all.

If your users want a feature, unless it's too difficult or time-consuming to write, you should add it. Your users shouldn't have to defend or justify why they need something, that's ridiculous; if they say they need it, they need it, and developers saying "no, you really don't want that" is absurd. Users have better things to do than sit on your bug tracker begging for you to implement something you've already written; obviously they want this feature.

I've always been of the opinion that if users want two competing ways of doing something it should be an option, which I know isn't a universally accepted view -- I might go so far as to say it's the minority view. I like the ability to customize how my programs work, since usually I don't like the defaults. Trillian was spectacular at this, and it's still my favorite IM client of all the ones I've tried; every single time I disliked something there was a preference to change exactly that. The pidgin developers do not believe this; they state repeatedly that they want a "better" (they frequently put the quotes around it too, like they're mocking themselves) solution than adding a preference. That's great and all, but either find one or give us the choice back. There might be a better solution than adding a preference, but adding a preference is still a better solution than telling a section of your userbase to go fuck themselves. The developers even mock the users in some of the posts, asking why they're not clever enough to write a plugin to do this. Is this supposed to be some sort of battle between developers and users, where developers change something and then taunt the users to try and change it back? I know lots of users don't like preferences; personally, I don't know why they can't just ignore them them, but apparently the mere fact that options exist bothers them in some way. Nonetheless, the users saying that they want an option and the developers telling the users that the users don't want an option is so obviously ridiculous that I can't believe this is still going on.

This quote was particularly amusing; it makes me think maybe the developers are missing the point completely: "it proved to be impossible to get both manual sizing and automatic resizing to work at the same time". Really? That's like saying "well, we tried to let the user set the size manually, but that damn automatic sizing kept automatically sizing". Obviously they can't work together, it has to be one or the other. Almost like it should be the user's choice. Like some sort of "preference" or something. They should have a dialog for those. I loved this solution: "What if manual sizing is disabled when automatic sizing is enabled?" Maybe it's just that this seems way more obvious to me than it apparently is to other people if this was actually considered ground-breaking enough to post, so I'll lay out my fairly brilliant solution to this problem in hopes of merging: Have an "automatic input resizing" checkbox. When it's checked, the input box auto-resizes. Manual resizing does not work. When it's unchecked, the box can be manually resized. Auto-resizing does not work. If anyone needs further clarification, I will send them a truth table

I dislike the notion that developers need to protect the silly users from themselves and not give them an option that deep down the developers are confident users really don't want. This is very much a Windows point of view.

29 May 2008

Mass Effect

So there I was, reading the wikipedia article on Mass Effect -- because I'm sad and lonely -- when I notice the PC release date is May 28th, 2008. I then notice that today is May 29th, 2008. After several moments of pondering, I conclude that Mass Effect has been released for the PC. And yet I do not have it. Because I am poor.

....somebody buy me Mass Effect please.

22 May 2008

Portal on Wine

I figured I'd post about a problem I had running Portal under WINE, since I couldn't find it posted anywhere. I dare you to try and solve this just from the symptoms:

  • Quicksave works fine, but quickload goes to a black screen and sits there

  • When a new level loads, you start outside the level and immediately begin falling to your death

  • Video settings are saved when the game is restarted, but key bindings are lost

Give up? I had no idea what the problem was, since by all accounts Portal works great under WINE, including on a friend's machine. I was fully prepared to blame Steam, which thoroughly hates me, but then I discovered the problem by accident when I had the developer's console open: there were a series of error messages about quicksave failing everytime I tried it. It turns out permissions had changed when I remounted a partition: I was running Portal without permission to write to its folder. This means quicksave can't work, and for some unknown reason quicksave fails silently (excluding the developer console output; the screen itself reports "Saved" whether it worked or not). You get the same black screen if you try to quickload without having any quicksave; apparently it doesn't check to make sure you have a save before trying to load it. The permission problem also means keybindings can't be saved in the configuration file; video settings are stored to the WINE registry, so they were fine. I have no explanation for the problem with starting outside the level, but changing the ownership on the portal directory fixed all the problems listed above, including this one. I suspect you would have the same problems under Windows if you ran as a limited user, but I'm not sure.

20 May 2008

Random Fail

I just found a fairly amusing/depressing (depending on what OS you're using) article about how Windows sucks at generating random numbers. First, we might as well all take a moment to laugh at Debian, as has become the custom every time random number generation is mentioned:

Now that that's out of the way. It appears Windows too fails at randomness, and the test of it is actually really simple. The author of the source article wrote a short PHP script that sets each pixel of a generated image based on the results from the rand() function. Since PHP uses the system libraries for this, it's equivalent to testing the OS. I ran his script on two of my machines, one running LAMP and one WAMP. Guess which is which:

The worst part, and I'm not really clear if this is a PHP problem or Windows, is the image doesn't change under Windows. PHP is supposed to auto-seed the RNG (somehow), but on Windows the image doesn't change unless I add an explicit call to srand(). This doesn't fix the problem, but at least then I get different non-random images. I considered writing "Random Fail" over the one image, but I like the glaring wrongness by itself.

And this is one of the big differences between Windows and Linux. When the OpenSSH vulnerability came out -- and it really depresses me that it took 2 years for somebody to notice, especially with sites like GitHub noticing multiple users with the same SSH key. But anyway, when the OpenSSH vulnerability came out, I got about 6 updates over the next 24 hours, presumably 1 to fix the problem and 5 more to convince me they were sorry. I'm fairly sure this problem will never be fixed (I ran the WAMP test on Vista).

EDIT: There's a nice in-depth exploration of this on Codifies that looked through PHP's source code and determined this is actually PHP's fault, not Windows'. Nonetheless, I maintain that the above paragraph would be true if this were Windows' fault.

11 May 2008

Jack Thompson makes me smile

I love Jack Thompson. Well, no, I detest Jack Thompson, but he does amuse me in ways few people can. A few weeks ago he apparently sent a letter to Strauss Zelnick's mother. Zelnick is the chairman of Take-Two, who make games like GTA that taught me killing cops and hookers is cool. In the letter he quotes miscellaneous biblical passages (of course), saying that Zelnick's mother didn't raise him well and should've beat him more. He encourages her to have a gamer play through GTA for her, assuming she can find one not on death row (I wish there was a way to find out how many lawyers are on death row; I'm sure there's a website for this somewhere). The next time some teenager kills someone they need to say "Well, I used to take out my frustrations on video games, but then Jack Thompson took them all away, so I was forced to kill real people instead".

I really don't understand why Thompson bothers anymore; everytime he opens his mouth (so, every second of every day) I'm reminded of the quote, "Say anything you want about me as long as you spell my name right". Jack Thompson does more for GTA marketing-wise than Take-Two could ever hope to do. I haven't played any of the new GTAs. The last one I played was GTA2, when you actually stole cars, instead of the craziness it's morphed into today; I think Take-Two has actually forgotten what the acronym stands for. Despite how stupid I think the new games are, I'm actually tempted to try them solely because of all of Thompson's bitching. I want to see what all the fuss is about; I want to find out if I do feel the desperate urge to murder people after playing this game. And if I do play, I am absolutely going to e-mail him and let him know he's the only reason I bought the game. And he'll probably reply that I'm harassing him and threaten to throw me in jail, which will be pretty entertaining.

05 May 2008

Are you my mummy?

The new Doctor Who had an amazing reference to a previous episode. If you haven't seen it, The Empty Child is an earlier episode from the Ninth Doctor, and in it the empty child wears a gas mask (I suppose "wears" isn't exact the right word, but oh well) and constantly repeats the phrase "Are you my mummy?"

This is the clip from the most recent Doctor Who episode, Poison Sky:

On an unrelated note, I upgraded to Hardy a little over a week ago, so at some point I'll post about the epic pain that was.

22 April 2008

My classes and how they don't exist

EDIT: I realized I forgot another 9 days, so I added them to the list and recalculated. It now comes to a nice even 100 days

I have 4 classes, that all meet 4 times per week, for 10 weeks. So in theory, I should have 160 days of lecture.

  • Two of my classes don't meet on Friday even though they're supposed to. Minus 20 days

  • One of my classes has 14 guest lectures. Minus 14 days (trust me, we don't learn anything in them. At all)

  • Another of my classes, apparently feeling left out of the guest lecture thing, did 4 in one week. Minus 4 days

  • One of my classes has 4 days of student lectures, where we read the textbook and teach each other. Seriously. Minus 4 days, and a piece of my soul

  • One of my classes has 9 days of student presentations on the projects and research we've done over the quarter. Minus 9 days

  • One of my classes has dedicated 5 days in a row for "lab time", and then another 4 for presentations of the work done during said lab time. Minus 9 days

So instead of 160 days, we have 100 days where professors trained to teach us are actually teaching us, or about 62% (this ignores the fact that one of my professors isn't actually a teacher). Therefore, I should probably only need to pay 62% of my tuition for this quarter. I should go talk to financial aid about this.

20 April 2008


My schoolwork needs to stop existing, it's making me neglect my poor RSS feeds:

Look at that. Who knows what critical things I could be missing. 1000+ stories on Digg, and I bet 5 or 10 are actually interesting, and I'm not reading them.

16 April 2008

Credit Card Validation with Luhn

I found an interesting article on using the Luhn algorithm to validate credit cards. I'd heard of the algorithm before but didn't know how it worked; it's actually much simpler than I imagined. The idea of the article (validating credit card numbers client-side with Javascript) is a good one, but I thought the actual javascript implementation was fairly poor, so I rewrote it. So if anyone wants to validate credit card numbers for typos and that sort of thing, go crazy:

function luhn(cardNumber) {
for(i=cardNumber.length-1;i>=0;i--) {
sum+=doubled>9 ? doubled-9 : doubled;
return sum!=0 && sum%10==0;

The function assumes you pass in just a string of digits, no hyphens or any of that. In case the one line is confusing, most compilers will optimize an instruction like x*2 to do x<<1 instead, but I'm assuming javascript probably doesn't do that so I did it manually; it just doubles the number. You could get really crazy with the optimization, like changing parseInt(cardNumber[i],10) to cardNumber[i]-'0', but that's probably excessive.

14 April 2008

You are better at dying!

I have yet to mention Doctor Who in this thing. If you haven't seen Doctor Who, you should probably go die. Although then you will have died without seeing Doctor Who, which is problematic. It's the longest running science fiction show ever, which means it has a disgusting 740 episodes. Sadly, most Americans haven't heard of it, because it's a British show, but you can think of it as the British version of Star Trek, only way better. Fortunately, you don't need to watch all 740 episodes to catch up, because they stopped the show for a while and just started making episodes again in 2005, so they started out assuming people hadn't seen the previous episodes. So if you start with the "new" season 1 in 2005, you're only 3 seasons behind (we're just starting the 4th season now). So spring into Amazon action. It's probably my favorite show ever, it even gives MacGyver a run for its money.

This is my favorite clip of all the new episodes. It's when the Daleks and Cybermen (the two biggest bad guys in the series) first meet up, so you get to see both races, how they're really similar, but constantly insult each other; also, how the Daleks are way better, how badass the Daleks are in general, and how they're still scared of The Oncoming Storm. This also has probably my favorite line of all time in it (bolded in the transcript, or look at the post title):

(show transcript)

(seriously though, the clip is so much better, go watch that)

Random side note: Blogger, wtf? I'm used to you sucking at general uptime (I had the usual "Unable to communicate with Blogger" every other auto-save), but you also fail at video uploads. I ended up canceling the "processing" screen after 4 hours and just uploading it to Youtube.