Valgrind kicks ass
I spent some time today using Valgrind to
track down
uninitialized memory reads and similar problems in
Ghostscript. So
far, 4 out of 5 have been legitimate problems, and at least
one was
probably capable of real mischief. The one false positive
was due to a
compiler optimization, and became clear on viewing the assembler
(roughly, ashort[0] == 42 && ashort[1] == 69 being
collapsed
into a single comparison).
Peter Deutsch reports that his stabs using Purify and
Insure++ were
very frustrating, because about 90-95% of the reports were false
positives.
The lack of a good free memory debugger has long been a
source of
disappointment to me. Valgrind has singlehandedly done a lot
to renew
my faith in free software.
New monitor
The new monitor for spectre appeared
today. It's a ViewSonic P95f.
Overall,
it seems pretty good, but not sensational. I wanted a 19" to
save
space and power, figuring that the next monitor I buy will be a
high-res LCD such as the IBM T221 (drool).
The monitor goes up to 1920x1440 (about 140 dpi), but
running test
patterns shows that the horizontal resolution is limited by the
aperture grill, which is about 100 stripes per inch. As far as
vertical resolution goes, you can actually see individual
scanlines
even at that resolution.
So the "real" resolution is somewhere around 1600x1200
(about 115
dpi). I wonder how shadow mask monitors such as the Hitachi CM715
stack up by comparison. That display has a dot pitch of
about .22mm,
which should match the 1600x1200 well. It's cheaper and
draws less
power, too.
I haven't finished playing with font rendering, but so far
it looks
like my original suspicion is true: at 140 dpi, antialiased
unhinted
text is nearly as contrasty as monochrome. Driving the
monitor at more
than its "real" resolution might be a good deal, if it means
you can
use unhinted aa fonts without compromise.
Internet telephones
Wes posted a link
on ENUM
recently. Basically, it's a mapping from telephone numbers
to domain
names, so you can use DNS to resolve them to IP addresses.
You reverse
the digits, join with '.', and put .e164.arpa at the end. So
my phone
number is 8.9.3.6.6.4.7.7.0.7.1.e164.arpa. This should
resolve to
something like 63.196.208.218, but of course doesn't. The phone
companies prefer it this way. There's no good technological
reason to
have a phone any more, but as long as it's too hard for
near-PhD's,
the phone companies don't have much to worry about.
I tried setting up gnomemeeting with blanu (who is
experimenting with streaming media), but we didn't get it to
work. On
my side, it was probably the laptop's sound driver, for
which I've
never really bothered to get the microphone to work.
Part of the problem is trying to use general purpose
hardware like a
PC with a sound card for a specific task. However, there's
no reason
why you couldn't build internet phone hardware. In fact, I
think it's
a great idea.
For my setup, I'd want two pieces of hardware. One would be
exactly
the same hardware as an Apple AirPort, but the phone port
would be for
voice calls, not for the modem. The AirPort is a 386 PC
anyway, so I
wouldn't be surprised if you could use it for this.
The other piece of hardware is simply A/D and D/A converters, an
802.11b card, and a battery. The cost of the 802.11b chipset
is around
$22, and cards are now retailing for $35
after rebate. There's no reason why this part couldn't be
retailed for
$100. Of course, what makes this product really
appealing is
playing Ogg files from your home media server. Before the
iPod was
released, some people thought that's what it would be.
I think whichever manufacturer figures this out is going to
sell a
hell of a lot of them. Making the (Windows) software nice
and easy to
use is nontrivial, but I don't care. I'd just run it off my
Linux
boxen anyway.
Google and the dangers of centralization
Google is amazing. When in online conversations, I routinely ask
Google for the answers to questions that come up, and I
almost always
get the answers. Not only that, but Google is fast. In
fact,
it's quite competitive with DNS.
It's going to be very, very hard for anyone else to compete with
Google, in part because of their PageRank algorithm (the
rest of it is
just kick-ass good implementation). As a result, Google is
in great
danger of become a central point of failure for the whole useful
Internet. People don't seem to have started worrying about
this yet,
probably because they're so damn good at what they do. By
contrast,
VeriSign (formerly Network Solutions, formerly the InterNic) got
people worried fairly early on, because they suck so hard.
But Google is not a public service. In fact, it will
probably become a
publicly traded corporation soon, with a fiduciary obligation to
shareholders. How much money might they be able to extract
from their
position? Think about that when you read The Google AdWords
Happening.
SourceForge
I note with some Schadenfreude that SourceForge no longer
seems to be
hosting their own downloads, using mirrors at Telia,
ibiblio, and
Belnet instead.
Why Schadenfreude? In large part because they don't listen
when I have
things to say. Other, healthier organizations and people
don't seem to
have this problem. Oh well.