Copyright © 2003, 2004 Gene Michael Stover. All rights reserved. Permission to copy, store, & view this document unmodified & in its entirety is granted.
Jump to the latest entries.
What am I doing here? I was going to create this file to hold random thoughts about programming, & I had some initial random thoughts to insert, but now I can't find them. More specifically, the file where I wrote them doesn't look appropriate for random thoughts. It's more a random article of thoughts on a single topic ([241]).
So here we have a file with no raison d'etre. Ah, well. I'll keep it for a while in case I remember why I made it.
Here's an idea for a way to make a hierarchical index of documents on a Web site. Haven't tried it. It's just an idea.
Normally, I guess you'd make a hierarchical index from the top down. You'd start with everything, then split it into categories. You'd put documents into those categories. If a category got too large, you'd split it.
What if you went the other way? What if you assigned keywords (categories) to each document. When you see that certain categories should be grouped together, you create another category & put them in it. I wonder if creating the index this way, from the bottom up, would be easier & lead to more useful categories.
But if you have enough categories, you might as well just use a searcher. Never mind.
The attacks on the United States's people on 11 September 2001 were absolutely, entirely, totally successful. I don't think they could have been more successful.
In what way were they successful? Because of the body count that day? Nope.
They were a total success because they have caused the United States to move so far, so quickly down the path to becoming exactly the kind of restricted, regulated, hypocritical police state that it has been so proud that it will never be.
The United States government has already passed laws to restrict privacy & freedom from searches & seizures. They have passed laws to intensify ``crimes of terrorism'' & (get this) to somehow make those crimes more illegal than they would be if you just considered their outcomes. (What kind of sense does that make?)
Starting with prisoners in Guantanamo Bay & a camp in Afghanistan, the United States is denying the exact same human rights that are recognized in the Bill of Rights. How long until it does the same to its own citizens?
The United States's foreign policy is basically ``You can't have too many enemies''. That will only increase acts of terrorism & also reduce allies who will help the US after such attacks in the future. The United States has demonstrated that it does not respect the rights of sovereign nations; it is willing to force its own economics & way of life on other peoples. As a result of its own foreign policy, the United States is becoming exactly the same kind of international bully it claims to protect itself against.
The attacks of 9/11 have been at least as successful as those members of al Queada could have hoped because they exposed the American people as the unreasoning cowards they are. The United States government has become an isolationist war-maker that restricts the rights of its own people with the hypocritical goal of protecting its freedoms. Indeed, the lives of the terrorists on 9/11 could not have been martyred more effectively; I'm sure their spirits rest easy & satisfied in their afterlife. Congratulations, gentlemen. I'll miss the red, white, & blue.
There is an elegant (informative, to-the-point, & short) article in April 2003 Communications of the ACM called ``A skeptical View of DRM and Fair Use'', by Edward W. Felten.
It points out that
For a DRM system to work, it must understand the context of copying. How can we expect a program to do that? How can a program estimate the ultimate social effect of an act of copying? Does the program need to run an entire economic forecast?
Since copyright law was to evolve via case-by-case human decisions, do we want to freeze copyright law in its exact form & allow automatons to decide what we can & can't do. Here's a mental exercise: Extrapolate the philosophical implications that has to self-determination. Think of The Forbin Project1.1, & then shudder.
The article is ``Digital rights management and fair use by design: A skeptical view of DRM and fair use'', by Edward W. Felten, Communications of the ACM April 2003, Volume 46 Issue 4. The tag line is ``Don't expect DRM to ever be smart enough to distinguish fair use from copyright infringement''. It's online at http://delivery.acm.org/10.1145/650000/641232/p56-felten.html, but I think you need to be a member of the ACM to read it.
An old news article about the author, Edward W. Felten, is at http://www.wired.com/news/politics/0,1283,41183,00.html.
Here are some more thoughts about Digital Restrictions Manglement.
From what I've read of DRM implementations, many (most? all?) of them fail to recognize that copyright terms expire. So what happens in 200 years, when the author has been dead for more than 75 years, & someone tries to access the content? Maybe this point is moot because (a) file formats will have changed so much that nobody 200 years from now will be able to access anything other than our plain text & LATEX files, (b) someone will have cracked the copy-protection system by then, anyway, (c) you should be so lucky that people still want to read what you write 75 years after your death, & (d) the U.S. Congress will not allow copyright to expire ever again because it would be the death of Disney.
Thinking about my dig at Disney & copyright extension in the previous sentence, for the moment, put all the ethical, ``Big Brother'' problems of DRM out of your mind & consider what would happen in the long run if all DRM systems implemented the concept of copyright expiry.
The simplest way to implement it would be to hard-code an expiry date into each copyright. (We can be pretty sure that the draconian overlords - I mean, ``content providers'' - would implement a simple scheme because one (of the vast number) of the problems with the DRM systems they propose is that they use technology so simple as to be inadequate & then try to make it adequate with extra legislation. So they would probably choose a simple copyright expiry system.
So what would happen if all the DRM systems in the world assumed copyright ended, say, 100 years after it started. Copyright actually ends 75 years after the author dies, thanks to Disney, but it's tough to know when an author will die. An alternative would be to approximate when he dies, & that might be about 25 years after the he created the copyrighted work, so the copyright would expire 100 years after it was created.1.2 So all the devices in the world, every VCR, DVD player, TV, tape deck, CD/DVD-ROM drive, PDA, wristwatch, & toaster would have a DRM chip embedded that assumed a copyright was null & void 100 years after its time stamp. Imagine a world that contained millions of such devices, each with this assumption about when copyright expires.
Then imagine Disney approaching Congress to petition to have copyright extended yet again.
Maybe there would be one - just one - benefit to DRM.
Actually, I suspect the draconian content overlords - there I go again, I mean ``content providers'', short-sighted as they are, would not implement copyright expiry in the first place. As far as they are concerned, there is no good other than to preserve & protect their own corporate rights.
Also in the April 2003 issue of Communications of the ACM is ``Computation Beyond Turing Machines'', by Peter Wagner & Dina Goldin. I thought I knew a lot about Turing, but the brief history of Turing machines in this article taught me that Turing himself wasn't demonstrating a universal computing machine. Instead, he was proving that there are things algorithms can't decide. When we think of Turing machines as being able to compute anything that's computable, we have it backwards. Woah!
Then the article goes into some stuff that's even more interesting.
I read an interesting entry on a blog about/for game developers. (The entry is http://www.costik.com/weblog/2003_03_01_blogchive.html#90490621 if you are interested, though reading it is not necessary for what I'm about to say.)
Some of the main points of that blog article are
Okay, fine. All makes complete & total sense to me. I accept all of those premises, including the one about how the risky, lower-budget games are the ones which are most fun to make & which have the highest rewards (when they become hits, that is). No arguments or questions from me.
But then that article, & some others I have read lately, bemoan the state of the independent game developer. He doesn't have the budget to compete with the big studios. I'm not so sure I agree with that completely.
First, if someone is a game developer, that's what he does, & he hates his job because he's always producing the same-old, same-old sequels, & he wants to make a living now by becoming an independent game developer, he's got my sympathy, but what about the guy who has a day job (maybe programming in a less creative capacity - like the wireless phone networks!), & his main motivation to developing games is that he likes to do it? That guy is in a different situation. It's kind of interesting.
Is it possible for that guy (maybe with a group of his similarly-driven friends) to publish? The articles imply it's not because he's totally locked out of the industry, but I'm not so sure. I mean, what does it take to publish a program? It could cost zero if you open source it, but let's say that he wants to try to recover his costs.
Could he form a small company & sell his game as a downloadable from a Web site? There are licensing schemes that can be used to reduce (though not totally prevent) piracy. Let's say they prevent ``casual'' piracy. I presume the costs for this method of distribution are, oh, a few thousand to start plus less than a thousand a year to maintain (business taxes, communications bill, credit card processing software, license, or agreement).
The distribution techniques used by shareware developers in an older age might still be useful today. You could advertise online (advertise - see below). People could order your software, & you could send them a CD & a printed manual. There used to be entire printed catalogues of such software. Of course, getting into those catalogues costs money, but not millions. There are grades of cost, in fact, from dirt cheap to expensive.
I suppose you might buy booth space at a convention & sell your software out of a booth. Of course, you can't afford a booth at CES or E3, but what about a smaller, less hyped convention that is more focused on attendees who might be your customers? Booth space is probably more expensive than the other methods I've mentioned, but it could be a hell of a lot of fun (& a premise is that the garage game developers in question are doing it mostly because they want to make games; they have day-jobs; the question is ``What methods of distribution could they afford, & can they sell something, maybe even recover their costs?'')
Then there is advertising. Distribution is cheap these days. Hell, once you have that Web site setup, it's probably more expensive to renew your business license than to pay your communications bill. The act of copying the software to the customer is trivially inexpensive these days. It's everything else that costs more, & it's probably advertising that costs the most. Advertising is what makes or breaks a game (or any product), I'm sure.
So what kind of advertising could the garage band game developers afford? They sure as hell couldn't afford the kind of advertising that goes behind a Final Fantasy or a game that sprung from a big-budget movie. (When you consider that a movie can be the advertising for a game, & that ``big-budget'', when applied to movies, is easily over 100 million USD, a garage band of developers absolutely cannot compete.)
But what could they afford? And how effective could it be?
From my other thoughts in this article, I'm convined the garage guys could produce & distribute their software, but I have no idea what kind of sales they could generate from the advertising they could afford. Word of mouth works for really good games, but you have to make some initial sales first; those initial sales especially depend on advertising. At least, that's what I'm guessing. And I don't know what kind of advertising they could afford.
For what it's worth, I know many people who want to be income-generating musicians (not MTV stars, but who want to at least recover their costs by being musicians). Most live hand-to-mouth with low-paying day jobs while they try to make money as musicians now, but two or three are software engineers. Their attitude has always been that they'll get paid well making software, play their instruments whenever they can (which is almost any time they aren't working), save wisely, & someday make their own album.
I've been reading about virtual worlds lately, partly because I'm writing an artificial life game & partly because ...I don't know, just because virtual worlds happen to be on my mind. Maybe .hack has something to do with it. Anyway, I've been reading about virtual worlds & thinking about multi-participant virtual worlds.
A multi-participant virtual world, while I'm writing this bit today at least, is effectively synonymous with ``multiplayer online game'', but it might include not-quite-games, like There.com & any other forthcoming online places to hang-out. Maybe a more precise term than multi-participant virtual world would be ``persistent, multi-participant virtual environment''. Whatever. You know what I mean, or you don't.
Currently, nearly every multi-player virtual world is a pay-to-play online game. Examples are Everquest, Ultima Online, Asheron's Call, The Sims Online, My Street Online, & lots & lots of others.
One common thread between those currently existing online worlds is that each is owned & operated by a single entity (a corporation). Though the players can have a voice in some of the workings of the world if they make enough fuss about it or vote with their dollars, the worlds were created by someone other than the players. The players aren't programmers.
But anyone who has written a simulation, or a game with a sufficiently complex world inside it, or a program to solve a physics problem in calculus knows that what's even more fun than playing a game in a virtual world is creating your own world.
What's more, an online article I've been reading about real-world law & how it will interact with virtual worlds has me convinced that there will be significant complaints from online game customers about things that happen in online games. They might complain about policies or that their character died unfairly or that some other players are monopolizing the best hunting grounds or pissing in the virtual Jacuzzi, & a lot of rational people might reasonably conclude that the complainers are just complaining, but they'll still complain. Some of those complaints will find their way to court, & some of those court decisions will go against the players, & some of those players will leave those virtual worlds.
So some people won't like the current crop of virtual worlds, & some people will know that it's more fun to roll your own. What this means is that, sooner or later, people will be running their own virtual worlds. There will be free software2.1 for creating & running your own virtual worlds. The programming challenges to virtual world construction kits aren't much more difficult than creating a modern game. Hell, many modern games are created with tools which probably contain the functionality that a virtual world construction kit will need. If you melded the toolkit from a game company together & made it easier to use, you'd have a virtual world construction kit for one type of virtual world.
This will be cool. I'll be running a virtual world. Hopefully, I will have contributed to a construction kit, but what's the point of a virtual world if you are the only person who visits it?2.2
So people will want other people to visit their virtual worlds, but if everyone is busy creating & running their own virtual worlds, why would they want to visit someone else's (other than to steal their good ideas)? So you know what will happen? People will network their virtual worlds, creating larger worlds. You'll see peer-to-peer virtual worlds.
Hopefully, there will be many types so that you can create the kind you want. By ``type'', I don't mean hack-&-slash vs. online hang-out. Any large virtual world can accommodate both of those, plus many of the variations in between, at the same time. I mean the rules of the rules of the virtual world. For example, in some virtual worlds, the physics will be constant throughout, but in others, maybe the physics will change from one server to another depending on what the whim of the world-designer running that server (or peer, I guess). Different types of worlds might have different types of actions. Maybe in some, avatars can kill avatars, but in others, avatars are immortal. There are billions & billions of variations on the virtual world theme.
People will traverse the servers in a virtual world that's built on a peer-to-peer network with virtual world client programs. Maybe they'll be plug-ins to our existing browsers, or maybe there will be a new crop of Virtual World Web browsers which will repeat the World Wide Web browser wars of the mid-1990s.
Which finally leads me to virtual world markup language, the title of this bit. The clients will need to understand the data the servers send, & the servers will need to communicate with each other. So there will be virtual world markup languages. There will probably be some standards, but I hope that each network of servers will have the freedom (& ingenuity) to experiment.
I had a couple of friends who were interested in a Virtual Reality Markup Language years ago (must have been about 1993). I remember that they were frustrated because enthusiasm in VRML waned, & VRML followed. I thought they had been excited about nothing. Now I see they & others like them were fifteen or twenty years ahead of their time.
Speaking of people & ideas that have been ahead of their time, the enthusiast of multiplayer online games might have some fun by looking into Multi-User Dungeons (MUDs). They have a long & ancient history. They never were very popular outside of the techie crowd because they weren't graphical. When graphical games went online & became popular, they effectively closed the circle. MUDs have become popular, but because graphical games caught up with them, not because the MUDs turned graphical.
I heard today that Matrix Reloaded has been banned in Egypt for religious reasons.
Maybe item number 4 would be ``I'm surprised that Hollywood can still make a movie that moves people enough to ban it in some places & write philosophical essays about it in other places''.
I had a dream last night about how to write a Multi-User Dungeon (MUD) with Lisp. Writing a MUD in Lisp might be fun. Here are the ideas I dreamt. I've never written a MUD, & I use them infrequently these days. I'm out of practice & don't have MUD on my mind. I haven't encountered, considered, & solved the classic MUD design problems that I'm sure exist & for which solutions are obvious to anyone who has. So if you see naïvete in some of my ideas, like class hierarchies, ignore them. The class hierarchies aren't part of my big idea, anyway; they are just to help explain my big idea.
To write a MUD in Lisp, you might start by defining the protocol for all objects within the MUD. Maybe it would look like this:
(defgeneric location (thing) (:documentation "Return the room that THING occupies now. SETFable.")) (defgeneric look (thing looker) (:documentation "Return the textual description of THING when LOOKER looks at it. The description is a string.")) (defgeneric move (thing direction) (:documentation "THING tries to move in DIRECTION, which should be one of the symbols NORTH, EAST, SOUTH, WEST, or the directions between those (NORTHEAST, ... NORTHWEST).")) (defgeneric take (thing taker) (:documentation "TAKER tries to pick-up THING. Depending on what is appropriate when something of TAKER's type picks-up something of THING's type, THING might be added to TAKER's inventory, or it might bite TAKER, or TAKER might be sent to hell, or maybe nothing happens."))
That list of generics is incomplete; you'd want more, or maybe I'm totally off & you'd use different messages altogether. The actual messages aren't my point.
So then you might define & implement your classes. Maybe some of them would look like this:
(defclass thing ()
((mass :documentation "Mass, in grams")
(location
:documentation "The room (a kind of thing) this Thing
occupies now.")
(inventory
:documentation "List of Things this Thing holds"
:initform ())
(owner :documentation "Player that owns this Thing.")
(name :documentation "Name of this Thing."
:type string)))
(defclass room (thing)
...)
(defclass player (thing)
...)
(defclass potatoe (thing)
...)
You could define all sorts of classes & implement the methods for them. You know the drill.
Here's where my idea kicks-in. Once you've implemented those classes & methods & functions, you have a MUD! Yeah, really, you'd already have a MUD. It'd be a stripped-down MUD with no natural language interface, so to use it, you'd have to type Lisp expressions on the Lisp command line. Also, your proto-MUD wouldn't know about networking & wouldn't have session management, so if you had multiple players, they'd have to stand around a terminal & take turns typing their commands (as Lisp expressions) on the same keyboard. Obviously, it wouldn't be a real MUD, but as far as the environment within the MUD world goes, it would be a working MUD, & that's what a MUD is all about. Sessions & networking are technical details.
That's the big idea. If you wrote your MUD in Lisp, you'd have a functional, testable, virtual world in relatively short order. Relative to a language that doesn't have a read-eval-print loop, I mean. I presume the same benefits would apply to any interactive language.
That was my big idea, but there are a few more details
To convert your proto-MUD into a real MUD, you'd need to add session management & network connections.
One way to add sessions & networking would be to create an event loop in your Lisp program. It might have an event queue, & it would call your Lisp's (non-portable, non-standard) equivalent of Unix's select system call to collect the next command from a user. Yes, yes, yes, you probably need to buffer data from each session until you've received an entire command, & you need to validate the commands, & if you have pending events, you need to supply an appropriately calculated timeout value to lisp-select, but since when is this not part of managing multiple connections on a service? Once you had a whole command from a session, you'd parse the natural language into a Lisp expression, exactly like the Lisp expressions you could enter on the Lisp command line of your proto-MUD. Add a login step to create sessions, & you have a MUD.
Another way to add sessions & networking would be to do them in a front-end program, possibly written in C. You might want to do this if your Lisp didn't have a function that worked like Unix's select. You could write the front-end in a language that had networking support. (C would be perfect.) That language would collect & buffer input from each session until it had a complete command from some session. Then it would send the entire command in a as a string in a function call to the Lisp command line in your proto-MUD. The function call would contain the session identifier (or maybe the player identifier, if you wanted to handle security in the front-end program). For example, if I was logged into your MUD, & your front-end translated sessions to users, & I typed ``kill orc with sword'', the front-end might send ``(mud-command "gene" "kill orc with sword")'' to the Lisp proto-MUD. Of course, the front-end would collect output from the Lisp proto-MUD & route it to the appropriate session.
Another nice feature to add would be a Lisp interface. It could be an option. With it, the user would send Lisp expressions instead of natural language. (For security, you'd want to examine the expressions & filter those which were not benign, or you'd want to evaluate them in a sandbox.) Also in ``Lisp interface'' mode, the MUD would send results as Lisp expressions. The idea behind this would be to make it easier to write intelligent clients.2.3
Maybe I'll be writing a MUD in Lisp some time soon. It'll have to wait for me to finish the zillions & zillions of other things I'm supposed to be doing, though.
I've heard that, during the age of exploration2.4, artists would paint fanciful creatures, such as humans with alligator heads, & I'm sure they painted plenty of dragons. When people speculated whether such creatures could exist, one argument was that, if the human mind could imagine it, it must exist somewhere.
I don't think any of those explorers found any dragons or humans with alligator heads, but what about exploring virtual worlds? They are interactive, virtual realities embodied in computer code & data that has been designed to represent someone's imagination. Do virtual worlds make it true that anything in the human imagination could exist? And with enough virtual worlds, where anyone can create one, would it be true that anything imagined does exist?
Is the most popular singer in Middle Earth named Elvish Presley?
Here's an e-mail I wrote to some friends over a month ago.
From: Gene Michael Stover To: a whole bunch of friends Date: Fri, 16 May 2003 20:38:26 +0000 Subject: man vs machine
I went to the kitchen to buy Wonka Oompaloompas from the vending machine. Of course, my Oompas get stuck in the machine, so I buy a second one in the hopes that I'll get both of them.
First one falls, second one sticks.
Frustrated, I start beating the machine. I'm really wailing on it, & other people come to see what's up. They see that a man is fighting for his Oompas, & they cheer me on.
Machine wins. So I go get a cup of coffee.
On my way out, I stop at the machine once more & give it a whack in disgust. I drop my coffe, & the second Oompas plop into the tray.
I'm calling it a draw.
gene
Mia, a character in the .hack video game, looks like a bunny, but some other characters say she's a cat. In .hack//SIGN, the television series, there is a character which also looks like a bunny, but other characters say it's a cat.
In Boogiepop Phantom, there are some short scenes that show dead rabbits, but in at least one episode, someone says they are cats.
I know I have seen other images in anime & Japanese video games that look like bunnies but that are supposed to be cats. Is it a cultural difference in the perception of bunnies & cats?2.5 Are the Japanese artists using an intentionally stylized confusion of cats & bunnies?
symmetry: (n) The difference between a Hershey's Kiss & a Hershey's Turd.
The annual ICFP programming contest begins today (if you're west of Sweden). Read about it at http://www.dtek.chalmers.se/groups/icfpcontest/index.html.
Finally, the press is starting to stick its finger through the gaping holes in the stories & claims ... No, let's be frank about this. They lied. The press is finally talking about it.
I'm surprised there haven't been more sound-bites replayed to demonstrate the lies of the United States. This stuff is perfect sound bite material.
I can cut through the months of discussion which will hopefully arise from this:
Q: Where are the weapons of mass desctruction?
A: There never were any. The government of the United States wanted people to believe there were weapons so they wouldn't complain too much when the United States invaded another country.
The United States: Unwonted War-making peace-keeper of the world. Hypocritical freedom-preserving big brother.
Of course, the United States government is still trying to maintain the illusion that they are protecting freedoms rather than spreading destruction2.6, but it looks like they are facing some doubters even inside the U.S. government itself. Maybe there's hope, though I can't imagine that reality is fair enough that the war-making liars will pay. At worst, they'll retire as rich men.
Ugh.
I presume everyone has heard of the National Do Not Call Registry.
If you haven't, it's a newly opened place where you can place yourself on an official list of people who do not want to receive phone calls from telemarketers. Your information is placed on the list a few months after you enter it, & it stays there for some period, five years if I remember correctly.
Last week, a woman on the radio said that AIDS is the ``greatest plague in human history'', having killed about 70 million people.
The Bubonic Plague which killed people in Renaissance Europe beginning in 1348, killed perhaps one third to one half of Europe's population, most of the death toll occurring in the first two years of that plague.
I couldn't find an estimate of Europe's population at the time of the Bubonic Plague, but dim memory from some history classes in college says it was about one billion. One-third of one billion is about 333 million.
So while AIDS has killed about 70 million people in - what? - twenty years, for a killing rate of 3.5 million/year, the Bubonic Play may have killed 333 million in two years, for a killing rate of 166 million/year.
Which disease killed faster? Which disease is the worst plague in human history?
I really wish people would do the math once in a while. Even a rough estimate can get you a lot of useful place, & it's surely better than a gut feeling.
Why do people feel the need to make their trajedy the worst in human history? Isn't it horrible enough for trajedy to happen at all?
There is an excellent article online about law & virtual worlds. It is ``The Laws of the Virtual Worlds'', by Lastowka & Hunter, at http://papers.ssrn.com/sol3/papers.cfm?abstract_id=402860.3.1It's actually a PDF that you can download from that page. It's an excellent article, highly recommended, which has inspired in me a lot of thoughts about virtual worlds. Here's one of them.
The article is about real world law & how it applies to virtual worlds. (From my own experiences, from noticing what's happening with online games, & from an article I read in Wired in 2002 & whose title I can't remember, I knew that virtual worlds & their economies were not non-existent, but the article has impressed me with just how significant they are. In a sense, those economies are real (& the article explains that sense).
The article reminded me of a conversation I had with Jay months ago in which we speculated about whether or not it could be possible to make a living by playing an online game full-time & cashing-in with real-world money. For example, someone might pay you to play with their character (on low-risk, varmit-killing missions) to level-up their characters while they were at work, so when they played in the evenings or once a week, they'd have a high-level character without having to spend all that time killing the varmits.
The article has made me wonder whether that fanciful idea is actually practical.
According to the article, it's possible. In fact, it's been done.
On pages 49 & 50, the article talks about how, because it is common to sell virtual-world goods on eBay, you can calculate the conversation rate between real-world monies & virtual-world monies. It's been done, by more than one economist. (I knew one guy had done it in an article in Wired, & I thought he was some kind of economic quack - even though I knew that virtual worlds weren't completely unreal.) The exchange rates change frequently, but they are inarguably determinable, & they are common enough that the virtual worlds effectively have gross domestic products. On page 50 or 51, the article says that some individuals in the world make six-figure USD3.2 incomes by selling virtual-world items on eBay in the real world.
Here's where it gets really fascinating, as in ``Woah, that's totally fascinating'': It turns out that that the hourly rate of earnings in one virtual world (Everquest, I think it said, but whatever) is 3.42 USD, which is significantly higher than the cost of living in some real-world, third-world companies. So a company named Blacksnow formed in Mexico. It paid unskilled laborers to play the game all day, & it sold their virtual loot to real-world players of the game. The online game company axed Blacksnow, but Blacksnow sued, claiming that they were playing the game by the rules (just killing monsters, basically), so what's the problem?
Sadly, the Blacksnow case never reached court because Blacksnow was disolved due to other financial problems which were not detailed in the article.
At http://guru.theotaku.com/gfriend/gfriend.shtml, you can take a quiz to learn which anime girl would be your best match. I have dibs on Lain.

That article I love so much ([11]), directed me to ``My Dinner with Catharine MacKinnan & Other Hazards of Theorizing Virtual Rape''. I haven't read it yet, but it's at the top of my list.
An unrelated source (someone who read something I wrote here), recommends http://www.ccs.neu.edu/home/dougo/thesis/000824/proposal/. I haven't read it yet, but it's supposed to be a description of an implementation of a MUD in Lisp, or maybe it is a MUD written in Lisp. It's second on my reading list.
There was a ``hacking'' contest on Monday, 7 July 2003, in which the goal was to deface web sites. (I'll forgo my usual lecture about how defacing web sites, breaking into accounts, & stealing other computing resources is not hacking.)
Zone-H is a website that monitors cyber attacks & tallied the web sites that were affected. One article (``Hackers contest makes a mess of Internet'', in Sify News) quotes Zone-H's spokesman as saying that the day of the contest was ``the messiest day in the whole Internet history''. This is the messiest day in Internet history? Hell, I didn't see even one defaced website. I didn't notice any problems with Net performance at all.
Let's do some numbers.
Zone-H
counted nearly 600 defaced web sites & points out that many
sysops probably did not report their sites vandalized. Let's assume
that, say,
of sysops knew they could report to
Zone-H & that
of those sysops did so. Simple
extrapolation suggests that 2,400 web sites were defaced.
According to ``The Spread of the Sapphire/Slammer Worm'', Slammer infected at least 75,000 hosts. I remember that day because my Internet connection at home was so slow as to be effectively unusable, & the connection at work was stopped dead.
If the website defacing contest infected 2,400 sites, & Slammer infected 75,000 sites & noticeably affected the Internet's operation, which is more likely the messiest day in the Internet's history?
What happens if we assume that
of sysops knew
they could report to Zone-H & only
of those
did so? Then the website defacing contest affected as many
as 60,000 web sites, but slammer still inffected at least
75,000 & clogged the Internet for hours.
``The messiest day in Internet history''? Yeah sure whatever. I've said it before, & I'll say it again: I wish people would tdo some numbers before making claims.
On 22 June, I wrote how I have noticed the confusion of rabbits & cats in Japanese anime & video games. Today, I found the answer. The answer is that the trend originated with Ryo-Oh-Ki from Tenchi Muyo. There is a discussion titled ``Cabbits in Japanese anime''. There are other pages in that article, which can be reached from the URL I've given, & they discuss the common, multi-cultural folklore of cat/rabbit confusion.
A student's doctoral dissertation about the connectedness of the United States' communication network has some people very nervous. See ``Dissertation Could Be Security Threat'', by Laura Blumenfeld.
I have two observations:
One of the methods of censorship that might happen, according to the article, is through funding. Someone might give Gorman a grant along with the obligation that he publish to a select, limited audience. So it's not like anyone is trying to slap a gag order on him & confiscate his thesis. It's voluntary censorship, with money as the carrot, & that's okay.
In 1993, Julian Dibbell wrote ``A Rape in Cyberspace''. In 1996, he talked about it at a conference at MIT. That speech is ``My Dinner With Catharine MacKinnon And Other Hazards of Theorizing Virtual Rape''. Both articles are excellent.
Though I'm a long-time inhabitant of virtual worlds, I didn't expect that speech in the virtual worlds so quickly rubs against social propriety & other issues that are so easily separated from speech in the real world. Mr Dibbell also makes a good point that the issue isn't binary. It's an complex, difficult, fuzzy issue, probably with no unquestionably universal solutions. When issues of freedom of speech arise in the real world, I'm one of those people who say that freedom of speech should take precedent unless someone has a very, very, very good, unambiguously defined reason otherwise, & the consequences would be to limit freedom of speech in a very, very, very narrow way. I see now that such thinking will only make wars in cyberspace.3.3
Dibbell makes a case that though the attack was only an exchange of words, it created in observers many of the emotions that similar attacks in the real world do so the attack was real in that respect, at least. He supplies one or two reasons that an act in a virtual world is in some sense real, & I have another way of thinking that comes to a similar conclusion.
Words are an encoding of information that originate in a human mind & which have little or no effect on the real world, as observed by humanity in its day-to-day lives, until the words inspire a human mind to take action. In short, the ability for words to affect reality is purely in our minds, literally.3.4
Everything in a virtual world is made from information. In a virtual world, there is no distinction between information & reality. Information is reality, & words are information.
Notice that the penalty for rape in Lambda MOO was death. More importantly, notice that the users did not seek revenge in the real world. Action in the Lambda MOO virtual world was enough for them. Doesn't this suggest that the virtual world is a reality within its context? Otherwise, they would have sought redress in the real world.
What a coincidence. The very next article on my reading list is about how the masses may soon be asking the same questions Julian Dibbell did ten years ago. Let's hope they put some careful thought into the ramifications of any answers they choose. ``Sims Griefers Get More Publicity''
A quick introduction to programming MOO-type MUDS is ``Colin's Way Easy Intro Guide to MOO Programming'' (http://members.tripod.com/~Snowfall/Way_Easy_Guide.latest.html).
At the bottom of that page is a link to the MOOring.
One of the sites on that web ring is MOO Tapping Magazine.
You run across the most interesting old sites when you read about MUD history & programming, especially Lambda MOO. Check out ftp://ftp.parc.xerox.com/. The readme file, PARCFTP-README, tells what's there. Lots of neat-o stuff.
I was looking for Lambda Core, a database that I might need if I installed my own MOO, & the site directed me to the official Lambda MOO FTP site, ftp://ftp.lambda.moo.mud.org/pub/MOO. The latest snapshot of Lambda Core is dated 22 February 1999. It's a mere 2.2 megabytes, uncompressed. Cool. I thought it'd be much larger. Then again, I guess it's just verbs & some basic prototype objects, no geography. The geography database could be significantly larger. I'm sure it is. Lambda Core also a flat-file; no relational database required (I guess). Again cool.
``Hacker Challenge Fizzles''. is another article about last weekend's Defacer's Challenge. It has some information that the previous articles I mentioned on the topic don't. Seems that it may have been the most chaotic day Zone-H has seen, but still not nearly the worst day the Internet has seen, much less will. It's also funny that the contestants made the score keeping site effectively useless as a score-keeper (or anything else). A few groups may have done that intelligently, but most must have done it through ignorance. The power of script kiddies is the power of the unwashed ignorant masses - propelled by juvenile excitement.
More MUD-reading today. Here are some places I visited, mostly without comments from me.
The world has been witnessing the politics of how much the governments of the United States and Brittain twisted the facts to make their case to invade Iraq. Today, we learn that someone may have died about it. I'd say that turns this political issue into a scandal - & not of the frivolous ``who sleeps with whom'' sort.
And it looks like the United States and Brittain failed in their crappy attempt to kill Saddam Hussein:
Just goes to show you that no matter how you twist the truth, no matter how many people you fool, & no matter how thoroughly you convince yourself that you are doing good for humanity & not suffering from xenophobia, there is a good chance you'll still fail.
The real bummer is that most humans are sheep, or at least too busy with the difficulties of modern life, to make sufficient noise about all this. So the paranoid fools in power will remain in power.
``Blair suffers as probe into dead scientist launched, by Katherine Baldwin and Mike Peacock, Reuters.
There is no way it was suicide, unless there were signs that David Kelly was already depressed. Even if there were, isn't it just a little suspicious that he would turn up dead when he did?
It wasn't ``crass'' or otherwise irresponsible or unprofessional for the BBC to publish the claims that the British government (& that of the United States) had exaggerated claims of the danger from Iraq. They claimed that Iraq could cause mass death or destruction by deploying chemical or biological weapons at a 45 minute notice. If this wasn't an exhaggeration, I have a bridge to sell you.
Among many things in this article, the last paragraph says that President Bush's speechwriters used one set of intelligence information, ignoring others. That's fine on a literal level, but the implication is that President Bush is not responsible for what he said. A world leader isn't responsible for what he says? A world leader who can cause one country to invade another country & kill people (justly or otherwise), isn't responsible for his words? What's wrong with this picture?
As if it weren't shocking enough that the Eiffel tower is on fire, it's on fire in Paris. Imagine that.
Very informative. I still fear for my rights as the music, movie, & other parts of the entertainment industry limit them by lobbying ignorant or uncaring congressmen, but I see that the Department of Justice is just doing its job. The laws (or the bills which might become law) are the problem. If the laws were fair, the DoJ would be your friend instead of your inquisitor. (To be fair, the answers remind that the RIAA's suit against copyright-violating college students is a civil suit, not a criminal one, so the DoJ has nothing to do with it.)
Sadly, I have suspected for a while that many technical people believe that it is okay to break the law by illegally copying because they disagree with copyright law. There's an old argument for that (``civil disobedience''), but I suspect most people do it from ethical sloth rather than moral conviction. One of the questions (number 6) was evidence that this view of mine is correct. Bummer, that.
The main item of interest on that Slashdot page is a link to ``White knights fight for virtual morality // Games producers aim mature content at audiences that really are mature'', by Kevin Marron, the Globe & Mail, http://www.globeandmail.com/servlet/ArticleNews/TPStory/LAC/20030723/GAME23/TPBusiness/General.
The article offers some interesting food for thought, though the article itself is not insightful.
Especially interesting were the paragraphs about the landlord of two of the 9/11 hijackers. He was also an unwitting FBI stoolie, & the whole description of him & his relationship with an FBI agent named Butler reminded me of Spy Game. I wonder if he fears for his life now. I wonder if he was as unwitting as he appears.
I've said for years that, when ex-presidents talk, people should listen. Their chapters are already written about them in history books, they have nothing more to prove, nobody to convince, & they've seen the dirty secrets that governments tell us we should be glad they handle so we don't need to know they exist. They don't even need to pander to a political party any more. So when an ex-president gives advice, it should be weighed heavily.
I keep wondering what the ultimate effect of exporting jobs will be. After some admitedly ugly pain that I would rather not experience, won't it have the effect of an economic diffusion, raising the living cost in some countries & lowering them in others until they are close enough that the extra cost of remote workers is significant? Then companies would again prefer local workers.
If that's what would happen, then we might as well encourage out-sourcing & other ways in which jobs are exported. Painful now but easier in the long run.
But I'm not sure that's what would happen.
Of course, the next guest on the radio is a believer & says it's preposterous that aetheists are underrepresented.
``IBM Points Out SCO's GPL Software Distribution'', by Mike Angelo, Mozilla Quest, http://yro.slashdot.org/article.pl?sid=03/07/29/0049210.
``Bush Takes Responsibility for Iraq Claims'', by Mike Allen, Washington Post, http://www.washingtonpost.com/wp-dyn/articles/A2184-2003Jul30.html.
The really important part of this article wasn't about Iraq. It was about marriage:
Bush said administration lawyers are drafting a law that would define marriage as a union between a man and a woman, stopping short of endorsing the constitution ban on gay marriage that is being championed by some Republican leaders following a Supreme Court ruling that effectively decriminalized sodomy.
I may never understand the conservative, Republican, white-bread, Christian preoccupation with marriage. It's just a license & a ceremony. People who don't take the commitment seriously are married all the time, & marriage is not necessary to validate love & commitment. Why are they so fucking concerned with who is allowed to marry?
It's August already. I haven't read many online articles in days, but I guess I should write something. Hmmm... Okay, here's something:
Silent Hill 3 is released in just three more days! I can hardly wait. The two previous Silent Hills are two of my five favorite games. I purchased my copy of Silent Hill 3 before its release, in June 2002, over a year ago.
There's an interesting post on Usenet's comp.lang.lisp about the origin of Lisp's parenthesized prefix notation. Here it is:
Subject: History of parenthesized prefix notation (was: Intresting writings similar to Chaitin's?)
From: "Anton van Straaten"anton@appsolutions.com
![]()
Date: Tue, 05 Aug 2003 13:15:47 GMT
Newsgroups: comp.lang.lisp
"Tayss" wrote:
Does anyone know interesting lispish stuff similar to Gregory Chaitin's papers? His work is apparently all about finding the limits of math, continuing Gödel's and Turing's work, and one can find lisp hidden in lots of places in his work. I wonder if there's anything else in that vein. Maybe something by Quine, who as I heard invented the lisp-like prefix notation and contributed quite a bit to philosophy?
Not answering the question, but I was curious about the Quine reference and did some investigation. I can't find any info about Quine having ``invented the lisp-like prefix notation''. Prefix notation, a.k.a. Polish notation originated with Jan Lukasiewicz in the 1920's. This was a parenthesis-free notation which relied on all operators having known arity - specifically, binary. See e.g. http://www.philosophypages.com/dy/p7.htm for an example.
However, John McCarthy credits both Lukasiewicz and Quine at http://www-formal.stanford.edu/jmc/history/lisp/node3.html, as follows:
``This notation later came to be called `Cambridge Polish', because it resembled the prefix notation of Lukasiewicz, and because we noticed that Quine had also used a parenthesized prefix notation.''
So McCarthy agrees about the originator of prefix notation, but attributes the use of a *parenthesized* prefix notation to Quine. I've been unable to find any other reference to this parenthesized prefix notation, though.
In the foreword to Schonfinkel's ``On the building blocks of mathematical logic'', which was the first description of combinatory logic, Quine apparently suggested using a Polish-style prefix notation for function application, specifically to *eliminate* the need for parentheses in combinatory logic. I'm basing this on a passing reference at http://www.latrobe.edu.au/philosophy/phimvt/joy/j00rat.html : ``As yet another applicative notation, to eliminate parentheses completely, Quine in his foreword to the Schoenfinkel (1924) reprint suggested using prefix for [function] application, thus: @fx, @@gxy and so on.''
So it isn't clear when, if ever, Quine actually used a parenthesized prefix notation. I haven't exactly done a thorough search, but I'm told it doesn't appear in any of Quine's books. Does anyone know what McCarthy might be referring to?
(The history of Lisp syntax is at stake, and I'm told we shouldn't make light of syntax!)
Anton
I had a great time playing Silent Hill 3 for almost two days straight. Then it got too scary. It'd be more accurate to say it got too disturbing. So I stopped for about a day. I finished it last night. It turned out that I was just one puzzle away from the final boss.
Man, I love that game (all three of the Silent Hills). They are more frightening & disturbing than any horror movie I know ... um, except maybe for George Romero's 1986(?) remake of ``Night of the Living Dead''4.1 & maybe ``Jacob's Ladder''. Those movies might be as disturbing as Silent Hill.
The game has an advantage over a movie because it is interactive & it lasts much longer4.2. The game is more immersive. So even the rare horror movie which is of equal quality is at a disadvantage because it is short & it's not interactive.
There's a virus loose that exploits a buffer overflow in DCOM. It caught my eye because I am thinking of implementing DCOM in Lisp.
Sounds like the worm has been spreading since yesterday afternoon, but it's news to me as of 2003-Aug-12 T 23:45 GMT (today). It explains why a friend on the phone yesterday had all the alarms & phones in his office hit the fan. He runs a ``fix your computer, lady?'' style task-force company. He had said a bunch of servers were crashing & it would be a busy day. In retrospect, I'm betting his clients were hit by the worm & were phoning him for the fix, pronto. I'll bet it was a busy day; haven't heard from him since.
Have you ever seen ``Name That Tune''? A contestant will
say ``I can name that tune in 4 notes'' (or some number
other than four). I have this vision of a programmer saying
``I can write that algorithm with ... two ints & a
stack'' or ``I can implement that algorithm with
extra space'' or ``I can write that algorithm in
time.''
How would I make a game like that? Maybe programmers bid on implementation constraints without knowing the algorithm. Then they are presented with the algorithm. If a programmer can't implement it in the constraints he's set, he's disqualified. Of the programmers that do implement it within their self-imposed constraints, the one with the most efficient implementation wins.
No, that won't work because a programmer could make a costly bid, like infinite memory & infinite time. Then he'd have a decent chance of implementing any algorithm within those constraints.
Scoring could include some kind of twist so that programmer's don't set lax constraints so that they can always implement the algorithm within them. Maybe your score is the sum of your implementation's cost & your prediction's cost.
Aha: Your score is the cost of your prediction long as you can implement the algorithm within the cost of your prediction. So a ludicrously forgiving prediction is useless because, even though you have a good chance of writing an algorithm within those constraints, the score is so high that your opponent, who chose a tighter constraint, will have a lower score. (Lower scores are better because scores are costs in this game.)
``I can implement that algorithm with ... one closure & an eval.''
Here are some other, non-Xbox links I found while reading about Xbox internals.
I wake up this morning & soon learn that my main e-mail address alias isn't working because the DNS server that holds its record is offline. I say ``Ugh, not again'' & decide to read the news. The first thing I see in the news is that the power system in the Northeast was down for the count yesterday afternoon.
It's funny how people initially suspected the MSBlaster worm. I suppose it's possible, but it's far more likely for a tree to take out a critical line (yeah, even if those lines are underground).
It's less funny that the FBI felt the need to say the problems were not caused by terrorists.
Mostly, I'm just interested in the spread of any worm & I wouldn't make any comment here, but I notice the different spins put on the story by the popular press & by Slashdot. In the popular press, we read that MSBlaster's DOS attack on Microsoft's update site is insignificant. In Slashdot, we read that MSBlaster's indirect effects were significant enough to cause someone to take microsoft.com offline for a while.
As if I needed another reason to never, ever, ever restrain myself from pointing out that SCO's products are lackluster, anyway.
I can't figure out what's in it for SCO other than lots of free, bad publicity. Even if the extremely unlikely worst case happens &, somehow, Linux is effectively outlawed,4.3 it's not like nobody can use Unix any more. Everyone will switch to BSD, maybe strip a few features from it to make SCO shut up, & get on with their lives. What will SCO have accomplished other than to alienate most of the world's Unix users, including SCO's own customers? The whole issue is almost unquestionably an extremely stupid idea from SCO.
Maybe the people in charge of SCO want to kill their own company as a tax write-off.
I also like the second article, about how IBM could just bleed SCO to death. IBM was a hacker's worst enemy. I admit that in the conspiratorial haze created by the fake wisdom of youth, I thought IBM was pulling the strings of governments, maybe even ordering the assassinations of the cleverest high-tech inventors so they couldn't out-date IBM's old technologies.
IBM faded from the scene after the crash of 1987, with Intel & now Microsoft filling those roles.
It's ironic that since re-entering the hacking community's consciousness, IBM has been a hacker's good friend. And if I allow myself to look through that conspiratorial haze of youth again, I ask ``But for how long?''
I never imagined it could happen. Wonder how serious the effects won't be.
I love the physics jiggle.
The article is about how long-time pinball game design Larry DeMar is having respectable success by designing video gambling games for casinos. It's nice to hear success stories like there, in which hard work meets some elegant cleverness.
SCO (Caldera) is a very stupid company.
I've been reading about Microsoft COM as I implement ONC RPC for Lisp. Here are some quick thoughts comparing the two:
Reading about how .Net relates to COM & to RPC in general. From what little I've read, .Net supports COM, but it also implements RPC for components using SOAP. I wonder which is layed on which. Does .Net use SOAP as its ``native'' RPC mechanism, or does it put a SOAP wrapper around COM components? I wonder other things about it, & here is some reading material to help answer those questions.
Looks like the cards in the Thoth deck are 3.75 inch by 5.5 inch. Might be a good idea to remember that if I order a box for them online.
Sites I visited while looking for a place to order a new deck:
An urban legend about a video game? Cool!
Tom Loftus's article is really interesting reading. I recommend it.
A tangential & off-topic remark: The article mentions a company called ``Two Guys Software''. That reminded me that a friend & I, about two years ago, though about making a bid for a software contract. (The contract had nothing to do with gaming.) We joked that we'll call our software company ``Two Guys in Seattle''.
I bought an Xbox last week, & I've been playing online games with it. I have a character on a MUD which I use regularly, & I played games on a short-lived online service called ``Games Computers Play'' in 1985, & on Compuserve around that time, but my only experience with modern graphical online action games would probably be demos at friends's houses.
They are a lot of fun. Not surprising. I spent much of the weekend playing Phantasy Star Online. I still think my Playstation 2 has a better selection of offline games, mostly because I prefer story-heavy games, & that's what it has, but Xbox's online games are a serious kick in the head.
What is the budget of a modern game? Not just the big-budget games. The average games. What modern, big-budget games are direct decendants of gams from, say, 10 years ago that had small budgets? How necessary is it for a game to have a big budget? I'm interested because someone told me today that game console companies, such as Microsoft (Xbox) & Sony (Playstation) put high prices on their development kits, even though the high prices exclude small developers, because the small developers don't matter. Only the big budget games matter. But I notice that small budget games have the highest potential profits, though of course the highest risk, too. People assume that only big budget games can be popular, but I wonder how many bigi-budget games now are direct descendants from small-budget games. For example, a recent edition of Final Fantasy is a big-budget game, but what was the budget for an older Final Fantasy? In particular, what was the budget of FF7? And the Sims is popular & probaby big-budget, but what about the original PC Sims? And what about Sim City? I know that they were designed by a single programmer. Surely he was not part of a big-budget company originally.
At Microsoft, you get about one e-mail a week that says you must install a security patch. The installation process is automated & convenient. The notices give you a time & date by which, if you have not installed the patch, the patch will be installed for you, whether you like it or not, or your computer will be disconnected from the network.
A couple hours after receiving a ``fix it or ticket'' e-mail at Microsoft today, I see an article on Slashdot about the bug & the patch. The article on Slashdot says that Microsoft has fixed yet another security hole. The timing of the article is interesting. Is it possible that someone at Microsoft alerted Slashdot after they had received the e-mail like I had? The Slashdot artciel is http://slashdot.org/article.pl?sid=03/09/10/200232&mo de=flat&tid=109&tid=126&tid=172&tid=187.
There is buzz that the great big black-out two weeks ago was caused by the MSBlaster worm.
The second article has some interesting (& believable) claims about how the computers in the electrical control system are not subject to worms such as MS Blaster. They don't run Windows, so of course they are not subject to a Windows virus. I'm sure that won't prevent many people from claiming that Microsoft is responsible for the black-out. Notice that a modern overhaul of the system might remove that element of security.
It's a nearly elegant response. I was criticized at work the other day for being an open source developer in my spare time, so I thought this paragraph was a nice read in particular:
As software developers, intellectual property is our stock in trade. Whether we elect to trade our effort for money or rewards of a subtler and more enduring nature, we are instinctively respectful of concerns about IP, credit, and provenance. Our licenses (the GPL and others) work with copyright law, not against it. We reject your attempt to portray our community as a howling wilderness of IP thieves as a baseless and destructive smear.
I'm thinking of writing a Web server in Lisp. Single-threaded, of course, partly to prove it can work well. Not a high-performance server that a company would want to use for their online store that receives thousands of orders per minute, but a simple little server for a programmer's personal web site.
It can support servlets written in Lisp. So it can support web services; I can write web services in Lisp & insert them in this web server.
Make it event-driven using Flez. Create some kind of deftask macro, or maybe a CLOS class, so that programmers can write the parts of a task in a somewhat linear fashion, maybe like this:
(deftask send-file
;; Data members
(filename filestrm httpstrm)
;; Body of the task. It's run upon receiving an event.
;; The STATE of the task determines which part of the
;; body to execute each time. The first item in one of
;; these lists is the state. Maybe there could be a symbol
;; that indicates the compiler should generate a unique
;; state. The rest of a list is forms to evaluate upon
;; receiving an event while in that state. Must remember
;; to set the new state before exiting.
((open
(setq filestrm (open filename :direction :input
:does-not-exist nil))
(cond ((null filestrm)
;; Error. Possibly the file does not exist.
;; Must report the error AND remember to un-schedule
;; this task.
(http-error-404 ???)
;; Maybe TAG can be a unique identifier for this task
;; so we can cancel it.
(flez-cancel *flez* tag)
nil)
(t
;; It worked, so next time, we read & send a block.
(setq state readsend)
t)))
(readsend
;; Read a block & send it. If there are no more blocks,
;; it's end-of-file, in which case we set the CLOSE state.
(let ((buffer ???))
(setq buffer (read-string or whatever from filestrm))
(if buffer
(write-string or whatever to httpstrm)
(setq state 'close))))
(t
;; End of file. Must close the file stream & the http stream.
;; Also must cancel this task. Assume that TAG is a unique
;; identifier for this task so we can cancel it.
(close httpstrm)
(close filestrm)
(flez-cancel *flez* TAG))))
;; Create a file-send task & schedule it to run:
(flez-task *flez*
(make-file-send "filename goes here"
httpstrm) ; stream of the HTTP session
:period 1) ; as often as possible
The article is kind of interesting. He correctly points out that what is happening is part of a natural cycle, but he offers little sympathy for the people it affects. He incorrectly infers that the American software industry has lost its edge; in fact, American programmers are great. Any loss of edge is from top-heavy management. He naively suggests that high-tech workers can be ``re-trained''. I have knews for the guy: Animals are trained; humans are educated. I also suspect he doesn't care that, if his solution were implemented, an industry of well-educated high-tech professionals would have found that their careers had been a mere five to twenty years long. This is a modern implementation of the American dream: Work hard in college, work hard in the work-force, find yourself on welfare before you are middle-aged. How is this anything other than a betrayal by our society?
I need to think about that web site. Maybe I should remember it next time I vote.
Then again, maybe not. It's a pretty hot-headed web site.
A letter that suggests taxing companies that out-source. I could find no reply from the Senator or other indication of the Senator's views on the issue.
I've been saying for years that Java is the COBOL of object-orientation. I also like how he plugs Lisp.
How long until companies (or at least people) realize that for a network to work, everyone must cooperate. Some organizations must do what is to a modern capitalist economy the unthinkable: Ignore their own short-term interests. To do otherwise ruins the network in the long run.
A better solution would probably to return the name registry to a non-profit organization. (I know that InterNIC was a company, but I'm pretty sure they originally ran the registry as a non-profit service.) Maybe there should be an international non-profit organization that handled all registrants.
Yet another alternative would be for people to use a naming system other than DNS. I don't know why this is never discussed. There does not need to be only one name space & one name protocol.
I've received about 100 of those e-mail messages at an account from which I posted exactly one Usenet message about a month ago.
This article is about the very large power blackout in the northeastern United States & some parts of Canada in August 2003. It mentions that the upgrades to the power grid, which should prevent the type of problem which caused the black-out, might leave the power grid succeptible to the type of virii & worms which attack desktop computers. It sounds like such vulnerabilities are already in some of the more modern computer systems in use in the power grid now.
I'm inexperienced with GUIs & espeically with combining multiple threads in a GUI program (but not inexperienced with multiple threads in general). We ran into a bug at work today, & this page on MSDN helped to solve it. Might lead to interesting or useful information if I use it as a beginnin point for surfing the web.
Work is where you sell time. Some of us sell it at a fixed rate & are called hourly employees or temporary laborers. Others sell it at a variable rate & are called salaried employees or, erroneously, ``permanent employees''.
You sell the company your time, & time is life. Time is not money; it's life. You are born, you have some time alive, & then you die. Time is life.
The fact that we sell time for money puts a price on life. It puts a monetary value on a life. How does this correspond with the widely claimed belief that life is priceless?
If you work eight hours each day, you are selling about
of your life to pay for the other
. If you work 12 hours a day, you are selling
one half of your life to pay for the remaining half. Is
a life worth so little?
Is your employer entitled to claim as many of your hours as it wants? With hourly employees, at least the contract recognizes that each hour is sold on an hour-by-hour basis & for a fixed price (unless you are paid extra for over-time). As an hourly employee, at least there is the pretense that you own your time until you sell it. The situation is not as clear with salaried employees.
The unfortunate fact of modern times is that so many employers assume they have pre-purchased any of your hours they want. Maybe more unfortunately, most employees assume this, too.
The assumption of our society that is proved by our system of work is that life has a limited, monetary value, & that some lives are worth more than others because some people are paid more - sometimes much, much, much more - than others. In spite of common claims that life is priceless, our system of employment proves that we believe otherwise.
I should have bought mint chocolate chip ice cream when I was at the grocery store this evening.
I was afraid this kind of mistake would happen when I first heard about the RIAA's lawsuit mania, but I was afraid it would happen to me. It's nice to hear that the woman was able to get out of trouble without too much distress, & she didn't lose her shirt (or her house).
They sure as hell better have a damned good reason that a company with which I do not want to do business has a right to use my phone to interrupt my dinner.
As neat as this type of power station is, remember that it, too, pollutes in its own way. It's taking energy from the Earth's rotation or the moon's orbit around the Earth. That energy source is not unlimited. Sure, it's probably huge, so huge that humanity could never, ever use all of it, just like we could never use all of the oil in the Earth. Remember that the problem with oil isn't that we're running out; it's that the Earth has had about as much of that type of polutant as its can handle (or as much as we want the Earth to handle).
One of the primary dangers of taking energy from the tides is that it might change the ocean currents. The world's weather is very dependant on the oceans. Change them & you change the world. You think too much CO2 & carboflourocarbons in the atmosphere is bad? What happens when the major currents of the oceans lose ten percent of the energy?
I know that most people reading this will scoff at the idea that taking energy from a planet's rotation or an orbit could have undesired or harmful side-effects. It's too bad that most people can't easily imagine the consequences of scale. Notice that anything you say about the ridiculousness of my claims was probably said before about some other source of energy or some other resource.
I know only a little about agents, & that mostly from books about artificial intelligence, such as from [137]. I'm new to the semantic web, though as soon as I heard the term I inferred much, most, or all of the intent. Upon reading this article, my primary reaction was ``Imagine all the software agents that people will need if the semantic web becomes a reality! The need for software now is tiny, compared to the need for software in that reality. I'd be in demand again!'' So I think I'll research the semantic web & agents. Sounds like software that could be fun to write, too. Lots of programs, many of the fundamental ones having small size.
Good article. Mentions the discrepancies in the claims made by the Bush Administration. One point I don't understand is about Colin Powell's recent statement. If I read it correctly, the article says that Powell was the national security adviser for President Reagan when Iraq used poisonous gas to attack Kurdistan in 1998. Reagan was not the president in 1998. Maybe it is a mis-print, or maybe I read it incorrectly.
The Domain Name System (DNS) is a protocol for naming computers on the Internet. It's the system by which we refer to computers by dotted names instead of by Internet Protocol (IP) addresses. For example, thanks to DNS, you can refer to my computer as CyberTiggyr.COM instead of 216.254.22.188.
The DNS protocol relies on a bunch of servers scattered around the Internet. Anyone can run a DNS server, but some are authoritative, & some are not. The authoritative servers are organized in a tree structure that mostly mimicks the domain names themselves. For example, if a program wants to know the IP address for plague.CyberTiggyr.COM, it will ask the DNS server for CyberTiggyr.COM. If it doesn't know that computer's address, it will need to ask the DNS server for all the .COM names. The DNS server for .com will refer the first program to some DNS servers which will know the IP address of the DNS server for CyberTiggyr.COM, & the program will ask those servers until it gets the IP address. Then it will contact the DNS server on CyberTiggyr.COM & ask it for the IP address of plague.CyberTiggyr.COM.
Near the root of the tree of DNS servers are servers for all the top-level domains: .org, .edu, .au, .net, & all the others.
The domain name service (DNS) protocol is public, as are all the official protocols of the Internet. It is documented in
(RFC stands for Request For Comment. All the official protocols of the Internet, including the Internet Protocol itself, are defined in RFC documents. They are publicly available. One database of the RFCs is the RFC Editor.
One characteristic of DNS is that it requires a central authority to register the domain names. This central registry in which each host name is unique caused the domain name registration hysteria in which people & companies paid lots of money to register a domain name. There were even some legal battles. Some people even ``squatted'' on domain names (like squatting on land) in the hopes that someone would buy it from them for a huge sum. All this because people wanted to have the single computer named, say, pictures.net or sex.com.
The original central registry was called InterNIC. I don't know whether it was a company that was only the DNS registry, or whether DNS was only a small part of its job, but there originally was no hysteria about domain names. In fact, they gave them away. They even gave away sets of IP addresses. (I originally registered CyberTiggyr.COM in 1991, for free, & I also received a ``class C'' Internet address set. I still have that domain name, but not the address set because addresses are now divided among Internet Service Providers (ISPs).)
Which brings me to current events. The descendant of InterNIC is VeriSign by virtue of buying Network Solutions, which bought InterNIC. (Or did Network Solutions buy InterNIC & then change its name to VeriSign. The distinction hardly matters.5.1 VeriSign is now one of the central registries, or the main central registry; I haven't kept up-to-date with the nuances of the bureaucracy of DNS.
Where InterNIC at least appeared to run DNS as a public service, VeriSign is definitely wants to make a buck. They are notorious for providing bad DNS registration service, & they are currently in the news because they changed DNS without consulting the organizations that help create & agree on the standards.
VeriSign changed the DNS database so that unregistered domain names no longer result in an error when a program tries to find the IP address for them. Instead, DNS now says that the domain name has VeriSign's IP address. You can test it for yourself by typing ``http://'' & then come gibberish such as ``ksldkaei'' & then ``.com'' into your web browser. Unless VeriSign has removed their change, you'll see a web page that says VeriSign will be happy to register that domain name for you.
While this isn't so bad for humans who are using web browsers5.2, it breaks all sorts of programs because they cannot distinguish between a domain name that maps to an Internet address & one that does not because now, all domain names map to an Internet address.
Why does there need to be just one name system?
In fact, there is no technical reason why there must be only one naming system. We could have multiple networks of DNS servers running on the Internet. In fact, it'd be easy to do; just assign a new port to each of the networks.
Of course, that would create all sorts of confusion. When someone told you about acme.com, how would you know whether they meant the acme.com on port 42 (the current DNS), 2938, or 73452?
I don't think multiple networks of DNS servers would make things any better, but the Domain Name Service we have isn't the only possible name service.
The problem, the hype & hysteria, occur because every plumber wants to have plumber.com. However, the world is a big place, so if you need a plumber, there is little guarantee that the plumber who has plumber.com is anywhere near you. You might be in Barstow, California, & plumber.com might be in New York, New Delhi, or Shanghai. If you need to find a plumber to fix your sink, plumber.com doesn't do you much good.
I suppose plumber.com could be a directory of plumbers, but what if you need a veterinarian? You go to vets.com? Does humanity have a web site for everything you might want to find in the yellow pages? If they are independently managed, some of them will be good & some will suck. It's better to have a handful of online directories, each attempting to cover as much as it can, & each run by an organization that specializes in making good directories, not in plumbers or veterinarians.
It comes down to this: The hysteria about domain names was just that. Sure, it's cool to be the one plumber with plumber.com, but beyond some small amount of coolness, it isn't of much advantage.
Another problem with DNS is that it is centrally managed, at least to an extent. Anything that is centrally managed is subject to abuse.5.3 Verisign is an example of how DNS can be abused by a central authority for its own, private & short-term benefit.
DNS was designed in the 1980s. We could do better now.
A new name system could use peer-to-peer techniques to remove the need for a central authority. Maybe elements in the distributed data space which map host names to IP addresses could be cryptographically signed by the ISP or other authority which owns the IP address. The public keys for the ISPs could be available on their web sites & maybe some other sources.
It'd also be nice to remove the hysteria surrounding domain names. As I said, the organization which has plumber.com probably isn't your neighborhood plumber. We use names in DNS for three purposes: unique host names, mnemonics, & advertising. How about separating those three duties?
For uniqueness, we could use UUIDs. A UUID is a string of 128 bits. It's possible to generate a UUID in such a way that it is virtually guaranteed to be unique even if you can't look in a database of all UUIDs to ensure that your new one isn't already in use. We could generate a UUID for every computer when we install the OS; hell, the OS's installation software could do it. That would be a unique name for the computer. That is what would be connected to an IP address. No more host name hysteria.
Humans can't remember UUIDs very well. We can't even type them. So how does a human remember & type the name of his computer? More important (to organizations, at least): How does a person elsewhere find the computer?
We can have another distributed (peer-to-peer) database that connects information about the computer to its unique host name (the UUID). What goes in this database? Anything you think someone might need to find your computer. Put your organization's name, geographic address & country, phone number, line of business, & anything else someone might need to find you. After all, does it matter that you have plumber.com or that your customers & potential customers can find your web site?5.4 This database record would contain the UUIDs for your computers. It could even indicate which computers to contact for which type of services: HTTP, SMTP, FTP, various web services, & whatever else you offer.
I think there already is such a database format. It's called X.400 or something like that. Maybe a new domain name system could use it or derive from it.
You'd create your own record in this database, & you could cryptographically sign it. The database would be distributed via peer-to-peer techniques; no central authority, except maybe popularly agreed-on services where public keys could be found.
If a user wanted to find the web site for a particular organization, he could enter its name. The client library for the New Domain Name System in the user's web browser would do a look-up on the peer-to-peer database. If there are multiple matches, the program displays them for the user & he chooses the one he wants. The software caches that as the user's choice for that type of look-up. Of course, the user could override the cache if he wanted to later.
The user's software could be configured to accept any entry that matched the query, or only entries with a certain number of signatures, or only entries with signatures from certain entities. I mean that the policy for trust could be configured, & many are possible.
I recognize that this duplicates some functionality of web search engines, but only in a minor way. And so what? Why would that indicate that a good, new domain name system shouldn't have these features?
In an online chat room, I was discussing the idea that the USA is a country of corporations & that humans are incidental. One guy (vandahm) said this:
I sort of feel that way. I think that greatness comes from individuals, but that individuals just don't matter as much in our culture.
Sums up the situation nicely, methinks.
Things about web services, not from a technical point of view, but from a more business-oriented point of view.
It's a boring news article.
I found the previous couple of articles by searching for ``web services and business'' on Google. They are really boring articles. So here are results from searching for ``future of web services'' on Google.
It's a list, on MSDN, of articles on MSDN about web services.
This was interesting because a friend of mine, who is a Java developer, & I often discuss whether Java is cost-effective considering all the complex remora technologies that surround it. We usually agree that it's not, though it could be if Java developers would do things the simple way, like good engineers.
The Slashdot discussion about Java web server scalability led me to this article.
This is an excellent & enjoyable article about why to reuse instead of re-write.
It's been a couple of years since I have inherited code at work & called it crap. I like to think that's because I'm a mature enough programmer now to realize that any code I did not write yesterday will look like crap. So any code I write at least two days ago will look bad, & so will any code written by another programmer. It's likely that whoever inherits my code will call it crap, at least out of habit. The best I can do is minimize his bitterness when he does.
Excellent article. To bad it's so true. Nice how he points out the importance of the Bill of Rights.
I'm really worried about these things, have been since shortly after 11 September 2001. I am seriously considering leaving this country while I still have the right to do so. I hope others will, too. If we can't save the place from destroying itself, the people who respect freedoms should leave. It's the worst thing we can do to a country that wants to take away our rights - while it maintains it's keeping us safer.
Mr Kelley does not appear to even begin to question the claims of the US government that the prisoners in Guantanamo Bay are horrible threats to humanity.
It's an article about how a MMORPG, which has recently booted players for cheating, is closing temporarily. The question was raised on Slashdot of whether this is a virtual world's technique for balancing its economy. Really fascinating.
Notice that economics is the foundation of virtual worlds. At least it is the foundation of MMORPGs & of most MUDs I have used.
Maybe economics - the policies of property - are necessary in the real world, but are they so fundamental that they are necessary in virtual worlds, too? Can't someone think of something different? Or is the human mind constructed so that we must always see things in terms of property?
It mentions that the US government now claims that Iraq has become the frontline in the war against terrorismc. Reminds me a hell of a lot of how people have told me that Rumsfeld suggested about ten years that the USA should conquer some country in the Middle East & us it as a base to expand the USA's control of the Middle East. (I have not verified those claims for myself yet.)
At the same time (& also discussed in the article), the US says that Iraq must govern itself ASAP, but when the French suggest 6 months, the US says that its an unrealistically short schedule. This is an example of blatant spin, or preparation for it.
Sure wish our government had skills other than money-making. Maybe theyd be good at running businesses, but they are worse than shameful with government. If they were good at business, they could have improved the economy by now. So maybe they are not even that.
At least there will be revenge. The world is changing, & America, as the accumulator of most of the wealth, only stands to lose. (I must make sure I'm not here when that happens.)
Anyway, I bitch, I gripe.
More people are unemployed, but corporations continue to make decent profits. This is a problem.
Interesting, but short, & there is no technical detail. Bummer. It's an interesting topic.
The article says that there are predictions that the Internet's performance might be significantly affected for the worse due to high bandwidth use by virii & worms. While I wouldn't abandon hope for the possibility of a technical fix, it's a reminder that even an artificial construction such as a network is a limited resource.
I'm not sure I agree with his suggestion, but the first few paragraphs of the article are a reminder of the primary rule in a capitalist economy: The consumers must accept the responsibility of spending wisely.
It's good news generally, but I'm not convinced it's good news for my industry. Too many high-tech jobs have been exported, there is no sign of bringing them back, & putting tariffs on imported goods will not deter companies from using software development services from other countries.
I'm pleased to note that I have played, enjoyed, & recommended four of them: Persona 2; Rez; Alone in the Dark series; & Ico.
Persona 2 had an ejoyable ambiance & look. In the 1970s, I might have called it ``mod''. It's kind of silly, but it sure as hell worked nice for a game. The soundtrack was fresh & complimented the visual ambiance well. It also had the best system of elemental strenghts & weaknesses I have ever seen; really enjoyed that. Neat story, too, though some few of the dungeons bordered on tedium.
I phoned the publisher once to ask if they sold t-shirts, posters, or an art book. They only sold a poster, & I never got around to ordering it.
Reminds me of a friend who tells me that he once needed to format a file system but didn't have any spare space. So he tarred the whole thing, mailed it to himself around the world using an explicit path, & formatted the hard drive before the message arrived. This was way back, when file systems were smaller & people used UUCP explicit paths.6.1
I poured myself a cup of coffee at work. I normally drink coffee black, but the coffee here is so bad that I usually put cream in it. (Actually, I usually get my coffee outside of work; it's that bad.) So I grab the can of non-dairy creamer & start pouring it in & stirring. The creamer goes in, but the coffee stays black. I keep pouring, wondering when the coffee will change color. After a while, the coffee is still black, but it's thick, like syrup. Just then, I notice that I had picked up a can of sugar; it's identical to the can of creamer except for the unassuming label.
I tasted the coffee. I mean, I tasted the syrup. Poured it out & poured myself a proper cup of (bad) coffee with non-dairy creamer.
I've had to program Microthot Winders at work lately, which isn't usual for me. Any time spent programming isn't bad time, but programming Winders isn't as productive or as fun as programming Unix. I think I've figured out why. There are two reasons.
The lesser reason is that the documentation for Winders sucks. I can hear an ex-colleague right now saying ``All the information is there''. I didn't say it wasn't there; I said the documentation is bad. It's a badly organized collection of mostly tutorials & haphazard examples. Much of it is out of date. Little of it is reference.
Reference documentation is important stuff. The Unix man pages are reference manuals, & I'm living, breathing, walking, talking proof that you can learn to program Unix from the man pages. Heck, I even derived the existence of e-mail & UUCP from them. Tutorials are fine for learning, but well-organized reference manuals are necessary for programmer productivity. Winders doesn't have it.
The more important reason it's unproductive & un-fun to program Winders is the complexity. No, the Winders API isn't too complex.6.2 The complexity is in the tools.
This was a new realization for me. If you go to the programming section of a modern, big-chain book store, you'll see dozens of books about programming Winders, but if you look in the books, they aren't exactly about programming Winders. They are about using the Microthot development tools. All those books spend most of their time discussing the tools, not discussing the actual APIs.
All of those development tools, in the name of convenience, have made Winders programming so complex that the programmer rarely gets to deal with the program. An experienced programmer - & I mean one who can write a program without relying on a complex ``wizard'' that offers very little value - knows the power of source code, a compiler, make, & a few good libraries. It gives you flexibility, portability, productivity, & the fun of programming.
Another problem with Winders programming is the irrational belief of many Winders programmers that a program must be one process. I don't know why they instinctively reject the idea of piping small programs together. Pipes make programs simple; they are an old & convenient type of components.
Now if this isn't the soot-crusted pot calling the stainless steel kettle black. Microsoft claims that Apple's iPod doesn't give Windows users enough choice. Windows users, Microsoft says, don't like closed systems.
Excuse me, but Windows is a close system. Microsoft's Office & Word are closed systems. Microsoft frequently speaks out against open source software in general & has even taken action to bastardize it a few times (with it's Java extensions, & now it's ``managed C++'', which isn't C++).
The article is mostly hype, fear, & loathing, but it's interesting to read about the capabilities of modern virii & worms.
Is it just me, or is ``mother'' reminiscent of ``monster''?
We search everyone at airports. We pass laws that take away our own, formerly inalienable, rights. We invade - actually invade - two countries. And Rumsfeld says we haven't taken ``bold moves''? This guy is frightening, & I don't mean he's frightening to terrorists. Rumsfeld should frighten any American who values his own freedoms.
I love the spin the Democrats put on Rumsfeld's memo. They call it an epiphany of self-doubt.
I keep wondering why Mexico does not have a prosperous out-sourcing software industry like India's. At first look, Mexico has about the same things going for it that India does. So why does India have a prosperous out-sourcing industry, when Mexico does not?
Sadly, I didn't find any answers. Maybe the difference is that the country & government of India promotes their out-sourcing business, whereas there is no mention of such projects in Mexico.
Invading Iraq, which the USA did as part of its ``war on terrorism'', was a bad idea.
Declaring a war on terrorism was an even worse idea. It's worse than declaring a war on drugs. Not only is it pointless, after the government redefined terrorism so that terrorists have no rights, the government is now working on redefining anyone they don't like as a terrorist.
But I digress. The news today just reminded me that invading Iraq was a bad idea.
Interesting. Not only does the Federal Aviation Administration refuse to give some documents to the Sept 11 investigation panel, but the White House also refuses to give them some documents. Why could that be? What does the White House have to hide?
From what I've heard, China has embraced open source software, & arguably spurned proprietary, commercial software (for sufficientlly lenient definitions of ``spurned'').
I've been thinking about that.
Seems that open source & a socialist (or communist, in China's case) economy go hand-in-hand. From an economic or humanitarian point of view, open source software is about sharing your invention with others. Sure, you can make money from it, but you don't make sales the one & only channel by which others are allowed to use your software. In a capitalist, proprietary, commercial software market, you chase the shorter term goal by making sales the only & only channel by which others may obtain & use your software. Open source software recognizes that the information itself (the software) belongs to everyone.
Good news & somewhat interesting, but lately, I'm more interested in why certain industries that work in other parts of the world are not thriving in Mexico. Actually, they don't appear to have been installed in Mexico at all. Why?
A cute diversion sent me by a friend.
It appears the sky is not falling, though the sun was bright enough this morning that it hurt my eyes even through my sunglasses.
I'm skeptical.
One problem with the programming model(s) used by Microthought Winders is that some of the data types it uses are ambiguous. I work with some programmers who, by definition, are some of the best Winders programmers in the world; they are the definitive bunch, you might say. Even they disagree about whether the width of a DWORD is always 32 bits or might change from one type of CPU to the next. I maintain that, independant of what a DWORD ``should'' be, the confusion about its meaning & the meanings of many other types that are used in Winders is a problem with Winders.
I told this to a friend who is an experienced Winders programmer, & he directed me to these two web pages on the Microsoft Developer Network (MSDN):
Even if these pages unambiguously defined the data types, the confusion around them, even among experienced Winders programmers, is a problem. Sure, these pages, if they removed the ambiguity, would be the critical step towards removing the confusion, but it'll take time, & the confusion already exists.
And the pages don't remove the ambiguity. If DWORD is 32 bits, why is there a DWORD32? If they are synonyms, & DWORD is & always will be 32 bits, why doesn't the pages say so? It does not say that DWORD will always be 32 bits; it does not say that DWORD is a ``double word'' on the particular type of CPU. It doesn't address that question at all, & since it defines a DWORD32 as 32 bits, it begs the question about the width of a DWORD. I don't meant the width of a DWORD on an Intel Pentium processor, which is what most Winders computers use. I mean the width of a DWORD independant of the type of CPU. This is exactly the ambiguity that creates a problem when a person is programming on Winders.
So my original claim still stands: Ambiguously defined data types are one of the problems with programming Microthought Winders.
SCO is unspeakably contemptible. I suspect they are sacrificing the company to give Linux some bad publicity to help the part of the computer industry that dislikes Linux.
They told me this news about a month ago & told me I couldn't write it down. Because of that, I thought it would be secret for another year or so. Ah, well.
Upon reading the article, I see that it doesn't contain any details. So maybe I really was told some things that it's good I didn't write down. Makes me feel special.
Interesting, & possibly somewhat factual. In particular, I was stunned by the implications of this paragraph, if it is true:
In the days shortly before the war, a papal emissary arrived in Washington hoping to convince Bush to reconsider invading Iraq. The emissary insisted that ``God does not intervene in the affairs of man,'' and as a result of free-will, it was our responsibility to use reason to discern between good and evil. Bush politely listened to what the emissary had to say but had no intention of rethinking the issue - his mind was already made up. Bush believes that through prayer, God has revealed his will, and it is his responsibility to fulfill it.
The American way to solving problems is to apply hard work, power, & perseverence. Whether the problem at hand is the construction of a new office building or making one product more succesfull in the marketplace than another, we apply force & hard work.
Need to build a sky-scraper? Dig a foundation, setup the giant monood crane, & get to it.
Need to repair a road? Stop all traffic, get in there with your road-fixing men & equipment, & get out as quickly as possible.
Want your widgets to out-sell your customer's widgets? Make them as inexpensively as possible, flood the stores with them, & apply a pervasive multi-media ad campaign.
Americans attack problems directly & apply elbow grease - literally or otherwise. It's a good way to deal with many problems, & the people can be proud that they aren't afraid of a little or a lot of hard work.
But it's not the only way to solve problems.
One emergent property of a Taoist philosophy is to solve problems by exerting little effort. It doesn't mean solving problems in a half-assed way. It means expending less effort to solve it indirectly. It means turning the problem into your advantage. (This is hardly the only feature of Taoism, but if you know more about Taoism, just take it easy & roll downhill with me while I write.)
Here's a simple analogy: You need to build a road from one city to another, but there is a mountain in the way. The American, direct method is to tunnel through the mountain. The Taoist indirect method might be to use a lift to pull the cars to the top & then let the cars save gas by coasting down the other side of the mountain.
Here's an example from the real world:
Sony & Microsoft both make game consoles. Sony makes the Playstation 2, & Microsoft makes the Xbox. Game consoles are made inexpensively, & the makers sell them at a loss. They hope to make a profit from the games people must buy to run on the consoles. The console manufacturer does not want you to buy the console & run your own software on it because then he would have sold you a computer at a loss. The manufacturer needs to sell games so he can recover his costs of manufacturing.
Some people want to use game consoles as inexpensive computers to run Linux. If people did that en masse, the console manufacturers would lose money.
Microsoft, an American company, put extra effort into security features in the Xbox that make it difficult to run Linux on the Xbox. Those security features are not completely succesfull, though. I'm sure they take legal action against people who hack Xboxes when they can. Or they would if they could track down the people. The security features that are in the current Xbox require the legitimate game software to be prepared specially so it'll run on an Xbox, & that creates a continuous expense, including efforts to prevent the secrets from being leaked. I'm sure they invest yet more money in yet newer & possibly more expensive security features for the next Xbox. Basically, they expend money (which is economic power), hard work, & lots of perseverence to prevent people from hacking the Xbox.
On the other hand, Sony sells a Linux kit for Playstation 2. Buy one of them & install it on your Playstation 2, & voila!, you have a low-cost Linux computer. Presumably, the Linux kit for Playstation 2 is priced to recover the loss at which Sony sold the Playstation 2.
This is a good example of what I'm talking about. The American company puts money & man-power into preventing people from using its product in ways it hasn't approved, & it's not completely succesfull. The Asian company allows them to do it & makes a profit when they do.
Which solution requires more effort? Which solution benefits the company more?
The American way of tackling a problem head-on, wiping it out, & paving over it so there are no memories of it is not the only way to solve problems. For a given problem, there may be ways to expend less effort & turn the problem into your advantage.
I recommend asking yourself ``How can I turn this to my advantage'' when you encounter new problems.
Take a look at how the USA dealt with Iraq & is still dealing with Iraq.
They don't say how they measured deletions. Here's news for anyone who doesn't know how file sharing works: Just because a computer isn't sharing files doesn't mean the user deleted the files.
Nevertheless, it's an interesting article. I especially like the part where it says that consumer disapproval of the recording industry is increasing.
I love spam - when it comes in a can. One of the best dishes in my culinary repertoire is spam vindaloo. I swear.
The Lord is away preparing a place for spammers...in Hell.
Humanity doesn't take advantage of the possibilities of hypertext documents. I think I have two examples of what could be done.
The best educational presentations are those which start with questions as motivators & guide my thought processes through the important steps from the problem, to possible solutions, to a good solution, to a better solution, to the solution that I'm supposed to be learning. These types of presentations are probably more effective ways to learn, & I know they are the most fun. The best teachers do it. Good examples are Carl Sagan, Isaac Asimov, & Andrew S. Tannenbaum. The worst type of educational presentation are those which tell me the conclusions & give me very little reason or motivation for understanding them or even for caring about them.
Aspect Oriented Programming with Lisp.
Good. Cross your fingers that inalienability of inalienable human rights is reinstated.
I despise how the Bush administration believes it is chosen by god to forcefully impose democracy on the world.
Obey me & be free. - The Prisoner television series, episode ``Free for All''
This article is very long & very good.
In the November 2003 issue of Communications of the ACM, there is an article about the Explicit Congestion Control Protocol (XCP).
It seems that TCP is inefficient on connections with a high data rate & a high latency.7.1 These inefficiencies are compounded when congestion on the network is high.
The Explicit Congestion Control Protocl (XCP) seeks to improve performance in these situations by providing the connection's endpoints with information about why delays are happening. The article does not go into the bits & bytes of packets, but it sounds like the endpoints can request more bandwidth, & any router that cannot deliver may insert into the XCP packets information about why it cannot deliver. Maybe the router's connections are already saturated. Or maybe the router is providing low-latency to the XCP packets on that connection, but they are arriving at the router slowly; it sounds like the router is able to indicate such a situation in the XCP packet.
Sounds like XCP has some other features, like more modern algorithms for per-connection bandwidth allocation & fairness.
XCP is being implemented in some routers now, though I guess such routers are not yet sold. The article says that XCP will be used on OptiNet or OptiLink or something like that. A concern with XCP is deployment. It requires participation from the routers between the endpoints on an XCP connection. So it's not enough that the endpoints know XCP; the routers must be upgraded, too.
Another neat thing about the article is that it surveys some other attempts at providing better performance in these high-latency, high-bandwidth, high-congestion situations. One that I liked a lot are the UDP Blast protocols.7.2 UDP Blast creates a connection on top of one TCP connection for control & UDP packets for the payload. It gets good performance (better than TCP Stripe, says the article), & it can be implemented at the application level. That's cool. Since it doesn't get information from the routers about their state, I presume its performance can't match that of XCP.
The article is ``Transport Protocols for High Performance'', by Aaron Falk, Ted Faber, Joseph Bannister, Andrew Chien, Robert Grossman, & Jason Leigh. It's on page 43 of the November 2003 issue of CACM.
It's online at ACM's web site for ACM members. (From that page, select Search, then Search the Digital Library. You'll need to login. Then you'll see the Digital Library search form. In the Authors field, type ``falk, faber, bannister, chien, grossman, leigh''. I saw only one result: ``Blueprint for the future of high-performance networking: Transport protocols for high performance'' http://portal.acm.org/citation.cfm?id=948408&coll=ACM&dl=ACM&CFID=13980772&CFTOKEN=19602824, which is the article I read.)
SCO are such slime-balls. It's shameful, really.
Is it just me, or is there something horribly wrong if it's unhealthy to go for a walk & a talk with a friend?
For those who, like me, believe the world has too many acronyms: BSOD is Blue Screen Of Death.
A few days ago, I saw a movie called A Walk to Remember (2002). It was excellent, a slight tear-jerker. I might need to add it to my list of favorite movies.
It's a little confusing, but it sounds like Senator Bowen of California, & presumably other legislators, wanted an opt-in law, but what's being delivered to the House will be a ``you can spam as long as the headers are not misleading'' law. If that's the case, then we could have had a good anti-spam law, but we're getting a terrible one. Heck, the one we're getting might actualy encourage unsolicited commercial e-mail.
One reason to make your source available is for portability, but if the object code was portable (via a VM), that need would go away? If a virtual machine like .Net or JVM became ubiquitous, so that programmers could assume their users had one, what would that do to open source?
Spammers attack critics. http://money.cnn.com/2003/12/02/technology/internet_spam.reut/
It often seems like there is no way to win the war against spam without resorting to a privacy-invading, speech-limiting, regulated e-mail transport system that replaces the existing one (SMTP). On the other hand, if spammers have to resort to illegal tactics such as virii & worms, then maybe things aren't as bad as they usually seem. Their virii & worms only work against insecure computer systems. Computer systems can be made secure with technological fixes which do not invade privacy. Maybe it's impossible to stamp-out spam with SMTP - & even if we did, we'd still have ``legitimate'' advertising, but maybe if computer systems were more secure, spam wouldn't be such a problem. After all, the spammers exploit the most cost-effective means to spread their unwanted messages. If they are choosing virii & worms now, it's because those are the least-cost measures that remain. And like I already said, operating systems can be made more secure with some technical work. Then the spammers would need to find some other method of spreading their messages.
The victim was willing? And he wanted his penis removed before he was killed? In a world of 6 billion people, maybe I shouldn't be surprised.
More & more, I become convinced that as the techniques of advertising have improved, the purpose of advertising has mutated
The common or official beliefs about advertising admit only that first & original purpose, but I suspect the second & third purposes are most common these days.
Think about that third purpose of advertising. It creates needs by feeding the otherwise dormant fears that are in people already. Maybe it actually creates fears. What does it mean when a society is willing to create fears in its own people?
I'm reminded of an episode of Doctor Who, called The Sunmakers, in which people work & live in a climate-controlled environment. Their employer, which provides the environment, fills the air with anxiety-producing drugs so that the workers never gather enough confidence or courage to resist the unreasonably demanding working conditions & taxes.
I'm also reminded of the claims the government of the United States currently makes about ``terrorists'', though I swear that wasn't my point when I started writing this, & I think that example, if it is an example of creating fears to sell a product, is relatively innocuous.
Contrary to most of the speculation in the commetns on Slashdot, AT&T Wireless's problems are not an attempt to delay number portability. They are not even limited to number portability. They upgraded their customer service software a few weeks ago, & it failed. They did not have a roll-back plan. Their entire customer service system is damaged.
Why is it surprising to me that Microsoft's documentation for the Dictionary class in the Scripting Runtime Library begins ``A Dictionary object is the equivalent of a PERL associative array''. (http://msdn.microsoft.com/library/en-us/script56/html/jsobjDictionary.asp)
Fascinating. Absolutely fascinating. Illucidating, too.
I have a friend who does or did work on Microsoft's CRM product.
I wonder if they'll outlaw my home-grown VoIP system so that I won't be able to Internet-phone my mother on Sundays.
Apparently the same article is also at The Register. http://www.aijac.org.au/review/2001/269/suicide.html
An important paragraph in this article is:
Russian news media, echoing officials, have dubbed the perpetrators ``black widows,'' women prepared to kill and to die to avenge the deaths of fathers, husbands, brothers and sons at the hands of Russian troops in the current war or the one in the 1990's.
Now I know the official explanation, but is it true? Need to search some more.
Part 1 is at http://www.primechoice.com/philosophy/shelp/karlericson/ibpp/part1.htm.
Part 2 is at http://www.primechoice.com/philosophy/shelp/karlericson/ibpp/part2.htm.
At work, my assignment was actually to learn about Xbox hacks so we can write programs to detect & prevent them. So I got to spend time at work reading articles about Xbox hacks. Some were crap, but many were fun.
This article is dated. Compare the attitudes of the early Xbox hackers to the reality. Progress has been made, but it took over a year.
Has the most factual non-technical information about Xbox hacking that I have seen. Concentrates mostly on some discoveries by Andrew ``bunnie'' Huang.
I guess this is why some installations of Microthought Internet Exploder are unable to use Gopher sites. Too bad, because Gopher is cool. For many uses (like reading content without advertising), it's superior to HTTP.
To see the mention of Gopher in the security bulletin, you must expand the ``Technical details'' item.
I like the font they used in the article & the overall visual design of the page, & I apologize for writing a comment that has nothing to do with the content of the article.
I'm working on my Lisp TCPMUX server. It's object oriented, which is unusual for me these days. It's helped me make an observation.
Object oriented programming is about side effects. When you send a message to an object, & it figures out a few things (possibly by sending messages to objects), then it notifies some object of what it just figured out or of something that depends on what it just figured out, that's side effects. In fact, that's a lot of side effects.
Contrast this with structured & functional programming, in which one measure of code's cleanliness is how well it minimizes side effects.
Happy Gnu Ear.
I think the USA has reached the point where I am, at a very mild level, ashamed to be an American. At least it's nice to know that I am not the only one who says the USA's government is xenophobic.
This is a really good article. Among other things, it is one of the few articles in which I have seen acknowledgement that the cost of the manufacturing stage of software is trivial, but the cost of writing software is large because it is part of designing software.
The ``Pitfalls ...'' article pointed to this article as an exmample of what model is being followed & what the Pitfalls article recommends against.
Though the issue of the virtual magazine in which this copy is published is dated December 2003, I believe this is an old article which I read months ago.
It's a good article, but this one quote is especially choice: He says that we live ``in a world where ease-of-use can make the mandatory Microsoft software hard-to-understand as well as inefficient-in-operation''.
Excellent! The Silent Hills are three of my favorite games. I can hardly wait for yet another.
(defvar *db* (with-open-file (strm "data.lisp")
(read strm)))
(defun list-name (name used?)
(and used? (list name)))
(setq names
(apply #'append
(mapcar
#'(lambda (x)
(apply #'list-name x))
*db*)))
It could be briefer. Don't need the *DB* global variable or the LIST-NAME function.
(apply #'append
(mapcar
#'(lambda (x)
(apply #'(lambda (name used?)
(and used? (list name)))
x))
(with-open-file (strm "data.lisp")
(read strm)))))
Something tells me there is an even more concise, hopefully simpler, way to do it.
I didn't see much of interest or use in this ``Angry American'' article. He had a decent point, but it was made after the first or second paragraph.
The British music industry sounds far more rational than the American one. They actually make a case other than ``we deserve to make money''.
I heard an interview of David Byrn on National Public Radio. It was nice to hear that someone else thinks Power Point presentations are ironically anti-communicative. Even better, he could make a case for that argument. He produced an artistic project with Power Point. Sounds like it's for sale on DVD. I think I'll have to get it.
Mister Morgan provides valuable food for thought in the final paragraph of the first page of the article when he asks whether Congress becomes a rubber stamp when it is controlled by the same party that controls the executive branch.
Sounds like there really was a Tron 2.0 movie, but it must have fizzled in 2002.
I think I've been there.
Appears to have nothing to do with the movie. Looks like whatever it is called Tron in this context is important to someone, though.
Large corporations suck. Governments which believe corporations are more important than humans suck even more.
.hack 4 arrived in the mail yesterday. Woohoo! Guess what I'll be doing while I stay up all night tonight.
I have heard that the reason we perceive a past & a future is simply a limitation of our monkey brains.
It would make a sort of sense of it was so. Maybe it was easier for evolution to develop a brain that had a concept of past & future than it would have been to develop a brain that did not distinguish, & maybe the more limited brain was good enough for our ancestors.
Maybe the reason for the limitation in our brains was storage capacity. Events that happened a long time in the past are usually remembered with less detail than are more recent events. It's as if a brain exists at all times, but more distant information is conveyed to it with less clarity than closer information.
If all this were so, then the limitation in our brains is purely biological & structural, & there is no fundamental reason that a brain or other machine could not perceive the future, just like we can perceive the past. We could probably make a machine that could see the future. Maybe we could twiddle an embryo's DNA some day to produce humans who could perceive the future.
It's excellent food for thought, but I don't buy it. If it were so simple to make a future-perceiving machine, it seems like we would have done so already. I guess that's a weak argument. There are plenty of other machines which have not been created yet, & just because the concept of time is ``simply'' a structural limitation of our brains does not mean that creating a machine without the limitation would also be simple. Nevertheless, I have another explanation of why there is time.
Months & months ago, I read in Scientific American an article about multiple dimensions. Or maybe it was about multiple universes, & towards the end of the article they discussed dimensions. Anyway, the article said that at one point, the universe contained a lot more dimensions than the ones we know. All the dimensions were separate, but they quickly collapsed. They could have collapsed into many different configurations, but they happened to collapse into the four we know: three four space & one for time.
Time has in common with the spacial dimensions the property that information about an event that is far removed is diluted. For example, in the same way that you can get more detail about an event that happens on the other side of the room than you can about an event that happens on the other side of the galaxy, you can get more information about an event that happened a minute ago than about an event that happened five billion years ago. This isn't an unbreakable rule; it's a generalization. Some events, like a supernova or stapling a list of grievances to a cathedral door, produce more information than others, like the decay of a single neutron or a sneeze.
Where time differs from the spacial dimensions is that it allows information to flow in just one direction. You can get information about events in the past but not about events in the future.
At first, I thought I saw a hole in this statement. If a brick is dropping, & if I have the measurements of its height & velocity, I can use plain old Newtonian physics to figure out when the brick will hit the ground. (I'm not quick enough with a pen to do it before the brick touches ground, but I could rig an electro-mechanical device to take the measurements as the brick fell & feed them to a computer which could produce the answer before the brick touched ground.) So I could know when the brick would touch the ground before it touched the ground. I could perceive the future.
Did this really perceive the future? What's really happening in this case is that I'm taking information from the past (the measurements of where a brick was & its velocity), & then I'm applying computational work to extract more information from it. I'm not sensing the future; I'm extracting the maximum amount of information from the past. My prediction could be as accurate as I want, but it's still an approximation of what will happen. I won't know what actually will happen until it has happened & I measure it. So predictions made from physics & other ``laws'' of nature are not perceptions of the future; they are maximal information extractions from information of the past.
So as far as I know, time is like space in that proximity generally matters, but it differs from space in that information travels through it in only one direction.
Thank-you for reading this ramble. It's amazing what you dream up when you are half awake in the wee hours of the morning. Also, I'm aware this is not an original idea. For some reason, I felt like writing it down.
On the radio, they said that calves are often fed cow blood so that their mothers' milk can be sold.
Yes, I like black pudding. Yes, I'm a supporter of vampirism in general & have partaken a few times, but something about a calf drinking blood as a replacement for mother's milk turns my stomach. It has nothing to do with the possibility of the calf contracting a disease through the blood, which was the point of the news story.
So I just quit eating beef. Period.
This article does not appear to be rooted in reality. It rambles. I think Mister Timmerman is saying that many people in the government (many Republicans, it seems) have accidentally & sometimes on purpose thwarted discovery or revelation that Iran funded the terrorism attacks on the United States on 11 September 2001. I think that's what the article is saying. Mostly, it's just crap.
It's amazing that the ``(Darwinian) Evolution is Only a Theory'' and ``(Darwinian) Evolution is Controversial'' memes are so fit to survive.
Disclaimer: The following idea falls in the ``Silly Things That Come to Mind When I Can't Sleep'' category.
Time travel into the future is fairly easy. Just suck all (or most or much) of the energy from an object, & keep the energy from re-entering until the object has arrived, & then let the energy re-enter the object.
In other words: Freeze it, keep it cold, & thaw it when you're ready.
Sure, that method needs some refining so that living beings can use it to travel hundreds or thousands of years into the future, but the general technique is pretty obvious. Maybe it could be improved by freezing more thoroughly, or faster, or more slowly, or with chemicals to prevent crystallization or something like that. Whatever.
If you have to suck the energy from an object to make it travel forward in time, maybe you need to expend energy to push it backward in time. To my knowledge, a technique for doing that hasn't been developed. Maybe it requires too much energy, too. How much energy is required to push an object 100 years backward in time? Answer: You don't have the slightest idea. In fact, nobody knows how much energy would be required to push an object backwards one second. Maybe it takes a ton of energy. Maybe it requires the near-instant expenditure of 100 years's of output from a sun. Or maybe it requires more energy than is in the entire universe. Except for that technical hitch, maybe it's otherwise possible.
My own domain name, CyberTiggyr.COM, is older than Sun's domain name.
Others haven't been able to force democracy or peace in the Middle East. Why should the current administration have any luck? Why is their approach a ``sweeping change in the way we approach the Middle East''? I wonder how many guns they will need to point at the Middle East to enforce democracy.
In the translator's notes for the show, I read that the symbol for Atomisk is a combination of the glyphs that mean ``adult''. Raharu & some other people are looking for Atomisk. Naoto transforms Kanti into Atomisk, who usually saves the day & then boogies out of there. Ultimately, he leaves Earth & Raharu follows him on her flying Vespa.
Is Atomisk elusive adulthood? Is it significant that adults in the show want to find Atomisk, but the kids don't really care?
I can't tell whether the adults want to help or harm Atomisk when they find him, too.
The only time I recall Raharu experiencing disappointment is at the end of the last episode, when she looks up at the sky after Atomisk leaves the planet.
I bought Champions of Norrath for Playstation 2 yesterday, & I'm having so much fun with it that I needed to find some artwork about the place. Official artwork & fan artwork are fine by me.
Great pictures! Exactly what I sought.
The people in power of the USA reduce the innocent freedoms of their own people in the name of making the world safe from terrorism. They are bastards. It's getting so bad that I'd rather see the world safe from democracy.
The chairman, founder, & bastard of the Traditional Values Coalition is quoted in the article as saying that marriage is the USA's most important institution. My conclusion: The Traditional Values Coalition has no sense of perspective.
The three contestants are successful game designers, & weeks before the conference, each was challenged to design a love story. Love stories have not been done in modern computer games, or at least not often & not with much success. It is interesting to read about what each designer created.
In particular, Spector's musings about romance in games is fascinating. He tried to design a game that would produce love in the player. He concluded that there's a difference between a player's actions & emotions. A game can present a problem, obstacle, or situation, & the player must act to overcome it. The game can measure those actions, but it can't measure the emotions. And it's nearly impossible to ensure that the game fostered particular emotions in the player. Spector also concluded that games will need better characters & chat systems before love stories could work. Sounds like better A.I. to me. Maybe it can't work until there's a computer character that is a real personality, if in a virtual world, with whom the player falls in love.
Will Write is the creator of The Sims. I think of his work as artificial life (a-life) in the practical application of games. He's known for doing things differently. What surprised me in the article is that his idea for a romance game seemed least different from the most common non-romance games we already have - shooters. His romance game would take place within an existing military combat game.
His item number 6 was the most interesting, I thought.
I'm cleaning up my home office today - in the physical world & the cyber world. I'm looking at some old data files I have, like a geneology database. I entered that geneology data in about 1990. I became a customer of the shareware company that made the geneology app.
It's probably not worth my time & effort to retrieve that data. I'm not concerned about it (which is further evidence that it's not worth my time & effort), but what if I did want to retrieve it?
It's likely I could retrieve the data if I really wanted to, but there's some risk I couldn't.
Like I said, I'm not too concerned about this geneology data, but it has me thinking about portable data formats.
Notice the kinds of portability that applies to data:
Portability across the years is affected by the other forms of portability. Lest anyone think that the features of future computer systems are always a superset of the features of the past, thereby making portability into the future easy, consider file versions.
Some operating systems of the past had versioning built into their files systems. Multics was such an operating system, & it was not the only one. Didn't the Vax operating system (VMS) have versioning, too? Versioning is an example of how later computer systems do not automatically have all the features of past. You can install versioning systems (such as source code control systems), but they aren't always present any more, & they aren't part of the file system. A file format from the past that somehow relied on a versioning file system would not port well to a modern file system. Are there file system features we have now that will not translate well to computer systems of the future?
One technique for data files that are portable is the unix convention of one-record-per-line in a text file. I think that technique satisfies all the types of portability I mentioned if you use a fairly restricted character set & if different computer platforms of the present & future have a concept of text & are able to convert from one platform's text format to another. Those restrictions are reasonable for many types of data.
What about Lisp data files? What if I feel like it's too much work to condense my records to a unix-style file, so I want the extra expressibility of a Lisp data file. Maybe one of my fields can contain arbitrarily long amounts of free-form text, or maybe some fields may be absent. My Lisp data might be a file with records like this:
;; One record in a hypothetical Lisp
;; data file
((first-name "Joe") (last-name "Smith") (id 2113242)
(comments "This could be free-form text of any length."))
I could do that in a unix-style, one-record-per-line file, but it's not so easy. I might encode the free-form text so that none of its characters interfere with the field separator character, but then I might have a maximum length problem. Or I could make the free-form field be the name of a file that really contains the free-form text, but I'd need to ensure that the filenames were portable. Either would work, but it'd be easier to use Lisp data.
On the one hand, it looks like the Lisp data is less portable because it's language-specific & depends on some documentation that a non-Lisp programmer might not have.
On the other hand, even though it's Lisp code, meant to be read by a Lisp, I've many times written limited Lisp parsers in C that could read it even though they can't read general purpose Lisp. It takes about one day to write such a limited Lisp parser in portable C.
Most importantly, the data I've shown, called an assoc-list, is so basic that it goes back to before 1960. It's documented in every Lisp book on the planet. So with some notes by me about what each field means (& their names are pretty self-documenting already), the format would be well-documented. And assoc-lists won't change. Like the TEX standard, they are independant of any single company or entity, they are documented by lots of different people, in different natural languages, at different times.
So is such a format portable across the years? I don't know. I mean, it is portable in many ways, but would it be a good convention to use?
If simple Lisp data files are portable, then how about data expressed in a subset of Perl, like this:
# Haven't used Perl in a year. Please
# forgive small syntax mistakes.
{ "first-name" => "Joe",
"last-name" => "Smith",
"comments" => "This is free-form text." }
Ultimately, it seems like the most important factor in whether a data format is portable is documentation. If the format is documented explicitly, then if someone in another time had data in that format & also had the documentation for that format, she could write a program to read the format if it was important enough to her.
For example, let's say there is a binary format designed for Motorola 68020 processors. Even though it assumed that integers were signed, two's compliment, composted of four 8-bit bytes, & big-endean, the format would be portable if all those assumptions were documented.
There are factors that could prevent that data format from being portable. If people in the future simply did not have hardware that had any ability to read 8-bit bytes, it would be a problem. Nevertheless, documentation is the key, the single most important factor.
What if a software company wanted to offer as a feature of their application the portability of a documented file format, but they didn't want to run the risk of losing customers to a competitor's application that could read their data files? How could they achieve portability without that risk? Here's an idea.
Periodically, the company could release the documentation to their file format. The period could be whatever works: Every minor release, every major release, every time they release a patch, whatever works.
So when they release the documentation to a file format, they also release a new version of their application that uses a newer file format. And their new file formats are not small extensions of their old formats. They are completely new file formats.
It's a lot of work to make a whole new file format, right? Yup, but what if there was an programming tool that generated file formats? You could tell it what information you needed in your format, & it could produce an encoding. Hell, it could produce functions in your programming language of choice to read & write the files.
I've personally never seen such a programming tool, but way back in my academic days (late 1980s to early 1990s), I talked to someone who was planning to transfer to another university for her graduate work, & she planned to work on ``protocol generators'', which sounds a lot like ``file format generators'' to me, or something that could translate to file format generators. And my programmer's gut feeling says that a file format generator would be possible.
So that's how a software company could simultaneously document their file formats (at least older ones) without increasing the ease at which a competitor might reverse engineer their application's proprietary file format.
Imagine rpcgen, the interface compiler for Sun's Remote Procedure Call (RPC) system. It consumes a semantic description of an interface & generates the C functions to read, write, send, & receive messages on that interface.
A file format generator could consume similar semantic descriptions. It could randomize the order of the data elements, then it could decide how to store each element. For each element type, it could have a repertoire of representations, & it could select one randomly. Composite types would be randomized recursively. Then the file format generator would output code to read & write the files. The internal representation of the data in the files would not change; the file format generator would not randomize that.
For example, maybe I tell the file format generator that my data files contain a couple of integers, a text field, & a linked list of (integer, text) pairs. I want them stored internally like this (using pseudo-RPC syntax, which is pseudo-C):
struct IntTextPair {
int i;
char text[];
struct IntTextPair *next;
};
struct File {
int a;
int b;
char label[];
IntTextPair *list;
};
The file format generator might first decide how to store an IntTextPair. Maybe it decides to write the next pointer first; then the integer as four 8-bit bytes, big-endean, two's compliment; then the text field one 8-bit byte at a time.
Then it decides how to store a File. It shuffles the fields into label as length-prefixed text in four-character chunks, big-endean; then the b integer as a base-36 ASCII integer with single terminating space character; then the linked list of IntTextPairs; then the a integer as four 8-bit bytes in little-endean order with a per-byte bias of 42.
The file format generator might decide on holistic encoding changes, too. Maybe it shuffles the file's bytes in a particular way, or it uses an encryption algorithm whose key will be hard-coded into the program.12.2
Then the file format generator produces functions to write a File record into the format it has created & to read the data back into a File record.
Notice that the file format generator doesn't mangle the File or IntTextPair structures at all. So even though I must recompile my program when I generate a new file format, I don't need to change the source code.
The file format generator could be designed to work with old encodings it has created for the same data. It could write newer reader functions to automagically convert old data into the newer internal format. It could also produce a natural language report that describes the file format.
There was a time when ``tron'' was a command in BASIC which meant ``trace on''. That was before the movie, if memory serves.
I had a weight-lifting buddy from Norway whose name was Tron.
Most of the top-level comments were made by the uninformed or by trolls. Many of the lower-level comments tried to correct them but apparently without success. Too bad there is so much misunderstanding about ``free''. I blame English's ambiguity & a narrow-minded capitalism.
Stallman's article was pretty good.
This article is a great crack-up. It shows how Billy Graham and Jerry Falwell both love the violence, & the quote of James Dobson from Focus on the Family12.3 is priceless. ``Tremendously refreshing''. God12.4, it's too funny.
Why did Al-Qaeda attack the United States on 11 September 2001? From talking to other Americans, I gather that the popular opinions are ``because they are madmen'' and ``because they just hate us'', but neither of those are useful answers. Those answers are analogous to replying to a child's question ``Why does the grass grow'' with ``because it does''. It would be more useful to tell the child ``I don't know exactly, but all living things grow, & grass needs sunlight, water, & some nutrients from the soil to do it''. Likewise, dismissing Al-Qaeda as madmen isn't very useful.
Besides, it is statistically unlikely for an entire group of people to be composed of madmen. True madmen don't occur that frequently in the population. Maybe the leaders of Al-Qaeda are madmen, but they would have to present ideas that the sane majority of the group could follow. Then the majority would be mislead, but it would be incorrect to say that all members of Al-Qaeda were madmen.
Compare this to Nazi Germany. Led by the Nazis, Germany committed more attrocities than Al-Qaeda has, but were all German's mad? It's unlikely that all Nazis were mad. Instead, a handful of mad (or amazingly evil) leaders spread hateful ideas that the majority could swallow & follow. Germans were misldead, but they weren't all mad.
According to Mr. Drazner, Al-Qaeda has fanatical religious motivations, including an Muslim law which says that once a country is conquered by Muslims, it must never again be ruled by non-Muslims. That law would relate to Spain but not to the United States, but other Muslim laws might have inspired the attack of 11 September 2001.
I don't know how credible this article is. It appears to be a personal blog entry.12.5 It rambles & verges on suggesting a conspiracy theory, but the section titled `` Profile of An Angry Man: Ayman'' is relevant. That section of the article discusses one specific individual, but I extrapolate that one explanation for Al-Qaeda's motives is that the leaders are fanatics from a religion which, unfortunately, has laws which contradict the freedoms of modern societies.
Speculation by me: The conflicts began small & personal when these leaders were young men, but they progressed as classic dramatic tragedies: A religious teacher who imparts his fanaticism in his student also motivates a minor act of violence in the 1970s. He's arrested & imprisoned. His admiring student, now a teacher & leader himself, is angered even more, inspires a more serious act of violence, is himself arrested or killed, which angers his students. After just a few cycles of this, spanning 2.5 decades, we've progressed from demonstrations which crosses the line from peaceful to violent but still not deadly, to mass murders. This is speculation on my part, but according to the article, it's what happened in the specific case of Ayman al Zawahiri, who is connected to Bin Laden & Azzam.
Interestingly, & not related to my question about Al-Qaeda, the article makes a case that profiling would not be very effective. It uses Kaczynski, the Unabomber, as an example. He was not on the list of the top 200 suspects because he differed from the profile in just a few important ways.
This article is great! If it's correct, it pretty much tells the story. Not the whole story, but it shows what kind of thing is going on.
Ronald Reagan, as president, compared the mujahideen to the United States's ``Founding Fathers''. This hints that, during the entire story, the U.S. was stirring up trouble.
Zawahiri began using suicide bomber's. Until then, Islam forbade suicide & the murders of innocents. This was a surprise to me. It is also ironic that the fundamentalists broke their own traditions in their fanaticism.
No party is innocent. Read the two-paragraph story which begins ``Egyptian intelligence agents devices a fiendish plan'' at http://www.newyorker.com/fact/content/?020916fa_fact2h. It's really, really sad what happened two those two teenage boys, & it shows that neither the governments nor the Islamic extremist organizations are innocent.
From Lawrence Write's article, I think I have a feel of what's going on. It's a tragedy.
The whole story started a thousand years ago, but the recent parts started with Sayyid Qutb's disgust at the lack of spirituality in American culture around 1950. His reaction was to become a radical, militant Muslim.
It sounds like the original form of Muslim militance in Egypt was civil disobedience taken to the point of bad taste, but not mass murder. They got tied up in Egyptian revolution & politics. Qutb became a martyr. Anger, resentment, & the desire for revenge increased with all the unfavorable consequences to militant Islam's violent actions. After a few decades of this, they were mass killers. That's how a tragedy goes: The hero states a fate he will avoid & a goal he will achieve, but with every choice he makes, he walks into fate's open arms & away from his goal.
Early on, the individual stories are personal tragedies, but by the 1990s, I was losing track of who was allied with whom & what their goals were. It became failed, bitter revolution, then international conspiracy.
The governments involved didn't help, either. It sounds like every time an extremist Islamic group instigated violence in Egypt, the Egyptian government would round up hundreds (literally) of Islamic extremists & anyone associated with them. They would torture their prisoners, at least some of them, execute some, & give others prison sentences. By 1980, history had shown that this was not a productive way to deal with the problem.
It also sounds like the United States may have been stirring up trouble all the while. Doesn't sound like the U.S. created the problem or intended to make it worse, but it diddled with the problem & did make it worse.
So it's a tragedy: Some individuals, then groups they led, clashed with governments & popular opinion, & everyone - everyone - responded in exactly the right way to make it worse later.
The extremists Islams, who dislike the modern world so much, appear to want the freedom to worship in their own way. (At least that was one of their original goals. From things said by Zawahiri at a trial in Egypt about 1980, it sounds like their goals had been muddled & confused by then, with talk of Jewish conspiracies. And about ten years later, Zawahiri(?) claimed that the Jews control America entirely.) The irony is that the modern world recognizes that right. Sure, many or most places in the modern world don't recognize enough religous freedom, & if someone was stuck in such a place, the religious freedoms of other countries wouldn't do them much good. But look at the determination of these extremist Islams. If they had avoided violence & complained about lack of religious freedom, they could have done it loudly enough & long enough to get the attention of much of the world, & if they had avoided violence, they could have won the sympathy of the free places in the world.
They remind me of the pilgrims from England to America. In school in the U.S., we're taught thta the pilgrims wanted freedom from the religious persecution in England, but that's not quite true. They wanted to live away from the less pious English culture. So they came to the New World where they would be free to practice their puritanical beliefs. The current Islamic extremists have the same wishes, but they don't have a new world to colonize.
Another irony is that their wish for religious freedom would subject the rest of the world to their religious law & control. Much of the modern world recognizes an individual's right to worship as he pleases but not the right to subjugate anyone else.
More technically, the extremists have been infected by several memes: strict religious beliefs, desire that everyone else share those beliefs, & the willingness to use force to obtain that desire.
Are these memes necessarily part of the structure of an Islamic mind? Nope. Most Islams do not share them. Also notice that, according to Lawrence Write, suicide & killing innocents was forbidden by Islam until Zawahiri began using suicide bombers in the 1980s. So these memes are not inherent in Islam; in fact, the third one was contradicted by Islam.
These memes don't always travel together. h The pilgrims to America, whom I already mentioned, had the firt of those memes & probably had the second or something similar to it, but they didn't declare a crusade.
The pilgrims lived hundreds of years ago. Maybe those memes travel together in the modern world? Again, no. Consider the Amish. They have the first meme, the second or something similar, but they don't have the third. They take work hard, take care of themselves - respectable behaviour in the modern world; they happen to keep to themselves, which isn't any crime.
History recent & ancient shows that violence is not the way to get rid of this collection of memes. Even if you stamp them out by killing everyone who has contracted them - a practically impossible task in the first place, they arise again. There is evidence of that in Lawrence Write's article alone. (I sure wonder why. The strict Islam meme appears to have infected many students independently in the early 1970s. What caused that? Very interesting.) Reacting with violence to the violence of Islamic extremists has only intensified the problem. Yes, yes, yes, it's the natural human reaction & maybe it is even ``justice''12.6, but is impractical because it isn't solving the problem. Not only has the problem persisted, but everyone is more upset than before.
Maybe the only way to solve the problem is to mutate one or more of those memes. The strict Islamic beliefs meme appears to arise spontaneously, & there's nothing wrong with it by itself, so leave it alone.
If the third meme went away, people with the first two memes would have a lot of stress because they wouldn't live in the world they wanted (everyone was similarly strict) & they would have nothing to do about it. I'll betcha the third meme (willingness to use violence to achieve the first & second memes) would arise spontaneously. So it would be better to mutate or replace the third meme then to try & remove it. It would need to be mutated into or replaced by a meme that helped prevent the build-up of anger in people who have the first two memes. A willingness to vote? To advertise? To write books & produce television shows & movies?
The best bet might be to mutate or replace the second me (desire for the rest of the world to share the first meme). Maybe it could be replaced by a respect for other cultures & beliefes. Maybe it could be replaced with an appreciation of the challenge of remaining true to strict Islam while remaining a contributing, appreciated member of a world which provides many temptations to forget one's Islamic beliefs.
The article may be factual, but it's presentation is designed to raise fears. That makes the article a tool of terrorism.
I knew biotech would move offshore, but I figured it wouldn't happen until biotech was the happening industry to work in.
If I opened a landscaping business, would it be safe from offshoring?
Of course, offshoring isn't the problem, it's the symptom. The problem is that work in America costs too much for what it returns. I suspect the fault is not that of the American worker. The problem is the cost of doing business in America.
Like I said a few days ago, it's a tragedy & none of the players are innocent. Regardless of who started it, each actor reacts violently to the last thing another player did, so the problem persists. I am disappointed that humanity hasn't matured enough to realize that finding a compromise would be better than perpetuating & escalating a disagreement.
A friend recommended it, & it's hilarious. Here's what my friend said: ``I thought the rundown on Superman's battle strategy with Metallo was the best (I had to stagger around the room to deal with my laughter) until I read on through the fanciful description of the JLA/Avengers battle.''
In Designing Virtual Worlds, Richard A. Bartle makes a brief case that virtual worlds are no games. His arguments were convincing to me, but he was preaching to the choir, so maybe I'm not a good test case.
In Chapter 2, Mister Bartle claims that the CPU cycles required for Artificially Intelligent (AI) entities within the game is a limiting factor. Path-finding, for example, consumes lots of CPU cycles, & it's a pretty basic, unintelligent activity.
Bartle may be correct that CPU cycle consumption by AI is a limiting factor in existing virtual worlds, but it doesn't need to be that way. Unlike many other computational demands on a virtual world (which Bartle discusses), the burden of AI can be relieved thoroughly by networked computing. (I said networked computing, not distributed computing, which is a more advanced idea.)
Here's my proof.
Let's say that you have the clients & server(s) for your virtual world. You've implemented everything except the AI. You want lots of independent intelligent organisms in your virtual world, but you can't spare any CPU cycles. What do you do? How do you achieve lots of independent intelligent organisms?
If your server architecture expands well by adding more hardware, you might add more hardware to get more CPU cycles, but then you'd need to incorporate the AIs into your server. Your server already works, so you don't want to change it.
It's better to implement the AIs as client programs on separate hardware than within the server.
The client-server protocol that your server uses already conveys much of the information the AIs will need. Maybe AIs don't care about textures, but they need to know where they can walk & the locations of other nearby organisms (monsters & players). The types & locations of those nearby organisms are already in the client-server protocol so that the client program that players use knows how to draw the different organisms. Similarly, it already contains terrain.
Maybe some things the protocol conveys are of interest to players but not to AIs. The AI can ignore that data. If bandwidth is an issue, the protocol might allow the client (whether player's client or AI monster) to tell the server not to send that part of the data. An AI monster might want some information that a player's client doesn't. Maybe it needs to know its absolute coordinates in the world, but I think players's clients use that information, too. Maybe it needs to know the location of some key item so it can stay near (or away) from that, but I suspect the AI for a monster could approximate the item's location on its own by getting near enough to ``see'' it with the client-server protocol, then remembering where the item is as the monster moves. If the monster ever forgets where the item is or loses confidence in its estimate, it can go find the item to establish its location again. (By the way, this is what real organisms do.)
Within the server, an artificially intelligent monster is an entity like any other. It has a position, hit points, a defense rating, an attack rating, a list of actions it can perform, & rules about when an action is prohibited. The intelligence doesn't need to be in the server.
So you write your AI monster as a client of your server. It might have some special contact with the server - maybe a custom login sequence, but most of it interaction can be done through the regular client-server protocol.
The end result is that you could implement your AIs as self-contained programs, outside of the server, & you can run them on their own hardware. Maybe you need one entire computer for each AI, but you can probably get many AI programs on a single computer (because you were considering implementing the AIs within the server, sharing hardware with the other server functions).
This scales well because the AIs are independent programs which connect to the server. We already know your server can handle lots of multiple connections because it can handle lots of player connections. The server(s) still need to handle synchronization, but their job is a little simpler because the AIs are not part of that synchronization process. The AIs don't need to synchronize with each other directly. The actions of the AIs synchronize through the same mechanism that handles the actions of the players.
Bartle mentions that monsters in the current multiplayer on-line role playing games sometimes can't leave one zone & enter another because that would cross servers. The technique I have described here would allow AIs to cross zones just like players can.
Bartle says that a virtual city of 100,000 independent AI citizens is currently impossible, but the technique I've described could get a lot closer than implementing the AIs in the server.
You might even achieve 100,000 AI citizens with my technique currently. If you can put 1,000 AIs on a single computer, then you'd need 100 computers for AI citizens of that virtual city. 100 computers might be a lot for a game company, but on-line retail companies (Amazon.com) & search engines (Google) keep thousands of computers running continuously, so it is feasible in some industries, but maybe not for on-line games.
The technique might work well in the presence of some hardware failures. Imagine that we have the city of 100,000 AI inhabitants. We run 1,000 inhabitants on an AI server (not the servers that are the virtual world), & we have 100 such servers. With 100 servers, one of them could fail.
Let's say that one of those servers fails, taking 1,000 citizens with it. (Don't cry for them. They were backed-up & will be restored as soon as the IT team has replaced the hardware.) Now the city has 99,000 active inhabitants, which is still a good-sized virtual city. Let's say that the shop-keeper named Bob ran on the server that crashed. Is son, Alec, ran on another server which is still in operation. Alec the AI can normally be found on a street corner, giving directions for player characters who visit the city for the first time, but he's programmed to check on is dad in their family store every hour, & if he sees that Bob isn't there or has some other problem, Alec takes over the store until Bob returns. Similarly, militiamen who normally hang out at the barracks could be programmed to assume the posts of guards which crash. Not only could you program your AIs to behave this way, but it's also realistic behavior.
Now, if one half of your AI servers crashed, you might have a problem. Then again, your city would still contain 50,000 active inhabitants, which is still a claim to fame.
If you play a MMORPG long enough, your character gets to level Insane, you eventually have lots of great items, & you have so much money you can buy almost anything.
To maintain the challenge for these characters, the game's live team add more difficult monsters. The additions work for a while, but eventually you have dragons with billions of hit points which can do billions of hit points of damage when they breath fire. To my mind, it gets silly.
Even if the monsters got more & more difficult forever, eventually you figure out how to estimate your ability to tackle them, so the challenge of more & more difficult monsters ceases once you grasp the meta-challenge of determining when you are ready to tackle a monster.
So how do you maintain a challenge for these players?
The only challenge that can escalate potentially forever is fighting against other players.
In general, I don't like games that allow players to kill other player characters. So I think a game should not allow player-killing, but maybe characters that reach the ultimate level (or the ultimate number of skill points, in games that don't use levels) can kill each other. They can't kill lower-level characters, & lower-level characters can't kill them, but ultimate-level characters can kill each other.
I think this would make the game extremely interesting for characters which reach that point. All of a sudden, they can be killed by other players. Not every player, sure, but other players of the Ultimate Level. Maybe that level of character is rare, but in theory it could be anyone in a crowd. Heck, it might even be your best friend, who is normally loyal but how might think it'd be funny to back-stab his long-time buddy's character one time.
What's more, I say that an Ultimate Level character is now mortal. Where lower-level characters reincarnate if they are killed, an Ultimate Character doesn't, so his player has a lot at risk. (If an Ultimate Character is killed, you don't cancel the player's account, but he has to make a new first level character. The new character's user-selectable attributes & name could default to those of the Ultimate Level character, so it could be as though the new character is a first-level reincarnation of the Ultimate Level character who was killed.)
I'll bet that some players with Ultimate Level characters would try to stay alive as long as possible. They'd avoid other Ultimate Level characters, & since that could be anyone, they'd become loners on the run.
Others would seek out the battles, even though they had a lot at risk. They'd find other Ultimate Level characters & challenge them. They'd probably be labeled as evil. Maybe some of the other Ultimate Level characters would band against them.
I think the players who had Ultimate Characters would inadvertently create a conflict like the one in the original Highlander movie (1986), though the movie wasn't my inspiration.
I've heard some talk of re-instituting compulsory service in the United States's military. Here are some articles I read while researching that thought.
It is especially interesting that the Pentagon says cumpulsory military service is more costly & generally a bad idea.
The author is this article advocates conscription early in the article. At first, that made me think he was one of those mindless bozos who listen to Rush Limbau, but he made a good argument about how the cross-section of soldiers in a democracy's miltary should represent the social & economic cross-section of the population at large, & how the military of the United States currently does not. So some parts of the population are paying for combat in Iraq more than other parts are. It's a good point.
I discovered Quizilla today.

Say
Anything...
What
movie Do you Belong
in?(many different
outcomes!)
brought
to you by Quizilla
Even better...

Nihilist Bear
Which
Dysfunctional Care Bear Are
You?
brought to you
by Quizilla
I hate Microsloth. I vote with my dollars, & I don't allow their products in my home.
I think I'll need to write a program that creates a To Do list from comments in source code or other files & can change those comments for you if you check the items in the list the program produces. Of course, my program will be free software.
``Novell Wins Remand Contest- Case Stays in Federal Court - It's Copyright Proof Time''. Groklaw. http://www.groklaw.net/article.php?story=20040610183918915
The government originally said that the economy grew by 4.4 percent in the first quarter of 2004, but it turns out they were being optimistic. (Or maybe they were being sloppy, like when the reported that incidents of terrorism world-wide decreased in 2003. The spin fuckers.)
It's nice to know that someone in the government (the judicial branch, in this case) still understands the Bill of Rights.
Strangely enough, I agree, with reservations. CDs are already obsolte for some uses. They lasted about twenty years, maybe a little less. DVDs will have about the same life-span, which wouldn't make them totally obsolete in ten years, but it could make them uncommon for some uses in, say, fifteen years.
We won't use DVDs to distribute software ten or fifteen years from now, at least not most commonly, methinks.
I don't like the game selection for the Xbox.15.1 The Xbox game selection is for more casual, action gamers, like a bunch of guys getting together once a week to play games & drink a few beers. I, & many other gamers, prefer games with lots of story, like Silent Hill or Final Fantasy. While the range of genres for Playstation games is wide, the range for Xbox isn't. I have frequently wondered whether this is intentional on Microsoft's part, though I can't imagine why they would do that on purpose. Maybe their marketing department does not understand the importance of game selection & the breadth that is available.
Dumbshit SCO is at it again. They really are dumb. I wonder who's playing them. Microsloth?
^C^E.
http://addict3d.org/index.php?page=viewarticle&type=news&ID=2453
An excellent example of Fear Uncertainty & Doubt (FUD). He might be correct that defense systems should be held to a higher standard than any desktop operating system (Gnu/Linux or Windows). Also, he doesn't express it, but he skirts the idea that there should be no single standard operating system for defense systems or even on the Internet; that would be a good idea. His claims that Linux is insecure because it's open is basically naïve support of ``security through obscurity'', which is a contradiction of the Kirchoff Principle.15.2
Here is the body of an e-mail message someone sent to me:
!!! insert quotation here !!!
Could this be true? The e-mail messays says it's ``an advanced reconnaissance version never before seen in the West and is equipped with sophisticated electronic warfare devices''. Surely such a find would be in the news.
Summary: Russian weapons are used all over the world. There is evidence that some Russian ``Komet'' guided anti-tank missiles were smuggled from Syria into Iraq. There is no mention of Russian airplanes in Iraq.
Summary: It's not relevant to the e-mail except that it does mention that Iraqi fighter airplanes were grounded in both 1991 & 2003, so U.S. pilots did not fight them directly.
Summary: Notice that the article is not from a recognized news agency. This article on a web site claims that there is some truth to the rumor. It refers to a Tom Cooper who claims 30 to 40 of the ``Foxbat'' plaines were found. It does not give any references that you could track down, though. It also says that the planes were ordered in 1977, delivered in 1980. Could airplanes delivered in 1980 possibly be superior to U.S. airplanes of current day (2004)? (The answer is ``No way''.) Could airplanes ordered in 1977 possibly have been ordered in violation of restrictions the United Nations placed on Iraq after 1991? (The answer is ``No way''.)
Interesting: Iraq's temporary president, Iyad Allawi, proposes that the new Iraqi military activate a ``mothballed squadron of MiG fighter jets''. Could today's mothballed MiGs be the Foxbats that were discovered in 2003?
It shows that someone at Plume/Penguin isn't dumb. They claim they did not instruct Katie Tarbox's lawyer to buy katie.com from Katie Jones. That's technically true for certain, because the lawyer didn't offer to buy the domain name; he threatened Katie Jones that he would take it from her in court. I wonder if the lawyer acted entirely alone. I hope so.
The press release is brief & direct. It's a nicely written press release. I wonder why did put it in Pointless Document Format (PDF) instead of HTML. It is plain text except for one or two links. HTML could have carried the message just as well as PDF & in a smaller package.
I know the solution to the patent problem.
The link I've given is the introduction to a BBC radio show. From that page you can reach the plain text transcript of the show. It's the transcript that's worth reading.
It's a good article about civil rights in the United States. It's ironic that it only appears in a foreign newspaper.
According to Darwinian evolution as applied to economics, the people who value their privacy & refuse to reap the discounts will be at a disadvantage. Over time, they will become a minority, or the ``values privacy'' genome might become extinct. Auto insurance isn't the only such force in action now, & the future will create many similar forces.
We are devo.
Maybe the people of the United States aren't mature enough for gay marriage yet.
Java: The Cobol of object-orientation, which isn't bad unless you want to enjoy programming.
Sometimes you want an article. Other times, you want to see lists of what's discussed, maybe cross-referenced or tabulated so you can see differences.
Some material, such as a discussion of a programming technique, complete with source code & examples, is only suitable for an article, but other material, such as short reviews of books, movies, & games, are suitable to tabulation or presentation as a single article.
Sometimes, it is not clear where a small blurb belongs. Does this thing I'm writing now belong in my To Do list or in the chronological hodge-podge of my Thoughts About Everything?
I think a Web site might need to be backed by a database to support the tabulation features & to allow a blurb to be placed in multiple documents. If the database's functionality were exploited properly & combined with some A.I. which we might be able to write soon, the Web site could become a repository for someone's unstructured thoughts which could be assembled into articles about a selected topic on demand.
Voting records of politicians are public information. Let's assume there are other, similar information that are public & that we have some programs to gather it & stuff it into a database.
I'd be cool to use the database to show if a politician's voting history was pro-environment or pro-jobs. Or to compare the employment effects of one politician with those of another. Or to see how all politicians voted on certain types of issues, dividing the politicians into groups to see which ones voted most like they promised.
So what would you store in the database so you could report these things?
You might think you'd just store the voting records & then flags on each issue, such as ``pro-environment'', ``pro-employment'', & such, but Republicans & Democrats & other parties frequently disagree on such labels. For example (& I'm just making this up; it might not relate exactly to reality), the Republican's might say that lowering a tariff on Mexican goods will increase jobs in Southern California, Arizona, & Texas, while the Democrats say exactly the opposite. And unless you are both non-partisan & semi-omniscient, you can't say that one party or the other is correct.
I'm sure there are more complex cases, such as lowering taxes on a business that has had to lay-off thousands of workers because their entire industry is in a slump. Will the lower taxes allow the business to re-hire employees (or lay-off fewer), or does the lower tax rate reward a company for being heartless? I'm sure you could find people to argue for each of those claims & then some.
I haven't even mentioned issues that have a strong ethical component, such as gay marriage or whether to spend money to rehabilitate imprisoned criminals.
My point with these examples is that you can't just label each issue with simple flags to indicate who it helped or hurt, unless you don't mind that the database is useful to only you & people who have the same political opinions that you do. (But if that's what you want, maybe that's how you implement the political database.)
What if each label on an issue also indicated who would agree with the label (or who put the label there)? So for a ``lower the tariffs on Mexican imports'' bill, there might be one label that said ``good for jobs in Southern California, say Republicans'' & another label that says ``bad for jobs in Southern California, say Democrats''.
A querrent could then run a report on the effects of a politician's voting history on some issue according to a certain set of predictions. For example, I might run a report on the effects Strom Thurman's votes had on the environment, according to what the Democrats predicted about the bills. Or maybe someone I respect some analyst's opinions (labels) on the bills, so I run a report on the effects of Strom Thurman's votes according to that analyst.
Another possible report if labels contained a ``who says'' part would be comparisons between a politician's voting record & her party's ideals. For example, Republicans are generally in favor of lower taxes. You could run a report on a Republican politician to see if she really did vote for lower taxes. Democrats are usually in favor of jobs; you could run a report on a Democratic politician to see how often he voted for pro-job (according to Democrats) bills. What if you usually voted Democrat, but one of these reports showed that your incumbent Republican senator voted in favor of, say, job-creation bills more of the time. Maybe you'd want to vote for that incumbent in the next election even if she wasn't in your party. (Wouldn't that be cool! You'd be able to ignore political hoopla because you could see how a politician really did vote. Their party affiliation would mean nothing to you because you'd know how they really voted.)
Another interesting report possible with the ``who says'' feature of labels would be to compare your ideals with that of some party. If you had the time to label each bill with your own prediction about how it would affect issues which are important to you, then you could run a report that compared your predictions with those of your favorite (or most hated) party. Does your favorite party really support the issues you support? Does your hated party really disagree with you all that often?
Useful, but it's formatted badly, & the moving background is hard on the eyes.
I almost loved the previous Shadow Hearts & Kudelka. Looking forward to the next one.
Debunked maybe, but Java is still un-fun.
A love of the great outdoors in is fashion right now. People go camping in droves. They invent whole new outdoor activities, like competitive tree climbing. In Washington, at least, the masses flock to the great outdoors so frequently & in such huge numbers that they are unintentionally damaging the environment that they love.
Them's the facts.
This morning, I was thinking about that, & I remembered "Brave New World". In that book, the citizens were classified by the intellectual difficulty of their jobs (& presumably by their intelligences). The most intelligent were the Alphas. Then there were Betas, Gamas, Deltas, & I think Epsilons. The lowest (the Epsilons, if I remember right) weren't very bright. In fact, they weren't educated in any way. They were conditioned, though. They were conditioned to love outdoor activities. (The reader learns this because two of the doctors who control the conditioning talk about it.) Originally, they conditioned the Epsilons to love the outdoors, but then a whole generation of Epsilons went on long walks & sometimes on picnics. So they revised the conditioning process to make the Epsilons love outdoor activities that required lots of equipment. Then they bought lots of specialized equipment (like footballs, camping gear, fishing gear, rock climbinb gear, & all that), which helped the economy.
Need I ask about the relationship between the outdoor-loving masses of reality & the Epsilons of Brave New World?
Evolution is a ``controversial buzzword''? Apparently, Graham Walker, a theology professor at Mercer University, believes we should model our educational curricula after ``the way the old 17th and 18th century schooling systems''. Hahaha! It's too funny!
Seriously, it's amazing that some people (a large number, it sounds like) still think there isn't enough evidence that Darwinian evolution is a fact of life. Or maybe they erroneously believe it contradicts their silly little religions.
So candidate John Kerry says the ``war on terror'' can be won. Too bad. I liked him. I'll still vote for him because almost anyone would be a better president than George W. Bush, but I had hoped a President Kerry would admit that a ``war on terror'' was less substantial than Nancy Reagan's ``war on drugs'' & end it.
Haha! As if these mathematicians aren't the first to work on the problem? As if, even if P equals NP, there won't be any more mathematical problems on which to build cryptosystems? As if cryptosystems can only be built on mathematical problems? As if humanity is that important in the scheme of things?!!?
Is this for real? Is this real? Was this report really created by or for the United States government? More research is indicated.
Cool idea. I've talked to friends about it for a long time, but talking & doing differ vastly. Nice to see someone is doing it. Bummer, though, that he's storing the data in XML instead of plain old portable flat-files. Ah well, if I think flat files are such a better way to go, I should shut up & do it myself.
A Cornell West on the radio is talking about the problems with free markets. He has some excellent points. (Of course, he's preaching to the choir; I'm a socialist.)
Says unregulated global free markets create unequalities & injustices.
Says that free market policy these days is more of a free market dogma.
Conservatives, free market dogma believers, don't believe in truly unregulated free markets. Unregulated free markets would use child labor freely, but we have laws to limit child labor.17.1 Free market supporters take the weekend away from work. Well, that tradition comes from the efforts of unions to limit the control of free markets because in the early industrial revolution, when free markeets were free, they could & did require workers to work seven days a week.
That article is surprisingly content-free, consider its red-hot headline.
This article is mostly about the United States's use of Depleted Uranium, even today in Iraq. I was hoping to find articles about the US government's current explanation for why they have not found any Weapons of Mass Destruction in Iraq. After all, that was the reason the United States invaded Iraq in 2003.
The Web site that has that article, Axis of Logic, looks like it might be worth checking regularly. Maybe I should add it to my page of links.
Some notes about this article:
This may be the shortest news article I have ever seen. It is two short paragraphs.
At last, a thoughtful & rational article about Bush & Iraq. Too bad I disagree with it. But it really is well-written. I wish more people would put as much thought & reason into their political scrawl.
I like essays like this one. I add them to my mental list of evidence that Microsloth is evil. And Microsloth tops my list of evidence that unrestricted capitalism is evil.
Has more spelling errors than I care to count. I guess it's a blog entry, but it turned up when I searched Google News.
I overheard some coworkers talking about politics. They don't mind losing some of the freedoms of which the US was so proud because it makes us safer, they said. I thought about this later.
When we talk about freedom & safety, the safety we mean is safety from external forces: the war-making whims of a foreign government, personal financial ruin after a natural disaster, & others. In this context, freedom is safety from one's own government.
So safety (from external forces) & freedom are directions on an axis. In the direction of freedom, you become safe from your own government. The opposite direction is safety from external forces. Freedom can create a weak government, thereby reducing your safety from external things, but safety from external forces requires a strong government which could use its power against you if the wrong people were in charge.
I prefer lots of freedom. I've never trusted any government, not even my own.
I probably wouldn't mind people who preferred safety if they would recognize that they might need to sacrifice their freedoms to get it. It's when people say that the United States is the land of the free & the safe that I get upset.
Have you noticed that since about 2001, people giving speachest stutter? I had never noticed much stuttering in public speaking before 2001. Maybe it's no big deal among most professions, but it was uncommon for politicians to stutter. It's not now.
A common phrase politicians use now is ``What you have to understand''. I hate this phrase because it implies that the speaker must stoop to basic principles so the listener can understand.
In computer systems, protocols are synonymous with communication, & without communication, computers are useless. After all, the entire fundamental purpose of computers is to manipulate data encoded in a language. Proprietary protocols are evil.
If they allow the government to show the Ten Commandments & other religious symbols, I'll be upset because I prefer for my government to be agnostic with respect to religion. On the other hand, if they say the government cannot show any religious symbols, we might have to remove those which have been in place for decades or even a hundred years. Some of them are kind of charming, actually, so that would be a shame.
If we weren't such a litigious society, we wouldn't demand absolute resolution on all issues. Then we could have the best of both worlds. We wouldn't install new government-sponsored religious symbols, but we could enjoy the ones that our ancestors put in place.
Can we say ``practical application of cliology''?
When I read news stories, especially online, I notice the by-line. Often (again especially online) there isn't one. Today, I saw a single article in two places. One has a by-line, the other doesn't.
The one at Seattle Post Intelligencer distinctly attributes the article to Rachel Konrad, a writer at the Associated Press, whereas the one at ABC News attributes it simply to the Associated Press.
It's worthless to attribute the article to a large organization, especially a corporation, because it's better to know which individual humans created it.
I'm not saying there's a scandal or serious dangers here, but it is a reminder that information in electronic form is fluid, & your choice of source is important even thought it at first appears that you are getting the same information.
Is it technically possible to deploy an application with every class a COM component (*.DLL or *.EXE)? Is it common?
There will be a performance penalty if every class is a component. That penalty probably applies even with in-proc components, & it surely applies to out-of-proc components.
A technical twist with every class being a component is that some of your foundation classes will need to be multithreaded. That's so you can do an operation on a List that requires the List to do an operation on some other object (component) which itself has Lists. Or maybe that situation won't arise often.
Another technical hitch with an all-component application is that a foolish user could break your application by deleting an important component, such as List.exe.
An application with a lot of classes, each as a component in a separate file, will occupy more disk space than an application that is all in one file.
Are there other disadvantages to deploying an application entirely as components?
Are there advantages? If you had a suite of applications deployed this way, each application becomes a small executable file that joins together a bunch of components & starts them working. Heck, you might implement your applications in a script language that maps classes to components. (Isn't VBScript such a language?)
The only other advantage I know is that it's neat-o.
I learned later that this next paragraph is incorrect:
Notice that normal use COM is not good for distributing computations among many servers. With RPC, you can specify the server for a connection, so if you can run a service on many servers & send your calls to each of those servers. Basic use COM doesn't allow that, but I'll bet you could write a COM proxy that did it for you & worked with normal COM services.
In fact, you can specify the server host name when you fetch the class object for an out-of-proc component.
I usually purchase gasoline at the Shell station on
N.E.
Ave, near Larry's, in Bellevue, Washington,
USA. I usually use a credit card. When I tried to buy
gasoline today, the pump asked me for my ZIP code. I
tried 12345, but it didn't like that.
I paid cash. It was a serious hassle, but I'll be paying cash from now on, or I'll go to another station.
I didn't want to enter my ZIP code. I know that they already have my ZIP code, especially if they are prepared to validate my entry against my real ZIP code. I guess what bugged me was the idea that this was another hoop that a company was trying to make me jump without my permission.
So America is removing prisoners from Iraq to better interrogate them. Horrific, but not surprising. America thinks it's the bastion of human rights. It is really one of the countries that violates human rights the most, but it's more successful at lying about its means.
I like what America thinks it is, but I hate what America has become. Maybe it's time for a revolution.
A taste of what's to come. I hope the courts of each country & of the international community resolve these issues in a way that benefits people, not just corporations.
It summarizes the issue as a whole, not just for this case of Gone With The Wind. I wish more people could see that the issue of ``intellectual property'' is similar to, & only infinitessimally less significant, than the issue of freedom of speach.
A perfectly worthless article. I was looking for articles about the quality (or lack thereof) in American journalism these days.
A few paragraphs from this article are too choice not to quote here.18.1
This time,[Democrats]devoutly believe, jack-booted fascism is just around the corner.
Yep. I'm one of those people.18.2
Then there are these paragraphs, which are just too funny to be missed.
Meanwhile, many evangelical Christians are convinced that gay marriage is upon us and will be the end of civilization.
How they convinced themselves that Bush is the Lord's anointed is beyond me. I've known him since high school and watched him closely as a public official for 10 years, and I have yet to see the first sign of it.
That belief is just as hard to dislodge as their touching faith that we found WMD in Iraq and that Saddam Hussein was connected to al Qaeda. They believe both these things because the administration keeps claiming they are true.
Like I said, too funny to miss. Too bad they are true.
Pennsylvania Governor Ed Rendell claims that the latest video tape from bin Laden is meant to help George W. Bush win a second term as president. While there's a logic to that, it sure wasn't what I was thinking when I first read quotations from that video. I was thinking that bin Laden wanted to frighten USA's population & that he didn't care much who won. Well, maybe he slightly preferred John Kerry. After all, people have been speculating about an October Surprise instigated by the Republicans. This latest video is definitely an October Surprise, but it's exactly opposite the kind one the Republicans would have created.
Responding to a presidential tasking, Clarke's office sent a memo to Rice on September 18, titled ``Survey of Intelligence Information on Any Iraq Involvement in the September 11 Attacks.'' Rice's chief staffer on Afghanistan, Zalmay Khalilzad, concurred in its conclusion that only some anecdotal evidence linked Iraq to al Qaeda. The memo found no ``compelling case'' that Iraq had either planned or perpetrated the attacks. It passed along a few foreign intelligence reports, including the Czech report alleging an April 2001 Prague meeting between Atta and an Iraqi intelligence officer (discussed in chapter 7) and a Polish report that personnel at the headquarters of Iraqi intelligence in Baghdad were told before September 11 to go on the streets to gauge crowd reaction to an unspecified event. Arguing that the case for links between Iraq and al Qaeda was weak, the memo pointed out that Bin Ladin resented the secularism of Saddam Hussein's regime. Finally, the memo said, there was no confirmed reporting on Saddam cooperating with Bin Ladin on unconventional weapons.
Yeah, I know I've taken months to get around to reading what almost everyone else in the United States read as soon as it was published. I was reading news this morning & some things I read got me interested to know exactly what the 9-1-1 Commission had said about Iraq.
This article starts well, with an attempt to analyze parts of the latest video from bin Laden, but it concludes that bin Laden is a ``multidimensional psychopath''. In my opinion, explaining someone's actions by calling him a psychopath is a cop-out. It's certainly useless. I would like to read more analyses of that latest video, but I don't want them to take the easy way out by concluding that bin Laden is a psychopath.
I voted last night. My absentee ballot is now in the mail.
Methinks Tuesday's election will be interesting. I predict one or two cases of trouble, such as small riots at a couple of voting stations.
Posterity will remember that George W. Bush's only contribution to the good of America was that he motivated people to get off their asses & vote.
The problem with politics in the United States is political parties. I don't mean any particular political party. I mean the existence of any political parties. Any political system that contains long-lived political parties has a serious problem.
Consider the well-known ``checks & balances'' features of the United States's Constitution. The government is divided into three branches: legislative, executive, & judicial. The idea is that if one of the branches goes loopy, the other two branches, being independent, will show sanity & keep the loopy branch in check until it recovers its sanity.
As long as the branches are independent, with their relationships possibly seasoned with a pinch of conflict, I have no doubt that the ``checks & balances'' will work, but what happens if the branches of government are no longer independent? What happens if the members of two government branches share a loyalty, & it's not their constituency?18.3 What loyalty might that be? How about their political party?
For example, the president's power of veto exists to prevent bad bills created & approved by a nut-case Congress from becoming law.18.4 What happens if the president's loyalty lies with the same power (the same political party) as that of the nut-case Congress? Then he won't veto bills from Congress even if they are on the not-quite-sane side. Then we have to hope that court cases involving that law will be brought quickly to the Supreme Court, & that the Supreme Court maintains its objectivity. What happens if enough members of the Supreme Court share the same party loyalty as that of Congress or the president? The famous ``checks & balances'' of the Constitution become invalid.
If the shared loyalties were ethical ones, such as striving to do what's most practical, or to do what the people of the United States want, that's not a problem. In fact, that's a Republic in action, but today's party loyalties involve labels more than ideals. Sure sure sure, the parties spew idealistic claims, but they really aren't that much different. Loyalty to a party these days is more loyalty to a label.
Why aren't parties concerned with ideals? Because parties are more concerned with staying in power than with solving problems. If a political party was concerned with solving some specific problems, it would do its best to solve those problems, then it would dissolve, thereby making room for other parties to form to solve the new problems of the day. That would be neat because we would solve the problems which faced us, then turn out attention to the next set of problems which were behind them. That would be progress.
Instead, parties don't vanish. They persist. In a way, a party is an organism whose life-span surpasses that of any human. They mutate their goals to be so nebulous that they will never be solved & the parties will never dissolve. Two parties emerge to divide control between them so that neither is ever entirely out of power. Neither of the parties controls everything for long, but neither is shut-out forever. Not a bad situation - if you are a political party, but does it help humanity at all?
Microsoft originally paid Thomson to make the DVD drives for Xbox, but Thomson dropped the ball real bad. They delivered crap. From what I've heard when I worked on Xbox, the factories had piles of Thomson drives which didn't cut the mustard.
The DVD drive fiasco happened because the contract with Thomson didn't specify an acceptance criteria for the drives. So Thomson could fulfill the letter of the agreement by delivering enough drives which were claimed to fill the requirements even if they failed to deliver when tested.
Even the Thomson drives which were good enough weren't very good.
By the time Microsoft figured out what was happening & how to deal with it (by testing the drives in the factories), they were so pissed-off at Thomson that Thomson knew there was no chance of a second contract. So of course Thomson continued to deliver crap.
Microsoft made new contracts for DVD drives from two other companies. One of them was Philips. I can't remember the other company.
I saw Fahrenheit 9/11 at home the other night. Some specific ponderings I have are:
Those who were interviewed mostly said that the USA shouldn't attack. One man said that if the USA attacked, Iraq would be our cemetery. A woman said that the USA wanted to attack because we envied Iraq's wealth. It might appear to be a laughable claim if you think wealth is measured in currency, but if you measure wealth in relationships with others, & if you can believe what you saw on the video, Iraqis did have considerable wealth. Very wise, that woman.
Can those videos be taken on face value, or is it possible that there's far more to the story than shown in the videos? Like, do the videos only show Iraq's version of rich people? Was there an Iraqi ``Minister of Truth'' standing behind the camera, with a gun that he was prepared to use on the Iraqis being interviewed if they made their lives appear to be anything other than ideal?
Michael Moore admits that the opinions in the movie are his own but claims that the facts were impeccably researched.
Some news commentaries I read later said that Fahrenheit 9/11 was a movie with an agenda, trash, not journalism at all.
This is a really exciting election. Not just because so much is at stake but because nobody knows who will win. I've considered calling my bookie.
No one can deny that George W. Bush has motivated people to vote in record numbers. For the most part, that's a compliment to George W. Bush, but think about how he did it. He didn't do it by giving the country some kind of pep talk or example that made us care about politics & realize that our votes count. Nope, he did it by making about half the country afraid of the rest of the world & the other half of the country hate his xenophobic, fear-mongering, pig-headed guts. (Which half contains me?)
The result (lots of people voting) is an unquestionably good thing, but if you had achieved the same feat, would you want people to remember that you had achieved it in the way George W. Bush did?
Just something to think about.
Al-Jazeera is the network which played the most recent video from Usama Bin Laden as well as previous similar videos.
But according to [227] & [217], Al Jazeera has a video of Margaret Hassan, a hostage whose head will be sawed off her neck if the United Kingdom doesn't comply with some of Al-Qaeda's demands.
Al Jazeera refuses to play the video of Margaret Hassan because it is ``too disturbing'' ([227]).
I wonder why. Is a message from Usama Bin Laden more important than a message from a captive of a group that does the work of Usama Bin Laden? Is a video of a religious leader urging people to jihad more wholesome than the video of a female civilian victim of that same jihad, pleading for her life?
Sounds like it is.
During most of the article, I kept thinking about how the ``web of trust'' that Philip Zimmerman(?) recommended in the documentation of early versions of PGP19.1 would satisfy the requirements of Burmester & Desmedt. Then the article talked about why PGP's web of trust would not work.
The Christian Science Monitor is proof that not all Christians are irrational.
Two analysts were interviewed on the radio yesterday. They were interesting. I don't remember their names; I'll call them A & B.
A said: Democrats have two problems.
I liked A's message. Seems like it identifies the problem in concise terms, thereby allowing the problem to be fixed. Also, it doesn't say that what Democrats (& we) believe is wrong or needs to be changed at all. It says it needs to be communicated more skilfully (i.e., more skilfull spindoctors & ad managers).
B said almost the opposite:
In the past, I would have agreed with B's second point, but when I look at the facts of what's happened & what's been promised in the recent campaign, I think he's flat-out wrong. Consider:
The only other current main issue which B might use as evidence for his argument is the ``war'' on terrorism. He could point out that Democrats were almost as gung-ho for invading Iraq as were the Republicans & that the Democrats, while less enthused about invading other countries, are not against it. He'd be right, but there are four other big issues in which the Democrats differ from the Republicans.
These are my predictions for the next four years, given that George W. Bush has won the 2004 United States presidential election. Some things are good; some things are bad.
I don't make a secret of my dislike for PDF. In PDF's favor, or so I thought, people told me that Post Script files were bigger than their equivalent Pointless Document Format files, & I had believed them. Until now.
I write most of my essays with LATEX, & I compile each source file to HTML, Post Script, & PDF. Tonight, I happened to notice that a few of the Post Script files were smaller than their PDF equivalents. A single command on the /bin/sh command line19.2 provided the sizes of all the Post Script & PDF files on my web site. A keyboard macro in Gnu emacs converted it to a nice table comparing the file sizes. Here's that table.
| name | Post Script size | PDF size |
| desest | 109197 | 143951 |
| rbge | 72569 | 89085 |
| salt | 75164 | 95738 |
| sysadmin | 250833 | 302224 |
| chill | 269802 | 311207 |
| icfp2003 | 126838 | 164890 |
| ios0 | 85168 | 108304 |
| lc | 123291 | 156434 |
| lh | 260776 | 323356 |
| naop | 136537 | 169298 |
| nbge | 106851 | 132934 |
| nmcom | 128876 | 172284 |
| pho | 31422 | 42130 |
| tcg | 140213 | 174974 |
| tcpmux | 344479 | 525672 |
| tka | 127657 | 143957 |
| tsc | 149454 | 196736 |
| unx | 259244 | 303670 |
| was | 76369 | 93355 |
| DeathByPanang | 42485 | 54098 |
| Dolphins | 48765 | 62686 |
| Exstacy | 60751 | 74401 |
| PopsicleZombies0 | 45396 | 59436 |
| poly | 77685 ai- | 102685 |
| authors | 107463 | 132222 |
| bl | 72407 | 93498 |
| blood-rayne | 59450 | 74446 |
| contacting | 54039 | 70199 |
| controversy | 106754 | 137560 |
| copyright | 120216 | 149142 |
| cri | 282494 | 344904 |
| ct3 | 67334 | 86172 |
| ctfs | 7991533 | 3876023 |
| dhak-i | 94244 | 119190 |
| dhn | 194491 | 249789 |
| dhs | 43926 | 56164 |
| editorial-0 | 37306 | 53563 |
| ega | 68199 | 83743 |
| evie | 96544 | 132830 |
| fables | 64511 | 80737 |
| favorites | 121130 | 150596 |
| fetish | 51708 | 66959 |
| flez | 182160 | 220774 |
| fmt | 117967 | 152738 |
| garbage-collection-cpp | 106406 | 134056 |
| gogl | 59086 | 79047 |
| gpr | 47715 | 62814 |
| hiil | 65406 | 86591 |
| ick | 96035 | 119643 |
| inventions | 61079 | 82273 |
| jhs | 35897 | 46411 |
| jmt | 131828 | 169815 |
| lht | 139000 | 188435 |
| lid | 98304 | 131182 |
| links | 69064 | 87445 |
| lisp-cgi | 77487 | 97619 |
| lisp-heap | 135523 | 171651 |
| lizard | 256305 | 305704 |
| ll | 87794 | 114394 |
| mdg | 131689 | 157656 |
| site | 252865 my- | 290180 |
| copyright | 81032 new-age- | 99497 |
| pathnames-0 | 224109 | 337161 |
| resource-pools-0 | 34638 | 43021 |
| rez | 61942 | 77846 |
| roll | 88370 | 109919 |
| sfpc | 89857 | 122422 |
| shiva-0 | 123402 | 154306 |
| shiva-1 | 70110 | 92253 |
| ss002 | 44919 | 59520 |
| ss003 | 37814 | 48666 |
| ss004 | 60658 | 76386 |
| ss009 | 40016 | 51538 |
| ss010 | 71092 | 81905 |
| tae | 903924 | 1331907 |
| taga | 165015 | 208249 |
| tat | 103827 | 140675 |
| tigris | 217185 | 275988 |
| tl | 137487 | 166621 |
| vbs-ie | 84045 | 107816 |
| wgc | 206191 | 261443 |
| wild-arms-3 | 96856 | 128651 |
| crisp | 206036 | 271107 |
| lscript | 145283 | 190260 |
| tales | 264854 | 308406 |
| plp | 97531 | 131030 |
| ovk | 93994 | 117025 |
| pdl | 196006 | 241747 |
| rdl | 103231 | 126768 |
| JackTheRipper0 | 57207 | 70606 |
| lbo | 82732 | 108854 |
| nob | 125014 | 152774 |
| todo | 97898 | 129645 |
| siren | 49780 | 64302 |
| vig | 124623 | 163227 |
| crank | 260078 | 388683 |
| boop | 65543 | 87689 |
| reiw | 88819 | 111278 |
| perlish | 88525 | 117956 |
| idpa | 96070 | 128853 |
| pkvpl | 123570 | 162026 |
I don't know how Post Script works. Maybe it doesn't store images within the Post Script file. That would explain the difference in the sizes. Or maybe PDF is just fatter.
Is a Post Script file bigger than a PDF file, as people often tell me? Look at the table & decide for yourself.
This article cracks me up. Well actually, it's just crap, not good or bad enough to crack me up, but it revived some memories that still crack me up.
(By the way, I found this article by accident. I heard a story on the news that someone proposed, or discovered(?), that there is a religion gene. I was looking for news about that. No luck, by the way.)
One day in Sunday school when I was about thirteen, the teacher told us about Revelations, a book in the Christian Bible19.3. It's some really fun, kind of scary, mythology, so I enjoyed that lesson. She ended the lesson by saying that the times predicted by Revelations were upon us. As evidence, she said that ``the UPS code is based on six six six''. That's a quote. She said ``based on six six six''.
As a mathematically minded youth, I was fascinated by this idea, whether or not Revelations was myth or truth. If you say that some mathematical concept is ``based on 666'' (or any other number), then you should be able to back it up, & if you can, well, that's pretty fascinating stuff.
I mean, let's say that I create a numeric code for the English alphabet, like this: A = 1, B = 2, ... Z = 26. I'd say that's based on numbers, or something. I guess you could say it's based on two if it were A = 2, B = 4, ... Z = 52. It'd be based on 666 if it were A = 666, B = 1332, ... Z = 17,316. There are other ways to make a code based on 666.
So in what way was the UPS code ``based on 666''? Thirteen-year-old me was fascinated. Not critical. Just fascinated. So I asked.
The teacher told me that I shouldn't be a doubter. I said I wasn't, I was interested, but she scolded me again.
Later in the lesson, she said that when you played LP records19.4 with rock music on them, demons which lived in the groove traveled to the phonograph arm on the vibrations from the groove, then to the speakers, where they were released into the room to influence the listeners.
Even when I was an impressionable thirteen years old, that one cracked me up. Is it any wonder I'm not a Christian or that I think Christians have petroleum jelly for brains?
What a cool concept. The article is only two pages long, & the current implementation is just ``a syntax checker & a GUI''. So it was disappointing. It would have been more fun to read if the author had implemented some logic, demmonstrated some conclusions, & left the GUI for the future (or never).
I came across this by accident while searching for recent news of some virus test equipment that was found in Fallujah last night (US Pacific time). This article is from 2003 January, before the USA invaded the sovereign nation of Iraq. In his article, Michael Manville refers to the empty aluminum casings that were found in Iraq as ``empty warheads''. I guess that article was written before we knew that they were not weapons.
Bob Woodward defending George W. Bush? I'm stunned. The universe isn't what I thought it was. I should buy a lottery ticket, quick!
Nice try.
Excellent!
He seems to think that the root of all evil is buffer overruns & that programmers are ignorant fools for using languages that allow buffer overruns.
This is one of my favorites. It's from ``Doctor Who: Image of the Fendahl''.
The Doctor: Then you mix the peanuts with the treacle, throw in the apple cores very hard, put the lot in a shallow tin & bake in a high oven for two weeks.
Misses Tyler regains consciousness, then: That ain't the way to make a fruit cake!
One of my favorite short stories of all time, I re-read it recently. My guess is that if you weren't a teenage hacker in the early 1980s, it won't have the same charm for you.
Here's a non-controversial (I hope) observation about types of programming languages. Not meant to say that any language is better than others.
If your program (or procedure) can be expressed like this...
... then it doesn't matter whether you have the hoity toitiest of the most object oriented, functional, A.I., hooptie tootie languaes or something as low-level as plain C. I mean, it just doesn't matter. They are all equally good at handling this type of algorithm.19.5
If your algorithm is more complex, you'll want a language that has higher-level features. I realized this when I needed to write an algorithm like this in Pascal:
You can often simplify that type of algorithm to this:
Even so, you still wish you had a language with higher-level constructs because of the ``complex data structure A''.
That first algorithm (read/process/output) works for a hell of a lot of things, so for a hell of a lot of tasks, a plain procedural language such as C or Pascal is fine. But as soon as you have something more complicated, you really wish you had a higher-level language.
Just an observation.
Sometimes I feel guilty because I'll be programming in, say, Lisp, but my code will be plain-jane procedural. I try to remind myself that sometimes, the things your algorithm does really are just procedural. When that's happening, then of course your code will be procedural (as opposed to functional, object oriented, or hoity whoo whoo).
Trains are convenient & affordable in Europe & Asia. Why not in the United States?
| From: | Gene Michael Stover |
| To: | Programmers |
| Date: | Thu, Dec 02, 2004 at 10:30:37PM +0000 |
| Subject: | microsloth's programming style |
Speaking on the level of function bodies, Microsloth's programming style is ``bail on error, bail on error, ... do the non-error part''. Here's a pseudocode example:
WhateverType
moo (arg0, arg1, arg2)
{
if arg0 == NULL
return Error;
if arg1 == NULL;
return Error;
if arg2 != NULL &&
arg2->method0(whatever) != (WhosYerDaddy arg1 != arg0) &&
mod (StockPrice (TEXT("MSFT")), 123)
return StockPrice ...;
Everything is okay so far so do some work.
if this other error
if We did This0
undo This0
if We did This1
undo This1
if We did This2 & This3
goto Exit
Undo This2;
if We did This3
Undo This3;
return Error
Do some more work
retval = Something;
goto exit0;
Exit:
if We did This0
undo This0
if We did This1
undo This1
if We did This2 & This3
goto Exit
Undo This2;
if We did This3
Undo This3;
return Error;
Exit0:
return retval;
}
The idea behind their style is to check-&-bail as soon as errors happen. I don't like it because it hides the necessarily nested structure that good code has, & it destroyes the ``single entry, single exit'' discipline which is necessary for good code even thought most programmers nowadays think ``single entry, single exit'', along with structured code, is beneath them. (Little do they know that they have abandoned structure. Fuckers. But I digress.)
Anyway, I can deal with it. I don't like it, & I convert to a nested structure when I have to work with code that I got from Microsloth, but I can respect the motivation behind it.
But then I find this in ``pjlmon.c'', which is a famous device driver example from Microsloth:
BOOL WINAPI
DllEntryPoint (HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpcReserved)
{
if (fdwReason != DLL_PROCESS_ATTACH) {
return TRUE;
}
hInst = hInstDll;
return TRUE;
}
Now here, I have to protest the ``check & bail'' (lack of) structure. I mean really, how is this Microsloth code more understandable (or more efficient) than
BOOL WINAPI
DllEntryPoint (HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpcReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH) {
hInst = hInstDll;
}
return TRUE;
}
If I had only seen the long functions with the ``check & bail'' logic, I would think that Microsloth programmers had decent rational behind the ``check & bail'' structure. Having seen this tiny function expressed with ``check & bail'' logic, I must conclude that Microsloth programmers have an unreasoned aversion to ``single entry, single exit''.
Basically, Microsloth programmers suck.
gene
| From: | Jason |
| To: | Programmers |
| Sent: | Friday, December 3, 2004 02:57 PM |
| Subject: | Re: microsloth programming style |
What about this:
double
gsl_cdf_binomial_P(const long k, const long n, const double p)
{
double P;
double a;
double b;
if(p > 1.0 || p < 0.0)
{
GSL_CDF_ERROR("p < 0 or p > 1",GSL_EDOM);
}
if ( k >= n )
{
P = 1.0;
}
else if (k < 0)
{
P = 0.0;
}
else
{
a = (double) k+1;
b = (double) n - k;
P = gsl_cdf_beta_Q( p, a, b);
}
return P;
}
It uses the ``bail on error'' style in the beginning. If I hadn't used the GSL_CDF_ERROR macro there, then gsl_cdf_beta_Q(p, a, b) would choke for an invalid p. (I now see that I committed the sin of calling a variable P and an argument p.) The macro will return a nan and set the global variable gsl_errno to GSL_EDOM, and write ``p < 0 or p > 1'' to stderr. Is this a bad idea? If so, why?
-Jason
| From: | Gene Michael Stover |
| To: | Programmers |
| Date: | Fri, 03 Dec 2004 22:00:11 +0000 |
| Subject: | Re: microsloth programming style |
There's nothing wrong with the ``check & bail'' style the way you used it. I e-mailed that short function from Microsloth because it was a case that could have been trivial but was made less trivial by the ``check & bail'' style.
The reason I dislike ``check & bail'' is that, while it's not better or worse than a nested style in some cases, it is definitely worse than a nested style when you do operations that may need to be undone, especially if they are undone in the normal, non-errorneous case.
Opening files is an example. Let's say we want to open a file, parse some shite from it, check that it worked, parse some more shite, ...Each of those parses could fail, in which case we want to return.
Here's the check-&-bail version:
moo (filename)
{
if filename == NULL
return error
fp = fopen filename
if fp == NULL
return error
if parse-first-field (fp) fails
fclose fp
return error
if parse-second-field (fp) fails
fclose fp
return error
if parse-third-field-a (fp) fails
if parse-third-field-backup-style (fp) fails
return error
fclose fp
return success
}
Now that I'm looking at it, it's not so bad, but I think that's because I'm more faithful to the ``check & bail'' style than are the people who actually like it. And consider the mess you'll have if you needed to open a couple of files & allocate memory. Before each ``return'', you'll need to undo things, & what you undo will differ for each return because different amounts will have been done. Also, the mainline, non-error, normal case lines of code are burried at the bottom of the function.
Compare that check-&-bail function to this nested one:
moo (filename)
{
return_type rc = error;
if filename != NULL
fp = fopen filename
if fp != NULL
if parse-first-field (fp) succeeds
if parse-second-field (fp) succeeds
if parse-third-field-a (fp) succeeds
/* good */
rc = success
else if parse-third-field-backup-style (fp) succeeds
/* also good */
rc = success
else
error Couldn't parse third field
else
error Couldn't parse second field
else
error Couldn't parse first field
fclose fp
else
error Couldn't open the file
else
error filename is NULL
return rc
}
See that fopen? Does the function always close the file if it opens it? It's easy to see that it does because the corresponding fclose is immediately before the else that matches the if that checks if the file was opened. Even if you open multiple files, allocate memory, & reserve other types of resources, it's always easy to scan the code to determine whether a resource, once allocated, is deallocated.
The normal-case, no-errors, ``mainline'' logic of the function is in the top half. In a nested function like this, the mainline logic always works like this: ``if this worked, then if this worked, then if this other thing worked, then if this yet other thing workd ...everything worked just right''. The logic is more straightforward because you consistently check for success. In the ``check & bail'' style, programmers could consistently check for failure, but they often write more complicated expressions than necessary, & I think it's because the ``check & bail'' style is less structure, so it encourages the programmers to rely less on other types of structures (such as consistent logical styles in checking for errors).
When an ``if'' fails, the corresponding "else" tells the programmer (even one reading the code later) what failed & why. It might do that by logging a message, but if it's the kind of error that you ignore, the "else" is still where you can put a comment to tell the programmer that yes, we do indeed mean to ignore this error, & even explain why we want to ignore the error.
The nested style is also efficient at run-time. After opening the file, we check that it openned. If it openned, there are things we do. Whether or not they succeed, we are already destined to close the file (as we should). In functions that use the "check & bail" style & which open multiple files or allocate multiple blocks of memory, when the function detects an error, it usually jumps to a label at the end of the function. There, it does something like this:
exit0:
if fp0 != NULL
fclose fp0
if fp1 != NULL
fclose fp1
if memory0 != NULL
free memory0
...
So with the "check & bail" style, the program is more likely to check file handles & memory pointers multiple times.
In a modern computer, the efficiency difference will be unnoticeable, but it is there.
The reason we have exceptions is because so many programmers use the "check & bail" style. If you stick to a nested style, you don't need exceptions. In fact, in a nested style, you see exceptions for the ill- behaved feature it is.
Here's how I might rewrite Jason's function. Not that it needs rewriting, but I figure I should put my money where my mouth is.
double
gsl_cdf_binomial_P (const long k, const long n, const double p)
{
const SomeErrorValueForP = 123455682.whatever;
double P = SomeErrorValueForP, a, b;
if (0.0 <= p && p <= 1.0) {
if (k >= n) {
P = 1.0;
} else if (k < 0) {
P = 0.0;
} else {
a = (double) k + 1.0;
b = (double) n - k;
P = gsl_cdf_beta_Q (p, a, b);
}
} else {
GSL_CDF_ERROR("p < 0 or p > 1",GSL_EDOM);
}
return P;
}
I like this new function better because:
Thanks for reading my copious opinions about programming style.
gene
Here's a thought I had while implementing Sun RPC for Lisp. I presume it could apply to Microsoft's COM20.1 & other RPC systems, too.
Sun RPC lets you attach a version name & number to your ``program'' (where ``program'' might better be called ``service''). In fact, it requires that you attach a version name & number. Here's a short example:
program MyService {
version Version1 {
Employee FetchEmployeeByName (string<>) = 2;
unsigned GiveEmployeeARaise (string<> name, unsigned
amount) = 4;
} = 1; /* version 1 */
} = 0x12345678; /* program number */
See that ``Version1'' & its corresponding ``1''. A client identifies a service by its program number and its version number. The client usually uses the symbolic version name, which in this case is ``Version1'', but that evaluates to the version number at compile-time.
I've always used integral version numbers, & for the versions, I've appended the version number to the symbol ``Version''. So version 1 was called ``Version1'', & version 99 would be called ``Version99''. With this convention, the versioning feature of Sun RPC seemed pointless. I had a hunch that I was under-using the versioning feature, but I hadn't thought of anything better.
Just now, I thought of something better.
I noticed that the version number, which is 32 bits wide, is large enough to hold an entire date if you type it in ISO fashion, where ``2004 December 5'' is 20041205. In fact, if you type that date in decimal, you have half of one digit (values 0 through 4) after. You could use this for a sub-version number. So on 2004 December 5, I could produce up to five versions of the service without a version number conflict.20.2 Those versions would be 200412050, 200412051, 200412052, 200412053, & 200412054.
By encoding the date in the version number, I get a little meaning that wasn't there when I used consecutive integers. Sure, it's not a lot of meaning, but it's there. If a client wanted to use a version of a service, & it knew the date when the version was released, it could use the version number directly. Okay, that's maybe not a common need, but version numbers containing the date could be useful for debugging, too.
Meaningful version numbers made me think about meaningful version names. Instead of ``Version1'' & ``Version2'', how about ``BasicVersion'', ``OptimizedVersion'', & ``ExperimentalVersion''? Then again, maybe for the symbolic version names, the release number is better (such as ``Version1'').
It was just a thought.
A friend sent this picture & says ``Keep staring at the picture and you will see a giraffe - I takes your eyes about a minute or so but it is there.''

Now I understand why I dislike PDF.
If you measure how much you like a book by how frequently you re-read it, this is my favorite book. About twice each year, I re-read almost the entire thing in a single afternoon.
If you are interested in Jack the Ripper, this is the book to read. It is factual; it does not present any sensationalist theories such as the Prince did it or the Queen's doctor did it to cover up the Prime Minister's indiscretions. It's a well-researched, rational presentation of a fascinating piece of history.
I wasn't able to finish this book. After more than a hundred pages, I was still waiting for it to capture my interest. So I stopped reading.
I've taken these numbers from the articles listed above. The death tolls are approximate. Where the article gives a range, I took the larger number. I could have taken the mean, but I took the larger. The death toll for Pompeii is from the entry for ``Pompeii'' on Wikipedia. Of all the death tolls I show here, it is the most likely to be an over-estimate.
| date | death toll | what | where |
| 1976 Jul 27 | 655,000 | earthquake (8.0) | China |
| 2004 Dec ?? | 100,000 | earthquake (9.5) & tsuname | Indian Ocean |
| 1990 Jun 20 | 50,000 | landslide | Iran |
| 1883 Aug 26 | 36,417 | volcano & tsunami | Krakatoa |
| 1999 Dec ?? | 30,000 | landslide | Venezuela |
| 1970 May 21 | 20,000 | landslide | Peru |
| 79 | 20,000 | volcano | Pompeii |
| 1911 Apr 18 | 3,000 | earthquake (7.7) & fire | San Francisco |
| 1998 Oct 30 | 2,000 | landslide | Nicaragua |
| 1960 May 22 | 2,000 | earthquake (9.5) | Chile |
| 1964 ``Good Friday'' | 125 | earthquake (9.2) | Alaska |
The death toll for the recent earthquake is an estimate, & I have no doubt it will continue to rise for another week.
I think the author of that page is showing examples of people who don't know what ``theory'' means in science. I hope that was his intent. If it is, he chose some great examples of seriously uneducated minds. They would be funny if they weren't so frightening.
News to me, among other things, is that the Department of Homeland Security has a goal of checking one percent of the foreigners who enter the United States each day. About 118,000 such people enter the U.S., so one percent of them is 1,180 people.
Gene Michael Stover 2008-04-20