Halting State

| Tags: book, fiction, sci-fi

“Halting State” is a funny nerd-book by Charles Stross.

The setting: In an online role playing game a bank is robbed. Three people, a cop, an insurance accountant - both women - and a game developer investigate the case.

The cop and the accountant do not really understand what is going on. The cop uses goggles that overlay the real world with a virtual reality providing all sorts of police information, but she doesn’t understand online games. The accountant plays some kinds of online games, but doesn’t understand how they work. The nerd – the game developer – takes the job to guide the accountant through the maze of online RPGs. He’s a Python 3000 programmer and the way he thinks and acts is really nothing new to software developers. The book contains some insider jokes probably only people working in the software development industry will understand.

Each chapter is written from the perspective of one of the three protagonists. It’s a bit unusual, because the author wrote the book in the second person. So it’s somehow like reading a text adventure with the difference that you as the reader cannot take any influence on the action.

At the end the book somewhat looses it’s drive as the author tries to tie it all up, but it is a fun book and definitely recommendable.

Osmorc: OSGI support for IDEA

| Tags: dev, java, osgi

I have published the first release of my third IDEA plugin called Osmorc. Osmorc is a plugin that enables development of OSGI based appllications in IDEA.

Currently only some basic elements like Export-Package, Import-Package and Require-Bundle are supported, but those are the necessary building blocks for OSGI applications. Making those concepts work with IDEA’s module system, which doesn’t allow exporting and importing of specific packages, was a prerequisite for any further development of this plugin. I think I found a pragmatic way of doing it that should work in most cases.

On the home page of the plugin I’ll post more information about the plugin and how it works during the next days.

Movable Type 4

| Tags: blogging, tool, web

I’m now on my way to update my blogs from Movable Type 3.33 to Movable Type 4.01. The basic update was fast and easy. My templates still work and the sites can still be viewed after a total rebuild. At first the commenting functionality was broken, but that problem was resolved after the initial update through the help of the SixApart support department. So now the basic update is done. I’m currently investigating how and what new features of MT 4 to use in my blogs.

One of the features I already enabled is the possibility to log into my blogs with an OpenID for commenting. So if you have an OpenID, you can use it here to comment and don’t need a TypeKey-account to comment on my blogs. OpenID is a big topic and I’m currently looking into setting up my own identity provider. As soon as I’m done with that, I’ll post more about OpenID on this blog.

Besides this change that is apparent to the readers of my blogs, there’s also lots of changes only visible to to the blog owner. MT got a new polished UI, which I like very much. The UI of MT 3 looked somehow outdated. MT4 uses AJAX where it makes sense. For example the entry being currently edited is auto saved regularly. So it won’t get lost when somehow my Internet connection breaks and I have to re login after a time.

MT 4 has also syntax highlighting in the template editors and it discovers all module templates used in a template and provides a menu of them for direct navigation. There is no autocompletion support in the template editors, but maybe they’ll add it for MT 5 ;)

There’s also a new WYSIWYG editor for blog entries, which I don’t use because the generated HTML-code look horrible, but fortunately my preferred Markdown with SmartyPants is now integrated into MT. The editor used for typing in entries with Markdown offers some Markdown specific features like link creation and image insertion. That provides part of the convenience of the WYSIWYG editor with good HTML-code produced by Markdown.

Comparison : Java and K

| Tags: dev, programming-language

OK, I know nothing about the programming language K. So I won’t criticize K itself. What I want to talk about is the comparison of Java and K.

I don’t get it why people always think that if they need fewer lines to write a program in one language than in another that the said language is better than the other one. The comparison shows fairly clearly that this is no good metric for comparing programming languages. While the Java program takes up 37 lines of code and the K program only one, the K program is far worse to understand since it’s one line of curly parenthesis, other special characters and some variables. I can learn all those special characters for all those special functions I need only rarely. Do I want to do that? No! I prefer to know that a class contains a specific kind of functionality and that I can find those functions with the autocompletion support of my IDE if I need them.

