Monday, June 8, 2015

Tying together the Moto360, Tasker, WatchMaker, and my Queue

I manage a Technical Support department.  Knowing how many new issues are in the queue is a handy thing, and being able to see tiny little pieces of info like that was why I bought the Moto360.

I wanted a speedometer; something I could glance at and get not only a number, but also a gauge of where that number is in our context.

When I got the watch, I'd not realized that this wasn't as simple as I'd hoped it would be.  I finally found a way to do it, and the documentation that I'd read on the subject wasn't great, so I thought I'd share a general how to.

First thing I did was mock up what I wanted the watch to look like in Inkscape.  I did a quick and dirty sketch like this:
So far, so good.  Next, still in Inkscape, I mocked it all up:

.. the hands aren't pictured, however I did mock those up as well, partially so that I could get the math worked out on the hands.  I also built an overlay with a message saying "Signal Lost" so that, if I'm not either on the company wi-fi nor vpn, I will know that the number on the watch is stale.

I pushed the pieces (hands, face, overlay) to Watchmaker.  This was ridiculously difficult, since you have to use either the Android Gallery or Google Photo to find the images.  After failing miserably to get them to show in Gallery, I uploaded the parts into Google Photos.

Arranging elements in WatchMaker is easy; one thing that saved me a fair amount of time was to set my hand images to zero position before exporting them to PNG's.

Next, I built a very quick and dirty Python script that provides a web response with the the number of tickets in our queue.

With that complete, it was time to turn to Tasker.  I found Tasker a real pain to get my head around, but here's what I needed:

1) A variable to store the hostname and port for that web service.
2) A variable to store the result of the query; that's getting passed to the watch.  That's %Que.  In Watchmaker, my value for the rotation of the hand is tonumber({tque}) * 4.8  (You will really want to use that tonumber function, even if you don't do the multiplication like I did.  I also set the digital value on the watchfact to just {tque}; since it's text, tonumber isn't needed.
3) A variable to store a number for the opacity of that "Signal Lost" image. %Slo; my opacity setting in WatchMaker for that image is set to {tslo} (no tonumber needed here).

In Tasker, I'm doing:
HTTP Get %ServerAddress
  If %HTTPR neq 200   #That is, I failed to get a response
    Set %Slo to 60
    Send %Slo to Watch (through the Watchmaker Plugin)
   Set %Que to %HTTPD #Return the value pulled from http query to the variable
   Set %Slo to 0
   Send %Que and %Slo to Watchface

.. and that's pretty much it.  I set the profile for this to happen between 8 and 6pm every weekday.

Here's what it looks like running:

.. Hope that helps someone out there!

Thursday, December 6, 2012


Note: The following is a short story I wrote while thinking about our government's investment in armed cybernetics.  Be afraid.

"Ultimately, restraints upon war are more a matter of politics than of technology. If you are concerned about American aggression, it is not the drones you should fear, but the politicians who order them into battle."  David Brin, The New Republic

[them]"The odds of this issue occurring again are practically nonexistant."[/them]

