New resource for authors

27. November, 2010

Writers – Stack Exchange is for authors, editors, reviewers, professional writers, and aspiring writers.

So if you have a question about writing the next bestseller, you know where to go. 🙂


Getting MercurialEclipse 1.7.0

27. November, 2010

Wondering why Eclipse suddenly asks for a password for cbes.javaforge.com? Someone decided that it was a good idea to request users of MercurialEclipse to create accounts on JavaForge.

Not impressed? Go here instead.


Firefox performance

24. November, 2010
Mozilla Firefox Icon

Image via Wikipedia

It’s 2010, Firefox is going 4.0 soon and it still has no way to tell why it’s sluggish.

Yes, it would be nice if the FF developers could make the browser so fast that it would never become sluggish in the first place. I just fear that this is simply not possible with the current design. Look at Chrome: Every tab runs in it’s own process. So what if one of them is slow? All the other still feel crisp.

On FF, if one tab takes over the machine, you’re doomed. Yes, I could disable JavaScript and every add-on individually. Why bother? Starting Chrome solves the issue in no time.

If you care, support Bug 505104: Please add a tool to gauge Addon performance.


GPL vs EPL

23. November, 2010

A lot has been said about GPL and EPL and various other OSS licenses and how much they do harm.

Miles Parker summarizes it very well in his blog post “Is GPL damaging to your ecosystem’s health?

My stance: It’s not really the GPL as such. The big problem is that we have incompatible licenses. The goal is the same: Software wants to be free. But we can’t agree on how to make sure it is.

Single developers don’t want companies to steal their work (read: get rich) while companies want to make sure they and their customers can’t be sued.

But the root cause of the problem is that we have a legal system which just doesn’t allow for “in good faith.” Or at least so we believe.

We simply can’t say: “Oh, I don’t bother as long as you don’t steal the code — and a judge will have to decide what I mean by ‘steal’ on a case-by-case basis.”

A few days ago, a member of the Tycho team asked me to sign some legal contract so they could use my patches. That took a huge bite out of my motivation to submit something. Why do I have to sign a legal contract to do something that is legal? Why are the good guys treated worse than the bad guys?

You say that there is no other option?

I’m not with you. Carl Sagan put it best in his movie Contact:

David Drumlin: I know you must think this is all very unfair. Maybe that’s an understatement. What you don’t know is I agree. I wish the world was a place where fair was the bottom line, where the kind of idealism you showed at the hearing was rewarded, not taken advantage of. Unfortunately, we don’t live in that world.

Ellie Arroway: Funny, I’ve always believed that the world is what we make of it.


Distributed editing

23. November, 2010

Among other things, version control systems were invented to allow several people to work on the same code. But there is another option: Distributed editing. Everyone works on the same code at the same time and all changes are sent to all involved users at the same time.

Welcome Saros – Distributed Collaborative Editing and Distributed Party Programming


No Adblock Plus button in toolbar

23. November, 2010

With the update to Firefox 4.0, the Adblock Plus button (ABP) vanished:

ABP Button missing

Where did it go?


Text editors again

23. November, 2010

Mark Pilgrim says it pretty well in WrongRoom: “you’re writing a text editor. Stop doing that. It’s 2007.”

Q: Why is there more than one text editor?

A: Because they all suck.

So after struggling with SWT’s StyledText for a while, I’m back with jEdit.

jEdit has its own flaws, though. The text renderer is … basic. No unit tests. But it seems the developers are more approachable than the Eclipse guys. So maybe it will be less effort to add the missing features.


Three panel wisdom

20. November, 2010

I just love three panel comics. They have to be short, concise, to the point. Nothing wasted.

Mimi & Eunice: Love Yourself. I like their motto: “Misinformation wants to be free.”

Or TOUCHÉ by ©Tom: The little boy in the sandbox (German). If your German is a bit rusty: The older gentleman says “Dear me, use your poles already! I want to see the ground shake!”


Printing web pages

19. November, 2010

Today, I tried to create a CSS file so readers of my stories can get a nice looking printout. Or so I thought.

The cast: Opera 10, Chrome 7, Firefox 4, Konqueror.

The task: Print plain text, two column, 2.5cm left margin.

Opera

Opera has one of the best print drivers for HTML. No other browser comes even close. But no support for column-count.

Chrome 7

Webkit does support column-count but not the official CSS3 style. You need a special attribute called -webkit-column-count. Cool.

What’s way less cool is the fact that the printer driver doesn’t support it. You can see it, but you can’t get it, baby.

Firefox 4

With -moz-column-count, you get two columns which make it into the printed page … but what is that huge left margin doing there? That looks like I get only 70% of the page for my text! There are three menus where I can “Setup page” but none of the dialogs behind them allows me to modify the huge print margins! What gives?

Konqueror

You’re kidding, right?

With the Webkit module, the print output looks mostly the same as in Chrome. With the KHTML module, I can’t even get two-column text.

Conclusion

The WWW was invented 1991. That was twenty years ago. Two decades. And web browsers still can’t get something right that bored TeX in 1984.


Better code with MoDisco

18. November, 2010

I’m always thinking about better ways to create software. Create. Sculpt.

Code generation? Maybe. But I’ve left kindergarten. Creating thousands of identical sand pies doesn’t make them more tasty. Or useful.

A few days ago, I had a long talk with a guy at an Xtext presentation. Xtext can create EMF models out of computer languages. Why is that useful? Because you can get at the guts of a language.

Look here:

... some complex setup

for( Item item : list ) {
    ... do something smart with item...
}

But the guy (who wrote this code — that’s me, thank you) made a mistake: For some reasons, items with a value < 5000 should be ignored. No problem, we can simply add that. If we have the source. But imagine you had a tool to “patch” the code. Like so:

...
for( ... ) {
    if( 5000 > item.value() )
        continue;
    ...
}
...

The “…” are actual code. They mean “anything”. So this reads: “Skip code until you find a for loop and add a new condition at the front of the loop. Leave everything else intact.”

Pretty hard to do today. If we had a tool that could create an EMF model for the Java code. Enter MoDisco.

MoDisco can create a model for a software. What all those CASE tools did but the other way around. It creates a model for the software as it is now. Not very useful at first glance but think about the example above.

Or think that you’ve identifier a dangerous pattern in your code base. Now you want to fix it. MoDisco can search for these patterns for you.