Solid State Rhyme Will Be Released on May 1

Solid State Rhyme OTHER SITES

The prequel to The Mandate of Earth is now available for preorder! Expected release date is May 1, 2015. This is my first novella-length work of fiction, and was actually my first fiction story. Written in the late 90s but never released, it was the inspiration behind the novel so it’s a fitting prequel.

Daniel Grant is a quiet teenager with a penchant for mad science–computer science and robotics, that is. His “A-Life” project, based on a genetic algorithm he designed, wins first place in his secondary school technology competition. He keeps working on the project, obsessed with his “Bots.” One night, the bots begin to multiply and evolve, and they discover the Internet.

At first, a new software virus is reported, hitting networks around the world. They invade government and corporate computers indiscriminately. But the “virus” behaves strangely–rather than causing harm, the bots improve computers, replacing error-prone human code with their own. As cyber security experts around the world hunt them down, the bots must learn to adapt in order to survive.

Mandate is Finished


Last night, 3/16/2015, at 9:00PM, I wrote the final paragraph of The Mandate of Earth, sat back in my chair, and breathed a sigh of relief. 12 years of struggle finally over. I started writing this novel in 2003, inspired by a lifelong love of science fiction, a fascination with artificial intelligence, and even to a small degree, a video game called Homeworld (by Relic Entertainment).

I had been writing short stories for a couple years, and didn’t try very hard to get published, mainly due to a heavy work schedule. Which never did let up over the years, from one job to the next, at times a software engineer, sometimes a teacher, always tired. Every so often I would open it up and dream of finishing the story, and never quite sure about how to conclude it.

I rewrote it many times, I suspect due to self confidence. Meanwhile, I began a side career as a technical writer and now have 19 books under my belt, some of which have been revised several times, 2nd, 3rd, 4th editions. In late 2012, I decided to retire from technical writing and use that energy reserve to return to fiction. It worked. I still worked full time as a programmer but was able to muster the energy again for the novel. So, for 15 months, I labored, first to fill in the story, add details, and then to come to a satisfying conclusion. For some writers, this is no big deal, but this had been on the back burner for so many years that it was tough to finish it.

I don’t write once-through, I use the iterative process of a programmer: write a rough working piece, then revise, revise, revise until perfect. Or, functional, anyway. So that’s what I did. I did about four complete revisions, the last one being more of a read-through, not requiring any major edits. I was able to add consistency among characters and scenes and fill in a back story, and bring the characters even more to life. The protagonist really isn’t a hero, he’s just a man with flaws and weaknesses. Aren’t we all? During the last revision I was also able to get it proofread by beta readers which added quick strength.

You see, I haven’t submitted any manuscript to any agent or editor. They never respond anyway–I learned that while writing short fiction, though I honestly didn’t send any piece out to more than a half-dozen publications. So, while I have extensive experience now with the editorial process in non-fiction, technical writing, I had none in the fiction market. So, even a single beta reader’s critiques were golden.

So what’s this story about? It’s epic in scope, traversing a man’s lifetime from childhood dreams to old age. The story is set in the near future, mid-21st century, with familiar themes today, like private spacecraft, a difficult economy, global tension, corporate espionage, government corruption. But overshadowing these issues are grand ideas about man’s future in space. The story begins with a devastating tragedy that changes the landscape of the United States in many ways–geographic, political, and economic.

In the wake of that disaster, Jack Seerva rises to the top of the aerospace industry with innovative new booster and spacecraft technology. His vision is to expand into space, far beyond Earth orbit, to keep the human race from an extinction-level asteroid or comet impact. He meets great resistance to that goal, and in many ways, is defeated by his rivals, without a Randian-style deus ex machina to save the day. This is a real world, and this is hard science fiction.

The old adage, “necessity is the mother of invention,” truly applies to the events in this story. Certain new technologies are needed for long-term living in space. And yet, without making the effort to branch out into space, there is little motivation to create those technologies, which become synergistic and lead to spontaneous artificial intelligence. And that development is a real turning point that changes everything. Will humans be rendered obsolete, replaced? Will there be a war?

