Stranger Than Truth

Not long ago, I decided to merge my fiction blog with my regular blog. Well now, in the interest of preventing confusion, I’ve un-merged them and moved all of my stories to a new blog called “Stranger Than Truth”. I hope to update it regularly (and get back to updating this blog regularly, too). For now, though, you can find a few hitherto-unpublished stories there. Enjoy!

“Yo Dawg…”

I’m sorry to say that I’ve fallen victim to an internet meme. In case you didn’t know, there’s a Pimp My Ride meme floating around. Also, in case you didn’t know, a few months ago, scientists announced the discovery of a weird little virus called Sputnik which (apparently) infects another virus (the Mimivirus). This morning, as I lay in my irrational post-sleep stupor, the meme and the Mimivirus stumbled into each other, and this was the result:

Sorry…I couldn’t help myself. I don’t know what came over me. I promise it will never (never) happen again.

A List: Famous People I Wouldn’t Want to Sit Next to On A Plane

This list has been knocking around in my head for a while. I’ll update it as more famous people occur to me. (Note: I actually like most of the people on the list (or their work, at least), but they strike me as the sort that, you know, wouldn’t be good to sit next to on a plane):

  • M. Night Shyamalan
  • Stephen King
  • Aphex Twin (if the guy’s not crazy, he should be)
  • David Firth (see above)
  • Dane Cook (I wouldn’t want to sit next to him anywhere, actually)
  • Tom Cruise
  • Brad Pitt
  • Anthony Hopkins (“Care for some of my liver and onions? Fffffthfth!”)
  • Any member of Rammstein (see above)
  • Sigourney Weaver
  • Paul Erdős (okay, the fact that he’s been dead for twelve years doesn’t help, but even if he was alive…)
  • George Clooney (he seems like he might be an ass in person)
  • H.P. Lovecraft (see “Anthony Hopkins” or “Aphex Twin”)

The Weekly Update #1

I know that I haven’t been great about writing new posts lately, so I’ve decided to try an experiment: at least one weekly update, whether I like it or not, so that my loyal readers (if there are any left…) have something to look forward to every Friday (you know, other than the fact that it’s Friday.) Here goes.

What I’m Reading Now: Ender’s Game by Orson Scott Card. It’s one of those sciene-fiction classics (like Do Androids Dream of Electric Sheep or Neuromancer) that I’ve had on my shelf for years and never read. So far, I’m enjoying it, although it’s not exactly the world-shattering novel all the hype made me expect.

What I’m Writing Now: Not much. I’m trying to write another short story for my big, bloated, and rapidly mutating Harvester chronology (see The Long Wait if you don’t know what I’m talking about), but so far, I’ll get a few paragraphs in, get sick of the story, and give up.

What I’m Playing Now: Nothing. I was re-playing Portal a few weeks ago, but I found myself rushing through it, so I stopped.

What I’m Doing Now: Mainly, I’m just recovering from final exams. There were only three this semester, but they were quite enough.

My Inspirational Thought of the Week: “If you learn to be a little pessimistic all the time, then when good things happen, it’ll be even nicer.”

My Weekly Suggestion: If you see a stranger who looks depressed, don’t be afraid to ask what’s bothering them. You might make a world of difference.

Hmm…I’m already starting to doubt the wisdom of this weekly update thing. As if the blog didn’t already have enough lists of random things. Hopefully, though, I’ll have some more substantial posts coming up soon.

Military Dodecapod

Yet another model I threw together in Blender. It’s a twelve-legged military hunter-killer robot, designed for rough terrain. Yes, dear readers, this is what I’ve been doing instead of writing blog posts or working on my philosophy final…

Decapod

This is something I threw together in Blender and decided to share for no particular reason. It’s supposed to be a sort of military robot or something of the sort, but it ended up looking like a lunar lander or something.

A Story for Halloween

My mother is one of those odd people for whom Halloween is a more fun and more interesting holiday than, say, Christmas, or any of the other major holidays. Lately, I find myself following in her footsteps. And so, in honor of Halloween, I present: Hosts, a short (and fairly gruesome, and probably mildly disturbing) horror story. Here’s how I summarize it:

How do you survive as the last normal human, and all others are host to alien Larvae, euphoric and stupid and violently defensive against non-hosts? Gregg thinks he has a solution, but he knows it won’t last forever.

Enjoy, and merry Halloween.

Advice for Aspiring Novelists

