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.
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.
ProblemI'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.
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.
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 secondThere 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. 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.
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.comI 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 22.214.171.124
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.
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 -wNow let's run it...
print "\$\#ARGV is $#ARGV\n";
/tmp/argv.plHuh? -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 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). 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
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.
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
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.