A little Thunderbird layout tweak for more ergonomic use on laptops

I’m using Mozilla Thunderbird with classic layout. By default that means folderpane on the left, calendar on the right, message list on top center and message pane at the bottom center.

A while ago I realized that the time I spend selecting messages to read is minor compared to the time I spend reading them. As reading area is lower on screen you’re not exactly doing a favor to your posture if you’re reading on a laptop without external monitor connected.

So I made a small change to my userChrome CSS rules. That’s a file under your profile folder, more specifically userChrome.css file under chrome folder. If you’ve never used it before you need to create it.

You add the following: #messagesBox {-moz-box-direction: reverse;} which basically reverses the order of panes in the middle column. This way you’ll have message list at the bottom and message pane at the top. It’ll be strange at first but you won’t even notice it later, promise :)

This is not a solution to perfectionists, though. If you have filterbar or any other notification bar visible it’ll look strange. Maybe someone else wants to turn this to a proper extension which only reverts parts that make sense.

Customer support!

People mostly write about customer support when it’s crappy. This is an exception.

I was getting tired of having smartcard reader that connects to USB, the wire is absolutely annoying and it’s so easy to forget it at home when leaving. So I bought an Omnikey 4040 that connects to PCMCIA. First try was fail, Flex computer shop sold me wrong reader and I didn’t notice until I got home. They were totally fine to replace it though :).

Next I tried setting it up. Another fail. There seems to be a kernel driver which didn’t work. I then filed a support request with HID Global Corporation. Two weeks later they sent me driver code that compiles for my kernel (2.6.32) and works too.

I then put it to another test. Tried to sign a document with new still in development phase id-card software from Smartlink. Signing hanged application. Oh, well, it’s not announced stable anyway. However web-based signing actually worked with a website that is known to be tricky.

When you look at the picture you’ll notice that id-card software warns that the site isn’t using up-to-date API when accessing card and you’ll also see that the document signed is wrong, I only signed a local txt file. But, it actually works on linux and quite well, which is awesome!

Edit: Correction: It didn’t really hang, it just takes longer than expected to respond :).

Siis, kui matemaatilisi teadmisi vaja läheb, on need ununenud

Otsisin java koodist viga taga, sest visuaalselt oli näha, et miskit on valesti. Ja mis selgus: arkustangensi võtmisel tuleb veeranditega tähelepanelik olla. Sest see, mis näib nagu I veerandi nurk, võib olla ka III oma, ehk siis arkustangensi argument on sama, aga tulemus ei tohiks olla. Javas realiseeritud atan(x) väljastab tulemust vahemikus -pii/2 kuni pii/2 ja kuidas teisiti saakski, ega see pole kohvipaksult lugemine, et see arctan(1) on 45 kraadi, aga näed järgmine 135 kraadi. Aga loll tunne tuli küll peale, kolme aasta eest poleks küll sellise asjaga alt läinud.

Cryptic JBoss error

After some weeks I tried to run JBoss again. I was welcomed with the following exception:

Failed to boot JBoss:
java.lang.RuntimeException: Unable to create a KernelInitializer based on the specified KernelConfig
at org.jboss.kernel.KernelFactory.createKernelInitializer(KernelFactory.java:156)
at org.jboss.kernel.KernelFactory.assembleNewKernel(KernelFactory.java:99)
at org.jboss.kernel.KernelFactory.newInstance(KernelFactory.java:67)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.bootstrap(AbstractBootstrap.java:114)
at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83)
at org.jboss.bootstrap.microcontainer.ServerImpl.doStart(ServerImpl.java:79)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:398)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:544)
at java.lang.Thread.run(libgcj.so.81)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at org.jboss.reflect.plugins.MethodInfoImpl.<init>(MethodInfoImpl.java:103)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.<init>(ReflectMethodInfoImpl.java:78)
at org.jboss.reflect.plugins.introspection.IntrospectionTypeInfoFactoryImpl$2.run(IntrospectionTypeInfoFactoryImpl.java:211)
at org.jboss.reflect.plugins.introspection.IntrospectionTypeInfoFactoryImpl$2.run(IntrospectionTypeInfoFactoryImpl.java:200)
at java.security.AccessController.doPrivileged(libgcj.so.81)
at org.jboss.reflect.plugins.introspection.IntrospectionTypeInfoFactoryImpl.getMethods(IntrospectionTypeInfoFactoryImpl.java:198)
at org.jboss.reflect.plugins.ClassInfoImpl.getDeclaredMethods(ClassInfoImpl.java:394)
at org.jboss.beans.info.plugins.AbstractBeanInfoFactory.getMethods(AbstractBeanInfoFactory.java:232)
at org.jboss.beans.info.plugins.AbstractBeanInfoFactory.getBeanInfo(AbstractBeanInfoFactory.java:153)
at org.jboss.beans.info.plugins.AbstractBeanInfoFactory.getBeanInfo(AbstractBeanInfoFactory.java:124)
at org.jboss.config.plugins.AbstractConfiguration.getBeanInfo(AbstractConfiguration.java:69)
at org.jboss.kernel.plugins.config.AbstractKernelConfig.getBeanInfo(AbstractKernelConfig.java:65)
at org.jboss.kernel.plugins.config.property.PropertyKernelConfig.getImplementation(PropertyKernelConfig.java:175)
at org.jboss.kernel.plugins.config.property.PropertyKernelConfig.createKernelInitializer(PropertyKernelConfig.java:120)
at org.jboss.kernel.KernelFactory.createKernelInitializer(KernelFactory.java:150)
...9 more

And I know it was working before! Suspected Java update 7 that came recently form Ubuntu repository, but no one else seemed to have a similar issue.

Somehow default java that system uses has been changed. It wasn’t sun-java any more. As soon as I ran:

sudo update-alternatives --config java

and choosed sun-java, it started working again.

Perhaps saves some time for someone.

Is that what Orkut meant by “You’ve got extraordinary tools to succeed, use them accordingly”? :P