Saturday, December 22, 2012

Childhood Dream #503

I'm not 5.

Quite a bit past it actually. Almost a menace to society...except that I'm not exactly single. Quite married, I'd say.

I'm at Disney World presently, and I'm having a blast along with my wife and her family.

I've gotten into it, though I'll admit the plush I clung to in the store wasn't Mickey or Goofy; it was Perry the Platypus. I don't know all the references, and some things are surprising like seeing Jack Skellington merchandise, but everyone's excitement and the immersiveness and the not-quite-too-controlled-yet-manicured atmosphere helps a lot.

Due to parking arrangements, my first ride was the tram and my first line was at the bus. They run very efficiently, which means that sometimes they're a bit...infrequent, and often packed. Getting to the park early is very much worth it, and I recommend the single riders' lines and FastPass--in that order.

The initial launch of the Rock'n'Roller 'coaster is rather...rapid. I would enjoy running some analytics on good accelerometer data from it... :) My wife's grandfather says it's the closest he's felt to an aircraft carrier's catapult, and now I understand why, and it's a blast...almost literally. That's the Indiana Jones Stunt Spectacular. I could've tried harder to be one of the extras for it, but those that made it were ecstatic and looked like they had a ball...all except the guy the main actress beat up. ;)

Expedition Everest was the first 'coaster I've been on where it runs backwards, and that was trippy. It was also dual lift with track switching. The line has a fascinating Yeti museum, though high FastPass traffic after the parade easily doubled the promised 15-minute wait .

Construction and theming of the park are excellent. One area felt chintzy, but my wife says that's by design. We rode the dino version of the Dumbo ride and the actual mechanics were superbly functional--not like the poor little biplanes at Six Flags back home (my favorite ride as a child). Of course, I understand the pneumatic control system a LOT better ever since I did robotics in high school.

No sign of Tron, and a Portal theme park segment of this caliber would be AWESOME...but more at home at Universal methinks. Set design could use cameras, 3D, and careful construction to provide the illusion of portal passage, though proper flings would, themselves, be a special challenge.

One more detail: there is free, seamless wifi everywhere. My planless phone is quite operable and some great apps exist just for Disney World, including line wait readers. I think the wifi is a stroke of genius, as "coarse" phone location uses the nearby wifi points' info to guess your location and such coverage as is had here means that when GPS is compromised (like in any of the buildings) there is still a lot of precision available for their ride-load-balancing informational apps.

Thursday, November 29, 2012

On Quanta of News

Sure, the Duke of Gramm had been dealing with a number of his own problems. That came with a planet-duchy. It still didn't help with what he was seeing.

The trader had pulled in and, as usual, was full of newsreels from the other systems in the quadrant. This one had just come from Trammelsham, one of Gramm's close allies, and he had been excited to get the news.

Sunday, October 14, 2012

Invaders -- FROM SPACE!

I am presently enrolled in an embedded systems class. Over the last three weeks, my lab partner and I had the opportunity to (dear readers: keep reading) implement Space Invaders on a Digilent Atlys board. It was fun.

I think my favorite part was the lab writeup where we had to describe the game in detail; upon encouragement from the denizen of a treeless plain in Africa, I have decided to post it here verbatim for your amusement. See, I don't like dry technical writing. It puts me to sleep. I also don't like arbitrary requirements. :D


Space Invaders for the Digilent Atlys

By:
[my lab partner and I]

Wednesday, September 12, 2012

Lady Elegans


A waltz was playing somewhere.

Well, it certaainly felt like a waltz was playing. After a terse conversation with Lady Elegans he had been directed to this hall, hidden like her cellar behind an impenetrable, unmarked wall. He had stepped in to find himself floating up towards the middle of the room, and from there he had discovered that walking--oddly enough--was an effective means of propulsion along the corridor.

As such, it was quite the impressive corridor. Ribbons and arcs of baroque pillars danced between each other, mostly obscuring the long chamber's square profile. Occasional gaps revealed plush carpeting, ornate dining areas, shadowed niches, abandoned servants' areas, and other scenes of abandoned grand living. The walls were odd, though he couldn't quite make out why, and each area he passed felt like it followed the last, as though the long hall were a concatenation of segments of time.

If you don't find something strange about The Hall, she had said, you can never help us and so will never leave.

