Posts

Fixing Outlook Web-access in Chrome

For some unknown reason, Microsoft is considering Google's popular Chrome browser inferior to MSIE and Firefox, and will fall-back to render a lackluster web-interface with an insanely short session-timeout, without multi-calendar support etc. etc. An easy fix is to go download Glenn Wilson's User-Agent Switcher plugin . Once installed, go into its settings under "Permanent Spoof List" and add an entry consisting of the domain of your mail provider (i.e. webmail.bangbits.com), select an alternatve User-Agent string (i.e. "Windows Firefox 15") and click "Add". Now Chrome will always pretend to be Firefox for that particular site, and thus you can do your corporate business just as well in Chrome as you could in Firefox.

Java 7 on Ubuntu 11.04

Image
So after 5+ years, we finally have a new version of Java. In spite of mixed reviews , as a software engineer working a lot on the JVM, I still wanted to take it for a spin. However, being an Ubuntu user, this involves a tad bit of work since there are only RPM and binary packages available at this time. So until there are official or unofficial .deb packages available, we're going to have to sneak in the raw binaries outselves. The following is how I did this on my 64bit Ubuntu 11.04 system. I take no responsibility in breaking your existing Java installation yada yada, you do this at your own responsibility. Procedure Start by downloading the binary. casper@workstation:~$ wget http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz Then unpack it. casper@workstation:~$ tar -xzf jdk-7-linux-x64.tar.gz Remove packed archive and move/rename the extracted folder into something a little more Ubuntu appropiate. casper@workstation:~$ sudo rm java-7-sun-1...

Optware/ipkg on Synology DS211+

Image
Modding Note that the following covers the DS211+ device, which is characterized by being based on the Marvell Kirkwood mv6282 ARM core (1.6Ghz version of 1.2Ghz mv6281). AFAIK the content of this blog entry should be equally applicable to all DS211 variations, but you should consult the Synology wiki for your device to be certain. While quite feature rich out-of-the-box, developer types will likely want to make their NAS do even more, either out of a real need or just to tinker. For instance, I eventually plan to connect my USB weather station and generate live charts. Because of the modding desire, Synology has a faily comprehensive wiki about the subject. To make a long story short, ease of modding is greatly assisted by the possibility of installing Optware package manager. Installing Optware Optware (ipkg) is an online package system a la what you may know from Debian/Ubuntu. This makes it easy to locate, install and uninstall compiled binaries (*.ipk) through the command...

Home network benchmarking with iperf

Image
Having recently purchased a new NAS device , as well as upgraded network cables in my house to cat6 (1Gbps), I started wondering about just how fast and healthy my network setup was. Are all cables in order? Are any of my switches a bottleneck? Any particular slow endpoints? performance challenged There are of course commercial software to assist in this, but after having compiled and loaded up a bunch of Linux software onto my small NAS, it was only natural to give "iperf" a try. It's a small open source client-server utility you start in listening mode on one device, and in transmission mode on another, and have it transfer a bunch of random data over TCP. You can obtain iperf from sourceforge , from your Linux package manager or just Google for precompiled binaries if you are lazy. Simple unidirectional test The process is simple, log onto the receiving device and run iperf in listening mode, in the following case it's my Synology NAS: NAS> iperf -s -p 5...

SVN checkout without branches and tags

Subversion (SVN) is a decent step up from CVS, and Maven (MVN) likewise from Ant. However one thing continues to bug me about how the two work together. Since MVN requires a fixed directory layout of /trunk, /tags and /branches, it becomes more and more painful to checkout or update a complete corporate source tree from one of the lower roots. In the perfect world, every project may be checked in at the root of the tree, but we all know the world ain't perfect and it's not unusual to require checkout and build of up to a dozen SNAPSHOT dependencies spread around deeper in the hierarchy. There is no (to my knowledge) easy way around this, either you have to live with insanely long checkout times and the associated waste of disk space, or meticulously checkout each every project trunk individually. As unimpressed I am by the Java language itself, the hat must come off to the plethora of readily available libraries on this platform. One of these libraries is SVNKit , a complete cl...

My issues with Spring

Image
One of the things I've had to come to turns with as a professional Java developer, is navigating the massive chaos of frameworks out there. It doesn't really matter which corner of the development stack we're talking, in Java we're sure there won't ever be just one official standard; if we're lucky, we can identify a state-of-the-art de-facto standard and if we're *truly* lucky, our choice will remain a good one for longer than a few years. One of those de-facto standards appears to be Spring . There is little doubt, that IoC ( Inversion of Control ), or more specifically DI ( Dependency Injection ), can be a great tool to decouple concrete dependency layers. However, in my opinion Spring introduces just as many problems as it solves, and here's my take on why. Everything and a Kitchen Sink While Spring does address IoC/DI, it also does a gazillion other things as well - as evident by looking at the Spring maven repo . On one of the project I was on, my ...

Android and task killers: Don't

Image
There's an awful lot of misconceptions regarding Android and multitasking out there. When you read help forums and the issue of performance tweaking comes up, a very popular answer is to use a task killer to close unwanted apps. Even venerable tech people like TWiT's Leo Laporte appears to have acquired this habit. I reckon that these people have no idea how Android actually works and/or are making erroneous assumptions pulled over from the world of traditional desktop computing. In the best case, nothing happens when you kill an application except you spend time manually doing something that would otherwise have been done for you automatically at a later time. Worst case, you crash an application or get up too late tomorrow because your alarm didn't go off. How Android does things At an architectural level, applications running on Android are actually not supposed to halt its process in the traditional sense as we are used to from most desktop operating systems. When yo...