[him]"This job," Christian thought, "sucks."
He thought back to his college advisor, who had talked him, ever so carefully, out of a double anthropology and sociology and in to a bachelor's in Comp Sci.  "In this climate," he'd said, "you need to think very carefully about the market value of your degree."
He had thought about it, one drunken night out with a few friends.  It had been Tim, the tall young Nordic god of the group, who'd belched loudly over one shoulder, and without allowing the act to diminish his sincerity even slightly, said, "You were good in math, right?  Computers, man, easy."
Somehow that seed of an idea had ground deep down in the dark damp soil of Christian's mind, and flowered and blossomed slowly and painfully into the cheap swivel chair that was currently holding Christian's white boy butt above the floor of a modern American sweatshop.
Oh, it didn't look like a sweatshop, granted.  There were no industrial sized fans slowly turning in the soft yellow haze of a steamy factory floor, nor any sweaty people standing in the long line of a conveyor belt, and as the great god Cable TV had taught us, that's what sweat shops look like, right?
Well, thought Christian, no.  They have glass fronts, and tastefully appointed lobbies staffed by unattainably hot office temps who seemed to always find a way into a promotion to Marketing, and thus allow for a constant stream of faces.  They have executive floors filled with the deep, rich browns of expensive leather and stained mahogany, and the lush green of growing things and money.
And then they have floors like the one Christian sat in.  The cube farms.
The cube walls and floors were covered with a tough gray canvas like material that had precisely the same color as fresh cement.  This gray was mirrored in the layer of gray plastic covering every visible desk surface.  Well, almost; every cube came complete with cuts and scratches in that soft gray, marks that the current occupant had never made, marks that reminded the occupant that someone had been here before him, and would be here after, someone who would examine the marks that he in turn left, like the tally marks of the old cons in stir, marking time.
And there was the clatter.
Sooner or later, every man child in the cube farm invested in a very good set of earphones or ear buds, and found some mechanism for delivering sounds that he could enjoy, or at least ignore, through those cans and into his head.  He did it because of that sound.. the sound of typing, coming from a dozen, hundred, thousand fingers all around him would find it's way into his subconscious.  He'd find himself driving home, thinking of the ocean, or of the white noise from old analog televisions, if he was old enough to remember such a thing, and wonder why.  He'd never make the connection to the clatter, still in his head, still following him like a bad smell.
Christian had been trying audiobooks the week before.  He had pirated some really awful ones, books on things that he could care less about, like on classical music or wine tasting, or old bad fantasy novels, since there'd been no shortage of those.  While that helped, he found that he had started incorporating them into his variable names.  During a code peer review, he'd been asked to explain why the increment value in a particular control structure had been "fjoderPinot", and another inside the loop called "ribStitch".  He'd changed them, and resolved to ditch the audiobooks.
Today he had some Suomisaundi trance piped through his Sennheisers, and it was doing it had been doing it's job quite well, when all of a sudden the track he'd been listening to had switched to the sound of someone yelling, very loudly, "Hai!", and then stopped.  Dead air...
And for that one brief moment of silence, he'd felt a certain kind of transcendence. He'd left himself, stood outside himself for one fraction of a second, and had taken in the drab cloth walls surrounding him to which he'd pinned absolutely nothing, the sliding file drawer beside him to which he had no key, and the bookshelf above and to his left, which contained a takeout menu and a book on some strange, archaic macro language of which he'd never heard, and in that sudden flash of understanding, had come to hate it all.  He hated this idiotic job, writing software to drive some kind of mechanical something which he'd never see, working in compartmentalization so granular that he wasn't even certain what the thing did, and doing it for just enough money to make his student loan payments, and enough to either eat lunch or take the bus, but not both.
He switched from the text editor that had been one of the only three apps he'd ever used on this machine and started his web browser.  The company's internal content management system spewed forth some statement about having received some new accolade from some organization of which he'd never heard, posted right above a statement about poor third quarter earnings (and the subsequent perks that would be abolished to handle the shortfall).  He placed a cursor in the URL field and quickly summoned the name of some head hunting webapp or another, and then stopped...
Wouldn't they see that?  Wouldn't the network filters immediately catch traffic outbound for such a site, and wouldn't that monitoring software start some big red light flashing, an air horn sirening?  Would it perhaps save time for all involved and open a trapdoor beneath his battered chair and drop him down into some deep abyss from which heat, light, not careers could escape?
No, he thought.  No, I'll wait till I get home.  I'll do it from there.  I have skills; I'm better than this.  I know some people who might be able to scout openings with their gigs, right?  Sure.  Sure I can. [/him]

