Woes of SciFi Writers

15. May, 2012

The problem with stories like Battle Star Galactica, Lost, etc. is that they don’t make sense to begin with.

BSG: The Cylons are an artificial race. They don’t need air, water, food. They can live everywhere. Unlike the humans, the few life-supporting planets in the galaxy mean nothing to them. So why bother attacking the humans when you can just go away, start hundreds or thousands of civilizations all over the galaxy and ignore the 13 human worlds?

They might attack one day? So what? By that time, the Cylons will outnumber them a billion to one. They could even simply ignore any human attacks without any noticeable loss. Humans killed a million Cylons? Meh …

So the core issue in the story (human vs. Cylons) is buggy.

And that’s the core problem of all SciFi stories: they simply don’t make sense to begin with. It’s an intrinsic problem.

The motto of the human race is boundless growth. What’s going to happen when we can travel to distant stars? We put colonies there. For what end? We will accumulate more knowledge but each individual being will know a lot about a tiny fraction of all the lore. There will be people who will have to split their bank accounts over several institutes because the numbers will be too big for their ancient mainframe software to cope with. For what? What’s the point of endless growth? Our greedy parts say “go-go-go” but our ratio asks “why?”

Life’s answer: There is no boundless growth. Natures rules make sure that everything that got too big gets killed or kills itself. In a way, the climate skeptics are the next big stumbling block on the road to the future (after the bankers failed a few years ago). Life is in cycles.

Of course, this doesn’t make a good story. People are disappointed when their love doesn’t grow out of all proportions after they marry. Well, duh. How did you plan to fit epic emotions into your tiny skull? How did you plan to love someone more than “with all your heart”? Get a second one? Get a brain!

So as a writer, I’m stuck between a stone and a hard place: I can make the story realistic but that’s boring. Imagine getting the Galactica battle ready. Thousands of people have to do millions of things. Getting that into the story would fill 5-10 episodes just to get an overview. Finding the right kind of ammunition. Hauling it to the Vipers. Fitting the Vipers. Looking through 517 pages of preflight preparation checkpoints. It would bore people to death. So they get to see Adama yell “BATTLESTATIONS” + 10 seconds of pure panic on the flight deck.

If you know a bit about physics, then you know that the only reasonable weapon in space is a laser. If you can move a ship the size of the Galactica, you can power one big, mean laser (or ten). With that laser, you can slice and dice a Cylon battlestar before it comes close enough to fire any projectiles on you. Even if it manages to fire its projectile weapons, you can easily evade them after cutting the damn platform to bits. Afterwards, you take the same laser to fry the small fighters which the battlestar dropped long before they can get to full acceleration. And the torpedoes and rockets, too. Without deploying a single Viper. Vipers are stupid, physically speaking. They are slow, they need to take fuel and bullets along, they have a human pilot (fragile and slow), they need to waste space on a cockpit, air recycling. And they are easy to find: They have a long trail of the stuff that comes out of the exhausts. That trail is pretty easy to make out in space where there is nothing else (oh, yeah, radiation from stars a few light years away). It’s like a big pointer for the enemy radar saying: “HIT HARD HERE!”

Looking at this from an angle of reality and physics, a space battle would work like this: Everyone would be invisible because the monent you get noticed, you’re dead (try to outrun a laster that travels with 300’000km/s and possibly an angular velocity that is even greater). In a TV episode, you’d see space, full of stars and nothing else. No ships, no heroic battles, no impressive last stands, no dodge-fights. Several minutes, nothing would happen. Then suddenly, something would blow up. All survivors on the other side would fire on the spot where that shot came from. 13 seconds later, everyone would be dead or dying. How does that sound? Boring. Oh, and no survivors. The first space battle would also be the last. A TV show with one episode. A book with ten pages.

That’s why SciFi stories have to be unrealistic.


Eclipse Suddenly Takes Long to Start Unit Tests

10. May, 2012