Does floating through the air on a predetermined track count? How about flying through an ancient hall behind a solid stone wall? Perhaps the eery waltzing feeling as he strode through the air, the lack of servants, the abandoned air in so elegant a place?

He thought for a moment, staring off into space. It was something simple--

What the-- What moved? It took a moment to bring his thoughts back to reality...well, the present reality. Something in the shadows cast by the pillars? The sojourner began a slow and careful examination of the shadows. The nearest ballroom looked well-lit by a chandelier or two out of his line of sight. Still, they would be about there, and the web of pillar-like laces was thin above there, so the wall over there should be...

Laced with shadows.

It was black. Not a trace of the ample lighting was making it to the wall, and the lattices that landd there seemed to have shadows lapping at their bases. The walls certainly were odd light here where shadows should be, shadows bunched in plain sight, the right shadows sitting the wrong way in some spaces, all just orderly enough to evade the unwary mind.

Wrong shadows in a hall of memories...

Monday, August 20, 2012

IP 9258 HTTP Parsing Problems

Hi!

Warning: technical dump.

I've recently had the opportunity to work with the IP Power 9258 PDU. It's actually quite nice in many ways, but its HTTP query string and header parsing have a few terrible bugs in them.

Header field names ("User-agent" in "User-agent: my-super-browser") should be case insensitive. This PDU requires both "User-agent" and "Authorization" to be capitalized.

Query parameters are normally delimited with "&". The PDU expects "+", though between "cmd" and "p6x" you can use &.

Query parameters are also supposedly order-independent. This lovely device requires "delay" to be first (if present) and to be followed with the "+" delimiter. Using "&" will put the port in an unusable state, further testing required.

curl is your friend, the AHR2 module for Node.js is not...for now. Fixen are in the pipes.

Wednesday, August 15, 2012

Shadows

*slam*

From the frightening whirl of the ether he impacted the floor, and with a lurch reality settled around him and sealed the gap through which he'd come.

Fate liked doing this. She tended to land him in places where help was needed, but they were usually strange, alien places. Now it was his turn to get off the--well, floor, judging by its smoothness--figure out where he was, and solve the puzzle(s) set before him.

As usual, he was unharmed and still had his full tool belt from the work site. Fate was not always kind--he'd once saved a race of arthropods from destruction while...less than tastefully clothed. Turns out clothing was a mark of evil in their society, so in a way she had still been kind.

Looking around, he noticed that it was a well-lit room. The dead lack of ambient noise hinted at a deep, underground installation, and he was curious just where he was... Seven smooth, space-age-style doors lined one wall while the opposite wall was, oddly enough, smooth-hewn stone. From the strata and the temperature he was quite some distance down. A few curious-looking machines stood idle at one end of the room; earth-movers by the grinder-conveyor belt face and the tracked bottom, though the machinery that followed the grinding head was quite mysterious. It was big enough he found it hard to imagine how it had gotten in here--likely sealed in as construction progressed.

He walked to each door in sequence. As he approached, they opened revealing more door-lined walls, vast, orderly rows of segments of much larger machines, one completely empty room with a tiny sign in the back: "Lost + Found." Seeing that little danger was visible, he became more bold and started opening doors in more rapid succession, covering vast swaths of ground until he discovered one of the original doors was locked. Realizing what a locked door meant--danger--he immediately started examining the door for weaknesses.

The doorframe was smooth, and the sensor that triggered the door itself was nowhere in evidence. No tool he had would fit into the crack, and nothing in his belt would so much as scratch the surface, so he tucked away the door's location and moved on.

The next door was a junk room. He stepped in and just about fell off a cliff--the room was huge! Hundreds of little trinkets sat around, some of them gleaming in the randomly-placed lights around the chamber. There were doors in the ceiling and floor, junk was haphazardly welded to segments of the walls, the walls were outright broken in a few places, and nothing was in use. The cavernous room felt dead. Again taking note of which door he had been in, he stepped back out.

The last door was odd. It slid open hesitantly, as if something were nervous about letting him in. This, like the sealed door, was intriguing, so he stepped cautiously into the largest library he'd ever seen--well, it felt like a library. Massive shelves ran all the way up to the arched roof, lit by magnificent crystal chandeliers.

The shelves were empty.

