Monday, 29 December 2008

The week in review - 2008-52

I've just discovered that commons-transactions offers a transactional file service allowing atomic read and writes on a filesystem.

Theres a good write up here about the evolution of Wordpress. I love stories like this, because it reinforces the fact that software doesn't have to be perfect when it is released. Releasing early and often can work, and when you do it this way, you can end up with a better product - one that is shaped by the community that uses it.

Wow, notice the file size difference based on type here:

  • 22MB mp3 format file

  • 7MB ogg format file

I wonder if they sound the same? If I get time I'll download and compare, but in the mean time I'll just hope that OGG gets more support over time.

A new garbage collector is making its way into java 7.

An interesting discussion about the direction of java. Should we ditch backwards compatibility?


Wednesday, 24 December 2008

SoundJuicer and MP3

I wanted to convert some CDs to MP3 - normally I'd use OGG, but you can't always rely on devices being able to play that format (i.e. DVD players). I was relieved to see it is easy in Ubuntu 8.10:

  1. enable multiverse and universe repos

  2. sudo apt-get install gstreamer0.10-plugins-ugly-multiverse  sound-juicer

  3. start sound-juicer and go to Edit/Preferences and switch the format to MP3

It was that easy. I seem to remember having to do a lot more with previous versions of Ubuntu.

Tuesday, 23 December 2008

Comment spam

I've been wondering for a while why people spam blogs with comments like:
Your site is so cool, thanks it really helped me!

Or any of the many variations. Its usually obvious for several reasons (spelling and just completely out of context) that this is spam.

But why bother?

It turns out that some blogging software is set up so that if a user has commented, and the administrator has approved that comment, then subsequent comments from that user will be published automatically (without requiring admin approval). That means, once approved, that user is trusted and can comment freely.

So, if you accidentally approve this spam bait (innocently believing it to be a genuine complement) expect much more less innocent comments to appear.

In Wordpress, this setting can be found in 'Discussion settings' under 'Comment author must have a previously approved comment'.

A better StringTokenizer

I've just been reminded how painful it can be splitting a string based on a token with StringTokenizer. The problem is that it gets messy when you have two tokens consecutively. Luckily commons-lang comes to the rescue with StrTokenizer - where empty tokens may be removed or returned as null.

Monday, 22 December 2008

The week in review - 2008-51

I've had to disable MemoKeys because it interferes with Intellij. I often use ALT-F1 to locate a file in the project tree, but this doesn't work because MemoKeys is intercepting the F1.

There is some awesome goodness coming in Grails 1.1 - check out the release notes for the Beta.

I just had a requirement to open an EPS file, but I found that GIMP (on Windows) doesn't natively support EPS. As documented, you need to install GhostScript and set an environment variable (i.e. GS_PROG=C:\Program Files\gs\gs8.63\bin\gswin32.exe). Restart GIMP and you should be right.

Running a VPS costs money, so reducing the amount of ram required helps. Java applications have the disadvantage of using resources even when they are not being used, so I am interested to read about this strategy which may reduce not only the upload size but the memory footprint. I don't know if anyone has measured the effect on memory - I hope it helps.

MythFrontend for viewing media over the network

I've installed MythTV frontend on my laptop so now I can view TV and recordings, and play music across the network. I had to change the backend setup to serve from the ip address instead of 'localhost', and I also changed bind-address in /etc/mysql/my.conf to use the ip address. I'm not sure if I had to change mysql, but I assume so.

I've also edited fstab to mount my media over the network so that the path on the frontend machine is exactly the same as on the backend (this was recommended in the post I found about setting the remote frontend up):
//mythtv/media /home/paul/media/ cifs credentials=/etc/samba/user,noexec 0 0

My /etc/samba/smb.conf has a corresponding entry to share the directory:

path = /home/paul/media
available = yes
browsable = yes
public = yes
writable = no launches