None of that pessimistic, cynical view of A.I. is found here. Not a hostile, cold mentality–more like a brilliant child, that comes to think of itself not as superior to people, but a fellow child of Earth, with the same responsibilities, and then some. The A.I. eclipses humans, Kurzweilian-singularity style, but remains accessible. Ancient, yes; brilliant, yes; psychotic, not at all. Instead, A.I. leads humanity into a new age of high technology that redefines industrial production, and eventually eliminates mining on Earth. And, with that tipping point comes a new player in human affairs with a devastating threat.

But I’m giving too much away already. Pick up a copy!

America Needs New Trains


I’m in the transportation industry now (as a programmer). Looking over trucking routes across N. America, it’s staggering. 3.5 million truck drivers (9 million including dock workers, etc), heavily dependent on gas prices. These guys deliver 70% of our goods! It works, but it’s inefficient. Trucks should be regional, not continental. We need a new railroad network. I know that’s hard. Very hard.

The solution might be a new type of railroad, down to truck height rather than railroad height–14 ft down to 10 ft. Fewer RR cars, smaller engines, possibly electric–solar powered? Install them next to or in the middle of interstate highways–existing rights-of-way. And only across the arterial highways–I-10 across the southern states, I-5 on the west coast, I-80 across the northern plains, I-95 on the east coast, with more rails on the heaviest trucking lanes.Truckers take over from there, branching off from those arteries.

How about logistics–loading, unloading? Who would warehouse the containers? Store them until pickup? Think of the way UPS and Fedex works, only with larger packages. The logistics would be added to the interstate highway funding via DoT, paid for by shippers, per container. Magnetic propulsion, magnetic suspension, and magnetic loading/unloading of containers. They’re all metal, remember?

What would that accomplish? Think about it. Trucks already use the interstates. Avoid scales, reduce truck wear, keep drivers local–improve their quality of living. A lower profile train would be able to haul standard intermodal containers–which are 8-9 ft tall, and 8-40 ft long. Minimum height of highway overpass is 16 ft. Plenty of room for a new type of RR flatbed. This is where my knowledge breaks down–but I’m just proposing this as a big idea.

I’ve been writing about this for a decade (see this piece). When you have a modular rail system, then each module (“car”) can be equipped for any purpose–passengers, personal vehicles, refrigeration, etc. Large shipping companies might use their own cars, and hook up to a RR rather than loading/unloading containers. In other words, no more mile-long trains. Instead, hundreds of small ones.

What do you think? Is it a pipe dream or feasible?

Classic Computing Nostalgia


I had a fit of nostalgia this past week for 80s computing, and this old marketing ad is a beautiful double entendré today!

Amiga 500, Atari ST, Commodore 128. Began seriously shopping ebay for a C=128. As a kid I’d wanted one so bad. K-mart used to have them in the small electronics/game area, and at age 12 I wanted one so bad I could almost taste it. Reminiscing brought back those feelings, where my fingers ached to touch the keys. I was about to buy one and stopped myself. Is it worth ~$150 to fulfill a childhood craving 30 years unfulfilled?

I imagined setting up the Commodore next to the classic console table in the game room, then picking up a dozen or so old games for it, also from ebay. I would even do some programming on it, in BASIC, and get a C compiler and an assembler. Even though I could do that with an emulator, it’s not the same thing–not by a long shot. Emulation is comparable to watching a first-person video recording of a roller coaster.

But what then? Like the Sega Genesis + CD + 32X system I bought earlier this year, the idea is to get the best games for the platform and just play them, relive the era–especially if you never owned the system. What then? Well, if you don’t plan to use it, get a storage bin, throw in a few moisture pellets and store it until you get the nostalgic bug again.

For old geeks, this is like collecting records. An old music fan treasures their record collection. It doesn’t matter that CDs and lossless audio with 5.1 surround sounds better, they WANT to hear the crackle as the tiny diamond bumps up and down in the groove. Even if it’s a modern record player. That’s a tangible, tactile experience you can’t get with digital music, and exactly the same as preferring authentic old hardware over emulation. Thus, it’s not about just playing a game, it’s about experiencing the work that went into making that computer–touching the molded case, controllers, keys, that engineers labored to create under tight deadlines and unreasonable managers.