The place felt alive somehow, too. Shadows clung to the edges of the pillars and shelves, seeming to spite the lights. As he wandered around and past the first layer of shelving, he noticed strange things: cobwebs, moving shadows, books that weren't books hovering just on the edge of existence. Occasionally one of the outside walls was broken by another of the sealed doors, and he tried with less and less vigor to pry them open. Other breaks in the shelves were normal doors, behind which was a motley mix of library shelves and more doors (sic). Each room was well-lit in the middle, but the shadows hung around the outside, seemingly right on the brink of destruction.

Finally, he found it. In the back of the deepest room he found a broken wall. Shelves still clung to it, but their disarray only highlighted the wall protruding from itself.

Finding a crowbar and hammer in his kit, he discovered that the shelves cleared away easily. The fissure was just wide enough to give his tools purchase, and he began the slow process of prying the panel out.

Several minutes later, the crack was wide enough to slip through. Behind it was pitch black, so he fetched out his flashlight. All he could discover was that the floor was stone--the same as in the root node he had started in. He wriggled in.

The room was dark, but the shadows were natural. Cobwebs hung, partially obscuring the piles of boxes and crates that filled the room leaving narrow paths to walk through. Clearing the spiders' testament of time back, he found that the crates were labelled--some were old records of the library's operation, some were marked with periods of older history, and some were completely unmarked. Some of the crates were styled like the doors, while others fit better with the library's decor. It was a strange place. Crates were aging, and occasionally somewhere in the distance one would groan and collapse under the weight of its neighbors.

After what seemed forever (and about sixteen armfuls of discarded cobweb and three pyrotechnic urges) later, he found an open space with a single chair, a small end table, and a book. A sudden chill ran down his spine, and he took a step into the open space. The reluctant feeling from the library's entrance was met with an angry, dismal feeling and an argument began. He took another step. The argument felt more heated, and the sadder of the two seemed to be winning. As he arrived at the chair, he looked down at the book. It was beautifully gilt, with deep red leather wrapping its covers and bearing its title. Before he could make out the characters, the hesitant feeling yanked the table and book out of reality, and the angry feeling started condensing into a dark, elegant lady with a cold face sitting in the chair.

"I see you've been exploring the library, Amadaeus. I hope to help you find what you are looking for."

Thursday, August 2, 2012

Little Tech Tricks

As this doesn't fit my usual genre of blog post, here is your fair warning: this is another of my technical posts. :)