Regular readers will know that I love to write. I’ve written more short stories than I can count, at least a few of which don’t suck, along with two novels (both of which do suck), and two more in progress. None of my stuff has been published yet (here’s hoping, though!), but I like to think that I’ve gained a lot of useful experience these last few years. So, in The Life of a Math Major tradition, I present yet another bulleted list of tips for writers. This time, though, the advice is geared more towards novelists, the marathon-runners of the writing world. Like running a marathon, writing a novel takes a lot of practice, a lot of determination, a good bit of self-delusion, and you’re going to come to the starting line and chicken out a few times before you actually manage to run your first race. So, in order to help other aspiring novelists, here’s a metaphorical cup of Gatorade to keep you from conking out at mile ten (yes, I am sticking by that metaphor. It’s a good metaphor. Don’t give me that look, it is!):

  • Even arbitrary deadlines help. I discovered this the first time I participated in National Novel-Writing Month. NaNoWriMo offers no prizes other than bragging rights and a nice certificate, and there are no measures in place to keep people honest. And yet, that goal of fifty thousand words in thirty days always drives me forward, somehow. Before I discovered NaNoWriMo, I found it impossible to maintain the necessary momentum to finish a whole novel. With the arbitrary deadline hanging over my head, though, suddenly, I could do it.
  • Enter contests. NaNoWriMo is a good one, but any writing contest will do. If you don’t have one available, start one. Once you know that you really can write a whole novel, you won’t have to worry about it, and you can concentrate on writing something good.
  • Never give up. While writing my current novel, something unprecedented happened. About a month ago, I got a nasty case of writer’s block, followed by insomnia and a really busy period at school, so I stopped writing for a month. With every one of my previous novels, that’s been a death sentence. This time, though, even though I knew I’d have trouble getting back into the spirit of the novel, I started writing again. And it worked. The novel is now resurrected. The moral: never give up on a novel. If you want badly enough to write it, you can, no matter what gets in your way.
  • Start with a good idea. This connects to the “if you want badly enough to write it, you can” thing in the previous bullet point. Let’s face it, a novel is really hard work. You have to put a lot of energy into it, so don’t try to write any story idea as a novel unless you really, really (really) like it. If you have an idea you’re not sure of, write it as a short story to test it out.
  • One piece at a time. When you sit down to work, try not to think about the fact that you’re writing a novel. That’s a good way to get overwhelmed. A novel is a daunting project, and until you’re finished, it can be hard to feel like you’ve accomplished anything. So what I’ve done with my current novel is to write it one chapter at a time. Not only does this fit nicely within my limited attention span, but it allows me to feel like I finished something, like I’m going somewhere. As long as you make sure the chapters dovetail nicely with one another, then this method shouldn’t do any damage to your plot.
  • You have to actually write stuff. Every writer who gives advice ends up saying this eventually, but it’s true. To keep a novel alive, you have to write, preferably every day. If you don’t, it can be hard to get back into the right mood. And just as importantly:
  • Don’t be afraid to write rubbish. In all likelihood, it’s not rubbish. In my experience, most writers think the stuff they write is crap. Don’t worry about that. Even if what you’re writing really is rubbish, keep writing it anyway. You can fix it in your revisions. The important thing is not to let it stop you. A novel with a few rough patches is better than a novel that never gets finished. At least the latter can be fixed. If the plot starts to wander away from where you wanted it to go, gently push it back and move on.

I wish I also had some advice for how to revise your novel, but I’m still stuck on that step myself, and don’t even get me started on getting it published. For that, I’d need someone to give me some bullet points. For now, though, I hope you find these tips useful.

Movies to Watch Out For: The Road (~2009)

Warning: Probable spoilers ahead. Read at your own risk.

Around a year and a half ago, I was listening to the radio, and heard about the newest book in Oprah’s book club. I didn’t pay much attention to it at the time, but when I later heard that The Road was a post-apocalyptic story, I got more interested and picked up a copy. It quickly became one of my favorite books of all time.

Later, I was fooling around on the good old Internet Movie Database, and somehow or other managed to discover that there was a tentative movie version of The Road in the offing, but since the sum total of the information available at the time didn’t admit more than the fact that it was indeed going to be a movie, I didn’t really pay attention.

Today, a friend of mine called me up out of the blue to tell me that he’d seen a copy of the book in a store and that the cover apparently came from the movie, and I got interested. Lo and behold, there are now (probable spoilers ahead) pictures! As it turns out, the film is actually slated for release in 2009.

From what I can tell, it looks like the movie’s gone to some pretty great lengths to maintain the book’s haunting apocalyptic atmosphere, but I’ve learned to be very wary of the movie versions of really good books. Right off the top of my head, I can think of a few ways it would be easy to screw the whole thing up:

  • Mess up the atmosphere: Like I said, it doesn’t look like that’s what’s happened, but who can tell from still pictures?
  • Leave out important parts: I hate it when movie adaptations do this, and you’d be hard-pressed to find anything cuttable in The Road.
  • Fiddle with the characters: Cormac McCarthy already got them right, and I’m hoping they didn’t mess that up.
  • Make it all actiony: I don’t think there’s too much of a chance of this, but if they put in any unnecessary action, the whole thing would be ruined.
  • Change the ending: It should be pretty obvious to any reader of the book that The Road is not the kind of book that has a happy ending, and if the filmmakers shoehorned one in, I will find them and poke out their eyes.

In spite of my little bulleted list of negativity there, I have very high hopes for the movie. Cormac McCarthy’s rich descriptive style and subtle characterization should make for a fantastic movie, as long as it’s done right. Watch for my review in 2009!

SimHeart 2.0

It seems that every time I sit down to work on my heart-simulation project, I get a lot more done than I was expecting. In my last post on the subject, I talked about how I wanted to integrate a more realistic model of the atrioventricular (AV) node, the little bundle of nerve fibers that carries the contraction impulse from the atria at the top of the heart to the ventricles on the bottom. Apparently, I’d entirely misjudged the difficulty of this effort, since, once the solution occurred to me, I was able to implement it in about five minutes.

