Haul: Sour Fame

28. February, 2010

A bit late but the next scene is ready for you:

1.7 Sour Fame – Mark Satchez, the famous TV host behind the Pantero Report, plans the report about the battle at LC-5437.

Table of contents

Previous post: Haul: Enemy Mine


1.7 Saurer Ruhm – Mark Satchez, der berühmte TV-Moderator von dem der Pantero Bericht stammt, plant den Bericht über den Kampf bei LC-5437.

Inhaltsverzeichnis


OO 2.0: Reuse

25. February, 2010

What’s the most important feature of OO? Reuse.

What’s the biggest problem of Java? Reuse.

In Java, it’s considered good practice to make everything private or even final. This goes along the lines “when I open part of my API, someone might use it and this might cause problems for me later when I have to change the API”. So all fields are private. Which leads to huge lists of getters and setters which you don’t need most of the time. But you can’t omit them because if you need them, you can’t retrofit them. I guess all of us have a story where we wanted to use a class and everything was fine until we needed one more thing from that class and that thing wasn’t public or protected.

The underlying problem is that Java is based on the idea that the code is simple to parse and read. Which means that things like templates, patterns or pre-compilers aren’t supported. Even when you use annotations, you can’t modify the output at compile time. You can use load time byte-code manipulation but at compile time, the code is about as flexible as a bridge pillar.

But there is hope. The guys from the Object Teams project (OT) have created a Java-like language where you can reach into existing code and manipulate it in various ways. If you’re wondering if this is AOP with a new name or just delegation on steroids, this post will help to understand what OT is and what it’s not.

In a nutshell, OT is about reuse. If some class doesn’t provide a getter for a private field, OT can insert one for you. To get a feeling if OT can help you, I suggest to browse the blog and the examples. The stop watch example is probably the most simple to understand. The other examples look a bit incomplete or they might show that OT still has some issues with the syntax (which you’ll remember from AOP but it’s certainly not as extreme).

I, for one, will keep an eye on this project.


Demons? Really? Really! But not as you think

23. February, 2010

I just read Linus Torvalds’ post “Demons? Really?” Which is about exorcism in case you don’t want to read his piece. Apparently, there are people who believe that you can drive a demon with prayers from a human body. Which is complete nonsense according to Linus.

Really?

What are we talking about here? What is a demon? I’m not sure what the scientific definition would be but I’m pretty sure that the people discussing the topic don’t know either. They don’t care. For them, the demon is not important but to help the possessed.

From our scientific eye, talking about demons and exorcism is ridiculous. We assume that a demon is probably some kind of sickness and the poor victim would be better off in a hospital or psychiatric care. They are just sick. Just imagine when you are in pain. It affects your mood: You become thin-skinned and easily irritated. So the sickness has a mental component.

Treating the sickness would solve the mental issues. So we’re happy and the missionaries must be stupid. Or so we think.

Question: Have you ever been in this situation? In a village thousands of miles away from anywhere? Without clear water, healthy food, and people with a yearly income in the range of $5 or less? Good luck finding medicine for them or sending them to a doctor. They either have no access to such resources or can’t afford it.

What do you do? Walk away, happy with the fact that you know what would help? Or do you stay and try to help to the best of your abilities?

If you stay, what can you do? You have no medicine, you’re no doctor and you probably have no idea what is really going on. There are people around, probably from the same village who think “I don’t know what he has but I don’t want it! Let’s get rid of him before we all get sick!” These people still have to learn that modern science exists. They couldn’t care less because for them, the biggest issue is how to get enough food to survive another week. National Geographics? FDA? These are all non-issues for these people.

For them, the sick are possessed because that is something they can relate to. It explains the unknown. Demons can be shooed away.

So what do you do? Stick to your scientific knowledge? Or do you start to pray to drive the demon out? Showing compassion, doing what is expected from you, possibly triggering the self-healing effects of a placebo? Doing what you can in such a situation?

Yes, we can mock these people because they probably believe that demons really exist. But maybe they have understood hundreds of years ago that science can only help the rich. People who have (almost) unbound access to good water, food and electricity.

Maybe for them, it’s more important to help than to be right.


Haul: Enemy Mine

20. February, 2010

I’m trying to release one scene per week of my story. This week:

Enemy Mine – Forne realizes that the Haul in the capsule is not so dead as it seemed. Being the quick thinker he is, he immediately starts wondering how he can use this to as his advantage.

Table of contents

Previous post: Haul: Three new scenes


Geliebter Feind – Forne muss feststellen, dass der Haul in der Kapsel nicht so tot ist wie er dachte. Aber da er ein Schnelldenker ist, überlegt er sofort wie er das zu seinem Vorteil nutzen könnte.

Inhaltsverzeichnis


Are they out of their mind?

19. February, 2010

I while ago, I downloaded the demo for X-Men Origins: Wolverine. It’s a PS3 game and I like Wolverine, so I was really excited. Whoa, they really spent some time on the levels … lush forests … tree roots, plants … okay, I can’t leave the paths (in games, heroes can’t climb or crawl … see my post on Batman Arkham Asylum *sheesh*).

