Posts

Showing posts from February, 2006

MS Natural Keyboard 4000: Scroll with Zoom Slider

For quite some time now I have been using the Microsoft Natural Keyboard 4000. While being generally satisfied with it, I have always disliked the software support for the Zoom Slider. You can modify the mappings of the special access keys above the F-Keys, but you cannot tell the mostly useless (at least for me) zoom slider to do something more sensible, e. g. scroll up and down. At least not with the IntelliType GUI.Just a moment ago I searched the net again and found a solution! Have a look here for the somewhat lenghty discussion thread to read the whole story.For the impatient I copied the vital information: Therefore pick whatever application you wish to change the functionality for, eg Internet Explorer (no I don't use it either). <Application UniqueName="IEFrame" AppName="Internet Explorer"> <C319 Type="6" Activator="ZoomOut" /> <C320 Type="6" Activator="ZoomIn" /> </Application> Ch…

Star Wars: Empire at War

I have just installed the Demo of Star Wars: Empire at War. Being a Star Wars fan I was happy to see that they still sometimes make good games. Many of those wannabe Star Wars games just did not deserve the name. Either they had bad graphics, bad stories or even both. The last thing I really had time to play with and liked was X-Wing Alliance. Apart from that some Jedi Knight 2, and Voyager: Elite Force 2, both of which I enjoyed very much.Being more the space combat type (I really loved the old TIE-Fighter, why don't they make such games any more?) I was pleased by how many options there are in "Empire at war". You are not limited to a Command-And-Conquer like ground combat all the time, but can also fight space battles. I played through the 4 tutorials available in the demo and loved it right from the beginning. The UI looks nice and clear and seems to be planned carefully as to not keep you too much from looking at the nice game graphics. The units seem to be quite cl…

Windows XP Compressed Folders buggy

For some time now several colleagues have been calling me for help, because they have problems installing a new version of the checkstyle plugin for Eclipse I provided them. Eclipse just won't recognize the plugin after they unpacked the ZIP file to the plugins folder. After some observation it turned out that only Windows XP users are having difficulties.Wait a second, only Windows XP? No Linux, no Windows 2000 machines, just XP? What difference should there be in the Java world? (Well... I know... But at least the Windows machines should behave identically). At first I could not see anything special on those machines. Eclipse running fine, the checkstyle directory correctly placed under the plugins directory. After some time I noticed that there were far too little files in the plugin's subfolder.Turns out that it is the Windows XP ZIP file integration into the explorer as "compressed folders". While the ZIP file has been created with WinZip (and extracted with it …

Google Pages

Seems it was just fast enough to create my Google-Page before they closed it for new accounts due to overwhelmed servers. I do not have any particular use for it, however it was somewhat impressive to see and try out what can be done with some Javascript.More detailed thoughts and criticism can be found on the page itself: daniel.schneller.googlepages.com

toString() ought to make life easier, BUT!

I have always liked a sensible toString() implementation that allows me to quickly grasp the important aspects of an object when I just have a look at it in the debugger or print it to some logger.A few weeks ago I read Joshua Bloch's "Effective Java" which also encourages you to provide meaningful implementions of toString() in your programs to make life easier for yourself and others using your stuff.Today I was asked if I could help a colleague of mine with an error that had occured in a production environment (have a look at Russ Olsen's Weblog to learn about the debugging guy...). He showed me a stacktrace like the following: java.lang.NullPointerException at some.package.TheClass.toString(TheClass.java:2264) at java.lang.String.valueOf(String.java:2131) at java.lang.StringBuffer.append(StringBuffer.java:370) at some.other.package.InterestingClass.relevantMethod(InterestingClass.java:292) at some.other.package.CallingClass.aMethod(CallingClass.java:229…

Where has all the space gone...

Time and again I find my harddisk "becoming too small". Adding more and/or bigger disks doesn't really help, they just tend to fill up with all sorts of stuff faster than you can replace them.Having not enough space left again to download the current Fedora DVD I remembered a little tool I once read about. Maybe it is already widely known about, however for those who haven't heard about it: I suggest you have a look at SequoiaView. It almost like some sort of profiler for applications: while in your code the parts that are really slow are hardly the ones you would expect to be, the things eating up lots of space on your hard drive, too, are seldom the ones you'd suspect.

Tapeware has been replaced!

After all the trouble I went through with Yosemite Tapeware I finally abolished it. Looking around for some scripts around Windows' integrated backup (NTBackup) I found this (German) very good howto (English version here) by Denis Jedig (thanks for the great work, it saved me a couple of hours).After I had collected the GUIDs for the devices, libraries and other items described it was just a matter of writing some wrapper scripts to manage service stops/starts before and after the backup. First full backup went through without any problems, sent me the expected report via mail and logged everything nicely.I will now have a closer look at the log files of the incremental backups and behaviour when wrong or empty tapes are inserted as well as when they get full. I will keep you posted, in case anything interesting happens.

No more Tapeware

Tapeware corrupted its database again. Took three runs to repair it this time. And now (again) it does not recognize the drive.... Looking through their knowledge base I found comments about "inherently flawed database technology" that could be corrupted by a simple antivirus scan of the database directory. Although I have already taken care of everytning I could think of to keep the database healthy it keeps corrupting.From what I learned the successor of Tapeware, Yosemite Backup, does not contain the bad database code anymore, however I still do not think that a product version 7 should be *that* broken. If anyone asks me, *don't* use TapeWare! God knows if you will be able to restore the data when you really need it.I think I have had it with that damn thing. I will just try Microsofts windows backup software, maybe somewhat spiced up with a few batches. Hopefully that will be less unnerving...

Solved: Binary File corruption in Eclipse/CVS

No wonder I could not reproduce the problem with corrupted binary files in Eclipse at home: Turned out I had already updated my home PC, while at the office I had not. I have filed Bugzilla #127436 against Eclipse 3.1.0. Latest version 3.1.2 does not seem to have the problem, so I would advise anyone using Eclipse, CVS and branches to update to 3.1.2.Here where I work we still have to see how we can achieve that on all workstations...

Strange binary file corruption in CVS/Eclipse

We have experienced some weird binary file corruptions lately. Somehow Eclipse believed it had to replace every LF with a CRLF, which is not too healthy for .exe files.First we thought we had just forgotten to set the -kb flag, but it turned out, that this could not be true for all of the broken files we saw. We were even able to reproduce the problem once, but now, as I am trying to write a bugzilla entry for Eclipse (3.1.2) I cannot get it *wrong* again.From what I remember we checked in a new binary file on HEAD. Then we did a "Compare with another branch or version" on the branch and told Eclipse to "Override and Update". On Friday this made the .exe file grow from 15995 bytes to 16030 bytes; a binary compare showed exactly 35 LFs that happened to be in it being replaced with CRLFs on checkout. However now I cannot reproduce it anymore, so that I would not even trust my own bug report.Seems I will have to wait till Monday and try to get hold of the problem toge…

Tapeware update hassles

A friend of mine uses Tapeware to backup his server to tapes. The software was bundled with the tape drive (Certance/Seagate 40GB IDE) and because it looked quite ok we went ahead and installed it. For some months now it has been running more or less smoothly, however once in a while it told me about a corrupted tape/file database (where it stores where which version of each file is placed on the tapes). If that happens, you have two choices: restore the last backup of the database from tape or take the backup service down and have it repaired via a somewhat lenghty process.Three days ago it complained about a broken database again. I do not know what happens to corrupt it, because ususally the server just sits there, handing out files and database connections and backing up during the night when there are no clients. When I tried to restore the last backup of the database from tape it did not even let me open the restore menu (because of the corrupted database(!)), so I had to g…

XML/XSL based changelog from ViewCVS

For some time now I have been working on generating useful changelogs from a ViewVC/ViewCVS MySQL database. After the hassles I talked about already I finally got it working quite fine. Because the people who are interested in the changelogs like GUIs, I wrote a little Swing application around the core functionality that I can't give away. But the real work is done in just a single SQL query and some XML/XSLT processing.Basically there are three steps to be done:Query ViewCVS databaseGenerate XML based on the resultTransform with XSLT to something readableI use a query like the following, because we usually do changelogs per branch and for a certain period of time. There is no easy way to query tags, because they are not part of the database, but we found it quite convenient to just keep a list of tags and their associated timestamps. To query the head, look for branch=''. select c.type, c.ci_when, p.who, b.branch, SUBSTRING_INDEX(d.dir, '/', 1) as project,…

PuTTY command line

PuTTY is my favorite SSH Client. However its configuration is somewhat cumbersome. Using a little batch file allows me to apply a set of default settings to any host I like.Where I work we have a lot of Linux based clients around the world that function mostly without any manual intervention on behalf of an administrator. However there are times of course, when we still need to access one of those systems. Unfortunately there are literally hundreds of them, and anybody who has used PuTTY before knows that it is not fun to create a session entry for each and every one, including port forwarding options, private key file etc. Of course, one might say you could just export the Registry key for a single session and use that as a template and reimport it into the registry. However this is a single-shot approach, because after the copy has been made, you cannot globally change a setting, say the path of the private key file you want to use. Furthermore you may not be allowed to edit the reg…