Webcam is up

All very passe, I know, but if you're feeling bored, check out my webcam now beaming out images from my street around the clock.

Yes I bought an insanely cheap digital camera to use for videoconferencing and have got it working. Not without some trouble though: seems the UHCI USB chipset by Via isn't very good. Absolute shite, in fact. In case you're wondering, I had to hack up usb-uhci.c as proposed in this message.

Anyway, enjoy the webcam. Will post details of how to videoconference to me as soon as I work out the video loopback driver.

Linux aint there yet

Every now and then I get a bit overly excited and proclaim that Linux is 6 months off dominating the desktop.

In some ways this could happen, particularly in corporate environments where it's important for people to be able to hot desk and for the IT department to have total control over the systems--no games, no dodgy themes and certainly no Word macro viruses.

The barrier to the desktop is that people are used to ease of installation for hardware and gurus in this area are few and expensive. It always amazed me the amount of fiddling one had to do to get something like a scanner or sound card working in DOS. The Mac had always been incredibly easy in this way, no fiddling with IRQs and all that crap, so DOS seemed like a real step backwards.

Linux takes us back to those bad old days of DOS. To get a soundcard running I have to decipher the barely readable output of pnpdump and then work out what options my sound card takes. Of course to get it working I need to find out what IRQs, memory addresses and DMA channels are in use on my machine. Then, if I'm lucky, I can insert the appropriate modules and mabye get sound.

I tried this last weekend and finally got it all going, only to find that all sounds were repeating as if it were playing each chunk of audio twice. The IRQ wasn't in use but changing the IRQ fixed it. Why?

Now I know that this should be an issue for the manufacturers of hardware devices, but they don't care enough yet. In order to make them care we need enough people using the platform that they have to support it.

Why can't isapnp be integrated with the modules and devices be automatically loaded? The only barrier I see to this is the requirement of a database of identifiers for each peripheral. Come now, how hard would that be for some talented hackers? Hell, instead of taking the Windows model of the database being on the hard disk, why not stick it on a web server somewhere and have it queryable by whoever needs it? That way when new identifiers come out it'll already be in the database and the person who managed to get it working can finalise the record.

If I could code I'd be in there but it's not my thing. I'll happily document it! Drop me a line if you want to do this.

Linux users are commies?

An article in OSOpinion discusses a common theme from commentators who know next to nothing about history or politics. Linux nerds, he posits, are communists following Marxist ideology of collective ownership.

Unfortunately this assumption is tainted by a century where a number of totalisation regimes have called themselves or others "communist". It is also tainted by the ideology of the US that communism=unamerican.

Equally the notion that free software is anti-capitalist leads to the knee jerking in the communist direction. Free software is in fact highly compatible with capitalism: witness the recent RedHat IPO. It's just that conventional wisdom in the computer business is that your code is the crown jewels, when in fact what people are paying for is the service. Big companies like IBM are slowly starting to realise this.\r\n\r\n

So with all these apolitical nerds around, what sort of politics does cover free software? Why anarchy of course. Before you think of anarchy as simply

chaos you should realise that anarchy is actually an old and respected political theory. It has been defined as a political theory opposed to all forms of government. Anarchists believe that the highest attainment of humanity is the freedom of the individual to express himself, unhindered by any form of repression or control from without. The belief that all governments rest on violence to control their subjects.

If you consider the tyranny of being helplessly locked in to a single vendor and their agenda as violence, the model fits. The concept of free software projects forking demonstrates how everyone is free to do as they please, free of constraints placed on them by another.

So with that said, on we go enjoying the unbounded freedom of controlling our own computing destiny. Vive le Linux!

Just discovered this excellent paper on this issue.

Getting sound happening

Oh boy Linux has a ways to go yet when it comes to usability. Try dropping a new piece of hardware into your box and see how easy it is to get it going. Sure it'll be rock solid once you get it working, but that's going to take time and grey hairs.

Yeah yeah I've ranted about this before.

For the search engines, here's how I managed to get the OPL3-SA3 chip on my Dell Dimension XPS D266 going. This is the sound chip on my motherboard. Works nicely now!

Love my mouse

I just started having trouble moving my excellent trackball. Pretty funny because when I pulled the ball out there was so much gumpf around the bearings it rolls on that the ball was having trouble moving. Yet still no tracking problems. Ahhh optical!

I bought this mouse thingy because I was having problems with my wrists. This along with those Microsnot split keyboards have really helped.

Time For a New Blog

Well after a break of nearly two years, it's time for me to start a blog again. I've been putting it off for so damn long so finally I've got around to doing it.

I'm using Blosxom (pronounced "blossom") which uses plain text files, is free, does RSS feeds and sits in just one Perl script. Fantastic piece of software. I did find one little bug, but being Perl and free I just fixed it.

I've migrated some of my old blog entries from when I used Blogger. Yes you johnny-blog-latelies, I had a blog well over two years ago. Read 'em and weep.

So if you've got too much time on your hands, come back often and read my ramblings.

Short term memory loss

I've been thinking about the nature of Microsoft and why they write such crap code. There's been a lot said about their "unique" software processes, but I think there are other factors.