It is also about reliving the era. Not obsessing, not dwelling, but experiencing it again to bring up fond old memories, to remind yourself that you haven’t forgotten, that those cherished memories are still there. As age sets in, one does tend to wonder how much is lost over the years. It sometimes does take touch to bring them back. Not to live in the past, for escapism, but to remind yourself every so often of who you used to be. Nothing wrong with that. After all, I’m not talking about a warehouse full of cars.


Happiness By Vonnegut

Been reading Kurt Vonnegut for the first time. Lots of great wisdom. In his opinion, the problem with the world is we’re still following Hammurabi’s Code–an eye for an eye, tooth for a tooth. Look at how the USA behaves toward terrorism, how so-called “Christians” in this country treat other nations. A nation has a right to defend itself? Sure, but not by Hammurabi’s Code–shouldn’t Christians follow the teachings of–you know–the guy they’re named after? Jesus was truly the Prince of Peace. Why, then, do “Christians” (who shame the name) behave as they do? It was about 10 years ago when we invaded Iraq. As revenge for the 9/11 attack. Which, of course, had nothing at all to do with Hussein, so by even Hammurabi’s Code the USA is guilty of murdering another nation and hundreds of thousands of it’s citizens. Did Hussein need to go? Not our call.

Vonnegut also knows what motivates men and women, what makes us happy. For women, it’s having lots of people to talk to….about everything. For men, it’s having no one angry with you for any reason. The reason why divorce is rampant in the USA is because we’re all so lonely. So terribly, tragically, profoundly lonely. It’s not in our genes to cope with it, as our ancestors were not lonely–they lived in huge family groups of 50 or more and rarely left their homes. Communal living has proven to not work, as the culture doesn’t support it. So our best option is probably to be involved in social communities, like church, bowling, drinking buddies, whatever it takes.

He said, ages ago, marriage was celebrated. Today, it’s basically a sad occasion–if you’re honest. The parents on one side or the other lose a child, or more likely both as kids are encouraged to leave and go start a whole new town on their own. As stupid as that sounds, it is basically what parents are accustomed to doing to their kids at a certain age. It’s not in our genes to cope with loneliness. And even with the world’s population doubling every few decades, we become more and more lonely in the USA. We turn to video games, internet shopping, and TV, rather than being together. You can see the Millennials rebelling against the “Leave it to Beaver” model set by boomers in the way they have embraced social media. The young today do not want to sit at home watching game shows, sponsored by ads sporting the latest crap they should rush out to buy on payday–idolizing free money.

I’m op-ed’ing Vonnegut a bit here, but he lived long enough to see the internet further isolate us. Maybe Millennials will break the trend. But it needs to be more than this capitalistic ad-based system. Question: Would you pay $5.00/month to use a Facebook with absolutely no ads anywhere? I think I would. Even right this moment, to the right of my cursor, there are 6 stupid ads trying to lure me into clicking them. Why would I want to? If I’m not in tune with that “thing” today, why should I be falsely reminded of it, and compelled by very sophisticated brainwashing to desire it? The ad itself, just sitting there, is anathema, hostile, manipulative, whether I respond or not my eyes have seen it and now it occupies a small space in my mind, if only for a few seconds. I should be compensated for anything thrust into my mind like that. Or, if given the option, perhaps I would pay a small reasonable fee to avoid it altogether.

Thinking About Time

I’ve been doing some deep meditation about time, from an intuitive point of view, not subjecting my thoughts to the physics and math–though trying also not to violate what we currently know.

I have had an impression since a very young age that space-time doesn’t quite work how we think it does–namely, Einstein’s theories, plus quantum mechanics. Sometimes after exploring the complex route, you end up learning in the end that the simpler explanation is better. Not strictly Occam’s Razor but a pragmatic approach.

We think of the first dimension as a line of infinite length but no width. But isn’t a line made of points which occupy no space at all, just theoretical estimates of a location? No, it turns out, a point is a vector and is easier to think about in 3D terms.