When starting a JUnit test in Eclipse suddenly takes ages (the process starts quickly as you can see in the Console view but it takes ages until the tree of tests appears in the JUnit view), you might experience troubles with IPv6.

The background of the issue: Modern OSs assign your network cards two addresses, one for the old IPv4 and one for the new IPv6. When IPv6 isn’t configured correctly, Eclipse will try to connect via this route and it will take some 30 seconds for Eclipse and the JUnitRunner process to begin talking to each other.

The quick fix is to disable IPv6 or to tell Java to prefer IPv4:


Sharing Source Code

1. May, 2012

One would think that “open source” is all about sharing. But that’s a misconception. Example: Try to use some GPL‘d code in your non-GPL OSS project. Oh, the humanity.

So called “proprietary” software at least believes in “buying love”. They won’t show you the source but for a price, you can at least use their work without many questions asked.

OSS is different. If you use the wrong license, you must be a moron (proof: You’re using a different license than me. QED) Nobody wants to share their hard work with morons!

Especially not since the process to select the “perfect” OSS license is so painful. You need to read legalese, try to understand it, reason with the nice smiling person on the other side of the padded wall (a.k.a “outside”) that you’re not insane – the rest of the world is and you can prove it.

Ever tried to get some OSS project to share their code under second license? It’s a lot of fun – unless you’re serious. Then … it’s not so much fun.

Why I’m ranting?

I spend a lot of time on stackoverflow. It’s cool. It’s full of source.

But can you use any piece of that source code in your OSS project?

Are you sure?

You are. Splendid. Do you really think a lawyer would see this the same way?


How To Disable IPv6 In Ubuntu

30. April, 2012

If you’re getting errors from squid or your web browser with some weird IP address, chances are that squid is trying to connect to a server which supports IPv4 and IPv6.

To disable IPv6 on Ubuntu (also Kubuntu), add this line to the end of /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1

Restart your computer or reload sysctl.conf by executing: sudo sysctl -p

To check, run: ip a | grep inet6

When IPv6 is disabled, this will give no output.

Source: Quick Tip: How To Disable IPv6 In Ubuntu For Better Internet Speed


Rob Williams: More Reasons Why Software is Hard

27. April, 2012

Interesting read: More Reasons Why Software is Hard


Patently Unpatentable: Multi-Language Movies

14. April, 2012

Not DVDs, in the movie theater: Each visitor get to enjoy the movie in their home language.

How?

Anyone has a mobile phone today, right? The audio system of the theater will only play the background sound, all the voices are transmitted via WLAN to each individual phone.

People can then listen to the voices of the actors with their own headphones.

Additional bonus: No audible ringing and everyone can tune the volume of the voices to their liking.


Why OSGi Qualifiers Aren’t Working

13. April, 2012

If you don’t understand how OSGi bundles get versions: You’re not alone.

On paper, the rules are pretty simple and straightforward.

In reality, the rules are broken by many Eclipse bundles because the tools don’t help to enforce them (Alex Blewitt wrote two great posts about that: “Why OSGi qualifiers aren’t working” and “Using Humans to solve a Tooling problem“). It’s not a rare problem either. Alex found 10% of the bundles got a new qualifier but didn’t actually change. That doesn’t take bundles into account which did change but the version wasn’t bumped.

When I started on an automated converter to turn Eclipse bundles to Maven artifacts, I hit the same problems. Some bundles get rebuild for no apparent reason, some have changes but the version wasn’t bumped.

This causes some problems. First of all: Which of those two qualifiers is “bigger”? “v20120119-1537” or “xx-20120301-1000-e37-RELEASE”?

And if you think that’s probably a mistake: That’s the qualifier for org.eclipse.jdt.core.source. It’s one of the core bundles for Eclipse. If even the JDT people don’t get it right, there isn’t much hope.