[her]Her day had been nothing short of awesome!
Today they'd had a show and tell where Miss Stewart had let everyone hold her guinea pig.  She'd moved from back to front, allowing each child to either reach out their hands to hold the animal, or to shake their head.  Anna had her hands out long before Miss Stewart had gotten to her, and she'd immediately loved the sensation of life coming from the little beast.  Miss Stewart had been called to the door of the room before she could take the animal back, and then had gone on to talk through her morning's lecture, seemingly forgetting Anna and her pet entirely.  Anna had sat there for the better part of an hour, gently stroking the guinea pig while Miss Stewart had talked on and on.
Then, towards the afternoon, they'd had a spelling bee.  Not just Miss Stewart's class, either, but the whole fifth grade, and Anna had nearly won!
She wasn't at all disappointed about second place.  Nope, not even a bit.  First place, and you had to go on to compete with other schools, and your parents had to take you, and they'd get all INTERESTED like they had when she'd gone out for Lacrosse.  That had been miserable; they were constantly studying things on the Internet on how to help her; help her self esteem, help her nutritionally, help her playing, help her team, help her blah blah blah blah...  Truth told, they'd begun to worry her.  They were obsessive.  They'd play back the hi-def video they'd taken of her playing frame by frame and ask her to talk about it.
Anna hadn't wanted to talk about it; she'd wanted to //play// it, and they made it no fun with all of their attention, and finally she'd started messing up.  It felt like cheating, and she'd been ashamed of it, but she hadn't felt that she'd had much choice.  She was phoning it in for three games when she'd completed her plan by hinting that the game made her "feel bad about herself", and whammo!  No more Lacrosse.  Not even a hint that she'd ever played; they'd even gone back and excised her sport from their Facebook timelines.
So no, second place was absolutely ok.  They'd given her a blue ribbon and a laser pointer.
The laser pointer was way too much fun.  She'd been keeping it on the sidewalk in front of her, because Miss Stewart had warned her about the dangers in aiming the beam into people's eyes, especially when they were driving, but the closer she got to home, the higher and higher the tiny red dot had gotten.  She was keeping it out of the road, still, but she just couldn't resist making shapes and letters on the buildings and street signs. [/her] 