Next, the second dimension is a plane, flat surface, which might be viewed as made up of parallel lines, infinite in all four directions but flat, having no height.

The third dimension rises upward from the 2D plane, as if there are infinite planes stacked upon each other, and you end up with a cube shape–as a visualization. But it’s not really a cube, as all 6 sides have infinite length. But we think of 3D in terms of objects, it can be viewed abstractly.

What, then, is the 4th dimension, which is commonly misunderstood to be TIME? To understand time, I began thinking about the other three dimensions. When we move around, we are in 3D space, and one dimension of Time, according to Einstein. But time is not MOVING. That’s the misconception I feel intuitively (again, if I were a math/phsics major, these thoughts would have been culled in order to survive), that time does not move of its own accord.

To move in the first dimension requires the second. Why? Because, if you imagine yourself a point, you cannot move along a line without the second dimension pushing you along–there’s no driver, or engine, so to speak. You can’t rise up and choose the location along the line where you wish to be, and place yourself there, without the second dimension–the plane/surface.

Likewise, you cannot move through a 2D plane without the third dimension as a driver. Physicists will call me a dullard here for not understanding basic geometry or Cartesian math. Except I do, as a computer science major, and probably understand it far better than any theoretical mathematician for having rendered things with these tools. They are trained to shut down such divergences of their beloved theories, ignoring the fact of history, how the status quo has always been wrong. Copernicus. Galileo. Einstein.

Movement in 2D occurs mathematically via transforms, and we estimate such movements with geometry and matrix math. I know that. But rise up above the algorithms… see these concepts from a higher perspective, not down among the dimensionless points… To move in 2D required the third. Thus, to move in the third requires… the 4th. Incorrectly labeled TIME.

What is the 4th dimension? It is the driver of the third. When you move in the third, the first and second are encapsulated and move with it, like the air in a wheel attached to a bicycle. You CAN potentially use them individually, but not out of order–you can’t adjust within the third while ignoring the first or second. But how do you actually MOVE in the three dimensions? Again, that is where the 4th comes in: Like the 3rd is required to move in the 2nd, so the 4th is required to move in the 3rd.

Why? Why is that required? Is there a theory? Don’t throw theories at me–that’s why we only figured out so late that the Earth rotates around the Sun. But I’ll explain as I perceive it.

If you are within the 3 dimensions, you may perceive yourself as a point. Nevermind that your body has volume, imagine your center of mass being at one point in the universe, defined as X,Y,Z, for the dimensions 1,2,3. You can be a point in that 3D volume. But can you move? NOT without the 4th dimension. It is not time, it is the engine or mechanism by which movement is possible in the 3rd.

If there was no matter or energy anywhere in the universe, just the structure of space, say–would the 4th dimension still exist? It surely could not be measured without matter or energy, but assuming you have an omnipotent awareness and are looking at the universe from outside, would there be time? Perhaps. But it is not an “object” the way our culture perceives it. Time is a misnomer. the 4th dimension is like the 3rd, and the 2nd, and the 1st, but it contains them all, and makes it possible to perform transforms in space–say, vector based movement, to get a bit mathematical. Choose a direction and begin moving, by whatever means you can–walking, rocket engine, etc. The 4th allows those translations to occur. But it is not a separate “thing” that can be manipulated. It is one dimension beyond the third.

The reason science still does not understand time, and must use analogy and abstraction, is due to viewing it as a thing separate from space. “Space-Time”. Yes, if you define space as merely 3D, but it is not, because movement occurs in space, movement of matter and energy. Even the orbit of electrons is movement, requiring the 4th dimension, without which everything would be frozen. “frozen in time”. No, think of the 4th not as time, but as moving in the 3rd.

From that view, is Time truly a LINE, as explained by popular theorists, so neck deep in academic brainwashing that they can’t think straight? How can “time” be a “line” if it is merely the dimension that allows movement in the lower three? The 4th dimension IS ALSO part of space. It does not begin or end or go backward, it is merely movement in the 3rd. And as such, there is no time travel in the past. Into the future, yes, because time slows down near gravity. But not reversal. Why?