So I've recently switched to a Mac Mini in one of my spheres of influence. It's been challenging; missing or stolen keyboard shortcuts still miff me, but several things have worked well for me:
  1. Mou. This is a Markdown editor for Macs (OS X). I have tried about a dozen in Linux, Windows, and OS X and this one takes the cake, kicks butte, `sudo rm -rf /`, and any other superlative expressions of high marks you wish to contribute. It's shiny. It does real syntax highlighting. It isn't cross-platform. :( Above all, though, it scrolls with you as you type!!! Now, as you're typing notes in class or composing a blog post, you can see what you're typing rather than scrolling back to the bottom after every change you make.
  2. I play with hardware. This means that I need to use serial communications fairly often, and Macs kind of suck in this department. Windows and Linux both know that a standard USB COM port is; BSD/OSX needs to be told. For the most common of these, FTDI provides their own solution. It works rather well. If you don't want to go through the effort, OSX lets you attach any USB device to a Linux virtual machine (I like VirtualBox) and let a real operating system do the dirty work. (This works for charging the Motorola W755 phone on macs and for reading EXT2/3-formatted USB devices as well.) Remember to install the Guest Additions.
  3. EXT2 R/O access: MacFuse combined with fuse-ext2 will at least get you started.
  4. iTerm2. If you do any amount of work on a terminal, iTerm2 is here to save you from xterm and Terminal. One problem; several standard keyboard shortcuts are AWOL. Lucky for you, ShadowFiend and his commenters have been gracious enough to show the world how to fix this.
  5. BetterTouchTool. This is how I got enough gestures and taps (middle click anyone?) working to be somewhat productive once again on OS X.
  6. IRC. Several programs exist that fill this need; I'm enjoying Colloquy at present.
  7. Google Calendar/iCal integration.
Also, I've had the opportunity to set up and modify several servers in a professional capacity of late, and a couple of articles I found are worth mentioning, if anything for my future benefit.
  1. HTTP Basic authentication. There is a simple Perl command that generates encrypted passwords. (A better article exists but was not found by me.) While Basic Auth is a terrible choice for strong security, it has many handy little uses and this makes administering those a bit easier.
  2. How to get an SSH Key's fingerprint. Useful when lots of little keys are running around nekked. 'Nuf said.
I hope you find something here useful. Happy Thursday!

Monday, July 9, 2012

Setting Sail

As I stepped out of the village, my heart swelled. I turned to look back at the place where I had grown wings, the place where I knew when to behave how, where I had learned how to perch in the shadows of the eaves of the cathedrals, soaking in the monks' chanted prayers for a better world--and where I had learned that those lonely spaces were not where I wanted to be. Thronging festivals, living, vibrant friendships, home--

As I choked back a quiet sob, I looked up at the ramparts of the town's wall. There the Guardian met my gaze sternly, dispassionately, and unyieldingly. I had made my choice, and I must go. Absorbing the loss was harder than I had ever imagined it would be--it felt like attending my own funeral.

Then again, my departure had been a joyous one. Most of the townsfolk looked forward to making the journey I was embarking upon--but none of them would understand the loss until they made the decision and left for themselves, taking the experience with them. While where I was going wasn't cold, it was unknown, and the place he was leaving was warm and familiar.

As I looked down into the satchel of provisions I had prepared, several mainstays of my previous life were lacking. First and foremost among them was the water from the well at the village's center. It was said that it led villagers to leave, though some had been there for years without showing a trace of its effects.

That bag was by no means empty! Among the various foodstuffs and camp supplies sat the beautiful crystal that had been given me by my chosen travelling companion. She had left some time before me, knowing that working in a trade caravan would be advantageous for us when we arrived. She had--accurately--predicted that I would miss her, and that it would be hard for me, so she had prepared for her absence from me. First had been a series of gifts and messages hidden with others in the town, and then had been this.

The bluish, clear cube rested largely on my open hand. Its cool warmth refreshed my skin from the Sun's toll, while it warmed my heart with memories. About once a day we were able to converse through it--in her foresight she had found a matched, tuned pair that could tunnel through the intervening distance and yield just such a connection. I polished it slightly, and in its own way it let me know with an irritated pinkish tinge that the connection wouldn't be open that day. I had been late leaving.

Sigh.

I looked down at my coarse all-weather tunic, up at the scorching sun, and out towards the mistwall that obscured my destination--a new adventure and a new home.

Thinking about her and the longer route she had taken, I started walking.

Wednesday, June 27, 2012

Beaconkeeper

I had just finished communicating the coordinates of all the navigational beacons in the sector to the new arrival when another call came. The other captain saw the indicator and told me,

"Well, the commstat is hailing us, and that's what we came here for; we'll be in touch!"

I was not surprised, as I knew where I was in the universe of people. Having been about to discuss replacement equipment and the local culture, I was still a tad disappointed.

In the string of video calls that ensued, I knew I stood little chance. Much of what I would of said was ignored as out-of-channel banter, with bits and pieces considered off-topic in-channel noise. Once I saw this, I realized that I was being a pain. Something needed to change.

"Helmsman, what is the current cloaking charge?"

The middle-aged officer glanced at his dials and then eyed me. "Sir, we're at 75%."

That was odd. We'd been charging it for a week and I had told him to keep it at peak readiness.

"Sir, we're at 75% of what you need. I can see that you're plotting the old Malay Turk maneuvre, and we haven't quite got the staying power to do it."

Realizing that he was three moves ahead of me, I ceded his point. "Well, we can at least ameliorate the interstitial jitter. Put us on full electromagnetic silence and engage the cloaking engine."

If you can't help 'em, don't get in their way, I thought. At least he has what he needs for when he gets here.







P.s. On a completely unrelated note, 21 days remaining. :)

Sunday, May 27, 2012

Double Double

The scientist cackled maniacally as the mixture began to bubble. Lowering his goggles and straightening his stain-splattered lab coat, he donned protective gloves before replacing the containment vessel lid.

He stepped over to the next hotplate. Observing that the matter phase change had commenced, he rapidly adjusted the dials controlling the thermal transfer. Several stirs of the mixture later he gave it one last piercing stare, grunted, and returned to the other vessel. The clear window showed the consistency to be almost right, so he deftly deactivated its heat source and stepped back.

Looking at the complex apparatus chugging along in harmony, he doffed the gloves, smiled, and sat down at the table.

This rice and stir fry were going to be great.

Thursday, May 3, 2012

A saying or two I think should be.