It seems incredible that a company can make so many of the same mistakes, over and over again. A topical example is the I LOVE YOU virus. This isn't a new idea, in fact the same thing happened a few years ago with MS Mail. That's right, a virus that grabbed all the addresses from MS Mail and mailed itself to everyone in your addressbook happened long before Outlook was released.

Another example is the braindead implementation of Windows NT and MS Exchange. Here is an organisation that built a Unix operating system years ago, so why are they making the same design mistakes made by Unix hackers in the 70s?

So why does Microsoft keep remaking mistakes? My theory is the organisation has a built-in memory loss mechanism.

Imagine yourself a programmer working for Microsoft in 1984. You get a few thousand options in the company every few months. These options at least double in value every year. Four years later, it's 1988 and your options vest. You cash out and go to live in a mansion in the Greek Islands and never think about computers again.

This cycle is repeated endlessly as the Microsoft wealth generation engine has continued. The result: nobody technical in Microsoft sticks around longer than 4 years or so. This means memory within the organisation lasts only a few years. From there, the newly recruited programmers know nothing more than Microsoft's latest products.

Mmmm. Bandwidth

I love my cable modem. I spend much of the day listening to Dublab on an 80k stream which is interesting.

Those of you who've heard me rant will know that I think Internet radio is a stupid idea. The reason I like this is that they tend to play my kinda music. The reason I think Internet radio is so silly an idea is proven through this. Judging by the number of people in the chatroom of Dublab, I'm one of very few people actually tuning in.

The future of online audio isn't someone else selecting music for you... The person who managed to convince the record companies of this will make a lot of money.

Audio Sync and DXR3 Cards FAQ

Version 1.1 4th November, 2002

Getting audio in sync with the dxr3 card can difficult. The problem is that the video decoding can take a different amount of time than outputting the audio.

To start with, you need to understand how the dxr3 works with mplayer and xine. For MPEG 1 and 2 format video, the MPEG video data is sent directly to the dxr3 card and decoded in hardware. For other formats of video, the video stream is decoded and then re-encoded as MPEG and sent to the card. This means for different types of video you will get different delays in processing so the audio might run more or less ahead of the video.

For this reason you may need to try different methods for different video codec types and formats.

GENERAL

Here are some things to try to get your audio just right so that it doesn't seem like you're watching a badly dubbed kung-fu movie.

  • Make sure you're using the latest combination of dxr3 drivers and video player (xine or mplayer) as constant improvements are being made.
  • Check that it's not the video file itself. Many divx and other files found on the net can have poor sync internally. Make sure you're working with good sources. Try playing it to your computer screen (not through the dxr3) and see if that is in sync.
  • Try all the different audio drivers. I particularly find that the SDL driver can work better, which is odd but works. In mplayer: mplayer -ao
  • If you're using your computer's sound card, try using the dxr3 card's audio output instead. In mplayer: mplayer -ao oss:/dev/em8300_ma-0 (replace "0" with the number of dxr3 card you want to use.)
  • If you're running some audio server like artsd (KDE) or esd (Gnome), try playing without that and talking directly to the sound hardware instead.
  • Your machine might have trouble keeping up, particularly playing non-MPEG video such as divx. Try: In mplayer: mplayer -framedrop
  • Newer versions of MPlayer have some special options for sync with the dxr3. Try this for anything other than mpeg: In mplayer: mplayer -vo dxr3:prebuf:sync -vop lavc=1:29.97

    And for standard mpeg 1 or 2 (including DVDs): -vo dxr3:prebuf:sync

  • Experiment with delays on the audio. You should work with something very dialogue-based to test this. An episode of the West Wing works well. Again, make sure you're using a good video file. In mplayer: mplayer -delay (delay can be a floating point value)

AVI FILES

Some AVI files have peculiar problems with audio sync which can be helped with the following options.

Use a non-interleaved AVI parser. Normally, audio and video are interleaved in the avi file, so you can read the file sequentially. For some broken avis, however, you need to read the audio and video stream separately. If you use this option and the file is badly interleaved, playing directly from a cd might be impossible, because your drive has to jump around a lot. In these cases, you have to copy the file to your harddisk first.
In mplayer: mplayer -ni

  • Some AVI files have broken headers and this can be fixed.
    mplayer -nobps
  • The audio can get seriously out of whack and to get it back in sync may require a more extreme correction than the default. Setting the maximum correction to something like three seconds works well.
    mplayer -mc
  • Finally, there are many, especially older avis out there (> 1.5 years) that have really fucked up a/v sync and even don't play right under Windows. If you get in contact with such a file, there's little you can do but look for a better copy.

Maintained by Simon Rumble

Thanks for the input from Michael Hunold.

Hmmm... Blogger eh?

Well all this time I was going to get around to rewriting my random thoughts thingy in PHP3 myself as an exercise in learning. Course life gets too busy for non-work oriented learning. I need to learn it but I'll learn it doing something I get paid for.

So here I am, using someone else's code. Seems pretty cool though, this Blogger thing. Easier, anyway :)