To answer that question, again, look at the lower dimensions. With the help of the 2nd–the PLANE–can you travel backward on a 1D line? Think about it… (Jeopardy music)… Can you go backward with vector math? By negating the vector, you can go “backwards”, but that is still just movement opposite to your point of view. A line has an origin (0) and infinite length in both + and – in two directions. IN TWO DIRECTIONS. It is the 1st dimension, but moves in TWO WAYS. See what I’m getting at?

Think of going “backward in time” in 2D… Say you’ve moved a chess piece 10 inches across a table. That movement has a vector, a position, etc, on the “table” (e.g. a 2D plane). How many directions can you move in on that table? More than TWO! You can go left, right, forward, backward, relative to the surface of the table. That’s FOUR directions.

Taking this argument further into 3D, you can move around in a total of SIX directions, by visualizing vectors moving outward in all 3 dimensions, + and -. That’s where we get the idea of a cube, only the cube’s edges are infinitely far away (and in fact do not exist as there is no boundary). Again, visualization is required for human comprehension.

Can you then go forward or backward in “time”? How? That question implies that time is a line, forward and backward, + and -. It is not! Time has EIGHT directions. How do you visualize that? First, note that you can’t use that sort of movement without a 5th dimension, and I haven’t given that any thought whatsoever. 4D is hard enough. To understand this, recall the lower 3. Can you move in a straight line in 2D or 3D? Sure! Can you move diagonally across a 2D plane in 3D space? Sure! Just move in precisely that direction. You exist in 3D while moving in a more limited manner, emulating 1D or 2D.

Likewise, in the 4th, you may move in 3D terms without making use of the 4th. That is what makes movement possible–even if there’s more to the 4th that requires more thought. In any event, it is not a line, does not go merely forward and backward, + or -, as on a 1D line. Could we move in the negative direction in “time”? No. Like moving “backward” in 1D or 2D, you are merely moving forward in a negative direction. That does not reverse the flow of events.

And if one were to take this logic a step further, there is no such thing as “the past”. The “past” exists merely as our memories of our state previously. If nothing changes in the universe–if everything is standing still and you do not move, then you will have no memory of having changed your state, and the “past” will be indistinguishable from the present, which is all that truly exists. Nothing exists in the past. It is a misnomer, a fault of logic, a misunderstanding of the universe.

Celebrating 10 Years with Beginning Game Programming, 4th Edition!

Goodreads Book Giveaway

Beginning Game Programming by Jon Harbour

Beginning Game Programming

by Jon Harbour

Giveaway ends August 08, 2014.

See the giveaway details
at Goodreads.


The fourth edition of Beginning Game Programming has been released to celebrate it’s 10th anniversary! First published in 2004, this book has been a mainstay for aspiring DirectX programmers and teachers around the world.

This new edition updates the source code to Visual Studio 2013 without losing the reader with advanced techniques in the latest versions of DirectX (version 12 recently announced). Instead, this book sticks to the basics like it always has, covering the mainstay of PC development with strict and reliable lessons in DirectX 9.0c.

The beginning reader who is likely new to the C++ language as well as to game programming, will find the advanced topics in the latest versions of DirectX completely indecipherable. For this reason, Beginning Game Programming keeps it simple and understandable, maintaining the high quality of previous editions while updating support for Microsoft’s latest development environment.

“You have to start somewhere”, but that somewhere doesn’t have to be hard! Teachers will appreciate the consistency of this new edition as well as improvements to the sample projects. Coming up from the 3rd edition, the chapters remain in the same order, but the source code for every project has been updated and verified with several rounds of heavy technical review.

The most notable improvement in this edition is the readability! All of the figures have been enlarged to clearly illustrate the tutorials on using Visual Studio, especially when creating and configuring C++ projects–which can be very difficult to the uninitiated.

The chapters on 3D rendering have also been greatly improved with more concise explanations and simpler examples showing how to render a stock mesh and loaded model with a simple pixel/vertex shader. Advanced, complex treatment of shaders is strictly avoided in this Beginning title, with suggestions for further reading provided instead.

