Archive for July, 2007

does shopping make you feel good?

July 18th, 2007

You hear all kinds of things about what shopping means to people. That it's comforting, therapeutic, liberating, exciting, or just plainly makes you feel good. While some of the epithets may be true, I cannot agree with the last one.

Of course, there are different "kinds" of shopping. But I mean the very special kind, the kind of thing where you go out and buy something you've wanted for a long time, or needed for a long time. It's supposed to be a relief and delight to get it. That kind of shopping.

Well, getting the item does feel good. But shopping for it doesn't. I can't stand that conversation with the salesman. My focus is that I want to make the best possible deal, I'm trying to concentrate hard to cover all the angles and foresee every possible scenario that may occur with the product. But that doesn't mean I know what to say. I think of one thing to ask, then another, then I draw a blank. I stand there for a while listening, hoping the guy has more stuff to say, anticipating another question to ask. Quite often, the guy wasn't really drawn into the conversation either (which I'm not very good at), so he answers my question and then he's waiting for me to pick up the thread again. Which I struggle with. It's really quite a stupid situation. I don't enjoy it in the least.

So that's one thing, conferring with the salesman. Then there's actually buying stuff. I just don't feel good about that either. I always feel guilty for spending the money. And the more it costs the more guilty I feel about it. As if anyone at the store would care enough to judge me for it, but it does make me feel uncomfortable.

Buying stuff online is actually a nice change. I don't have to talk to anyone. :)

eliminate mouse wheel clicks

July 14th, 2007

As much as the mouse wheel was a good idea, making it a clickable button was a *bad* idea. The mouse wheel is more sensitive than the left and right buttons, and it has too many jobs. Newer mice also do horizontal scrolling, which makes it even more flexible. Pushing down the mouse wheel to click has always been uncomfortable, for the simple reason that it *moves* in other directions beside down, it's not static.

When the mouse wheel was introduced, it was de facto a third button, and so the "natural thing" was to just make it that, adding to the scrolling functionality. Of course, the old Unix standard of mice also had three buttons, so that fits.

This button is important, because it's the Unix paste button, you use it all the time. In addition, Firefox made it its own, for opening links in tabs and for closing tabs. It has always bugged me that I had to use the mouse wheel button for that. Not enough to actually do something about it, but enough to bother me. :lazy:

So today I got the Logitech MX 400, where the mouse wheel button is actually harder to press in, and I decided to finally fix the problem. So here's what you do.

First you should know how many buttons your mouse has. You count every button, you also count scrolling (back, and forth, each count as a button). For example, my mouse has 9; the front two, a mouse wheel with 4 directions of scrolling, the mouse wheel button, and two side buttons. If you have some extra side buttons to use, you can use one of these as the paste button.

But you need to know which is which. Here's how:

$ xev

ButtonRelease event, serial 29, synthetic NO, window 0x2c00001,
root 0x61, subw 0x0, time 8209381, (102,133), root:(946,186),
state 0x100, button 1, same_screen YES

Here I started up xev, which brings up a little window. It prints lots of output about mouse and keyboard activity. When I move the pointer into the window and click, I get a piece of output like the above. Here I clicked the left front button, which is called button 1. In the same way, I find out that the mouse wheel button is number 2. While the side button I want to use as paste button is number 8.

Knowing this, I can remap the two buttons, switch their positions. Like so:

xmodmap -e "pointer = 1 8 3 4 5 6 7 2 9"

Here the numbers are sequential, except that 2 and 8 are swapped. Run this while X is running and you get the desired effect.

To make this permanent, you need to add it to your X session script. KDE is not very nice, because it doesn't give you an easy way to do it, so I just added the line to the startkde script (ugly hack):


xmodmap -e "pointer = 1 8 3 4 5 6 7 2 9"
# finally, give the session control to the session manager
# see kdebase/ksmserver for the description of the rest of the startup sequence

does ogg suck or does ogg support suck?

July 5th, 2007

So ogg is well known as the open format for audio and people seem to love it, it has broad support. To be precise, ogg is just a container format, so just the fact that a file is an ogg file doesn't tell you much more about it than a zip file tells you about its content.

On the video side of things, noone seems to use ogg. Even though it is an open and by all accounts free format, I very rarely come across ogg videos. And sadly when I do, often they are broken. Since Theora seems to be the most used codec for ogg video, I'm assuming they're all encoded in that format (I know I've never seen an ogg video not in theora, although I don't make a point of checking).

Common symptoms:

  • Timer is completely bonkers, saying a 20 minute video is several hours long and whatnot.
  • Video stream has lots of bugs, frame freezes.
  • Audio/video sync can be way off.

Case in point, download this video from Akademy. In mplayer and vlc alike the timer is confused, and the video stream freezes as well. This is the kind of problem I've seen a lot of times with ogg videos.

Now it may be a production mishap for this particular video. But I've seen these bugs with ogg a lot more than with other formats. In mplayer, even if you reindex the stream the timer still doesn't get it right. It tells me the video is 412:29:15 long.

So what is it? Is ogg/theora busted or is the implementation busted? Is the encoder so bad that it's impossible to produce a video without bugs? Or is the decoder buggy?