For juxtaposition and oddness of imagery:
She survived the disease only by the light of death's candle.
Alternately:
Her sojourn close to death was lit only by Death's flickering candle.

For dissonance with the familiar and my lack of ability to say it:
How much wood would Chuck chuck if Chuck could chuck wood?

:)

Monday, March 19, 2012

Xilinx Design Suite 13.4 on Ubuntu

Oh hai!

You're probably here because you're having some trouble installing the Xilinx ISE Design Suite v13.4 on Ubuntu 11.04. Aren't blog post titles great?

Well, here's the problem I was having after I successfully installed it as root:

$ export LD_LIBRARY_PATH=/usr/lib/firefox-11.0 # this was a hack to find the real error
$ source /opt/Xilinx/13.4/ISE_DS/settings32.sh
. /opt/Xilinx/13.4/ISE_DS/EDK/.settings32.sh /opt/Xilinx/13.4/ISE_DS/EDK
. /opt/Xilinx/13.4/ISE_DS/ISE/.settings32.sh /opt/Xilinx/13.4/ISE_DS/ISE
. /opt/Xilinx/13.4/ISE_DS/PlanAhead/.settings32.sh /opt/Xilinx/13.4/ISE_DS/PlanAhead
. /opt/Xilinx/13.4/ISE_DS/SysGen/.settings32.sh /opt/Xilinx/13.4/ISE_DS/SysGen
. /opt/Xilinx/13.4/ISE_DS/common/.settings32.sh /opt/Xilinx/13.4/ISE_DS/common
$ ise
XPCOMGlueLoad error for file /usr/lib/firefox-11.0/libxpcom.so:
/opt/Xilinx/13.4/ISE_DS/ISE//lib/lin/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /usr/lib/firefox-11.0/libxul.so)
Couldn't load XPCOM.
[ errors about not finding library ieee ]

Turns out it ships with libstdc++ v. 6.0.8. Ubuntu 11.04 is currently at v. 6.0.14. To solve this library version conflict, simply put '/opt/Xilinx/13.4/ISE_DS/ISE/lib/lin/libstdc++*' somewhere safe and replace them with symlinks to `/usr/lib/i386-linux-gnu/libstdc++.so.6` and it should come up just fine!

Fissiles

Sweating inside of his radiation suit, the nuclear workman used tongs to heft the result of an hour's work. The rectangular prism was just over five inches long, while its bulk was a precisely crafted 5.0800 cm by 7.5000 cm. Each surface had, with painstaking effort, been polished to the perfection required of Johansson blocks. This would permit it to be joined to the core of a reactor designed to cover lightyears at a stroke with enough energy left over for far more than survival.

He reflected back. Compressing and shaping the nuclear remnants of the last meltdown seemed a logical step. No other release of the energy would be anything less than fatally catastrophic to the mile-wide ship; still, even this would be highly risky. He got up from his workbench and started walking to the core airlock and waldo controls.

Nobody had realized that shoelaces were a terrible idea on a radiation suit.They had been made that way for decades.

The poor engineer hadn't realized one of those shoelaces was snickering, having quietly freed itself from its bondage in the last hour.

He also hadn't realized that another engineer had neglected his duty and had left open the shielded container containing a number of dangerous fragments from the same event.

So, when he lifted one foot, it tried to move the other. One moment to recall his thoughts to the current scenario, one moment to he was holding a chunk of nuclear material fit for a bomb, and one extra moment to panic. Gravity did the rest.

As he tripped, the tongs slipped and the small, silver shard of devastation started on its ballistic journey. It might have been guided on its journey by some unseen hand to its clean, forceful landing in the open pig.

He curled up into a ball as a blue flash illuminated the room and he knew for sure he was a dead man. It was enough material to go critical and annihilate the entire engine chamber along with anything attached to it, and his imagination could see the atomic terror rending the atoms of the fuel and unleashing an unfathomable quantity of energy into the surrounding world.

Opening his eyes, he blinked.

The engine room certainly wasn't any afterlife he'd heard of, so he knew he wasn't dead.

Adrenaline was still pumping through him as he slowly uncurled, got up and looked around. The active dosimeter he was wearing didn't register much, so he slowly walked over to where he'd seen the slug of polished material land.

The pig was a little melted on the inside, and a few shards of material had fused to the inside. Aside from that, there was nothing.

Cleanup had done itself. After months of tending wreckage and carefully gleaning the dangerous bits, it was almost all gone.