A friend finally launched his company - I expect great things to follow, so keep an eye on this space. I expect 2009 will be a good year for mobiusly.

Keep up to date with mobiusly:

Upgrade to Mythbuntu 8.10 broke nuvexport

I didn't notice until now, but nuvexport has stopped working since my upgrade to 8.10. I found the solution here, but I needed to add the Intrepid Medibuntu repository first. The full solution:
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
sudo apt-get purge ffmpeg
sudo apt-get install libavcodec-unstripped-51 libavdevice-unstripped-52 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 libswscale-unstripped-0 ffmpeg
sudo apt-get install mytharchive nuvexport

Tuesday, 16 December 2008

The week in review - 2008-50

A friend must have seen my comment about JDiskReport, and mentioned WinDirStat to me. I'd never seen it before. It's a similar product to JDiskReport but for windows only.

I recently tried installing 64 bit ubuntu on a spare partition on my laptop - it already had Vista and 32 bit Ubuntu dual booted with Grub. For some reason the install wouldn't complete and left grub broken so I couldn't boot into any OS. Easy solution - I used the 32 bit Ubuntu alternative disk which has a re-install grub option. This worked a treat. It correctly restored my boot options and the laptop was back in action.

I'm not sure why the 64 bit Ubuntu doesn't work on the laptop (Dell1525 Intel Core2 Duo Processor T5550). Looking at the comparison chart, I see that "All Intel® Core™2 Duo mobile processors feature: ... Intel® 64 architecture ... ". What gives? (The installer just fails part of the way through - no error, just freezes).

Saturday, 6 December 2008

The week in review - 2008-49

I've been looking for a convenient way to re-use some old harddisks for backup purposes. I think this cable is just what I'm looking for. It appears to support both IDE drives as well as SATA so it means I can get some extra life out of the old disks while still using it for new disks. I'm really only going to be using it for backups so it should be just the thing.

I've just upgraded my MythTV media center from MythBuntu 8.04 to 8.10. I downloaded the alternate CD rather than doing a network upgrade. The main reason for upgrading was to support my new Pinnacle Nano DVB tuner - support is built in to Ubuntu 8.10. Previously it required the drivers to be installed manually. I mounted the ISO file and ran:

  • sudo /media/cdrom0/cdromupgrade

Eventually it failed due to problems with flashplugin-nonfree and ia32-libs. I removed these packages and re-ran the upgrade and all was okay. After rebooting, the TV-out no longer worked - the NVIDIA drivers were not installed. I had to download and install them manually since the System/Hardware Drivers route didn't work. To install, you need to stop the X server:

  • Close all windows

  • Press CTRL-ALT-F1 to switch to a console

  • sudo /etc/init.d/gdm stop

Now, run the installer:

  • sudo sh

Following the defaults worked, and after rebooting I had TV-out working. I'm pretty happy with that - no real stress, but a bit of lost time getting the NVIDIA drivers working.

If you haven't seen JDiskReport, check it out. Its a great tool for finding out where your disk space has gone - and an even better example of how good a java application can be. It looks supurb and the webstart install makes running it seamless.

I was disappointed to see that MySQL Workbench hasn't been built on a platform independent framework (such as Eclipse or Netbeans). Thus we have to wait for different platforms (Linux & MacOS) to be supported. I'm not sure why anyone would build such a universal tool on platform specific technology these days.

I've said before what a pain dealing with commerical/licensed software is. Whenever something needs to be bought the following arguments go on for ages consuming much time and resource:

  1. how many licenses

  2. which licenses (when there are different levels of functionality)

  3. who needs them

This *really* makes me appreciate opensource. Thanks for all the great work that is being done by the community!

I have been trying to get more performance out of my Windows machine at work. After defragmenting the drive, I came across an interesting article about fragmentation and file systems.

I'm thrilled to see that SQLDeveloper supports renaming columns! I don't know if it always supported it, but it has not always been so easy. This kind of refactoring in databases is great!