Anyway. I played a while. Hack’n’slay (you have to chop people to bits with Wolverine’s claws … so he has no brain, either … oh well). Then, there was that helicopter scene. You’re on a rope bridge or an edge or something, I forget. There is this helicopter with the machine guns, making your life (or rather the game character’s life) miserable. So you jump on it, slice the window, pull the pilot out and … chop his head to bits with the main rotor of the ‘copter …

What did you feel in that moment? Please comment below.

I felt: WTF?

In an instant, I found the game revolting. All my impressions about the nice graphics, all the artistic work was washed down with a wave of disgust. To my shame, I continued to play until he end and took out the last boss. Okay, there are special moves and such … but for some reason, I didn’t buy the game and I deleted the demo without hesitation. Later, I saw a game review in TV where they showed a lot of special moves, how to use spikes and your environment to impale your enemies and gore them in various ways. For some reason, they ran it in the afternoon, around 1500.

Frankly, are you out of your mind? I’m not a softy or against so called “killer games” but some time last year, a border was crossed for me. Wolverine. Wet. Bayonetta. Brain-dead games, meant for simple button mashing, asking for the reflexes of a 15-year old but with the graphics of a motion picture.

I’m not sure who pays the money to produce such games. I’m not sure who works on such games. I’m not sure which person at Sony gave their OK for the production or distribution of such games. I don’t care. I don’t care if you think it’s OK. I don’t care if any court think it’s OK.

I’m proud to say that I feel this is WRONG.

Maybe you should read up a bit on how the human brain works. For everyone else, just don’t buy such games. They are a waste of time and money. And while there is no proof that they are bad for your soul, they aren’t any good either. As I said: A waste.


Haul: Three new scenes

16. February, 2010

There are twothree new scenes on-line:

Retreat – Admiral Martia Restino of the Rabit Space Force has to face her defeat. Should she stay longer, risking her crew, for the small chance to save a few pilots from the Haul or jump home immediately?

Rescue Capsule – On his way back to the crash site of his ship, Forne notices an unexpected radio signal.

Bad News – While the Rabit at LC-5437 fight for their lives, Ambassador Woren Garek on the Haul home world has her very own worries.

Table of contents

Previous post: Haul: Waiting to die



Zwei
Drei neue Szenen sind online:

Rückzug – Admiralin Martia Restino muss sich ihrere Niederlage stellen. Soll sie noch ein paar Minuten ausharren, ihre restliche Crew riskieren, um vielleicht einige wenige Piloten vor den Haul zu retten oder sofort nach Hause springen?

Rettungskapsel – Auf dem Weg zur Absturzstelle seines Schiffs bemerkt Forne ein unerwartetes Funksignal.

Schlechte Neuigkeiten – Während die Rabit bei LC-5437 um ihr Leben kämpfen, hat die Botschafterin Woren Garek auf der Heimatwelt der Haul ganz andere Sorgen.

Inhaltsverzeichnis


ePen 0.8 status update

8. February, 2010

Followup to my last ePen post: All but the first point are resolved. You can open an existing project by specifying the path on the command line but that’s too tedious for something which is supposed to be simple. Since I want to give a good first impression, I want this fixed before I release 0.8.

For spell checking, I’ve switched to jazzy which is more simple to use than JaSpell. You can find the repository with my fork here: http://epen.hg.sourceforge.net/hgweb/epen/jazzy/. Unfortunately, just invoking the spell checker for every key press is too slow, so I had to disable the code for the time being. I’ll resolve this with ePen 0.9 where I hope to fix some other issues with the editor as well.

[EDIT] The project home page is at http://sourceforge.net/projects/epen/


Haul: Waiting to die

22. January, 2010

The second scene of my story “Haul” is ready for you to enjoy: “Waiting to Die


Die zweite Szene meiner Geschichte “Haul” ist bereit von euch genossen zu werden: “Warten auf den Tod


Haul

16. January, 2010

After tweaking it for five years, I finally decided that I’ve dallied enough and should start to publish “Haul” or forget about it. It’s a science fiction story set in a galaxy far away where two races, the Rabit and the Haul are at war.

It’s a asymmetrical war. Whenever the Rabit manage to assemble a fleet and sent it somewhere, the Haul will be there. After short, hard fight, the Rabit will have to mourn their losses while the Haul will simply leave. Even after three major battles, the Rabit haven’t managed to capture even a single Haul or one of their ships or even a single piece of Haul equipment. The situation is growing more desperate every day and the Rabit are living in constant fear when the Haul will commence to attack their home worlds. Just like they attacked Pantero six months ago.

Without any warning, a Haul ship suddenly appeared in the orbit around the agricultural planet. It didn’t respond to radio or any other means of contact. After three hours, it left. Half an hour later, bombs took out the three major capitals of Pantero and the space port. Within minutes, 150 million Rabits died. No one knows why. Or when it will happen next.

The story starts here.


Nachdem ich fünf Jahre an der Geschichte “Haul” gearbeitet habe, habe ich beschlossen, dass es genug ist und ich sie entweder veröffentlichen oder vergessen sollte. Es ist eine Science Fiction Geschichte, die in einer weit entfernten Galaxis spielt, wo sich Rabit und Haul im Krieg befinden.

