The fries, which look like a squat version of standard French fries,
are made of a meat-and-cheese compound that tastes - as the name
suggests - like a cheeseburger. …
After testing different types of cheeses, Mr. Moore settled on a processed restricted-melt cheese, meaning that it is manufactured to withstand high temperatures. … Tasters like the charbroiled flavor, but said it did not make sense to have something like that also taste deep-fried. "It's hard to please everyone," Mr. Moore said.
As seen on
Γνωθι
Σεαυτον
It may be a bad movie, but
Tron is one of the
best science fiction films of all time. Stunningly creative, from
the premise to the production to the fantastic
Wendy Carlos score.
Sure the plot may be awful, but it's so beautiful! Trivia: it was made with essentially zero digital effects or
computer graphics.
Update: Dan corrects me -
there are many computer graphics bits in the films, and in fact it was
one of the first features with lots of CG. The central
look of the film (lighting, characters, sets, etc) are all traditional film
techniques, but many of the details in the computer world (light
cycles, recognizers, etc) are rendered.
Tron is an important waystation in cyberpunk, borrowing heavily from Metropolis in its milieu and design (particularly the character makeup!) and The Wizard of Oz for the fantasy story. In turn it has inspired films such as the animation in Johnny Mnemonic and the navigational scenes in The Second Renaissance (The Animatrix). The cast is surprisingly good, too: David Warner, Jeff Bridges, Bruce Boxleitner, even Barnard Hughes is fun as that guy. The new Tron 2.0 PC game is a pleasure. There was talk of a Tron movie sequel but now the rumour is there is no film. Probabaly just as well.
Christopher Alexander's A Pattern Language:
Towns, Buildings, Construction is a lovely book. Computer geeks
borrowed the
framework to talk about programming.
But the original book is overlooked. It's an easily digestable,
fundamentally sensible book about architecture and urban design.
Problem
I'm delighted to see someone put
the patterns online.
The descriptions are much shorter than the book material, but it's
handy and cross-indexed. From the practical
P125: Stair Seats
(echoed in William
Whyte's work) to the subtle
P134: Zen
View, it's all here for quick reference.
When they have a choice, people will always gravitate to those rooms which have light on two sides, and leave the rooms which are lit only from one side unused and empty.
Solution
It must suck to be a game developer.
I
applauded
Atari for releasing a 6 hour time limited version of Temple of
Elemental Evil on KaZaA. Now I learn that
Troika,
the developer,
doesn't know
about this release.
The kazaa version is not the demo. From what we can tell it is a
try-ware version of the game (6 hours of time limited gameplay). we
here at Troika are still trying to figure out what it is, who made it,
and how it differs from the store ToEE.
Troika spends two years of
creative energy developing a game. Atari/Infogrames
fronts the money and publishes it. And then the publisher makes
horrible decisions that screw the developers and the customer.
TOEE was released too early and now there's a fight over whether Atari
will allow Troika to make a patch.
I believe computer games are some of the most interesting commercial art being produced today. Shame to see the commercialism screw it up.
As seen on Eye on Troika
If anyone had any doubt about spammers being evil or having a right to
"free speech", doubt no more.
A nice Reuters
review of recent hostile spammer activity: denial of service
attacks against anti-spam services and releasing
worms
to turn innocent PCs into spam relays.
The
Register has more.
The Internet should not be a battleground.
Norton AntiVirus found a copy of
Trojan.ByteVerify
on my system. It exploits an April
2003 bug in the MS Java VM.
I'm good at patching my system and the place the virus phones home is offline, so I'm presumably safe. But how would I know for sure? And why did the active virus protection allow this file to be written at all? Java is useless for embedding in web pages anyway. I probably should turn it off.
Can't tell your gabber from your casiocore?
Want to know more about
glitch or
illbient?
Ishkur's
guide to electronic music is what you need. V2 was just released.
History, classification, lots of music samples. Obsessive and
comprehensive, it's a great document.
As seen on MetaFilter
Massively multiplayer games are really interesting. Persistent worlds,
complex social experiences, lots of interesting design and programming
challenges.
The question is how many games the market will sustain. So far there have been a few smash hits: Everquest and Ultima Online of course, but also Dark Age of Caemlot and maybe Star Wars Galaxies. This graph of subscriber stats suggests a bunch of new games are taking off without really cannibalizing existing populations. As seen on Greg
Costikyan's blog
The kilogram is shrinking;
one part in twenty million lost in 115 years. The problem is that of the
seven standard
units, the kilogram alone is still defined in terms of a physical
object rather than a fundamental scientific relationship.
meter
kilogram
second
There are
several options
for redefining the kilogram in a nicer way, including deriving
from measuring
Planck's constant with a
Watt balance
or measuring Avogadro's number with a perfectly round
silicon crystal.
ampere kelvin mole candela
Around 400BC a meteorite struck Saaremaa Island, now
in Estonia, and created a
110m wide crater known as
Lake Kaali.
Unlike Tunguska it fell
in the middle of a densely populated area.
Researchers have revealed an amazing human story.
The disputed 400BC date is from analysis of iridium,
C14, and pollen.
The nearby
village
Asva burned at
roughly the same time, an intriguing coincidence.
Pollen data suggests nearby farms were abandoned for about 100 years
after the impact.
There was a highly fortified wall built on the crater rim right after
the explosion.
A large meteorite has never been found; possibly because it became
the source for local iron tools.
The historical record is astonishing as well. The Kalevala, the Finnish national epic, may record the story. Pytheas of Massalia was in the area 350-325BC and wrote of "the grave where the sun fell dead". The Argonautica of Apollonius of Rhodes (3rd C. BC) may describe the lake:
...where once, smitten on the breast by the blazing bolt, Phaethon
half-consumed fell from the chariot of Helios into the opening of that
deep lake; and even now it belcheth up heavy steam clouds from the
smouldering wound.
I love how astronomy, archæology, and literature
combine to describe an event at the edge of human
history.
—The Argonautica Book 4, Section 529-626
As seen in A Traveller's Guide to Mars
Received by a friend today:
We have just charged your credit card for money laundry service in
amount of $234.65 (because you are either child pornography
webmaster or deal with dirty money, which require us to layndry them
and then send to your checking account).
If you confirm this transaction, please press "Yes" and fill in the
form below.
The form has helpful slots for credit card info.
Google has 153 pages about this spam.
Discover magazine on
methods for
space travel, with time to Alpha Centauri (4.4 ly) and
maximum speed.
The new season of 24 starts in a
month. I've really missed Kim.
But there's rumours. She really was eaten by that cougar. Even better, next season is rumoured to feature Kim as a lesbian. It's every straight guy's fantasy! It may be a hoax. I tried to find more info, but a search for Elisha Cuthbert Lesbian finds rather different material. As seen on the 24 Weblog
Why does so much contemporary software think it's OK to lock the user
out? InstallShield, the horrible Windows installer, puts a fullscreen
window on top of everything while it's installing and disables the
minimize button so I can't hide it. My DVD player refuses to let me skip over certain
tracks (such as the inane Interpol warning) and forces me to watch
dumb transitions from screen to screen while I navigate menus.
Why do user interface designers think it is ever appropriate to prevent a user from taking an action?
This is a big week for innovative PC game distribution.
Valve announced that Half Life 2, not to mention older versions
of Half Life, Counterstrike, etc, would now require
their online game
distribution and patch system
Steam. And Atari has apparently
partnered
with Kazaa to distribute
The Temple of Elemental Evil, the new RPG
that has old school D&D geeks drooling. 843MB and you can
play free for 6 hours.
I imagine Atari is trying to head-off pirates stealing the game on KaZaA. Or maybe they've found a clever way to get their demo out. Or maybe they're brave and are actually trying a new distribution model? Greg Costikyan has written some good stuff on online distribution. The movie industry better be paying attention; they only have three years to figure this out themselves. There's no way I'm installing the evil scumware that comes with Kazaa and Kazaa Lite is failing me. Bittorrent would be a perfect alternative. I fear it will be about six days before a crack for the time limit is released. There's a reason demos don't have all the game assets.
Verisign has unilaterally broken DNS. Now when you try to resolve the
address for a nonexistent domain you no longer get back an error, you
get back a record that points to Verisign.
$ whois dnsisbroken.com
I can't even begin to explain all the ways this is a bad idea.
No match for "DNSISBROKEN.COM". $ dig dnsisbroken.com ;; ANSWER SECTION: dnsisbroken.com. 873 IN A 64.94.110.11
A few weeks ago while at the
Alemany Farmer's
Market I bought a bottle of olive oil. Nash's Olive Oil, made in
small batches from Mission olives. Expensive and worth every penny,
the flavour is fantastic. Forget the fifteen kinds of "extra virgin"
olive oil at your supermarket; buy from a small producer.
Matt
pointed me to
Kaillera, a networked
version of MAME.
Play
classic arcade games online!
Alas, the public servers are full of people playing dumb punch/kick
games. Can't wait to try this out.
Like all cool software that seems vaguely illicit, Kaillera has some association with Nullsoft. The download is hosted there and the Kaillera author credits Justin Frankel for the net code.
Tron, the new computer game, has SecuROM 4.84.84.0002 copy
protection. And apparently it
deliberately
blocks Alcohol 120%, so I can't run the software I bought
without the stupid disc in the drive.
I'm a big fan of
Alcohol 120%,
it's really nice being able to put CDs away and not have to swap
them in and out. This latest move is only temporary of course; the
Alcohol guys say they'll have a patch soon.
Thanks to the wonders of
MAME I played
one of my favourite obscure arcade games,
Off
the Wall. It's a 1991 Atari title that's highly pleasing with
impressionist graphics, clever gameplay, and fantastic music produced
on the YM2151
FM synthesis chip. I made a small sample of the music; listen to
the Ogg.
MAME is an important contribution to video game history. Gameplay was
so great back in the day!
You can do a lot with 336x240 graphics and
a 7.16MHz 68000.
I took me 86 quarters and a couple of hours to get to wave 101. The game doesn't really change much after wave 60. If only I had two analog dial controllers, it's a really fun two player game.
Creative's sound drivers have a very useful feature - in addition to
recording from microphone or aux-in you can record
"What U Hear"
and capture whatever is playing through your
sound card. Combine this with Creative WaveStudio and an MP3 or Ogg
encoder and you can record anything you're able to hear on your PC.
This is much easier than the contortions I went through trying to record a RealAudio stream via Total Recorder. Great for recording game soundtracks. And it's a simple solution for bypassing whatever consumer-hostile DRM crap the rest of your computer tries to foist on you.
OggdropXPd is
good software. Simple encoder for Ogg Vorbis, the audio
format. Just set the
encoding options, drop a .wav file on it, out comes a
.ogg.
This is my first time fooling with Ogg Vorbis. I'm impressed, particularly it's handling of very low bitrates. I was able to make an Ogg half the size of the smallest listenable MP3. Useful for bandwidth-starved blogs.
I read somewhere that you can read English even if the letters in each
word are mixed up as long as the first and last
letters are in the correct position.
Try it!
Read my
scrambled blog. Sample:
I raed swreemohe that you can raed Eignlsh eevn if the ltetres in each
word are mexid up as long as the frsit and last lertets are in the
crrcoet pooisitn. Try it! Raed my smrblaced blog.
My blog software,
Blosxom, is so hackable that it
is straightforward to add a plugin to do this. Plugins even chain
nicely, like this scrambled search for Perl.
The code is quite a hack, using Perl Inline to let me write the actual text processing in Python like Rael's demo. There is one neat trick: Inline->bind() lets me defer the import of Python until it's actually needed, meaning there's no efficiency cost if the Python code isn't invoked.
Update: thanks to Misha for fixing my
mistake and pointing me to
jwz's
blog entry.
Finding the length of an array must be an unusual thing for Perl
programs to do,
because Perl doesn't have an operator for it. It does
have the evil $#:
You may find the length of
array @days by evaluating $#days, as in csh. However, this
isn't the
length of the array; it's the subscript of the last element,
which is a
different value since there is ordinarily a 0th element.
Huh? What does this mean? And is Perl really modelled after csh?
Let's try to do something simple, see how
many arguments were passed to our program:
#!/usr/bin/perl -w
Now let's run it...
print "\$\#ARGV is $#ARGV\n";
/tmp/argv.pl
Huh? -1? This must have been confusing to others too, because it's
documented again in the docs for @ARGV
$#ARGV is -1 /tmp/argv.pl two arguments $#ARGV is 1
$#ARGV is generally the number of arguments
minus one, because $ARGV[0] is the first argument, not
the program's command name itself.
I realize the simple rule is 'the length of @array
is $#array+1', but how dumb is that?
Update:
a friend pointed out you can get length by evaluating
@array in scalar context. Contexts are one of those horrible
features in Perl that make me have to relearn the language every time
I write a program. There's more than one way to do it but
none of them are simple.
In memory of
Johnny
Cash's death today, be sure to watch Mark Romanek's
astonishing
video of Cash singing Nine Inch Nail's "Hurt"
(direct
download, RealMedia
stream).
Mark Romanek is the director of the brilliant NIN video
Closer (download)
and the movie
One Hour Photo.
The performance by Cash is heartbreaking.
The Romanek links may break until the crowd dies down.
It's more efficient to gzip base16 encoded data
than to gzip base64 data. /usr/dict/words
is 900k of English text. If I base64 encode it and then gzip it (as you might
do when sending the data via SOAP and a compressed transport), the
result is 385k. But if I base16 encode it and then gzip it
the result is smaller - 296k - even though base16 is less efficient..
Why? Base64 encoding breaks up the pattern so the compressor doesn't work as well. Base16 preserves byte boundaries. It's even more efficient to gzip, then base64 encode, then gzip. Summary: data 909k gzip(data) 248k gzip(base16(data)) 296k base16 is smaller gzip(base64(data)) 385k gzip(base16(gzip(data))) 280k gzip(base64(gzip(data))) 250k base64 is smaller
Fernanda Viegas,
an old Media Lab colleague, has nicely polished her work on
History Flow.
It's a beautiful
time-based visualization of Wiki editing. The images make sense,
this graph for the page
Iraq, for instance.
As seen on Clay Shirky's
Corante
Mark did an interesting experiment with a
WSDL
for a GET-based web service, reprising a similar thing
Paul did last
year for the Google Web APIs.
Unfortunately, GET-based WSDL doesn't seem to work well. I can't make Mark's WSDL work with either Java's Apache Axis 1.1 or Perl's SOAP::Lite 0.55. Neither seem to find any methods to invoke. There's also an issue of getting .NET to do authentication; that may be solvable. I'm seeing the same problem with Paul's Google wrapper. WSDL is one of those squishy specs where stuff may be 'correct' but it doesn't work with any of the tools. I suspect the issue here is since no one is using the GET binding, it just doesn't work in many places. Frustrating situation.
The blog world is truly astonishing - check out
Salam Pax's post
about his house being raided by US soldiers.
My father was asking them what they were looking so that he can help
but as usual since you are an Iraqi addressing an American is no use
since he doesn't even acknowledge you as a human being standing in
front of him.
Foreign occupation forces have generally acted without
visibility. Thanks to the Internet I can now see what my country is
doing from the victim's perspective.
37
other blogs noted this, too.
My friend Rob Poor is
#15 in Yahoo's most popular with a
story
on his mesh routing company, Ember.
The idea is to build motes - tiny computers that broadcast a radio
signal - that are cheap enough to deploy everywhere but just smart
enough to "self-organize" into powerful networks that can sense and
convey information like whether milk is spoiled or a bookshelf
overloaded.
I did some research
back in 1998 on this topic. I was very impressed by Rob's PhD work and
am excited to see how far he's taken it.
There's a good overview article from Rob (along with some Slashdot kibbitzing). Also a 1997 patent filing. I couldn't find Rob's PhD thesis online, you'll have to look it up in the MIT library. His master's has been taken offline but archive.org's Wayback Machine still has it.
Last week while having a terrific dinner
at Biba in Sacramento,
the waitress surprised me with a glass of
Torcolato, an
Italian dessert wine. It's a wine proprietary to the Maculan winery,
2000 cases a year.
Torcolato is made in the recioto style - the grapes are allowed to dry on the vine, usually picking up some botrytis rot. The result is a sweet wine not unlike a Trockenbeerenauslese. My glass had a lovely balance between sweet and acid, without the heavy cloying botryized taste that Sauternes can have. Very nice. I know a fair amount about wine; it's nice to be surprised with something new.
Last year while having an extravagant dinner at the
Sooke Harbour House
on Vancouver Island, the waitress surprised me with a glass of
Pineau des
Charentes, a French
apéritif.
It's made in Cognac, on the western side of France.
Pineau des Charentes is not wine. The grapes aren't fermented, instead year-old cognac is added to fresh grape juice before the juice has a chance to ferment. The result is a sweet drink, very pleasant, and honesty if I hadn't been told I'd have assumed it was a dessert wine. It's usually had before dinner, but it's heavy enough I prefer it after. It's not terribly expensive. I thought I knew a fair bit about wine, and we gave the nice lady in Sooke a hard time about wine selections. I think she had fun fooling me with something new.
I've been using mod_gzip on
my weblog server to try to save bandwidth. Today I crunched some
numbers and learned that gzip encoding only works for about one third of the web
requests for HTML that I get. When it does work, it compresses to
about 30% of the original size.
Turns out that while most user browsers support gzip encoding, most spiders don't. GoogleGuy says this may be because servers don't reliably serve gzip. I could believe that given the contortions I had to go through. RSS aggregators are mostly good about supporting gzip. They are good about handling 304 Not Modified, too. Good thing; RSS polling is such a huge source of traffic.
69% of Americans think that there's a likely connection between the 9/11
attacks and Saddam Hussein, despite there being no evidence of a link.
What's interesting is
how the Bush Administration
exploits
this false link
without ever exactly endorsing it.
Bush ... did not say directly that Hussein was culpable
in the Sept. 11 attacks. But he frequently juxtaposed Iraq and al
Qaeda in ways that hinted at a link.
It's a postmodern update on the Big Lie - you don't ever have to
actually tell the lie, you just have to hint around it and everyone
believes it.
"You couldn't distinguish between al Qaeda and Saddam Hussein," said Democratic tactician Donna Brazile. "Every member of the administration did the drumbeat. My mother said if you repeat a lie long enough, it becomes a gospel truth. This one became a gospel hit." In follow-up interviews, poll respondents were generally unsure why they believed Hussein was behind the Sept. 11, 2001, attacks, often describing it as an instinct that came from news reports and their long-standing views of Hussein.
Skype
is Internet telephony
developed by some of the KaZaA originators.
It launched
with a lot of fanfare a couple of weeks ago.
The
advantages they claim
are NAT traversal, high quality, and encryption.
I just tried it out with Scott and was impressed. Installs with no trouble and no scumware. Looks like an instant messenger app. The voice connection to Scott just worked. The sound quality was great even with our crummy desktop microphones. It was only half duplex, but that may just have been one of our sound card setups. The network details are good too. Despite us both being behind NAT routers we got a direct P2P link going at the click of a button, no configuration required. Traffic was a steady 11 kbytes/sec (just perfect for my 16kbps link). The packet trace of connection setup is a bit odd - it talks to a bunch of different IP addresses. But hey, it works!
Network address translation is the bane of P2P.
There's a black art for establishing UDP communication
between two peers behind NATs by having a third party introduce the peers
and fooling the NAT routers into routing the packets. Games have been
doing this for a few years. I see now it's
well documented
by Bryan Ford.
Bryan also has a draft RFC for NAT P2P. It's a great document and includes a technique I'd love to see developed further: opening TCP connections through NATs with a "simultaneous open":
If, however, the SYN packet arrives with
source and destination addresses and port numbers that correspond
to
a TCP session that the NAT believes is already active, then the NAT
will allow the packet to pass through.
It requires predicting TCP sequence numbers, though, so I fear it's
impractical.The only alternate I know of is UPnP Nat. There's hardware router support and a free Linux implementation.
As seen on decentralization
Fantastic story blog,
Gangstories, a guy writing about
growing up a thug in West Seattle.
At the time, Madpack was like the Navy Seals of Seattle gangs, all 200
pounds and crazy as a loon. I drove a Chevy van at the time, and we
drove to the projects to pick them up. Six Samoans sqeezed in, two of
which were notorious gangleaders at the time. To this day I don't know
why they helped us.
The writing is great and the stories are horrifying, funny, and
redemptive all at once.
As seen on A Whole
Lotta Nothing
Nice neologism
on
MetaFilter today: nontroversy. As in "Johnny Depp's
criticism
of the US being like a dumb puppy is a nontroversy".
Not many uses on the net; the earliest I could find is a reference in a June 1997 post on alt.fan.frank-zappa.
From the "they didn't have that in BSD 4.2 so I didn't know about it" department,
a handy feature in Vixie cron: the
@reboot option. It means run once at restart, an
alternative to /etc/init.d for ordinary users. Vixie cron has
other useful features:
@reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @monthly Run once a month, "0 0 1 * *". @weekly Run once a week, "0 0 * * 0". @daily Run once a day, "0 0 * * *". @hourly Run once an hour, "0 * * * *".
Handy little thing: the
one
foot power extension cord. $3 each from Cables to Go, just the
thing for the horrible plug-covering wall warts that come with
cheap consumer electronics.
Cables to Go also sells a 3-in-1 PC extension cable - keyboard, mouse, and VGA all bundled in one. Great for moving your noisy PC into a closet.
I've been wanting to write code using sound on Windows:
create samples, play them, use DirectSound to do 3d audio, etc.
But I'm lazy so I want to do this in Python.
Not easy, but I found a couple of leads on sound libraries. Audiere is nice, but its Python binding doesn't do much more than "play sample". There's a good Python binding for fmod which uses swig to generate the code. It has a lot of functions, but it's organized like a C API and some of the type mappings (such as float *) aren't complete. All this stuff is very low level.
Al Jazeera's website is back online in
English, a few months after their first attempt was shut down by
hackers and Akamai subsequentlly
abandoned
their customer.
I don't kid myself that Al Jazeera is perfect, but it's important to have alternatives to American "fair and balanced" crap that masquerades as objective.
Dear
Morton's of
Sacramento:
It's not sophisticated to have the waiter read the menu to you, it's
tedious. And it's not appetizing to bring saran-wrapped chunks of raw
beef to the table. Cook it, don't show it.
BTW, the best steakhouse in San Francisco is Alfred's. |