I’d also surmise that refactoring the K program would be somewhat more difficult than refactoring the Java program. I prefer the Java program because of its better readability and extendability.

K has probably its fields of use where it’s far better suitable than Java. Definition of mathematical algorithms is probably one of them, but that’s not the point here. I have no need for a comparison of two languages that have totally different uses.

Please stop those “I can express this in X in 1 line of code where Y needs 100 lines of code, so X is the better language”. It’s boring.

TiddlyWiki

| Tags: tool, wiki, web

TiddlyWiki is a wiki contained in one page. You can download an empty TiddlyWiki and put it anywhere you want – on a USB stick for example. It doesn’t need any database. It’s only one HTML page with lots of JavaScript and CSS. You simply add and edit tiddlers (that’s what the parts of a TiddlyWiki are called). You can even change the layout and the colors of the wiki by editing specialized tiddlers. Once you press the save button, TiddlyWiki writes itself back into the file from which it was loaded.

TiddlyWiki makes use of AJAX. So there are no flickering reloads. It all looks nice and works smooth. You can also install plugins to extend TiddlyWiki.

TiddlyWiki is a useful application when you just need some scrapbook and don’t want to use a server side wiki. From a technical viewpoint the fact that it writes and changes itself is also quite interesting.

FileBrowser

| Tags: dev, intellij-idea, java

I released my second plugin for IDEA named FileBrowser. As the name suggests it is a plugin that allows browsing of the local hard drives on a computer. The idea for this plugin came into my mind some two months ago when I realized how really inconvenient it is to open files that are located outside of an IDEA project with IDEA.

Besides using IDEA as a Java IDE I also use it as a general editor for HTML, CSS and XML files. Before developing FileBrowser I used to create a new IDEA project for each web site I wanted to edit or I would use the “Open file” action in IDEA’s file menu to open external file. All that was really inconvenient.

So I came up with FileBrowser. I created it in my spare time over the last two months. It was fun developing it and exploring new features of IDEA’s Open API.

It provides drag and drop support with other applications and contains a small favorites management system.

NaviActionPad 0.7

| Tags: dev, intellij-idea, java

After 3 months of inactivity – at least concerning this plugiin – I have made a new release of it.

While using it whenever I worked with IDEA, I noticed that it behaved a bit unpredictable. The problem was that it always took the currently selected PsiElement as the context for any further action. So you could place the cursor on a class name that appeared as the type of a variable in a declaration or in a call to a static method of a class. After invocation NaviActionPad would recognize the class as the currently selected element and would show the contents of the package the class belongs to. Nice feature, but not necessarily what one wants. When you edit a class, that class is your current context. So when you invoke NaviActionPad you want to see the method the cusor is in and not the class of some variable. Now NaviActionPad checks whether an editor is focused and takes the element of that class the cursor is in as its context. It may be a method, a field, some inner class or the class itself, but it won’t be something currently out of scope.

There’s also a new IDEA action usable to invoke NaviActionPad in a new manner. Since NaviActionPad is now so much more predictable, you can directly go to the list of available actions by pressing CTRL+F11.

Also take a look at the updated web site naviactionpad.beeger.net.

del.icio.us Firefox Bookmarks Extension

| Tags: tool, browser, web, bookmark

I have been using the “del.icio.us Firefox extension” for some time now. It’s OK, but it is not really a replacement of Firefox’s bookmark functionality. While browsing through addons.mozilla.org, I found another extension that integrates del.icio.us into Firefox. It’s called “del.icio.us Bookmarks”. This extension completely replaces Firefox’s bookmark functionality.

There’s a nice sidebar which can be used to browse through the bookmarks grouped by tags. It also has a search functionality that’s way faster than the one of the other extension since this extension caches the bookmarks from del.icio.us. Of course you can also use this extension to tag a page in del.icio.us.