Here’s what I did. As I said before, each cell in the simulation has two variables assigned to it: ARefrac, which determines whether or not an atrial impulse can pass through the cell; and VRefrac, which determines whether a ventricular impulse can pass through. I solved the AV-realism problem by simply introducing a global variable called AVRefrac that determines whether or not the AV node can accept an impulse. Basically, every time a simulated electrical “spark” strikes the simulated node, as long as AVRefrac is equal to or less than zero, it sets AVRefrac’s value to a user-specified constant I call AV-delay. So, basically, now the ventricles can only respond as fast as the AV node will allow, just like a real heart! When I saw how beautifully my little fix had worked, I was thrilled!

So, my simulated heart is now more realistic than ever. For example, I did a few runs with the refract-length value (the value that determines how quickly cells recover their ability to fire after each firing) set very short so that arrhythmias would occur frequently, so that I could study their effects. Before long, my simulated heart went into atrial flutter/fibrillation (a condition where the small pumping chambers at the top of the heart expand and contract quickly and chaotically, often leading to a dangerously fast ventricular rate. I was amazed to see something very similar to the many atrial-fibrillation EKG’s I’ve looked at:

(Note: in the simulated EKG, I’ve separated the atrial and ventricular signals, since whenever the ventricular rate got very fast, it obscured all the atrial activity, and I wanted to be able to study the atrial activity as well)

Given my tendency towards oversimplified simulations that produce peculiar behavior, the resemblance this bears to real supraventricular tachycardia (fast heart rate caused by the atria, which is often seen in atrial flutter or fibrillation) was frankly, surprising. After about half a second of atrial flutter, the atria begin to fibrillate, producing that classic irregular ventricular response.

Note the extremely high ventricular rate that shows up towards the end of the ECG. That’s a rather unrealistic product of my simulation, since whenever one of the waves of excitation collided with the back of a previous wave, it had a tendency to collapse into a tachycardic or fibrillatory spiral.

There are some forms of supraventricular tachycardia that terminate on their own. They’re called “paroxysmal” supraventricular tachycardia, and my simple little simulation actually managed to produce a run of it!

Some forms of atrial fibrillation occur in the presence of heat block (which, in its most common form, is basically a very slow AV node that doesn’t conduct every impulse that passes to it). In those cases, the fibrillation is frequently asymptomatic or minimally symptomatic, since the heart doesn’t end up racing. When I set the AV-delay parameter higher than usual, I observed this very same phenomenon.

Eventually, the aforementioned wave-collision problem had become annoying enough that I decided to re-write part of the simulation so that there was a small probability that an electrical spark could actually cross a cell that had not entirely recovered. That solved a lot of my problems.

In the re-written simulation, atrial fibrillation still produces that classic irregular ventricular heartbeat, and this time, since the waves are more collision-tolerant, the behavior doesn’t immediately degenerate into ventricular fibrillation, which gives me a chance to actually study it properly.

More updates as they’re warranted. And for those reader(s?) who are wondering what the hell has been wrong with me lately, don’t worry, I’ll be turning the blog over to my old cynical, sarcastic self very shortly.

UPDATE:

I was sitting around without much to do, so I opened up SimHeart and let it run in the background. When I checked in on it again a few minutes later, I’d discovered some very interesting behavior:

Apparently, some of the standard sort of atrial fibrillation had started, then, spontaneously self-organized into a coordinated wave spiraling cyclically through the atria. You can see the wave in the screenshot.

This really grabbed my attention, so I watched it for a while, and discovered that, strangely enough, the wave was quite stable.

Not even the normal sinus beats, which occasionally inserted themselves in the path of the wave, were very good at disrupting it. Not long after this screenshot, it degenerated rather suddenly into normal atrial fibrillation.

Then, while having a look at the pictures a few minutes later, I realized something: my simulation had produced true atrial flutter. What I saw before and called atrial flutter was really just organized fibrillation. This, though, exhibits all the classic features of atrial flutter: rapid atrial waves with a sawtooth shape. In this case, since I had the ventricular response set to be fairly quick, it turned into quite realistic atrial tachycardia.

I tried to save the state of the simulation so that I could study it later, but as there are some features of NetLogo with which I’m not entirely familiar, I wasn’t able to do it. So, for now, I guess I’ll just keep running HeartSim in the background until I see that rhythm again.

The Simulated Heart

For the past few months, I’ve been playing around in a program called NetLogo that allows you to simulate agent-based emergent systems with pretty much no effort whatsoever. Being something of a cardiology nerd, I had the idea a while ago to build a vastly simplified model of the electrical conduction in the heart. With the Belousov-Zhabotinski reaction in mind — which appears in James Gleick’s excellent book Chaos, which also has a chapter on the electrical waves of the heart, which is probably what sparked my inspiration in the first place — I set out to build a simple electrical-wave model. What I got was competent enough. At the beginning of the simulation, a single “spark” in the center of the simulation grid would produce a radiating wave. Sometimes, a defect on the front of that wave would cause the wave to dimple, and then to curl in on itself, producing a self-sustaining oscillation.

Some time later, when I began to get interested in cardiology — especially cardiac arrhythmias — I began to realize that my simple little model produced some behavior that was actually strangely comparable to that of a real heart. So, I modified it to be even more heart-like. I programmed the simulator to generate an initial spark at the center of the grid every fifty time steps or so. As I watched the waves propagate across the screen, I was, frankly, mesmerized. For a while, the waves would march along. Then, one of them would go wobbly, curl in on itself, and start oscillating rapidly. It bore a great deal of similarity to some of the real computer simulations of electrical activity in the heart that I’d seen, specifically to those that generated ventricular tachycardia.

With this as an impetus, I spent many hours revising and playing with my system. I recently downloaded the newest version of NetLogo, and decided that it was time to re-write the heart simulator, which had been mangled and cluttered beyond recognition by the process of incremental revision — something that happens to most of my programs.

This newest version — Version 3, by my count — is my most complete yet. A simulated beat travels through the simulated atrium (in the simulation, the atrial activity is represented by yellow waves), then hits the simulated AV node — the part of the heart’s conduction system that connects the atria (the upper chambers) and the ventricles (the lower chambers) — hangs around for a moment, then starts to propagate as a new wave (this one red) through the simulated ventricles. I’ve observed quite a lot of fascinating and remarkably heart-like behavior in my simple model. I’ll run through some of it here.

This is the main screen. All those buttons and sliders set up the simulated heart’s various parameters. If you can see it in this image, the “refract-length” slider controls how quickly the cells become able to fire again after each firing. The quicker that interval, the more easily the heart will go into fibrillation. That’s why I built in the handy little “defibrillate” button you can see to the right of the display.

As I did a run of the simulation to produce an image for this post, I was lucky enough for the simulation to do something interesting almost immediately. Note the oddly distorted third beat. That’s actually the result of an extra breakaway wave in the simulated ventricles. In real life, we call things like that “palpitations” or “premature ventricular contractions.” When the model’s heart rate is faster, you can actually observe the compensatory pause that comes after most premature ventricular contractions.

A final note on this image: in order to make the pretty EKG-like display, I had to cheat a little. In reality, the small waves represent just as much activity as the large ones (since the two grids are exactly the same size) but since the atria are a lot smaller than the ventricles in a real heart, I thought it would be a good idea to de-emphasize their activity a bit. This also has the benefit of making my fake EKG look a lot more like a real one. I’m currently working on a way to make the conduction in the simulated atria more realistic.

Here, the simulated heart degenerates into the deadly arrhythmia known as ventricular fibrillation. In this often-fatal arrhythmia — which is the primary cause of sudden cardiac arrest syndromes — the ventricles, which represent the majority of the heart’s mechanical pumping power, simply begin to wiggle and wobble randomly, rather than beating in an organized fashion. The result is that no blood gets to the body and the brain, and death results in about ten minutes.

I observed quite a lot of fibrillation of one kind or another in my simulated heart. Since I intentionally set the refractory time short — that is, the cells recovered their firing ability quickly — the waves had a strong tendency to curl in on themselves and break up into spirals. These spiral waves quickly degenerated into clusters of randomly-oscillating cells. About two-thirds of the way through the run, you can see that the fibrillation suddenly stops. That was the result of me pressing the “defibrillate” button, which sends ninety percent of the cells into the refractory phase, unable to fire until they recover. Towards the end, you can see that the “normal sinus rhythm” returns.

I’m actually quite pleased with this little simulation. It wasn’t terribly hard to build — then again, nothing in NetLogo is — and it produces interesting results. Here are my current goals for it:

  • Change some of the parameters so that they better reflect the physical disparities between the atria and the ventricles.
  • Improve my model of the AV node so that it discharges more realistically. Currently, it simply causes the electrical particles to pause for a moment, after which they are released. This means that, unlike the real AV node, my simulated one has a “memory,” and rather than discharging all at once like the real version, it simply discharges in the same order as the pulses that strike it.
  • Incorporate some kind of system to simulate damage to the heart.
  • Refine the electrical model so that the simulation is capable of producing ventricular tachycardia — a dangerous but more organized cousin of ventricular fibrillation in which a single self-sustaining oscillating spiral causes the ventricles to contract too fast to pump effectively. At the moment, the simulated ventricular tachycardia tends to degenerate into ventricular fibrillation almost immediately, making it difficult to study.
  • Make the translation between the simulated heart and the simulated EKG more realistic, so that it produce something more like a real EKG.
  • Make the model more analog. I’m hoping that this will solve a lot of my problems, but it’s probably going to be one of the hardest features to implement, with the possible exception of the better AV node simulation.

I’ll post updates as they come, and I soon hope to have a Java version of the simulator uploaded so that other people can play with it.

Happy New Year, 2008

I’m aware that this isn’t exactly the most original post ever written, but it didn’t seem right to simply ignore the new year altogether.

I’ve got big plans for 2008. This year, I’m going to experience new things. I’m going to get out there and be part of the world. As cheesy as that sounds, damn it, I’m gonna do it! So there!

Here are a few things I’m looking forward to in 2008:

  • Voting in my first presidential election.
  • Being annoyed at the available candidates in my first presidential election.
  • Celebrating my 20th birthday. Three decades down, probably six more to go!
  • Finally being old enough to start complaining about how easy the younguns have it. Yes, I know that’s usually reserved for people in their sixties, but at the pace things are going today, we twenty-year-olds feel like we’re in our sixties.
  • A whole slew of scientific discoveries.
  • The government’s denial of the ramifications of about half of those discoveries.
  • A whole slew of new films.
  • Being able to ruthlessly shred those films with criticism for being clichéd dross.
  • A potential film adaptation of Cormac McCarthy’s The Road.
  • Being blissfully ignorant of the next season of American Idol.
  • All the celebrities that we’ll get to see crash and burn.
  • Ignoring the news coverage of those celebrities’ fiery falls from grace. (Like they ever had any grace to begin with…)
  • And finally…writing a whole bunch of bleakly cynical blog posts!

According to the Chinese calendar, 2008 is the Year of the Rat. As strangely appropriate as that may be, being an election year and all, I prefer to think of 2008 as the Year of the Cynic. That is to say, this is my year!

I wish you all the very best in the new year!

Random Syntax

Well, since I seem to be on something of a roll with this whole random-word-generator thing, I thought I’d write another post about it, detailing my current progress.

I took the algorithm that I used in my previous post and tricked it out with a random-syntax generator. In a nutshell, here’s how the new algorithm works:

  1. Creates a list of phonemes using both consonant-vowel and vowel-vowel pairs.
  2. Adds a very few three-letter phonemes, isolated consonants, and random accented characters for flavor.
  3. Creates a “syntax matrix” with dimensions equal to the size of the phoneme “dictionary,” and populates this matrix with random zeros and ones. This forms the syntax that determines how words may be constructed.
  4. Builds words by adding phonemes to the current word, but only if the new phoneme is allowed (by the syntax) to come after the previous one.

The syntax matrix probably needs some more explanation, so, I’ll explain by example. Here’s an output sample from the algorithm:

[‘MU’, ‘Ô’, ‘TA’, ‘TO’, ‘CU’, ‘VE’, ‘GA’, ‘QO’, ‘PU’, ‘RU’, ‘FIP’, ‘XA’]
[0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1]
[0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1]
[1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0]
[0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1]
[1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1]
[0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0]
[0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1]
[0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0]
[1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0]
[0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0]
VEQOXA
XAÔ
MUVECU
MU
ÔFIPVEFIP
CURU
QOXATAGARU
MUCUTA
CU
TATOÔRU
PU
GACUXA
MUFIP

The list at the very top is the phoneme dictionary. And the two-dimensional array that follows is the syntax matrix. What the matrix does is, as I said before, determine whether the phoneme combination XY is allowed. Please note that XY and YX are, in this case, treated as completely different, and one of these may be allowed while the other is not. For a more concrete example, the first word in the list is VEQOXA. The first two phonemes are VE and QO. VE is the sixth entry in the dictionary (it’s in the fifth position, because Python arrays initialize from zero), and QO is the eighth (seventh position). To determine whether this combination is allowed, the algorithm goes to the sixth row, and then to the eighth entry in that row. Since that entry is a 1, the combination VE-QO is allowed. This is very much like the fact that, in English, we allow the letter combinations ABA and ABR, but not PQK. (Note: the intransitivity of the syntax matrix is actually demonstrated by this word. The combination VE-QO is allowed, but if you take the time to look it up, you will find that QO-VE is not allowed).

I had a lot of trouble getting this fiddly little bastard of an algorithm to work, so there are some peculiarities. For example, since Python doesn’t have anything resembling “goto”, if the randomly-chosen phoneme was not syntactically allowed to be added to the new word, then instead of going to select a different one, the algorithm simply gives up, adds nothing, and starts the whole procedure again. The result is that some of the words are much shorter than they should be. Hopefully, my Python skills will someday improve to the point that I can solve this irritating problem. I’d also like to modify the procedure so that no duplicate phonemes are allowed, since the two phonemes would likely have different syntactical relationships to the other phonemes, and so would build words that appear to violate their own syntax. (Actually, duplicate phonemes might create some interesting little idiosyncrasies that would make the words even closer to real language. So I guess I’ll leave duplicate phonemes alone).

Here’s a larger sample of what the current version of the random word generator is producing, conveniently formatted for your viewing pleasure:

PA, XIXEPO, XEPO, EO, DIÏAIPO, EODIEO, FI, XIAIXI, DIUOPA, Ï, PAW, PADI, EOAI, XI, DIPAXE, FI, EO, WÏ, XE, W, EODIPA, DIUO, W, WXIFIWXE, XIAIXI, UOPA, EO, XEW, XI, UOXIPO, FIPO, PA, AIXIEO, DIUOPA, XIPODIPA, PAPODI, FI, DIÏ, PO, UOWFI, PAWPOAIDI, EOAIDI, XIUO, EO, DIUOXI, ÏPA, FIAI, PAXEDIPAXEDI, ÏAIPO, EOPO, PADIPA, UOW, POXIXIXE, ÏXIFIPODI, UOPA, XIAIPO, UO, XEWÏPAPO, W, XIXI, PADIEOPO, XEEOFIPOXIDIÏPA, DIPA, POAI, PO, DI, XE, DI, EOPO, AI

P.S.: A thousand points to anybody who can pronounce all of these!

Randomness is Fun!

I was fiddling around again in Python, and I decided to throw together a little random word generator. Trying to be as culturally diverse as possible, I was sure to include the apostrophe as a possible character, in addition to the ever-awesome alveolar click (written as “!”). I discovered that randomness can be rather amusing, as well as being useful for producing incredibly unfamiliar names. I conjecture that these would look odd to the speaker of pretty much any language on Earth, since the phonology is determined entirely at random.

Without further ado (or further clichés), I present you with one hundred completely random names. (Note: The algorithm I used ensures that there is a vowel at least every other letter, because I got tired of ending up with garbage like SPDQGXL)

DI
EINI
PIRIIARA!
UUTIQOYADIK
FAVIXAIE
QAAETU!OEAY
CIROW
AADAAUE
SOTUNORUV
SOHULIB
QITAQUKEE
HOHUROVOLAO
PO’OHATA
EUHE
TO
QIOO!IO
EOPAEIZUH
ZI
DILA’EHUX
GIZE!ETA
QU
VULUUE
FUXAIE
JACUX
RUYEWIM
ZOZOGEI
XI
LA
VABADOUO’
XI
LU
ZUCIZOLI
SUDUXI!IE
WOQAJOEILIG
FIZOI
WEUUW
OABOK
IUVIQEWOAA
!A!IWU’UL
!UVOSEROHI
DIGUO
EIZE
CUJO’
!ANE
RA
ZALUBOVAR
NIXEUAMEPER
CEN
RAHOMU
LUG
LAL
!AVA
LUVAZIGURI
JE
PINAFUPE
FUKER
QUCE’AOO
AELI
ZO
NI
‘EQIVOLEYUF
TIQ
LOWAMOGIME
LOGOV
TOSUMI
SUUIDUPEQOQ
IUBI!UNA
HOCI
UAG
MESOP
JEKOJELI!UA
OEEAX
JOGEUUWOI
UINERE!UP
MAYOZET
EOMUSUKOGIJ
KOLETEN
NABURIZ
BE
RAPIZOMIC
AIKA!OWER
JUSILIBE
ZII
AO
DICIB
FULIHEKUL
TEVAZO
JA
QI!EXOEAC
NACUVONAC
QIXA
YONE
MAJAWOBIP
YEAEYE
FUZEEEBEYE
HEXIZOS
SE
MOKA!EMUGEN
‘UCIH
IO

I also found that throwing in all the accented characters that I could find made some amusing pseudo-European names:

VIOECILOSOW
RU’IKABULI
SIEEWUV
POWÀXEÕ
FE’ARIÎEJE
JE
HOWEXA’Ø!A
FAQEQOXEYUI
RÊIAPABEH
FI’UVIÖIZ
YAGOKE
QAO
POLÔKO
ÉEBÆÊUXA
JOÑOBOTICUY
GE
YINA
ÑOVIROJIROR
FOWU’ACEG
LIPA


UEDE
CAÈAFOSOD
PUSEKOEUV

Review: “I Am Legend”

Recently, I went to see Francis Lawrence’s film adaptation of Richard Matheson’s novel I Am Legend. I entered the theater expecting the same kind of action-dense, sarcastic, humorous, and vaguely amusing movie that Will Smith is famous for, and came out in a state of utter shock.

Ladies and gentlemen, I Am Legend is, by far, Will Smith’s best performance. Ever. Better than Independence Day. Better than I, Robot. Better, even, than The Fresh Prince of Bel-Air.

So that I don’t ruin an excellent movie for you, I’m going to save all potential spoilers for the next section. Read on, if you want to know more.

Read the rest of this entry »

The Trouble With Science Fiction

Over the years, I’ve been developing an aversion to modern science fiction — both literary and cinematic. So, in the true spirit of blogging, I thought I’d share some of my complaints and suggestions with the world that is the Internet. Here goes.

My chief complaint is that science fiction these days is all too frequently just about the science, never the fiction. In fact, a great deal of it reads like a lengthy, flowery technical manual, or like something written by a futurist. Nowadays, very little time is taken in character development or plot structuring. This problem plagues sci-fi movies with an especial severity. Now, many will no doubt protest that the “sci” is what sci-fi is all about, but I beg to differ. To me, it seems  that sci-fi should only ever be deployed as a tool to allow the telling of stories that aren’t possible in other genres. For example, there are few genres that can so eloquently explore the ramifications of mankind’s creations the way AI-centric sci-fi does. Interspecies tolerance — or lack thereof — speaks potently about our own tolerances and intolerances of each other, in a way that is frequently more poignant and direct than the literarily bogged-down novels of the past.

There is of course a much more serious problem with modern science fiction, and that is that it all seems to be written or filmed by a bunch of pimply adolescent technophiles with about the same amount of imagination as the average armadillo. Most science fiction novels — at least those by the “up and coming” writers — seem to be getting uncomfortably close to the gauzy rococo fantasies explored in the fantasy genre and Japnese anime (I must take a moment to warn my readers, I am terribly un-fond of anime. I think that it’s a bloated, stereotyped medium that Westernizes more sloppily than almost any other Japanese format). While I have no problem per se with either of these, I think that they tend to make the work clichéd and uninteresting. After all, how many angsty twentysomething protagonists with blue hair do we really need?

And as for the lack of imagination, if imagination were oxygen, then somewhere in the world would be a huge pile of asphyxiated sci-fi writers. About seventy-five percent of them would be screenwriters. It seems to me that there are about five science-fiction plots out there, and that whenever a young writer wants to get into the business, they simply pick one, add on some extra bits, throw in some filler, and call it a day. Now, this may indeed be the way that most novels are written — after all, there is only a finite number of plots out there, they’re bound to get re-used eventually — but the problem with that is that science fiction is a very dense pocket of literature, and any excess overlap brings it dangerously close to homogenity. What happened to the Arthur C. Clarkes, the Charles Strosses, the Isaac Asimovs, and the Phillip K. Dickses (Yes, Dickses. I am going out of my way to avoid being juvenile here, give me a break.)? What happened to the ebullient, enterprising spirit that made sci-fi great? After all, as I said before, science fiction is merely a stepladder to reach the previously-inaccessible reaches of literature. What happened to the galaxy-spanning civilizations, the beings composed of ions and magnetic fields, the self-made destructions of civilizations, and the kind of remarkable creativity of a story like Asimov’s “The Nine Billion Names of God”?

Here are my suggestions to my fellow writers of science fiction, in my standard, convenient, lazy, bulleted format:

  • Don’t be afraid to step outside of humanity. What science fiction really needs right now is somebody with the talent to make readers feel connected to a character of an entirely different species. Anyone who can do that — or has done that — with any elegance can have my pocket protector.
  • Don’t rely on archetypes and stereotypes. If your writing has become the standard test-of-the-hero’s-mettle stuff, then smack yourself in the face with your manuscript.
  • Only use sci-fi where it is truly needed. Some stories can be told much more elegantly within the confines of a far less exotic genre. Imagine if John Steinbeck had been born a generation later, and had tried to express the beautiful themes of Of Mice and Men as a space opera. The mind recoils.
  • Don’t, I repeat, don’t be a slave to the genre. Sci-fi does not necessarily need pitched space battles, homogenous gray-skinned aliens, and advanced weapons to be great. Isaac Asimov did it without aliens altogether. Arthur C. Clarke went beyond the whole “Take us to your leader” thing. And Charles Stross went — and is going — beyond the idea of humanoids as the only viable kinds of aliens. And none of the previous needed any kind of blinky, flashing lights or space battles to do what they did. I suppose what I’m trying to say is, don’t write anything that resembles any science fiction movie produced in the last thirty years.

Those are my thoughts. Enjoy.

Life Imitates Art: A Somewhat Twisted Look at Parasites

Everybody knows the story. It shows up in a lot of sci-fi movies: a secondary character gets attacked by some sort of creature that latches onto their head and forces them to do its nefarious bidding. Well, as it turns out, this isn’t science fiction. Such phenomena are actually observed in nature (thus the lame “life-imitates-art” reference in the title). As it turns out, there actually exist a few species of insect and virus that alter (and sometimes control) the host’s brain. As a service to those warped-minded individuals (such as myself) who find this kind of thing fascinating, I present to you, dear reader, the List of the Most Disgusting and Interesting Parasites I Could Find:

AUTHOR’s NOTE: I take no responsibility for any vomiting or nightmares resulting from reading through this list…

  • Emerald Cockroach Wasp (Ampulex compressa): This nasty little insect mounts the back of a cockroach, jabs its stinger through the back of the roach’s head, and using a precise set of sensors, guides the stinger, brain-surgeon-like, into the part of the cockroach’s brain that controls the escape reflex, injecting it with a venom. The wasp then — and this is the part that really blew me away — leads the now “zombified” cockroach around by the antenna, until they reach the wasp burrow, where they, in the standard fashion, lay an egg inside the cockroach, which eventually hatches, and the cockroach gets eaten from the inside out. As usual. Credit for the article upon which this bullet point is based goes to this site.
  • Hairworm (Spinochorodes tellini): This was the first of the creepy brain-parasites I learned about. This diabolical little nematode enters a grasshopper’s body, and steadily grows until it occupies nearly all of the space within the grasshopper’s exoskeleton. Then, when it’s time for the worm to escape and mate — which it can only do in the water — it forces the cricket to drown itself in a puddle, thus freeing the hairworm to frolic and breed. You can learn more here.
  • Rabies: All right, this one’s not as obscure as the others, but I still find it fascinating, in a macabre sort of way. I mean, rabies is practically the perfect parasite: it induces violent behavior in those infected by it, which leads to biting and scratching, which are the perfect methods of transmission of the virus! It’s hard to get much more direct than that. I’ve always though that a form of rabies that could spread more easily (perhaps even through mere close contact) would make a great basis for a horror film.
  • The Ichneumon Wasp: This wasp is the creepiest, in terms of sheer gore. The female wasp stabs her ovipositor (that’s such a cool word…an ovipositor is basically a tube that a female insect uses to insert or deposit eggs) into a caterpillar, and injects some eggs. Before long, wasp larvae hatch and eat the caterpillar from the inside out. This, too, would probably make a good horror movie.
  • Lancet Fluke (Dicrocoelium dendriticum): This fluke loves mammalian livers. In order to spread to a new liver, the parasites, excreted in the host’s feces, must be eaten by a snail. Then, when an ant drinks moisture from the snail’s trial (why it would do this is beyond me; snail slime is nasty), it becomes infected with juvenile flukes. These spread into the tiny little bundle of neurons the ant calls a brain (all right, it’s actually called a “ganglion” if you want to be specific). There, they lie in wait, controlling the host ant’s actions until nightfall, when they force the ant to climb a blade of grass, and latch on, waiting to be eaten by a liver-bearing herbivore. Creepy. Thanks to Carl Zimmer’s article The Return of the Puppet Masters for information about this one.
  • Toxoplasma gondii: This nasty little parasite lives in cats, and spreads from cat to cat mainly via rats and other small mammals. The creepy thing is that, although otherwise normal-seeming, T. gondii-infected rats are completely unafraid of the smell of cats, a scent which normally terrifies them. Kind of makes you wonder: who among us might at this very moment be under the influence of…the parasites. Heh…silly idea…the parasites are our friends…the parasites want to help us…Hm…I don’t know what compelled me to write that… Credit for pretty much all of this bullet point also goes to Carl Zimmer.

I’ll amend this list if I run across any other interesting additions.

Helium Shortage

AUTHOR’S NOTE: Nothing in this story is made up. I swear, this is pulled right from the news.

Perhaps, if you listen to the news for long enough, you’ll hear about this most unusual state of affairs. But for those who haven’t, then brace yourselves for some terrible news: the world is in the grip of a helium shortage! No, I am not kidding. This is not just a test. We really are getting dangerously low on the buoyant gas. Party stores have been forced to limit sales of balloons. All over the world, voices are slowly dropping an octave. Okay, I made the last one up.

Still, one might think “Well, so what? What’s helium good for, anyway?” Well, as it turns out (to my surprise) it’s actually rather important. While its most public use is for balloons, funny voices, and irritating dirigibles, helium in its liquid form has proven to be an incredibly effective coolant, and one of the only ones which can get metals cold enough for them to become superconductors. And superconductors are vital in MRI scanners.

But how the hell could we possibly be running low on helium? It is, after all, the second most abundant chemical element in the Universe. I wondered that when I first heard the report, but the newscasters were kind enough to explain it. You see, most of the world’s helium is produced as a byproduct of the extraction of natural gas. The problem is that the demand for helium isn’t really rising fast enough to justify the expense of reclaiming it from the crude natural gas. So, we may be teetering on the brink of a global disaster.

But even if global helium production dries up completely, fret not! For, apparently, America has some sort of massive helium stockpile, something like three years’ worth of global demand. I’m not even going to ask why.

So, things aren’t as bleak as they look in the world of balloons and MRI’s. And there will be one bright side, if the world’s supply finally does dry up: we will never again have to listen to some fool at a party inhaling the balloon and doing the Munchkin Land joke.

Nomic

Some months ago, I was flipping through a book on game design, and I ran across a link. That link led me to another link, which led to my discovery of the game of Nomic. Nomic is, by far, the most intriguing game I’ve ever come across. Developed in the 1980’s by Peter Suber, as part of an exploration of the ways governments can legislate themselves into corners, it has received, in my opinion, far less attention than it deserves. Here’s the gist of it.

The primary goal of Nomic is to change the rules. That’s right, the game is all about changing the game’s own rules. Readers familiar with my style and personality will see now why I was so drawn to the game. Play begins with an initial rule set. For example:

  1. All players must obey all rules at all times, in the current form in which they are written.
  2. A rule may be modified, added, or deleted in the following way: a player proposes the rule on their turn, and all other players vote on it. The rule will be enacted, changed, or removed if the proposal to do so receives a simple majority (51% or greater) of votes.
  3. Players perform actions in turn, moving from left to right around the play-circle. On each turn, a player rolls a die and receives the number of points shown.
  4. The winner is the first player to reach 100 points.

This initial rule set is intended to be quite boring, in order to encourage players to begin amending it immediately.  (Note: Peter Suber’s original incarnation included a division between two rulesets: the mutable and the immutable, the latter of which can be changed right away, and the former of which must be “transmuted” into a mutable rule first. This distinction seemed arbitrary and unnecessary to me, and so I took the liberty of doing away with it.)

As I searched the Internet for a good, active, on-line Nomic game, I discovered very quickly that almost no active games exist. As usual, it seems, I’ve stumbled upon something fascinating a couple of years too late. My attempts to start up a forum-based Nomic derivative failed completely.

Oh well. I just thought I’d get the word out about one of the coolest unknown games I’ve seen.

Don’t Rely on Electronic Translation

After running across some fairly amusing examples of what one man has termed “Chinglish” (that is, signs or labels that have been translated into English, usually poorly), I decided to see whether translation software may have been at fault. So, I popped into Google, found their free translator, and translated some English phrases likely to be found on signs.

First, I translated “Wet paint. Please do not sit on the bench” into Chinese. I then switched the mode to “Chinese to English,” and re-translated it. What did I get? “Wet paint Please do not have to become judge.” Hmm…I think I may have located the culprit.

I decided to try one more, the relatively common phrase “Keep out of reach of children.” When translated back into English, the result was “Stays out of a matter to achieve the child.”

What is the moral of this brief story? Don’t rely on electronic translation…

CISUM

Since I was a boy, I’ve always had a fascination with things that are flipped or reversed. Eventually, I taught myself to write backwards. Rednu doog secnatsmucric I nac epyt sdrawkcab. But only lately have I discovered the joys of reversed music.

Please note, I am not some sort of satanist looking for “hidden satanic messages,” and as paranoid as I am, I am not a conspiracy nut looking for “subliminal mind-control signals” (although I should note that I probably would have done that in the past). I’m simply listening to it because I’ve discovered that reversed music is nice. It sounds strange and eerie and unconventional. It’s actually a very attractive sound. If you want to try it, rip the songs from your favorite CD, plop the audio files down in a sound-editing program (I recommend Audacity, since it’s free, easy to use, and has a lot of cool effects for when reversing loses your interest), then reverse it. I find that E.L.O. (Electric Light Orchestra) songs work especially well for this. “21st Century Man” becomes very ethereal and celestial when played this way.