When  building something with Maven, you have something similar: SNAPSHOT versions. But unlike Eclipse,

  • Maven forces you to drop the SNAPSHOT when you build a release
  • Maven replaces the string “SNAPSHOT” in the version with a build timestamp. This gives a consistent version scheme.
  • There are tools that check for SNAPSHOT versions
  • Maven can’t mix SNAPSHOT and releases in a repository (so you’re less likely to accidentally pollute your build or, worse, the build of someone else).

Unfortunately, OSGi have abandoned -SNAPSHOT versions for R5.

But maybe we can fix the problem on the Eclipse side. If you care, support Bug 376718 – Strip qualifiers for release builds.


When Eclipse Won’t Start

13. April, 2012

There can be a couple of reasons why Eclipse refuses to start: Corrupted workspace, broken plugins or conflicting plugins. This blog post is about the last category.

How do you know that you’re affected? Start Eclipse with the command line option -debug. If there is a huge gap between “Time to load bundles” and “Starting application”, you’re on.

Start Eclipse in a debugger and set a breakpoint in org.eclipse.osgi.internal.module.ResolverImpl.findBestCombination(ResolverBundle[], ResolverConstraint[][], int[], List<ResolverConstraint>).

The interesting information is in the variable bestConflictBundles. This is basically a list of bundles that cause some kind of trouble. Usually, this is a bundle which has the singleton flag set but of which are two versions in the plugins folder (or in the plug-in list, if you started Eclipse from another instance of itself).

If you started Eclipse from itself (using a launch configuration), the solution is to open the “Debug Configurations…” editor, select the “Plug-ins” tab:

This tab has several interesting options: You can type (part of) a plug-in ID into the filter field to narrow down the huge list. If the list isn’t active, select “Launch with: plug-ins selected below only” above.

That way, if you want to disable all of BIRT, type “birt” and then click “Deselect all” to the right.

Next stop is the “Validate Plug-ins” button in the bottom left. This opens a dialog with all the problems the current selection has. This dialog isn’t modal! That means you can keep it open while you (de-)select plugins from the list. If your screen is big enough, you can move it so you can see the list and the “Validate” button. That way, you never need to close the dialog.

Otherwise, Alt+V is your friend.

In my example, the org.eclipse.jpt.jpa.db plug-ins cause trouble. As you can see, I pulled them out with a short text in the filter. Now, I can get rid of them with a single click on “Deselect all”. Validate … okay, things for worse.

But I don’t need anything from JPT for my tests, so I get rid of the whole lot. Validate … “No problems were detected.”

Sweet.


Deadly Cute Animal Pictures (And Videos)

10. April, 2012

Kudos to http://icanhascheezburger.com/

How about this: “It’s hard to get mad at something so cute when it uses you as a security blanket”

funny dog pictures - I Has A Hotdog: Mebbe Nawt Lubz, But Tolerashunz at Leest

(source)

Or the difference between cats and dogs:

Dog thinks: “These people feed me, pet me, love me, they must be GOD.”

Cat thinks: “These people feed me, pet me, love me, I must be GOD.”

funny pictures - An Oldie But a Goodie: Cats vs. Dogs

(source)

Or when cats meet deer:

(source)

Maybe scientists should use smart phones for their experiments:

(source)

Some animals you wouldn’t expect in one spot: Cat, eagle and fox

(source)

Please fasten your seatbelts, that could looks like a ball of yarn.

advice animals memes  - Animal Memes: Captain Kitteh:  Have Your Barf Bags at the Ready!

(source)

Hamsters can be cute, too: “Gentlemen, I have a plan”

Funny Animal Captions - Animal Capshunz: Now That We Are Met...

(source)

 


Patently Unpatentable: Use Kinect To Shape Insoles

4. April, 2012

If you need arch support or insoles, you know what a hassle it is to get them right.

Using a Kinect controller, it should be simple to capture the 3D shape of your feet.

All we’d need is glass that is transparent enough for the infrared laser so you can stand above the sensor.