Well, now I really imported all my bookmarks into del.icio.us and found a feature I haven’t seen before in del.icio.us. Bookmarks can be marked as private. So it’s now possible to have a collection of public bookmarks, viewable for anyone, and one, that only the owner of the account can see when logged in. That’s quite a good feature and the lack of it prevented me from having all my bookmarks on del.icio.us. For example I don’t want anyone to know at which banks I have accounts. And there are also some URLs related to my job that are of no interest to anyone but me. Of course - even with this feature - I would never put any bookmarks that also include passwords to ftp-servers and the like on del.icio.us.

After installing the extension I had some weird problems with my browser. Some pages where a bit jumpy - scrolling constantly up and down a few pixels. I disabled the extension then. I have used a customized layout where the contents of the bookmarks toolbar was on the right side of the menu. After installing the extension, this setup was lost but not really. I didn’t see the contents of the bookmark toolbar anymore, since it wasn’t available anymore. Somehow that fact irritated Firefox and made those pages a bit jumpy. I rearranged the layout to its default settings, reenabled the extension and now it works without any problems.

Enso Launcher

| Tags: tool, windows, launcher

I came across “Enso Launcher” and had to try it out. Enso Launcher is an application launcher similar to Quicksilver, Launchbar or Find And Run Robot. You press some key, type in some characters and the launcher shows you a list of applications that contain those characters so you can choose it and launch it.

Enso Launcher extends on that basic concept in a way similar to Quicksilver, but IMHO much better. In Enso you type commands that can be executed on different kinds of items. If you want to launch an application you type “go fire” for example and will get a list containing Firefox. You can even select some file in Explorer and type “open with Paint Shop” in Enso to get it opened in Paint Shop Pro. You can change the active window by typing in “go” and then select one of the windows in the appearing task list.

So is it currently the coolest thing on earth? Unfortunately not! The interface is sleek, the ideas brilliant, but it’s totally unusable. To bring Enso Launcher up, you have to press CAPS LOCK and hold it down while you are typing your commands. Then you release CAPS LOCK and the commands get executed. For someone normally typing with all ten fingers that’s just horrible. It makes your small finger hurt very fast and you aren’t able to type anything that contains an ‘a’, ‘y’ or ‘q’ in it. There is one alternative to bring Enso Launcher up. Press CAPS LOCK, press ALT, release CAPS LOCK and then release ALT. Then after typing in your command, you have to type CAPS LOCK again. ENTER, the intuitive choice won’t do.

So after ten minutes I uninstalled it and am staying with Find And Run Robot. It’s interface is not as sleek, the DonationCoder website is horrible – more so since the invention of Cody than ever – and the name of the application is also somehow unimaginative, but it works.

I’d like to see some of the ideas from Enso introduced into FARR, though.

Three Secrets

Martin asked me to tell the world three personal secrets. Well OK, I won’t tell you any real secrets, but here are some facts that are not generally known about me and may be fun to read about:

  • My first computer was an “Atari PC3”. I got it as a xmas present in 1989. I thought computers to be rather boring back then. When my parents told me about their plan to buy me a computer I said “Well OK, but don’t expect me to spend each day in front of it.”
  • The first object-oriented program I wrote, was a Morse alphabet learning program. It was written in Turbo C++. It contained three classes that roughly grouped the functions of it into modules. It was so un-object-oriented, I can only smile at that memory, but it had a GUI made up from hand-written widgets with the right highlighting and shadows to produce a 3D effect.
  • The first science fiction book I ever read was Starglider by James Follett. It was included in the package of the game Starglider, which I bought a year or so after getting my first computer. Back then I was only reading books from Victor Hugo, Alexandré Dumas and the likes. I thought reading SF would be boring. Watching “Star Trek” was cool, but reading books of that sort couldn’t be. The game itself was disappointing, but the book wasn’t that bad. So I began reading SF and today SF is what I mainly read.

I’m supposed to pass the baton to three other bloggers. Unfortunately all blogging pals I know already got it from someone else.