Es ist ein Asymmetrischer Krieg. Wann immer die Rabit es schaffen eine Flotte zusammenzustellen und diese irgendwohin schicken, sind die Haul schon da. Nach einem kurzen, harten Kampf bleibt den Rabit nur ihre Verluste zu betrauern während die Haul sich einfach zurückziehen. Selbst nach drei grossen Gefechten ist es nicht gelungen einen einzigen Haul gefangen zu nehmen oder eines ihrer Schiffe aufzubringen oder auch nur ein einziges Stück Ausrüstung zu erbeuten. Die Situation wird jeden Tag schlimmer für die Rabit, die in ständiger Angst leben, wann die Haul die Angriffe auf ihre Heimatwelten fortsetzen werden. Genau so, wie sie Pantero vor sechs Monaten angegriffen haben.

Ohne jede Vorwarnung erschien ein Schiff der Haul im Orbit um den Agrar-Planeten. Es antwortete weder auf Funk noch auf sonst irgendein Signal. Nach drei Stunden verschwand es so spurlos, wie es gekommen war. Eine halbe Stunde später explodierten Bomben in den drei grössten Städten des Planeten und über dem Raumhaufen. Innerhalb weniger Minuten starben 150 Millionen Rabits. Niemand weiss warum. Oder wann es das nächste Mal passieren wird.

Die Geschichte beginnt hier.


When you’re right, there is no middle ground

15. January, 2010

Yesterday, I attended a talk by Tom Schindl (he’s the guy behind UFaceKit and Qooxdoo, QxWT, etc.) And he’s working on e4.

During our little conversation after the talk, he stressed the fact many people aren’t willing to pay for bugfixes in Eclipse. He’d be willing to work on many of them but someone has to pay the bills. I nodded like everyone else. And we talked about Eugene Ostroukhov and his complaint ““Participate in community!” they said…“. And I immediately saw a parallel in my own history. I had a similar, painful experience with Ed Merks a while ago. That was about EMF and how badly it sucks. And that he didn’t listen to me.

I was mad because I was right and he just didn’t get it.

Yesterday, on the train home, I understood.

I’d like to introduce two new categories of programmers. Both are passionate and enthusiastic about software. The difference is that one group is pragmatic and the other idealistic.

Ed and Tom are pragmatics. They think: “Great feature, I like it, how much will it cost?” If it’s too expensive, they don’t get upset. They think about it, mull it around, consider their options. If there just is no viable way to do it, they can accept that. These people get money to write software.

I’m an idealistic programmer. I get money to stop writing software. That is, I get money to stop writing the software in my head and to start writing the software someone else wants. Not getting what I envision drives me up the wall.

Things can get pretty ugly when those two kinds meet. Because both are egoistic and both are right. It would make sense to make all the changes to EMF that I want. For me and probably a few others. It would cause quite a few problems for Ed, though (mostly because he’d get a lot of complaints by those people who are happy right now).

I’m asking for changes because I have problems. I’m not complaining about petty things. I need to bend EMF and SWT more than the API allows. To solve my problems, I just can’t accept the status quo. The API has to move. But my solution would cause problems for many other people.

Right now, I’m writing software which doesn’t have a lot of customers, so a stable, reliable API is not one of my goals. I can change my API at a whim and no one bothers. Eclipse has millions of customers and every change to any API will cause a tremendous amount of pain around the globe. Say 0.1% have a problem now? That would be at least 1’000 people complaining. One happy, 1’000 after your head. At least. How big is the pressure on Ed to make me happy?

So how to win? I think Linux has the best solution that you can get today. Linux has several release streams that strive in parallel. It’s not a bunch of forks, it’s a bunch of branches. People can hand in stuff that really isn’t ready for prime time. It can be incomplete. It can break other APIs. It can be an experiment. It can evolve. In Linux, there is the next tree.

In Eclipse, evolution is hard. You have to get new features and patches past people you don’t know, who have more experience in evolving APIs, little time and little incentive to hurt themselves. API in Eclipse is hard to evolve because IBM pays many of the core developers. If someone wants some obscure API and the Lotus Notes team will have a problem with that, who will win? The bug report (even with a patch) or your next pay check? There are only a few big commercial products on Linux. Eclipse, OTOH, was created to form the basis for commercial products (hence the EPL). Products that have life cycles between five and ten years. Ten years ago, we had Linux 2.2, KDE 1.0 and SuSE 6.3.

For IBM and SAP, the one year release cycle of Eclipse is way too fast. They have to spend a lot of money on developers just to keep up with all the changes going on in Eclipse and this is for things that can’t be sold to customer (i.e. which don’t earn any money).

So I agree with Bjorn Freeman-Benson that Eclipse needs a set of public git repositories and a low-barrier entry to these repositories (which means one-click install for the build system, no IP checking). It should be a playground, a place where ideas can grow. Not all of them will make it into the mainstream but at least, people can solve their problems without hurting too many others.

At the same time, I’m afraid what will happen when this comes true. But then, I’m an idealistic programmer. I believe that time will tell who was right and that we shouldn’t bother too much upfront.