![]()
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
Γνωθι
Σεαυτον
![]()
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. ![]()
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 ![]()
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. ![]() 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
![]()
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. ![]()
![]() 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? ![]() 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 ![]() ![]() 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. ![]()
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.
![]() 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. ![]() 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 ![]()
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.
![]()
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. ![]() 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. ![]() 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. ![]() 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 * * * *". ![]() 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. ![]() 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. ![]() BTW, the best steakhouse in San Francisco is Alfred's. |