[it]NCT475 was having problems.
The connection back to Command was sketchy.  The problem could have been anything; a bad signal tower, bad hardware back at Command, although this was unlikely; they had redundants enough to rebuild their systems three times over.  If there was one thing Command believed in, it was redundancy.
So no, it was probably something stupid, like barometric pressure, or sun spots, or a passing convoy of aircraft, or who knows what.
Whatever the reason, the patrol cadre of TM45 Sentries was losing it's encrypted signal back to Command, which monitored and controlled their actions.
This was not a problem, necessarily.  Each Sentry was still able to locate it's position to within three inches thanks to the new generation of GPS, and each still had it's current patrol schedule, standing orders, and contingency orders stored right where it could get at them, yet still, there was the question of command.  TM45's had been built from the ground up to operate under supervision.  Unlike the nearly archaic drone recon systems that the military had been using nearly a decade before, Sentries required nor needed any human oversight, however they did need the intelligence available from their brethren, so in cases where homebound communication failed, the Sentries would relay their current positions to each other through local radio networking, and the unit deemed most central in the cadre would be elected as the local version of Command, responsible for relaying communications, monitoring the threat level and status of each unit, and deciding upon the threat response level.
The escalation of threat response was an extremely serious concept; instead of the normal peacetime responses of requesting identification, levying and handling payment of fines, and physical restraint, increased threat response levels authorized the use of disarming, debilitating, or even lethal force.  The TM45's rather paltry dual .45 caliber automatic weapons were no match for the depleted uranium cannonballs and high explosives available for the TM90 BorderGuardian systems, granted, but then again, out here in the burbs, it wasn't likely that the Sentries would be facing tanks or hostile mechs.  Besides, those .45s were armor piercing, and would pass through a car body with plenty of velocity left over.
The software designed for NCT475 and his brethren rigidly defined the cases in which threat escalation was permitted was one of the most closely supervised (and strongly advertised) pieces of software ever devised by man.  It had, in fact, supplanted Aasimov's Three Laws of Robotics as the mechanized version of the gold standard.
No, NCT475 wasn't having any problems with his added responsibilities.  What he was having a problem with was heat.
Up in his noggin (which he didn't need; however A-people felt safer around a humanoid heavily armed machine than they felt around non humanoid heavily armed machines, a fact which statisticians, deep in their cups, attributed to ED-209 from Robocop, and B-it made a great platform for sensory apparatus), one of the little muffin fans regulating the temperature had a bad bearing.  Had NCT475 auditory sensors up there, and human sensibilities with which to judge the sound, it would have driven him mad in short order.  Since he (or rather, it) didn't, the only real change was the partial powerdown of unneeded systems as an attempt to offset the temp.  This was a trivial grade issue; NCT475 would have to get four or six times hotter before deciding to head back for repair.  So far, so good.[/it]

[him]Christian was thinking about jobs.  He was making a huge mental list of his skillset, and was trying to think of ways to upsell every item on the list.  He tried desperately to recall every nugget he'd ever read about resume building, and cursed himself for not having done a better job of networking.
He had never considered trying to find another job.  He remembered the excitement he'd felt when this one had expressed interest in him.  At the time, he'd been something like 57th in his class.  One too many nights out with Tim, one too few deadlines met.. Well, maybe it had been more that that.  Deep down in the back of his mind, where even he couldn't reach it, lived the certain knowledge that Christian hated programming.  He'd hated it when he'd taken hist first class, but he'd felt a kinship with the nerds surrounding him; he spoke their lingo, he knew their cult classics, even ate their food.  It had seemed only right and natural that he should be in the CS program, even if he tended to glaze over during lectures on algorithms and structures.
But that knowledge was just out of reach, like an itch you can't quite reach.  Christian continued to plan his escape from the corporate cell block he'd landed in, and his mind was everywhere at once.. except here.  His mind was nowhere near his code.[/him]

[her]Anna wasn't far from home when she'd discovered the kitten.
It had been nothing more than a thump from a cardboard box near a set of trashcans.  Anna had moved the spot of her laser pointer into the dark shadow cast by the box's open side, and had nearly jumped when the bright yellow kitten had leaped out of the box to put both front paws, tiny claws extended, under the red dot.
She was delighted by the serious expression on the face of the kitten, and had giggled, which caused her hands to shake just slightly.  The kitten's head shifted like a small negation to follow the dot.  She moved the dot slowly away, and the kitten scooted himself forward, smacking at the dot with an alternate paw with each scoot.
Anna laughed out loud, and started running the dot around in small circles, watching the kitten spin and spin, never tiring.
Anna had already decided that she would keep the kitten.  She would use the laser to coax the kitten home, and would convince her parents to let her keep him.  She had no doubts that she could do this; she'd been quietly controlling them for a few years, now.  She was trying to find a name for him, trying to position the kitten close enough to pick up, when she heard the "thunk, thunk, thunk" of a Sentry.
The kitten saw the Sentry as it turned the corner, and immediately darted away.
Anna was furious!  Her kitty, her sweet, lovely kitty!  With the speed and strength of a child's imagination, she had already lived through years of petting and hugging the kitten, and she keenly felt a sense of loss that, while stemming from imagination, felt no less painful because of it's source.
She was so angry!  Stupid robot, she thought.  If she had a gun, she'd shoot it!  But, she did have one in her hand, or at least, close enough.
Anna lifted the laser pointer and pointed it at the TM45.
"Pyoo pyoo!"  she called as she pushed the button on the pointer.[/her]

[it]The beam of the laser passed into the receiving end of NCT475's laser designator system.
Normally, this flurry of sensory data would be caught and discarded by the system, but a few lines in the driver software for the designator failed to account for the state change.  Perhaps the code was flawed due to a spec design flaw; perhaps it came from simple human oversight.  Or perhaps the code had been written by a man with strange music pounding into his head while his thoughts were a thousand miles away..
At any rate, the input from the designator was pushed into an area of the system's memory which was too small to receive it.  Since the designator's code ran at a higher privileged level of system access, the extra gibberish was written into the next adjacent block of memory.
That block of memory happened to be the area in which NCT475 had stored it's current threat response level.
The garbage data was read as a pointer to a completely different set of instructions than the Sentries had ever been told to use; a set of instructions that defined a pattern of behavior to be used when surrounded by a hostile opfor (opposing force), with maximum firepower to be used in response.
That threat response level was immediately broadcast to every TM45 which had elected NCT475 as it's local control node.  The area patrolled by these units covered twelve city blocks.
NCT475 raised it's arms, the chambers of it's weaponry clacking into a ready state as it targeted Anna...

Monday, October 8, 2012

Bury Me in a Cardboard Box, Please

Nothing quite gets you thinking about your mortality like a good car accident.

Someday, I'm going to die, and there's something about that which I want to prepare you all for.  This will be morbid, but it needs to be said, and I want it on record.

If Cindy follows my wishes, then when you say your goodbyes to the dried out shell I leave behind, you'll notice that I'm in a cardboard box.

On the one hand, I hope that this won't offend you.  On the other hand, I'll be dead at the time, so I don't really care either way.  And that's ultimately the point.

Funeral directors make a killing (sorry) because of survivor guilt.  They know the surviving spouse feels guilty because they're still alive, and they know that this topic is not one that most folks want to have with each other when they're alive.  A few well placed comments about "preserving" our loved ones and "honoring" the dead, and you've spent more money on the stiff while they were above ground.

Here's the deal, folks; I don't want to be preserved.  I don't want to be embalmed just to make it easier to get everyone to the funeral; I'd much prefer you left my organs in place when you plant me.  I do not want to be buried in a lead lined steel canister guaranteed to keep out the worms; in fact, I happen to know that if you don't allow a casket at least an outgoing pressure valve, then the build up of gases as we decompose will cause the coffin to explode.

I'm not fooling around, folks.  A decent service should cost no more than about 2k, absolute tops, and I hope someone will man up and remind my wife of this, and help her obey my wishes, so as to keep my family from getting screwed.

I don't care what impression my final arrangements make, but I care very much about the welfare of my family after I go.  The ridiculous amount of cash used in most funerals will be much better spent on the living, and they'll need it.

So please, when that day comes, don't send flowers.  Instead, help my family in whatever way you can.  Help my wife, if I go first.  Help my children, if they can't fend for themselves yet.  I don't plane to leave them penniless, mind, but there's a lot of us Dyers.

Tuesday, October 2, 2012

Car Accident

Thursday, September 30th, my family and I were on vacation at Sea watch Plantation in Myrtle Beach, SC.  we loved the place, and had been having a great time.

My oldest son had some money burning a hole in his pocket, so we agreed to go to a toy store.  Before that, my wife and I, along with our two youngest children, would head over to a book store and peruse while my parents got ready and took our remaining three kids out.

This was the first time I'd driven without having my Droid X on in GPS mode.  I was giving the road my undivided attention, and was trying to figure out where it came out.  It was a 35, but I was doing more like 25.

I came up on an intersection that looked like this:
.. except there's now shrubbery overgrowing the stop sign.  I didn't see it.  It's not that I was texting, nor talking, nor driving under any kind of influence; I just didn't see it.

I remember hearing Cindy say, "Look out", and then I noticed the stop sign, but it looked as if I had plenty of distance to stop.  I also remember glancing left and seeing something blue.

The next thing I knew, I was talking to someone I'd never met before standing at the driver's door.  I looked down and saw that my airbag had deployed, and that the passenger seat bag had as well.  I saw Cindy standing outside of the car with the babies.

We'd gotten hit pretty hard:
Thank God, the babies, my wife, and the other driver were all ok, but the van is totalled.

I got my first ambulance ride, followed by some cat scans and x rays.

My shoulder was giving me quite a lot of pain, and I felt disoriented.  Turns out I had a hematoma (blood in the brain) and a broken left clavicle (collar bone).

So here's how it all pans out; I don't have a vehicle in which I can fit my entire family right now, and I can't drive, so I'll be relying on the kindness of others for a while while I heal.  However, while I thought, after we paid off the car, that we'd cancelled full coverage and only kept liability insurance, we hadn't, which will be a great help in the face of the coming hospital bills and auto costs.

I still have my health, and I still have a job.  I feel terrible physically, but I've seen my God's hand at work in keeping my family safe, in saving me from even worse obstacles than those which my family and I face.

We really did have a great time, aside from this incident.

Sunday, May 27, 2012

Writing My Second Novel

When I was younger, I used to fancy myself a writer, and I wrote quite a bit; short fiction mostly, along with really awful poetry.

I managed to write a novel length piece (of what, I'll get to in a sec) when I was in my preteens called "The Afterlife".  It was a campy spoof of what happens when we die, and I even managed to convince a couple of people to read it.  It took me six months of hammering away, long hand at first, then on a Brother Typewriter my parents had been kind enough to buy me.  (This is long before I was seduced by my square headed mistress, as the wife likes to call it.)

I burned it.  It was complete crap, so I took the pages outside one day, covered them with lighter fluid, and watched them burn.

That's probably a good thing, although it does pain me a little.  I can't remember what I've written five minutes after it's down on the page, so while I remember a bit about my poor main character (and his demonic public defender, Lockranore), I can't recall a lot of the plot.  Maybe it wasn't as bad as I'd thought.

I convinced myself that I could not write, at least, not commercially, which is all I really wanted, so I quit.

If you're reading this, then you may have caught a few of the burps that have escaped that aspect of myself (The Pill, Mulligan, and Fishing Trip, for example), although nothing really solid has come out of me in a long time.  It's not for a lack of ideas; I actually have a bunch.  What I didn't have was confidence.

I figured out a couple of things about myself, recently.  One is that if I know how a story ends, I really don't care to tell it, not even to myself.  Another is that if I plan a story well, I'll never write it; whatever it is in my head that's responsible for this aspect of myself figures, "OK, done", and it's over.

I've also noticed that since I've started writing again, my headaches are getting better.  I'm not a hundred percent sure, but I'm starting to believe that the headaches are psychosomatic, and they are my mind begging for the defragmentation that writing seems to provide for me.

Finally, I've found that if I don't make myself accountable to someone to get the story written; that is, if I don't have someone who actually cares about what happens next, then I can't write.

That probably speaks volumes about my shallowness or desperate need for attention, but to heck with it, I'm being honest.

So I'd like to take a moment to thank the people who've agreed to read along as I write on this latest attempt; it's more their attention than my work ethic that's getting this thing done.  Thanks, guys.  If I manage to get it published, I will list you with the guilty in that first part of the book that nobody reads.  You guys are the real crutch I'm leaning on to limp on my broken confidence, and I couldn't have gotten even this far without you.  (Most especially and always you, Cindy.)

I think this one may actually be saleable; I'm looking into trying to find a publisher, so if any of you have experience or relatives in that business, let me know.

I've thought about going Cory Doctorow with it, but I think I'd like to try print publishing, first.  While it's still out there.

Anyway, if you're interested in reading this thing, let me know; I like the feedback I'm getting, but could always use a little more.  The first writing I ever published in a publicly accessible medium was over packet modem via Ham Radio; the only response I got back was, "Boy, I've read better scrawled on the doors of Mississippi outhouses," so feel free to be critical; you're never topping that one.

Friday, March 9, 2012

Posted about birth control

Go check it out over at

What makes Good Science Fiction

First off, we need to get our terms straight.  When I say Science fiction, I am not, repeat, not talking about Star Trek: The Next Generation.

     I'm talking about Heinlein, Bradbury, and Herbert.  I'm also talking about Asimov, Clarke, and Niven.

     See, there are two classes of Science Fiction, and one of them is terribly misnamed.

     First, there's "hard" science fiction.  In hard sci fi, the science matters.  Usually, the science, technology, or concept under discussion in intrinsic to the plot.  For a good deal of this particular grouping, the characters are completely unnecessary, and the writing shows it.  As an example, if you read I, Robot (and I'm not talking about the movie), I would ask you to describe three characters from the novel in more than one sentence.  Hard to do, isn't it?  That's because, by and large, they don't matter.  What Asimov does, and does exceptionally well, is present us with the three laws of robotics, and basically walk through how they can subverted.

     Hard sci fi has varying levels of character development, granted.  I had a good feel for Heywood Floyd in 2010: Odyessey Two (although, to be honest, a lot of that came from Roy Scheider's portrayal in the movie), it was again the science that grabbed me; I still find myself hoping, even if I'll never live to see the result, that Jupiter is indeed harboring a diamond larger than the Earth in it's core.

     In hard sci fi, the science matter.  In good hard sci fi, you learn something.  In really good hard sci fi, you keep thinking about the subject long afterwards.

     In bad hard si fi, the science matters, but it isn't science.  For example, how many times in Star Trek TNG did deus ex machine rear it's head in the form of "reversing the polarity" on some completely random peice of ship equipment?  Too damn many, at any rate.

     In science fiction, not the hard kind, on the other hand, it's the people that matter.

     I had a conversation with my son a while back.  He's seven, and he wanted to know why I had such a high opinion of Shakespeare.

     "Because," I said, "unlike most of his contemporaries, he's still relevant.  You can read Shakespeare, and what he has to say about people is still true.  You can replace the castles and kings with plantations and aristocratic genteel southerners, or modern folk, or spaceships, and the story will still work."

     I know this to be true, because with Shakespeare, it's been done, and it worked.  For example, check out Ian McKellan's recent version of Richard the Third; even set in 1940's with Richard mirroring Hitler, the story rings true, and works.

     This is also true of good science fiction.  For example, Starship Troopers by Heinlein, which to this day I hold as one of the greatest examples of it's type ever written, could be easily moved into a World War II setting, or Victorian England, and still work.  (I am not referring to the movie; Paul Verhoeven earned himself a special place in hell for committing an act of desecration when he directed that abomination.)

     Dune, by Frank Herbert, is another great example, although part of the reason it works is because it's already a transplant.  Dune is a stream of conscious work (if the thinker is a genius) on the modern world's  relationship with oil.

     Science fiction, terribly misnamed, is really about people.  Good science fiction resonates with us no matter what the setting.  Great science fiction changes how we perceive people.

     Bad science fiction say all the wrong things about people.  Quite a bit of bad science fiction focuses far too much on our baser aspects; really bad science fiction is driven by sex that it might as well be a Harlequin romance novel.

     The genre, in it's literary format, is dying.
     It was perhaps inevitable; our world changes so much, technologically, that instead of being prescient (like Arthur C. Clarke predicting cell phones and satellites) to being outdated the day after it's published.  Being a good futurist these days is a difficult proposition, since there's so much change, and also so much uncertainty.  A lot of authors are playing it safe lately, and focusing on Gold farming and MMOs.  I can't wait for that particular fetish to die.

     There are a few authors out there still working, still putting out quality work.  I really enjoy Neal Stephenson's work (even though even he's caught the gold farmer bug); I think Anathem is also potentially one of the greatest books ever written.  (That said, I would strongly encourage you to catch the audio book; in addition to excellent writing, it's one of the best readings I've ever heard.  The reader (who's name I cannot find, sadly) does an incredible job of performing.)

     Still, the days of Bradbury are far behind us, and I mourn their passage.  We've lost a cultural sense of innocence, and with it went a sense of awe, of wonder, and joy that I find myself rereading older books to regain.

      I'm working up a list of book recommendations; these are the thoughts leading up to that list, which is coming soon.