It's what we were all hoping for, and I'm pleased that it's come to pass. It's not perfect, and I don't agree with all of their decisions. However, even an imperfect alternative to the current H.264 situation is a massive improvement. I'm pleased they've gone for a full stack solution of not only VP8 but also Matroska(-ish) and Vorbis, too. If nothing else, it's likely to mean that a) Vorbis will be shipped by default on most platforms[1], and b) hardware support for both VP8 and Vorbis should be widespread in the very near future. Further, there's a commitment to transcode all of the existing videos on YouTube. That's a massive endorsement. Of course, the risk with that is the reduced quality that will come from three or more lossy transforms, but given that they've announced it, they're clearly not too concerned about that. The future's looking very bright indeed.
[1] Or will it? I've yet to see any official response from Microsoft or Apple on this. But it's going to be hard for them to ship something that won't play YouTube videos by default. Of course, in the short and probably medium term, YouTube will continue to offer videos in other formats as well. But we'll see how it plays out in the long term.
Also interesting to see the stats on when their systems were delivered to McLaren and Brawn, and where the performance of those cars was afterwards. I know there's more to F1 than CFD, but it certainly plays a large part these days.
building file list
... done
rsync: delete_file: unlink "/backup/local/shared/camera/2009-08-24--foq/img_0507.jpg" failed: Read-only file system (30)
rsync: delete_file: unlink "/backup/local/shared/camera/2009-08-24--foq/.xvpics/img_0507.jpg" failed: Read-only file system (30)
That's never a good sign. Looking through the logs, I see a number of ATA errors, starting with a timeout, a device error, and a bunch of HSM violations. A few examples:
Mar 22 07:56:03 riva kernel: ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
Mar 22 07:56:03 riva kernel: ata2.00: cmd 25/00:00:87:d1:86/00:02:03:00:00/e0 tag 0 dma 262144 in
Mar 22 07:56:03 riva kernel: res 40/00:00:00:00:00/ff:ff:ff:ff:ff/00 Emask 0x4 (timeout)
Mar 22 07:56:03 riva kernel: ata2.00: status: { DRDY }
Mar 22 07:56:03 riva kernel: ata2: hard resetting link
Mar 22 07:56:03 riva kernel: ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
Mar 22 07:56:03 riva kernel: ata2.00: configured for UDMA/33
Mar 22 07:56:03 riva kernel: ata2: EH complete
Mar 22 07:56:03 riva kernel: SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB)
Mar 22 07:56:03 riva kernel: sdb: Write Protect is off
Mar 22 07:56:03 riva kernel: SCSI device sdb: drive cache: write back
Mar 22 07:59:05 riva kernel: ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Mar 22 07:59:05 riva kernel: ata2.00: BMDMA2 stat 0x6d0009
Mar 22 07:59:05 riva kernel: ata2.00: cmd 25/00:00:df:ce:87/00:02:03:00:00/e0 tag 0 dma 262144 in
Mar 22 07:59:05 riva kernel: res 51/04:80:5f:cf:87/00:01:03:00:00/e0 Emask 0x1 (device error)
Mar 22 07:59:05 riva kernel: ata2.00: status: { DRDY ERR }
Mar 22 07:59:05 riva kernel: ata2.00: error: { ABRT }
Mar 22 07:59:05 riva kernel: ata2.00: configured for UDMA/33
Mar 22 07:59:05 riva kernel: ata2: EH complete
Mar 22 07:59:05 riva kernel: SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB)
Mar 22 07:59:05 riva kernel: sdb: Write Protect is off
Mar 22 07:59:05 riva kernel: SCSI device sdb: drive cache: write back
Mar 22 08:01:15 riva kernel: ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
Mar 22 08:01:15 riva kernel: ata2.00: cmd 25/00:00:ff:1e:88/00:02:03:00:00/e0 tag 0 dma 262144 in
Mar 22 08:01:15 riva kernel: res ff/ff:ff:ff:ff:ff/ff:ff:ff:ff:ff/ff Emask 0x2 (HSM violation)
Mar 22 08:01:15 riva kernel: ata2.00: status: { Busy }
Mar 22 08:01:15 riva kernel: ata2.00: error: { ICRC UNC IDNF ABRT }
Mar 22 08:01:15 riva kernel: ata2: hard resetting link
Mar 22 08:01:15 riva kernel: ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
Mar 22 08:01:15 riva kernel: ata2.00: configured for UDMA/33
Mar 22 08:01:15 riva kernel: ata2: EH complete
Mar 22 08:01:15 riva kernel: SCSI device sdb: 1465149168 512-byte hdwr sectors (750156 MB)
Mar 22 08:01:15 riva kernel: sdb: Write Protect is off
Mar 22 08:01:15 riva kernel: SCSI device sdb: drive cache: write back
SMART doesn't seem to be much help here, with the device refusing to run anything but the mandatory offline test:
riva:~# smartctl --test=offline
/dev/sdb
smartctl version 5.36 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Default Self Test Successful
riva:~# smartctl --test=short/dev/sdb
smartctl version 5.36 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Short offline self test failed [unsupported field in scsi command]
riva:~# smartctl --test=long/dev/sdb
smartctl version 5.36 [i686-redhat-linux-gnu] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Long (extended) offline self test failed [unsupported field in scsi command]
It's a Seagate drive:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: ST3750528AS Rev: CC38
Type: Direct-Access ANSI SCSI revision: 05
I'm running 2.6.18-128.4.1.el5 on CentOS 5.
Any ideas? Does anyone know enough about the ATA spec to tell me what these errors actually mean? Is this a genuine hardware failure? If so, where's it likely to be? Drive? Controller? Cable? The drive is only a few weeks old, so while sometimes shit happens, I want to investigate the (probably more likely) alternatives as well.
And why oh why doesn't <tbody> nest? I want to refer to part of a table and manipulate it with some Javascript (mostly just to show or hide it in response to user actions). But I can't just stick the relevant bits in a <tbody> and select by that because the table already contains several tbodies. Thus I'm once again stuck in workaround hell, trying to tag each tbody with an appropriate class, so I can iterate over them and check if I'm interested in each one. Further, because I'm dynamically adding and removing parts of the table, I need to check at the time I add to the table whether the bit I'm adding should be visible or not. Life would be so much easier if I could just stick it in an appropriate <tbody> further up the hierarchy, and then mark the whole lot visible or otherwise. But I guess that would be far too easy
Any CPU will be more than sufficient for my needs. The screen needs to be at least 17", and not gloss (which sadly seems to rule out the otherwise promising models from Samsung). I need 2GB RAM, and I don't want to be paying more than £500. A bit of digging reveals that all of the major players have models that meet those requirements. But I still have the nagging feeling that I'm missing out of the "right" model simply because I don't know about it. Where should I be looking?
Oh, and it won't have an Apple badge, so don't even consider suggesting that...
[1] And 512Kb/s up, FWIW. The A in ADSL usually means you get much better bandwidth down than up. Not so here, it seems...
Money Controls is using IGE 2010 in London this week to launch the ccTalk DES - Data Encryption Standard - encrypted products. The product is a response to customer demand for improved machine security in places where fraud is a constant menace, such as arcades, motorway service stations and pubs.
Uhhhh... that can't be right. It's 2010 and they appear to be talking about launching a product based on DES. Maybe they're using the phrase in the generic sense, rather than the US NIST encryption system of the same name. However, they go on to say:
A significant deterrent in combating fraud, the products use over 72,057,594,037,927,936 combinations.
7.2 x 10^16 combinations? That looks suspiciously like 2^56 to me. Yep. They really are launching a new product based around 56-bit DES, an encryption system that has been theoretically broken for 20 years (probably for longer than that by people keeping it quiet) and practically broken for at least 10 years. The same DES that was withdrawn as a US federal standard 5 years ago, even in its stronger Triple-DES form (which this product doesn't appear to be using). Yes, that DES. How are they not only not embarrassed about this, but actively boasting about it in product release blurb? Fine, so maybe encryption isn't their core competency. But surely even a cursory glance at the web when considering which encryption algorithm to use would be a good idea? At the very least, it would point you in the direction of AES/Rijndael or something (anything) other than DES.
<<< 571 Email from xxx.xxx.xxx.xxx is currently blocked by Verizon Online's anti-spam system. The email sender or Email Service Provider may visit http://www.verizon.net/whitelist and request removal of the block.
Now the IP in question is mine. It's a static IP. It has never been used to send spam. My guess is that they've just randomly blocked a larger range that happens to include my
select c.cutoff, g.cutoff from customers c, groups g where c.group_id = g.id and c.id = 45;
However, what I want to do is:
select mymax(c.cutoff, g.cutoff) from customers c, groups g where c.group_id = g.id and c.id = 45;
The problem is, mymax() doesn't seem to exist. I can't use the regular SQL max(), because that's an aggregate function that works across multiple rows. I want to return the larger of two columns in a single row. Oh, and it should know that any given integer is greater than null, because the common case is for there to be no cutoff, and only very rarely will both a customer and a group have a cutoff. I came up with a hideously complicated way of doing it using coalesce(), but it was so nasty I resorted to doing the comparison in python instead. Am I missing something? Surely this should be easy in SQL. I'm using PostgreSQL 8.3, FWIW.
Of course, I'm a firm believer in not putting all of your eggs in one basket. So my machines are hosted in two separate datacentres, and although the main server is powered off (and I've decomissioned the other one that was in the same datacentre), I still have fully working DNS, SMTP and the critical web sites are all up. In the event that the main server has problems, I can move the non-critical web sites over, too. I have multiple copies of all the data. But still, it's an anxious time. I'll find out if all's OK in about 6 hours. Like I say, fingers crossed...
Top Ten Things Overheard At The ANSI C Draft Committee Meetings: (5) All right, who's the wiseguy who stuck this trigraph stuff in here?