<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for dwmw2</title>
    <link>http://www.advogato.org/person/dwmw2/</link>
    <description>Advogato blog for dwmw2</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Mon, 22 Mar 2010 09:54:52 GMT</pubDate>
    <item>
      <pubDate>Mon, 22 Feb 2010 12:31:17 GMT</pubDate>
      <title>22 Feb 2010</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=214</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=214</guid>
      <description>My God, I've been vaguely aware of the HTML5 video train&#xD;
wreck but I hadn't realised just how much of a fucking&#xD;
abortion the rest of the HTML5 'standard' is.&#xD;
&lt;P&gt;&#xD;
I had the misfortune to read the &lt;A HREF="http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#character-encodings-0"&gt;section&#xD;
on character encodings&lt;/a&gt; over the weekend, and it almost&#xD;
made me lose my lunch.&#xD;
&lt;P&gt;&#xD;
Not only does it codify the crappy and unreliable practice&#xD;
of applying heuristics to guess character encodings, it also&#xD;
&lt;em&gt;requires&lt;/em&gt; that a user agent deliberately ignore the&#xD;
explicitly specified character set in some cases &amp;mdash; for&#xD;
example, text explicitly labelled as US-ASCII or ISO8859-1&#xD;
MUST be rendered as if it were Windows-1252!&#xD;
&lt;P&gt;&#xD;
It justifies this idiocy, which it admits is a &lt;A HREF="http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#willful-violation"&gt;'willful&#xD;
violation'&lt;/a&gt;, on the basis that it aids compatibility with&#xD;
legacy content. By which of course it means "broken&#xD;
content", since this was never actually necessary for anyone&#xD;
who published content correctly even with older versions of&#xD;
HTML.&#xD;
&lt;P&gt;&#xD;
But that doesn't make any sense &amp;mdash; surely legacy&#xD;
content won't be identifying itself as HTML5? It might be&#xD;
reasonable to do these stupid things for legacy content, but&#xD;
not HTML5. The complete mess we have with charset labelling&#xD;
is a prime example of where the RFC1122 &amp;sect;1.2.2 approach of&#xD;
being lenient in what you accept has&#xD;
turned out to be massively counter-productive &amp;mdash; if&#xD;
we'd simply refused to make stupid guesses about character&#xD;
sets in the first place, then people would have actually&#xD;
started getting the labelling &lt;em&gt;right&lt;/em&gt;.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; The &lt;em&gt;sensible&lt;/em&gt; approach to take with HTML5&#xD;
would just have been to say &lt;I&gt;"All content which identifies&#xD;
itself as HTML5 MUST be in the UTF-8 character encoding. A&#xD;
conforming user agent MUST NOT attempt to interpret content&#xD;
as if it has any other encoding; any invalid UTF-8 byte&#xD;
sequences MUST be shown using the Unicode replacement&#xD;
character U+FFFD (&amp;#65533;) or equivalent."&lt;/i&gt;&#xD;
&#xD;
&lt;p&gt; &lt;P&gt;&#xD;
Or, if we really must continue to permit the legacy crap&#xD;
8-bit character sets, it should have said that the content&#xD;
MUST be in the character set specified in the HTTP&#xD;
&lt;TT&gt;Content-Type:&lt;/tt&gt; header or equivalent&#xD;
&lt;TT&gt;&amp;lt;META&amp;gt;&lt;/tt&gt; tag.&lt;P&gt;&#xD;
Keep the stupid heuristics for legacy content by all means,&#xD;
but it should be &lt;em&gt;forbidden&lt;/em&gt; to render HTML5&#xD;
content in a character set other than the one it is labelled&#xD;
with, and all invalid characters &lt;I&gt;(including the C1&#xD;
control characters in ISO8859-1 which in Windows-1252 would&#xD;
map to extra printable characters like the Euro sign)&lt;/i&gt;&#xD;
MUS be shown as U+FFFD (&amp;#65533;). And then the people&#xD;
who publish broken crap would &lt;em&gt;see&lt;/em&gt; that they're&#xD;
publishing broken crap, rather than thinking it's OK because&#xD;
the browser they use just happens to assume the same&#xD;
character set as the system they're publishing from.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; To me, HTML5 looks less like a standard and more like a set&#xD;
of broken hackish kludges to work around the fact that&#xD;
people out there aren't actually &lt;em&gt;capable&lt;/em&gt; of&#xD;
following a standard.</description>
    </item>
    <item>
      <pubDate>Mon, 19 Oct 2009 16:38:15 GMT</pubDate>
      <title>19 Oct 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=213</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=213</guid>
      <description>Eww, this country is uncivilised. Just got back to my hotel&#xD;
room and my clothing &lt;em&gt;reeks&lt;/em&gt; of smoke. I'd almost&#xD;
forgotten how horrid that was.</description>
    </item>
    <item>
      <pubDate>Tue, 13 Oct 2009 09:46:14 GMT</pubDate>
      <title>13 Oct 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=212</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=212</guid>
      <description>&lt;A HREF="http://mjg59.livejournal.com/116971.html"&gt;mjg59&#xD;
writes:&lt;/a&gt;&#xD;
&lt;BLOCKQUOTE&gt;&lt;I&gt;"If the offence was unintended, an apology&#xD;
should be cheap."&lt;/i&gt;&lt;/blockquote&gt;&#xD;
&#xD;
&lt;p&gt; An apology is cheap, it's true &amp;mdash; but it's also&#xD;
counterproductive, because it reinforces the false belief&#xD;
that such an apology was necessary or appropriate.&lt;P&gt;&#xD;
Pandering to these people just&#xD;
contributes to the utterly idiotic culture of political&#xD;
correctness which blights our society.&lt;P&gt;&#xD;
Let's take a look at what he actually &lt;A HREF="http://geekfeminism.wikia.com/wiki/Mark_Shuttleworth_at_Linuxcon"&gt;&lt;em&gt;said&lt;/em&gt;&lt;/a&gt;,&#xD;
for&#xD;
crying out loud...&#xD;
&lt;HR&gt;&#xD;
&lt;BLOCKQUOTE&gt;&lt;I&gt;&amp;ldquo;A release is an amazing thing; I&amp;rsquo;m not&#xD;
talking about the happy ending..&amp;rdquo;: 3:02&lt;/i&gt;&lt;/blockquote&gt;&#xD;
It's crude, but I don't see it as being sexist. The terms&#xD;
'release' and 'happy ending' could just as well be used to&#xD;
describe the female experience as the male experience,&#xD;
although ladies are less inclined to make such reference to&#xD;
it in public. It's not excluding &lt;em&gt;women&lt;/em&gt;; it's&#xD;
excluding &lt;em&gt;prudes&lt;/em&gt;.&#xD;
&lt;HR&gt;&#xD;
&lt;BLOCKQUOTE&gt;&lt;I&gt;&amp;ldquo;Your printer, and your mom&amp;rsquo;s printer, and&#xD;
your grandma&amp;rsquo;s printer&amp;rdquo;: 35:30&lt;/i&gt;&lt;/blockquote&gt;&#xD;
Oh, for crying out loud. &#xD;
Would it &lt;em&gt;really&lt;/em&gt; have made that much difference if&#xD;
he'd said &lt;I&gt;'dad and grandma'&lt;/i&gt;, or &lt;I&gt;'mom and&#xD;
grandpa'&lt;/i&gt;? No, it wouldn't. Some people must have been&#xD;
trying &lt;em&gt;really&lt;/em&gt; hard to find something to take&#xD;
offence at.&lt;P&gt;&#xD;
Of &lt;em&gt;course&lt;/em&gt; your mum is&#xD;
likely to be less technical than your dad. That's just the&#xD;
way the world is. Does your mum complain when she gets&#xD;
cheaper car insurance? Men and women are &lt;em&gt;different&lt;/em&gt;,&#xD;
and we shouldn't be burned at the stake if that fundamental&#xD;
fact of life affects the minor details of how we phrase what&#xD;
we say.&lt;P&gt;&#xD;
My own mother died a few years ago; did I cry myself to&#xD;
sleep after Mark's keynote because I felt excluded by his&#xD;
choice of words? No. I didn't. Some people really do need to&#xD;
grow up.&#xD;
&lt;HR&gt;&#xD;
&lt;BLOCKQUOTE&gt;&lt;I&gt;&amp;ldquo;we&amp;rsquo;ll have less trouble explaining to girls&#xD;
what we actually do" at 35:55 &lt;/i&gt;&lt;/blockquote&gt;&#xD;
&#xD;
&lt;p&gt; There's another one which excludes me. I'm not single, so I&#xD;
don't spend my time trying to impress girls. Should I have&#xD;
been offended? Of course not.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; In this context, I'd usually have said &lt;I&gt;"normal people"&lt;/i&gt;,&#xD;
meaning non-geeks,&#xD;
rather than &lt;I&gt;"girls"&lt;/i&gt;; I tend to be quite&#xD;
self-deprecating about&#xD;
my geek nature.&lt;P&gt;&#xD;
 But when I say &lt;I&gt;"normal people"&lt;/i&gt; I often have to then&#xD;
explain what I meant by it. It makes more far sense to say&#xD;
&lt;I&gt;"girls"&lt;/i&gt;, because then people instantly recognise what&#xD;
I'm trying to say.&lt;P&gt;&#xD;
So I think it's entirely reasonable that Mark said&#xD;
&lt;I&gt;"girls"&lt;/i&gt; in that context. When trying to communicate&#xD;
to a room full of people, of &lt;em&gt;course&lt;/em&gt; you communicate&#xD;
in a way which will be understood by all of them without&#xD;
having to go back and explain yourself.&lt;P&gt;&#xD;
He certainly didn't mean to say &lt;I&gt;"Hey, I think the Linux&#xD;
community is entirely comprised of single (or philandering)&#xD;
males, and lesbians."&lt;/i&gt;&lt;P&gt;&#xD;
If &lt;em&gt;you&lt;/em&gt; draw that inference, then &lt;EM&gt;you are being&#xD;
bloody stupid!&lt;/em&gt;&#xD;
&lt;P&gt;&#xD;
&lt;sub&gt;&lt;I&gt;(I should probably point out that the 'single or&#xD;
philandering' qualification in my above sentence applies to&#xD;
both males and lesbians. I didn't mean to suggest that&#xD;
lesbians aren't capable of a monogamous relationship. Please&#xD;
put the torch down and back &lt;em&gt;away&lt;/em&gt; from my front&#xD;
door. But thank you for demonstrating just how stupid some&#xD;
people can be when they're &lt;em&gt;looking&lt;/em&gt; for a way to&#xD;
take offence.)&lt;/i&gt;&lt;/sub&gt;&#xD;
&lt;HR&gt;&#xD;
There are problems in the geek community which make it hard&#xD;
for females to join in, and there are &lt;em&gt;real&lt;/em&gt; problems&#xD;
with some of the things that people say sometimes. The geek&#xD;
feminist lobby certainly has a point, in the general case.&lt;P&gt;&#xD;
But Mark's keynote was not an example of this. By throwing&#xD;
their toys out of the pram over Mark's keynote, they cheapen&#xD;
the whole debate and perform a stunning&#xD;
ad hominem on themselves.&#xD;
&lt;P&gt;If you want to be treated with respect and integrate into&#xD;
the society, you don't achieve that by behaving like a&#xD;
Jemima and kicking up a fuss over nothing. You could try&#xD;
contributing to the &lt;em&gt;real&lt;/em&gt; debate, like talking about&#xD;
some of the other crap Mark was spouting in his keynote.&#xD;
&lt;P&gt;&#xD;
So no, I don't think an apology is a good idea. Unless it's&#xD;
offered by the people who have been making all this stupid&#xD;
fuss &amp;mdash; and it's offered both to Mark, and also to the&#xD;
people&#xD;
who &lt;em&gt;really&lt;/em&gt; want to promote the integration of women&#xD;
in the community.&lt;/hr&gt;&lt;/hr&gt;&lt;/hr&gt;&lt;/hr&gt;</description>
    </item>
    <item>
      <pubDate>Sun, 4 Oct 2009 09:04:23 GMT</pubDate>
      <title>4 Oct 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=211</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=211</guid>
      <description>&lt;BIG&gt;&lt;B&gt;Flash storage; a polemic&lt;/b&gt;&lt;/big&gt;&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; I originally posted this in response to the &lt;A HREF="http://lwn.net/Articles/354835/"&gt;LWN coverage of the&#xD;
panel discussion at LinuxCon&lt;/a&gt;, but figure I should&#xD;
probably post it somewhere more sensible. So here goes...&#xD;
with a few paragraphs added at the end.&#xD;
&#xD;
&lt;p&gt; &lt;HR&gt;&lt;/hr&gt;&#xD;
  &lt;BLOCKQUOTE&gt;&lt;I&gt;"The flash hardware itself is better placed&#xD;
to know about and handle failures of its cells, so that is&#xD;
likely to be the place where it is done, &lt;/i&gt;[Ted]&lt;I&gt;&#xD;
said."&lt;/i&gt;&lt;/blockquote&gt;&#xD;
&#xD;
&lt;p&gt; I was biting my tongue when he said that, so I didn't get up&#xD;
and heckle.&#xD;
&lt;P&gt;&#xD;
I think it's the wrong approach. It was all very well&#xD;
letting "intelligent" drives remap individual sectors&#xD;
underneath us so that we didn't have to worry about bad&#xD;
sectors or C-H-S and interleaving. But what the flash drives&#xD;
have to do to present a "disk" interface is &lt;em&gt;much&lt;/em&gt;&#xD;
more than that; it's wrong to think that the same lessons&#xD;
apply here.&#xD;
&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; What the SSD does internally is a file system all of its&#xD;
own, commonly called a "translation layer". We then end up&#xD;
putting our own file system (ext4, btrfs, etc.) on top of&#xD;
that underlying file system.&#xD;
&lt;P&gt;&#xD;
Do you want to trust your data to a closed source file&#xD;
system implementation which you can't debug, can't improve&#xD;
and &amp;mdash; most scarily &amp;mdash; can't even &lt;tt&gt;fsck&lt;/tt&gt;&#xD;
when it goes wrong, because you don't have direct access to&#xD;
the underlying medium?&lt;P&gt;&#xD;
I don't, certainly. The last two times I tried to install&#xD;
Linux to a SATA SSD, the disk was corrupted by the time I&#xD;
booted into the new system for the first time. The 'black&#xD;
box' model meant that there was no chance to recover &amp;mdash;&#xD;
all I could do with the dead devices was throw them away,&#xD;
along with their entire contents.&#xD;
&lt;P&gt;&#xD;
File systems take a long time to get to maturity. And these&#xD;
translation layers aren't any different. We've been seeing&#xD;
for a long time that they are completely unreliable,&#xD;
although newer models are &lt;em&gt;supposed&lt;/em&gt; to be somewhat&#xD;
better. But still, shipping them in a black box with no way&#xD;
for users to fix them or recover lost data is a &lt;em&gt;bad&#xD;
idea&lt;/em&gt;.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; That's just the reliability angle; there are also efficiency&#xD;
concerns with the filesystem-on-filesystem model. Flash is&#xD;
divided into "eraseblocks" of typically 128KiB or so. And&#xD;
getting larger as devices get larger. You can write in&#xD;
smaller chunks (typically 512 bytes or 2KiB, but also&#xD;
getting larger), but you can't just overwrite things as you&#xD;
desire. Each eraseblock is a bit like an Etch-A-Sketch. Once&#xD;
you've done your drawing, you can't just change bits of it;&#xD;
you have to wipe the whole block.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; Our flash will fill up as we use it, and some of the data on&#xD;
the flash will be still relevant. Other parts will have been&#xD;
rendered obsolete; replaced by other data or just deleted&#xD;
files that aren't relevant any more. Before our flash fills&#xD;
up completely, we need to recover some of the space taken by&#xD;
obsolete data. We pick an eraseblock, write out new copies&#xD;
of the data which are still &lt;em&gt;valid&lt;/em&gt;, and then we can&#xD;
erase the selected block and re-use it. This process is called&#xD;
garbage collection.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; One of the &lt;em&gt;biggest&lt;/em&gt; disadvantages of the "pretend to&#xD;
be disk" approach is addressed by the recent &lt;A HREF="http://lwn.net/Articles/293658/"&gt;TRIM&lt;/a&gt; work. The&#xD;
problem was that the disk didn't even &lt;em&gt;know&lt;/em&gt; that&#xD;
certain data blocks were obsolete and could just be&#xD;
discarded. So it was faithfully copying those sectors around&#xD;
from eraseblock to eraseblock during its garbage collection,&#xD;
even though the contents of those sectors were not at all&#xD;
&lt;em&gt;relevant&lt;/em&gt; &amp;mdash; according to the file system, they&#xD;
were free space!&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; Once TRIM gets deployed for real, that'll help a lot. But&#xD;
there are other ways in which the model is suboptimal.&lt;P&gt;&#xD;
The ideal case for garbage collection is that we'll find an&#xD;
eraseblock which contains &lt;em&gt;only&lt;/em&gt; obsolete data, and&#xD;
in that case we can just erase it without having to copy&#xD;
anything at all. Rather than mixing volatile, short-term&#xD;
data in with the stable, long-term data we actually want to&#xD;
keep them &lt;em&gt;apart&lt;/em&gt;, in separate eraseblocks. But in&#xD;
the SSD model, the underlying "disk" can't easily tell which&#xD;
data is which &amp;mdash; the real OS file system code can do a&#xD;
much better job.&lt;P&gt;&#xD;
And when we're doing this garbage collection, it's an ideal&#xD;
time for the OS file system to optimise its storage &amp;mdash;&#xD;
to defragment or do whatever else it wants (combining data&#xD;
extents, recompressing, data de-duplication, etc.). It can&#xD;
even play tricks like writing new data out in a suboptimal&#xD;
but &lt;em&gt;fast&lt;/em&gt; fashion, and then only optimising it later&#xD;
when it gets garbage collected. But when the "disk" is doing&#xD;
this for us behind our back in its own internal file system,&#xD;
we don't get the opportunity to do so.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; I don't think Ted is right that the flash hardware is in the&#xD;
best place to handle &lt;I&gt;"failures of its cells"&lt;/i&gt;. In the&#xD;
SSD model, the flash hardware doesn't do that anyway &amp;mdash;&#xD;
it's done by the file system on the embedded microcontroller&#xD;
sitting &lt;em&gt;next&lt;/em&gt; next to the flash.&lt;P&gt;&#xD;
I am certain that we can do better than that in our&#xD;
&lt;em&gt;own&lt;/em&gt; file system code. All we need is a small amount&#xD;
of information from the flash. Telling us about ECC&#xD;
corrections is a first step, of course &amp;mdash; when we had&#xD;
to correct a bunch of flipped bits using ECC, it's getting&#xD;
on for time to GC the eraseblock in question, writing out a&#xD;
clean copy of the data elsewhere. And there are technical&#xD;
reasons why we'll also want the flash to be able to say&#xD;
&lt;I&gt;"please can you GC eraseblock #XX soon"&lt;/i&gt;.&#xD;
&#xD;
&lt;p&gt; &lt;P&gt;&#xD;
But I see absolutely no reason why we should put up with the&#xD;
"hardware" actually doing that kind of thing for us, behind&#xD;
our back. And badly.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; Admittedly, the need to support legacy environments like DOS&#xD;
and to provide &lt;TT&gt;INT 13h&lt;/tt&gt; "DISK BIOS" calls or at&#xD;
least a "block device" driver will never really go away. But&#xD;
that's not a problem. There are plenty of examples of&#xD;
translation layers done in &lt;em&gt;software&lt;/em&gt;, where the OS&#xD;
really does have access to the real flash but still presents&#xD;
a block device driver to the OS. Linux has about 5 of them&#xD;
already. The corresponding "dumb" devices (like the&#xD;
M-Systems DiskOnChip which used to be extremely popular) are&#xD;
great for Linux, because we can use real file systems on&#xD;
them directly.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; At the very least, we want the "intelligent" SSD devices to&#xD;
have a pass-through mode, so that we can talk directly to&#xD;
the underlying flash medium. That would &lt;em&gt;also&lt;/em&gt; allow&#xD;
us to try to recover our data when the internal "file&#xD;
system" screws up, as well as allowing us to do things&#xD;
properly from our own OS file system code.&#xD;
        &lt;p&gt;&#xD;
Now, I'm not suggesting that we already &lt;em&gt;have&lt;/em&gt; file&#xD;
system code which can do things better; we don't. I wrote &lt;A HREF="http://david.woodhou.se/jffs2.pdf"&gt;a file system which&#xD;
works on real flash&lt;/a&gt;, but I wrote it 8 years ago and it&#xD;
was designed for 16-32MiB of bitbanged NOR flash. We pushed&#xD;
it to work on 1GiB of NAND (and even using DMA!) for OLPC,&#xD;
but that is fairly much the limit of how far we'll get it to&#xD;
scale.&#xD;
&lt;P&gt;We do, however, have a lot of interesting new work such&#xD;
as &lt;A HREF="http://www.linux-mtd.infradead.org/doc/ubi.html"&gt;UBI&lt;/a&gt;&#xD;
and &lt;A HREF="http://www.linux-mtd.infradead.org/doc/ubifs.html"&gt;UBIFS&lt;/a&gt;,&#xD;
which is rapidly taking the place of JFFS2 in the real&#xD;
world. The btrfs design also lends itself very well to&#xD;
working on real flash, because of the way it doesn't&#xD;
overwrite data in-place. I plan to have btrfs-on-flash, or&#xD;
at least btrfs-on-UBI, working fairly soon.&#xD;
&lt;P&gt;And, of course, we even have the option of using&#xD;
translation layers in software. That's how I tested the TRIM&#xD;
support when I added it to the kernel; by adding it to our&#xD;
existing flash translation layer implementations. Because&#xD;
when this stuff is done in software, we &lt;em&gt;can&lt;/em&gt; work on&#xD;
it and improve it. &#xD;
&lt;P&gt;&#xD;
So I am entirely confident that we can do much better in&#xD;
software &amp;mdash; and &lt;em&gt;especially&lt;/em&gt; in open source&#xD;
software &amp;mdash; than an SSD could ever do internally.&lt;P&gt;&#xD;
Let's not be so quick to assume that letting the 'hardware'&#xD;
do it for us is the right thing to do, just because it was&#xD;
right 20 years ago for hard drives do to something which&#xD;
seems vaguely similar at first glance.&lt;P&gt;&#xD;
Yes, we need the hardware to give us some hints about what's&#xD;
going on, as I mentioned above. But that's about as far as&#xD;
the complexity needs to go; don't&#xD;
listen to the people who tell you that the OS would need to&#xD;
know all kinds of details about the internal geometry of the&#xD;
device, which will be changing from month to month as&#xD;
technology progresses. The basic NAND flash technology&#xD;
hasn't changed &lt;em&gt;that&lt;/em&gt; much in the last ten years, and&#xD;
existing file&#xD;
systems which operate on NAND haven't had to make many&#xD;
adjustments to keep up at all.</description>
    </item>
    <item>
      <pubDate>Sat, 29 Aug 2009 15:33:43 GMT</pubDate>
      <title>29 Aug 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=210</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=210</guid>
      <description>&lt;B&gt;&lt;TT&gt;2009-08-22 01:24:51 +0000 1MefLf-0004Xf-3x&#xD;
H=mailhost8a.rbs.com [155.136.80.166]&#xD;
F=&amp;lt;OnlineBanking@Information.natwest.com&amp;gt; rejected&#xD;
after DATA: Your message lacks a Date: header, which RFC5322&#xD;
says it MUST have.&lt;/tt&gt;&lt;/b&gt;&#xD;
&lt;HR&gt;&#xD;
&lt;BLOCKQUOTE&gt;&lt;I&gt;Dear Mr. Woodhouse,&lt;P&gt;&#xD;
Thank you for your call of 26th August about not being able&#xD;
to accept notification emails.&#xD;
&lt;BR&gt;...&lt;BR&gt;&#xD;
I have investigated the matter and can confirm that the&#xD;
statement notification emails are sent out with the date on.&#xD;
The rfc5322 is an internet protocol only and we do not have&#xD;
to abide by this.&lt;p&gt;&#xD;
Our records show that the notification emails failed&#xD;
delivery on the 21st August due to an invalid email address.&#xD;
I hope this is a satisfactory resolution to your&#xD;
complaint.&lt;/i&gt;&lt;/blockquote&gt;&#xD;
&lt;HR&gt;&#xD;
Christ, where do I start with this? Yes, if you're claiming&#xD;
to be sending Internet email then you really &lt;em&gt;do&lt;/em&gt;&#xD;
have to follow RFC5322. That's the standard that defines&#xD;
what Internet email is.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; But that seems to be a red herring &amp;mdash; he also claims&#xD;
that they &lt;em&gt;are&lt;/em&gt; including a &lt;TT&gt;Date:&lt;/tt&gt; header.&#xD;
Unfortunately, he's wrong. He's probably looking at an email&#xD;
which&#xD;
had the &lt;TT&gt;Date:&lt;/tt&gt; header added in transit by the&#xD;
recipient's mail server. That would be obvious to anyone&#xD;
with a clue, because you can compare the datestamps in the&#xD;
&lt;TT&gt;Received:&lt;/tt&gt; headers and observe that it matches one&#xD;
of the later ones, not the first.&#xD;
&lt;P&gt;&#xD;
And his diagnosis of the reason for the failure seems&#xD;
to be complete nonsense too, given that the SMTP rejection&#xD;
notice contained precisely the above text: "Your message&#xD;
lacks a Date: header, which RFC5322 says it MUST have.".&#xD;
&lt;P&gt;&#xD;
Well done, Nat West. Bonus points for stupidity today.&#xD;
&lt;/hr&gt;&lt;/hr&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 22 Aug 2009 11:22:25 GMT</pubDate>
      <title>22 Aug 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=209</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=209</guid>
      <description>Remember last year when British Telecom kept closing fault&#xD;
tickets without actually fixing the fault or reading what&#xD;
we'd told them? Well, it's official &amp;mdash; &lt;B&gt;&lt;A HREF="http://aaisp.blogspot.com/2009/08/info-official-bt-ignore-us.html"&gt;It&#xD;
is BT policy to ignore all information provided in a fault&#xD;
ticket&lt;/a&gt;&lt;/b&gt;. They admitted it:&#xD;
 &lt;BLOCKQUOTE&gt;&lt;I&gt;"CRM Teams and customers have also been&#xD;
advised that the only action taken on these 'Amend requests'&#xD;
is to complete them to allow the fault to progress. CS Ops&#xD;
do not actively respond to any information on these&#xD;
requests."&lt;/i&gt;&lt;/blockquote&gt;&#xD;
&#xD;
&lt;p&gt; Their current game is attempting to charge me &amp;pound;128,000 for&#xD;
installing a new phone line. That's apparently the full cost&#xD;
of upgrading the line plant into the village, which has been&#xD;
desperately needed for a long time but although they costed&#xD;
it up years ago, they haven't got round to &lt;em&gt;doing&lt;/em&gt; it&#xD;
yet. Perhaps they were just waiting for a single individual&#xD;
consumer to pay for it?&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Fri, 31 Jul 2009 11:01:49 GMT</pubDate>
      <title>31 Jul 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=208</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=208</guid>
      <description>Hahaha. &lt;A HREF="http://www.theage.com.au/technology/biz-tech/shock-threat-to-shut-skype-20090731-e3qe.html"&gt;Skype&#xD;
might have to shut down due to licensing problems&lt;/a&gt;.&#xD;
&lt;P&gt;&#xD;
I hope it does. Random&#xD;
crap using non-standard protocols and non-free software&#xD;
&lt;em&gt;deserves&lt;/em&gt; to die &amp;mdash; and the sheep who used it&#xD;
deserve what they get too.&lt;P&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 8 Jul 2009 16:19:41 GMT</pubDate>
      <title>8 Jul 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=207</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=207</guid>
      <description>I'm accustomed to technical support being fairly incompetent&#xD;
and clueless, but Acer seem to have taken it to a new level.&#xD;
They have taken to telling &lt;em&gt;direct lies&lt;/em&gt; and seem to be&#xD;
attempting to defraud their customers.&#xD;
&lt;P&gt;I don't think I'll&#xD;
ever be buying Acer hardware again.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; I bought an Acer laptop a couple of months ago, through&#xD;
Misco. I phoned Misco and tried to get them to ship it to me&#xD;
without the preinstalled Windows Vista operating system.&#xD;
They said that it was not possible.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; At that point I should have taken my business elsewhere, but&#xD;
this was&#xD;
quite a good deal &amp;mdash; ISTR it was a return, or something&#xD;
like that, so it was quite cheap.  So I&#xD;
ordered the laptop anyway, and then when it arrived I&#xD;
declined to accept the End User Licensing Agreement,&#xD;
installed Linux on it and contacted Acer for my refund as&#xD;
indicated.&#xD;
&lt;P&gt;&#xD;
Acer's first response was that they would be able to refund&#xD;
the &amp;pound;20.30 that Windows Vista was worth, but that they&#xD;
&lt;I&gt;"will require a&#xD;
&amp;pound;51.99 payment to have the machine brought in to the repair&#xD;
centre so we may remove this for you. This will cover the&#xD;
courier and engineer's labour fee."&lt;/i&gt;&#xD;
&lt;P&gt;&#xD;
This seems to be an obvious scam to prevent customers from&#xD;
obtaining the refund to which they are entitled, and I&#xD;
didn't accept it.  I wrote a letter to their head&#xD;
office, returning the Windows serial number sticker and&#xD;
giving photographic evidence that Linux had been installed&#xD;
on the system, wiping the old operating system. And&#xD;
demanding my refund within one month or&#xD;
court proceedings would be issued.&#xD;
&lt;P&gt;&#xD;
Acer responded to this, retracting the demand for a &amp;pound;51.99&#xD;
payment but still claiming that the laptop had to be shipped&#xD;
back to them at my expense. They said that they needed to&#xD;
&lt;I&gt;"action the following:&lt;BR&gt;&#xD;
&lt;OL&gt;&#xD;
&lt;LI&gt;Validate that the Operating System has been removed from&#xD;
the Hard Disk.&#xD;
&lt;LI&gt;Remove the Microsoft COA (Certificate Of Authenticity)&#xD;
label&#xD;
&lt;LI&gt;Verify your proof of purchase to ascertain that you are&#xD;
in the specified timeframe to refund this product.&#xD;
&lt;LI&gt;To verify if any back up recovery disks have been made&#xD;
and if so, recovered from you.&#xD;
&lt;LI&gt;A signed form from you, which may be given to Microsoft&#xD;
and which agrees to hold Acer harmelss from any claims by&#xD;
third parties in the event that you have produced any false&#xD;
information on the request."&#xD;
&lt;/ol&gt;&lt;/i&gt;&lt;P&gt;&#xD;
I pointed out that it was not necessary for them to have the&#xD;
system shipped back to them to achieve their requirements. I&#xD;
offered them remote access to the system in order to verify&#xD;
that there was no trace of Windows left on the hard drive,&#xD;
and asked for a copy of the form they mentioned. I also gave&#xD;
them a copy of my proof of purchase, reminded them that I'd&#xD;
&lt;em&gt;already&lt;/em&gt; sent back the sticker, and stated that I&#xD;
had made no backup copies.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; At this point, they went silent and stopped responding to my&#xD;
email &amp;mdash; even when I reminded them that the deadline&#xD;
was approaching and I was about to file the court claim for&#xD;
my refund. They did eventually start responding again after&#xD;
about two&#xD;
months, when I informed them that I &lt;em&gt;had&lt;/em&gt; finally got&#xD;
round to filing the court case.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; This did seem to get their attention, but they still claimed&#xD;
that they needed the system to be shipped back to them. When&#xD;
I spoke to an engineer on the telephone, he claimed that it&#xD;
wasn't sufficient merely to check that the hard drive had&#xD;
been wiped, and compare the serial number reported by its&#xD;
firmware with the one in&#xD;
their records. He said they had to actually take the laptop&#xD;
apart and read the serial number from the &lt;em&gt;label&lt;/em&gt; on&#xD;
the hard drive, because I might have put a different hard&#xD;
drive into the laptop and flashed its firmware so that it&#xD;
pretended to have the same serial number as the original.&lt;P&gt;&#xD;
I pointed out that this was somewhat far-fetched, and if I&#xD;
was so inclined it would be much easier for me to just copy&#xD;
Windows off the original hard drive, send it back to them&#xD;
for validation, then put it back again afterwards. He&#xD;
agreed, but said that their agreement with Microsoft was&#xD;
that they &lt;em&gt;must&lt;/em&gt; verify that the OS had been removed&#xD;
from the &lt;em&gt;original&lt;/em&gt; hard drive &amp;mdash; what happened&#xD;
after&#xD;
that wasn't their problem.&lt;P&gt;&#xD;
&#xD;
&lt;p&gt; At this point, with the court proceedings already filed,&#xD;
they agreed to pay for the courier (and the court costs).&#xD;
Since it would only take a few days, I conceded. Before&#xD;
shipping it off to them, however, I took a screwdriver and&#xD;
carefully aligned all the&#xD;
screws so that I could tell if it had&#xD;
been opened.&lt;P&gt;&#xD;
&lt;P&gt;Imagine my surprise when it came back and they&#xD;
&lt;em&gt;hadn't&lt;/em&gt; opened the case! Despite all their&#xD;
protestation that they needed physical access, and that they&#xD;
had to open the case and physically&#xD;
read the serial numbers from the hard drive, when they&#xD;
finally got the opportunity to do so they didn't bother. &#xD;
&lt;P&gt;&#xD;
All&#xD;
they did was check the partitioning and serial number&#xD;
through &lt;em&gt;software&lt;/em&gt; &amp;mdash;&#xD;
which they could have done months ago, remotely.&#xD;
&lt;P&gt;&#xD;
As far as I can tell, it's just a huge scam to prevent&#xD;
customers from claiming the refund for the&#xD;
unlawfully-bundled software, by making it cost&#xD;
more to do so than they get in the refund. I certainly&#xD;
would have given up a long time ago if it wasn't for the&#xD;
principle of the thing.&lt;P&gt;&#xD;
Now it seems entirely clear that Acer are simply attempting&#xD;
to defraud their customers, though, I shall be reporting it&#xD;
to Trading Standards to see what they have to say about the&#xD;
matter.&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Mon, 6 Jul 2009 11:10:35 GMT</pubDate>
      <title>6 Jul 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=206</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=206</guid>
      <description>Software makes me sad sometimes.&#xD;
&#xD;
&lt;p&gt; Every time the iwlagn driver crashes and has to be reloaded&#xD;
(and it does that distressingly often, since it doesn't seem&#xD;
to reset the device and recover when its closed-source&#xD;
firmware crashes), NetworkManager kills the connection and&#xD;
restarts completely. Not unreasonably, I suppose.&#xD;
&#xD;
&lt;p&gt; But then, all NFS mounts get automatically unmounted, which&#xD;
is a complete pain in the arse.&#xD;
&#xD;
&lt;p&gt; And my VPN connection is reset, and because Cisco are stupid&#xD;
I don't get the same VPN IP address next time I connect,&#xD;
even if it &lt;em&gt;is&lt;/em&gt; still available. &lt;I&gt;(I think I ought&#xD;
to be able to work around this from the client side, if I&#xD;
don't mind &lt;em&gt;storing&lt;/em&gt; the authentication cookie on the&#xD;
client machine.)&lt;/i&gt;.&#xD;
&#xD;
&lt;p&gt; Although having said that, the main reason I'd want my IP&#xD;
address to remain the same is so that my connection to the&#xD;
mail server can persist and I don't have to wait through&#xD;
Evolution's painfully slow startup.&#xD;
&#xD;
&lt;p&gt; Unfortunately, Evolution also responds to the network&#xD;
offline/online events by reporting &lt;TT&gt;-EAGAIN&lt;/tt&gt;&#xD;
errors all the time when it auto-saves emails that you're&#xD;
composing, and stops being able to display mail folders&#xD;
&amp;mdash; the index just comes up empty. So it needs to be&#xD;
killed and restarted too. (This has been in bugzilla since&#xD;
November last year).</description>
    </item>
    <item>
      <pubDate>Mon, 8 Jun 2009 10:29:25 GMT</pubDate>
      <title>8 Jun 2009</title>
      <link>http://www.advogato.org/person/dwmw2/diary.html?start=205</link>
      <guid>http://www.advogato.org/person/dwmw2/diary.html?start=205</guid>
      <description>Software makes me sad sometimes.&#xD;
&lt;HR&gt;&#xD;
&lt;B&gt;Q:&lt;/b&gt; My application has a command-line option to use an&#xD;
SSL client certificate. What&#xD;
is the OpenSSL&#xD;
function to load and use the certificate from a file?&lt;P&gt;&#xD;
&lt;B&gt;A:&lt;/b&gt; Well, we&#xD;
make this lots&#xD;
of fun for you &amp;mdash; it would&#xD;
be boring if there&#xD;
   was just one function which you could pass the filename&#xD;
to. You have&#xD;
   to write 230 lines of &lt;A HREF="http://git.infradead.org/users/dwmw2/openconnect.git?a=blob;f=ssl.c;h=da9e7b42ce685c72675e9a87d59d060cabf89443;hb=28f6de23917868a64c18b2ad51c5ec4ec6cc2600#l110"&gt;code&#xD;
like this&lt;/a&gt; instead.... First you have to&#xD;
check for&#xD;
   yourself what type of file it is &amp;mdash; is it a PKCS#12&#xD;
file,&#xD;
is it a PEM&#xD;
   file with a key in it, or is it a TPM key 'blob'?&#xD;
&lt;P&gt;&#xD;
   No, there's no function which determines that for you &amp;mdash;&#xD;
you have to &#xD;
   do it yourself. And depending on the answer, you have to&#xD;
do three&#xD;
   entirely different things to load the key.&#xD;
&lt;P&gt;&#xD;
   To make things even more fun, those three file types have&#xD;
&lt;em&gt;wildly&lt;/em&gt;&#xD;
   different ways to handle their passphrase/PIN:&#xD;
&lt;UL&gt;&#xD;
&lt;LI&gt;&#xD;
   For a PEM file, you can't tell OpenSSL the passphrase in&#xD;
advance &amp;mdash;&#xD;
   if the user gave it on the command line, you have to manually&#xD;
   override the user interface function that OpenSSL will&#xD;
call, and make&#xD;
   your replacement function return the pre-set passphrase.&#xD;
Or if you&#xD;
   &lt;em&gt;do&lt;/em&gt; ask the user, you've got no way to easily tell&#xD;
whether the user&#xD;
   got the passphrase wrong; if they get it wrong (and type&#xD;
4 or more&#xD;
   characters) then the 'load key' function will fail and&#xD;
you have to&#xD;
   compare against a special error code, which may differ&#xD;
from version&#xD;
   to version of OpenSSL because it has internal function&#xD;
names. Just&#xD;
   for variety, if the user enters a wrong passphrase with&#xD;
&lt;em&gt;fewer&lt;/em&gt; than&#xD;
   4 characters, they'll get &lt;em&gt;no&lt;/em&gt; feedback and will&#xD;
just be&#xD;
asked again immediately.&lt;P&gt;&#xD;
&lt;LI&gt;For a PKCS#12 file, it's the other way round &amp;mdash; you&#xD;
&lt;em&gt;have&lt;/em&gt; to give&#xD;
   the passphrase in advance, so you have to ask the user for it&#xD;
   yourself. Even if the file isn't actually encrypted &amp;mdash;&#xD;
because you&#xD;
   don't know that yet.&lt;P&gt;&#xD;
&lt;LI&gt;For a TPM key it's a bit saner &amp;mdash; you can&#xD;
&lt;em&gt;either&lt;/em&gt; set&#xD;
the PIN&#xD;
in advance&#xD;
   or otherwise OpenSSL will ask the user for it &lt;em&gt;if&lt;/em&gt;&#xD;
necessary. But&#xD;
   you do have to jump through various other hoops to use&#xD;
the TPM&#xD;
   'engine', instead of just pointing OpenSSL at the file&#xD;
and having&#xD;
   everything handled for you.&lt;/ul&gt;&#xD;
&lt;HR&gt;Excuse me while I bash my head against a brick wall for a&#xD;
while...&lt;P&gt;&#xD;
And no, the answer is &lt;em&gt;not&lt;/em&gt; &lt;I&gt;"don't&#xD;
use OpenSSL then"&lt;/i&gt;.&lt;P&gt;&#xD;
At least, not until one of the potential&#xD;
replacements actually starts to catch up with the features I&#xD;
need &amp;mdash; &#xD;
support for using a &lt;A HREF="http://en.wikipedia.org/wiki/Trusted_Platform_Module"&gt;TPM&lt;/a&gt;&#xD;
for certificates, and &lt;A HREF="http://www.rfc-editor.org/rfc/rfc4347.txt"&gt;DTLS&lt;/a&gt;&#xD;
support.&lt;/hr&gt;&lt;/hr&gt;</description>
    </item>
  </channel>
</rss>