So, you’re an aspiring game programmer or designer, perhaps with no prior experience with DirectX, perhaps not with C++ either. Where do you begin? RIGHT HERE!

Get your copy on Amazon! 


Beginning Game Programming, 4th Edition

Working At Peak Torque


Are you bored at work? Not feeling challenged? Feeling in a rut? That is like an engine going 10 mph in overdrive–it has no power because it’s in the wrong gear. Maybe you’re in the wrong gear as far as your life goes. Not feeling challenged? Or feeling over-worked? It may be you aren’t working at your PEAK TORQUE!

Peak torque is the sweet spot for a high-performance engine, the RPM level at which the engine produces the most power. Racers build their engines so that they remain at peak torque as much as possible on the track. For a road racing event such as Grand Am, cars are built to run on tracks like Laguna Seca with a minimal amount of shifting while remaining at peak torque. This is usually in 3rd or 4th gear for a typical 5-speed racecar, where the driver will downshift to 3rd around tight corners and back up to 4th quickly, then occasionally hit 5th on a straightway.

If a racecar is not being driven at peak torque, it has no chance of winning a race–in fact, it won’t even pass the qualifying round. Torque is not the same thing as horsepower, which most enthusiasts incorrectly focus on. Torque is more important than horsepower in a racecar–horsepower is a result of torque. Think of horsepower as the ability to do a certain amount of work. Torque gets the object moving, and power keeps it moving.

If you are dragging each day in your work, it is most likely a torque problem (all other things being equal, such as your health, allergies, etc). Are you getting up in the morning and shifting too quickly into high gear before you’re up to speed? That may be due to your planned (or begrudged) tasks for the day. You know what you have to do for the day and you’re thinking of the entire race instead of just the current corner.

Take a pit stop and evaluate your energy level–your RPM–throughout the day. When you feel that you have high energy, that’s a sign of peak torque. You might be hitting peak torque regularly without trying just as a result of shifting up and down your energy levels (your transmission). Stop looking at the entire track for the day and instead focus on where you are right now and what you need to do to accomplish the current task to the best of your ability, giving no regard to turn 7 on the final stretch of the track. Try to hit the turn in front of you as fast as possible without spinning out or losing momentum, to hit the turn’s sweet spot so you can launch out onto the next straightaway and the next turn.

There are two types of jobs I want to address here with regard to peak torque efficiency. First is the type of job where you are bored silly and are not being challenged. The second type of job is where you are worked hard physically but the work is not mentally draining.

Let’s consider the first type of job, where you aren’t challenged. You are going around the track in 1st gear at about 20 mph. You feel like a lumbering tow truck rather than a high-performance, highly tuned, high-maintenance racer. You can’t wait for 5:00 each day because the job bores you to tears. In this type of situation, one good course of action would be to work toward a new career, but that isn’t what I’m talking about here–okay, a new job just isn’t in the cards right now. What can you do to increase your RPM and reach peak torque? You do have the potential to go 100 mph but your job only calls for 20 mph and it’s frustrating! In either work situation, depending on your personality type, a challenging hobby or a side job may be the answer for you!

If that makes you groan, then you may be surprised by what you’re capable of in your “extra curricular” time. If you get used to 20 mph, then going faster requires some effort that you aren’t used to. This is a deception! You can easily hit 100 mph but have gotten so used to being stuck at 20, your body and mind may not believe you can go any faster. But you can! Consider a hobby that also brings in money, such as making something with your own two hands and selling your handcrafted items on ebay. Do you like to write? Consider writing, but without concern for being published; just do it for the sake of doing it, and after you’re done, then look at options, while continuing to write.

The process of writing or doing some other rewarding activity is what benefits you, not what happens to your poem, short story, novel, or memoir afterward. Doing the work of writing will give your mind something to do during the day beyond the boring job, and you will eagerly anticipate 5:00 PM not just because you’re bored at work–so you can go home and crash on the couch to watch TV–but so you can go home and fire up the computer and get back to your story! Or painting. Or screenplay. Or song.