Of its own accord.

He blinked, hoping it wasn't a dream, and then walked to the comm to relate to the captain what had happened.

Wednesday, February 22, 2012

Heroes

Image by laobc.
When I think of heroes, I often think of famous men, legendary characters, historical backdrops, and sweeping epochs.

This evening I'd like to mention my heroes from today.

Occasionally this is the bus driver who waited an extra minute so I could get on, or the man with the most fantastic moustache I've ever seen. (Eat your heart out, Mario and Luigi!) One of my heroes is certainly Marissa Pielstick, a patient, kind, wonderful, and intelligent woman whose boyfriend I have the pleasure of being.

Tonight it was four people in a truck...with a sofa in the back.

I have been ill for a couple of days; while the weather has been unseasonably warm, a brisk, chill, rainy wind in the face makes the 11-block walk home harder. Don't get me wrong--it's totally worth Marissa's company.

Well, tonight I had my head down and my hand up to keep my hood secure against the wind-driven sprinkles and the northerly gusts. I probably looked like quite the character. Walking past Wendy's, about half-way home, this truck rolls down its window and the driver asks if I'm doing alright and if I want a ride.

It took me a minute to process. I almost walked past.

A ride?

Heck.
Yes.

For the two minutes it took to get home, I had the pleasure of meeting Vanessa, Camille, Austin (our esteemed driver), and Levi. I had crossed their paths during a midnight Wendy's run while they were enjoying a large bag of fried delectables. I didn't learn much more than that about them, as they asked what I'd been up to and they got to hear about Marissa. (Sorry guys.)

They were willing to give me--a complete stranger, and in a crowded truck no less--a ride home.

This makes them my heroes today.

Monday, February 20, 2012

aPod Touch Thingy

Last winter I got a new dumb phone.

I broke the dumb phone.
Last summer I got a smart phone.

I am presently using the dumb phone's predecessor, the hardy (if quirky) Motorola W755. It does what I want for the price I want.

The smart phone was from a friend of mine. It was used. I called Verizon and was informed that it would take an enormously expensive (to me) dataplan in order to use the oldest Droid in existence.

Did you know these things have pretty good Wifi support? Apple does. An iPod Touch is basically all of the computing power and sensory equipment of a smart phone without the "phone" aspect.

I hereby coin the term "aPod Touch" to designate a phoneishnessless Android smartphone. It's actually kinda fun to have a pocket-sized Internet-capable computer handy even when my laptop is out of battery. Instead of Googling certain classes of things, I find apps that are specialized in that field (ElectroDroid comes to mind). It's battery lasts around 36 hours, a lifetime no laptop I know even tries to match.

So when you see that I have a smart phone, "Mr. Richy-Rich" is a misappelation. When you see that I have two phones, realize that the "inferior" one is the better one, and that I'm liking abusing the poor "superior" phone as a poor replacement for a laptop.

Saturday, January 7, 2012

Parking Orbit

On the approach to the system the pilot had been nervous. Only the slightest stresses had been applied to the engine systems over the course of the voyage, and sometimes such systems developed catastrophic quirks over time...and it had been a long time.

He tapped on the glass covering each of the dials again. Each needle jiggled slightly at the disturbance, wavered, then settled back. The orbit was stable.

Perihelion would be suitably close to the star to pick up most of the small, rocky bodies orbiting the sun. Aphelion was not quite at the Oort cloud, and with time would shift inward as the perihelion shifted outward. First he wanted to let the orbit meander around the sun; solar systems are big places, and the current orbit would shift directions while staying the same shape. Later on, short, strategic burns would jettison just enough velocity that a less extreme orbit would be attained and more extensive surveys could be run on the inner planets.

Earlier radar bursts had gotten a big reflection in that area; at about six times Jupiter's mass, the gas giant was about .75 AUs out from the star and so would be a major navigational hazard. He'd have to watch that.

After staring blankly at the dials for a few more minutes, he wandered over to the Kepler Weight and Constraint Set. He liked using them to simplify the more tedious orbital calculations; just turn dials to set mass, velocity, and position of up to four masses and the strings, weights and wires would automagically give you the stable solution over the next 100 years. It didn't account for the inherent nonlinearity of the actual relativistic and gravitic equations, but it was good enough most of the time.

It was good to be back in orbit.

(Especially around a star like MP539. --Ed.)