Friday, 25 July 2008

Windows Mobile applications I use

To round off my mini-series about software I use, I thought I'd do one on Windows Mobile (AKA Pocket PC or PPC).
  • Pocket Informant
  • Keepass PPC
  • Microsoft Reader
  • MobiPocket Reader
  • PIM Backup
  • Pocket Navigator (Memory Map)
  • Laridian Pocket Bible
  • WeatherWatcher
  • Google Maps
  • Tombo
  • Tom Tom Navigator
  • SuperDoku
  • Bejeweled2
There are one or two other small utilities I also use and I have a bespoke WM6 installation that includes some tools. (NB: I'll add some links and explanations in when I get time).

Windows applications I use

Following on from my post about what stops me from dropping Windows altogether, I thought that I would put together a more complete post about the Windows applications I find myself using.
  • Memory Map - If ActiveSync is installed, the standard license allows you to push a copy of the Windows Mobile version to a handheld along with extracts of (or whole) maps, POI, routes, etc. It is also best to plan routes and add new POI on the desktop as its easier than the small interface on the handheld. There are two versions of the software. One will only run Ordnance Survey maps due to their overly restrictive license (in any other industry they wouldn't be allowed to get away with it). The other will run any map other than OS and also allows you to scan your own maps. If you buy the OS one for British maps, you can download the other from their US web site. Both can be installed at the same time and they don't seem to mind.
  • Google Sketchup
  • Laridian Pocket Bible for Windows - I generally use the Windows Mobile version of this excellent software but sometimes have the need to see larger passages, do side-by-side comparisons or write more extensive notes. The latest versions of the desktop now synchronise notes, etc.
  • MobiPocket Reader for Windows - This is able to translate ebooks from HTML and PDF into its native PRC format which is what I mainly use it for. It can push the file straight to a Windows Mobile device. It can also capture RSS feeds and do reading on the desktop.
  • ActiveSync - Yeuch! A necessary evil. The Linux sync software is notoriously difficult to get running and keep running and there are still some Windows Mobile installations that require a Windows machine with ActiveSync. It is though, the most dreadful and unstable software I use. I keep all of the options turned off so that it doesn't mess up the handheld.
  • MyMobile - This is the epitomy of a simple piece of software that just works! It allows access to the screen and keyboard of the Windows Mobile device within the desktop. Really useful if you use the phone a lot, especially as a PDA as well. It also has a file manager that is a lot faster than the ActiveSync one.
  • Microsoft Office 2007 - Although I often try to use OpenOffice for general tasks, there is no getting away from the fact that MS Office is light-years ahead in terms of features. If, like me, you rely on these for your day-to-day work then you need MS Office. I would say though that I would no longer purchase a copy for home use (not that I've ever needed to thanks to always having access to business laptops) - OpenOffice is more than sufficient for general use.
  • Internet Explorer - It is a sad fact that there are still too many web sites that require IE to work. Thankfully all of the banking and finance sites seem to have got their act together.
Well, it is still a pleasantly small list. Don't get me wrong, I am not against Windows, it's just that I like having a choice and believe that real competition is good for everyone both users and suppliers. Further, I cannot really agree with the restrictive licensing that MS are always trying to force on people given the large price they put on both the software and updates. Nor can I really agree with the stifling of innovation that is the result of overly restrictive trade practices. The competition from Linux and open source is good for the market though I would really like to see OpenOffice start to innovate more rather than trying to play catchup with Office.

Friday, 18 July 2008

Enabling VirtualBox access to USB ports (OpenSUSE 11.0)

By default, OpenSUSE 10 & 11 come preconfigured WITHOUT usbfs active. Unlike Ubuntu, everything is ready to go but the fstab setting is "noauto" so it doesn't seem to get loaded even when VirtualBox wants it.

The fix for this is simple and is listed in the VirtualBox User FAQ. In "/etc/fstab" change the line for usbfs to:


usbfs /proc/bus/usb usbfs auto,busgid=XXX,busmode=0775,devgid=XXX,devmode=0664 0 0
Where XXX is the group id of the vboxusers group which can be discovered in YAST or from the command line:

grep vboxusers /etc/group

That's it, no other changes should be needed. Now mount it with:


mount usbfs
(All of these commands and edits have to be done by root or sudo). OpenSUSE 11.0 does not automatically mount the usbfs on reboot so either do it manually after a reboot and before using VirtualBox or find a way to activate it automatically (and let me know hey? ;)

Update 2008-08-17: Thanks to "timdor" from the OpenSUSE Forums who lets me know a way of automatically mounting usbfs. "To mount usbfs at boot add 'mount usbfs' without the quote marks to /etc/init.d/boot.local". Thanks timdor.

Thursday, 17 July 2008

Font sizes and DPI

This seems to be a problem that won't go away. It seems inordinately hard to get a good looking set of fonts of the correct size. It is not that there aren't some nice fonts available; there are, at last, some fonts under Linux that often look superior to the Microsoft ones. It's just that it is difficult to get the whole look and feel correct. This is especially true when mixing Gnome based applications (Firefox and Thunderbird for example) and KDE. OpenOffice also refuses to play nicely. Anyway, grumping over, there is an excellent article on the Mozilla site about how to improve some of this by getting the correct DPI settings for your monitor (this is especially noticeable on my 24" beast!) The article is here.

Tuesday, 15 July 2008

Thoughts on OpenSUSE 11.0

Here are my experiences installing OpenSUSE 11.0 on my desktop PC (I had already successfully installed it on a VM). I opted for a KDE 3 desktop - I don't like Gnome especially and KDE 4 is not ready for day-to-day use as far as I am concerned.
  • No problems at all with mixed IDE/SATA drives and GRUB ;)
  • Usual problems with NVidia drivers (corrupt screen on first entry to KDE). But this time, I could boot into safe mode, add the NVidia repository, install the drivers and restart. Much easier than previously if still not quite perfect.
  • I did have some problems setting up two screens this time but it is the first time I've had my big monitor (24") at install time - I had to fiddle with the settings in the standard screen settings tool before I could get the NVidia settings tool to correctly recognise the size of the smaller screen.
  • I have a small issue with the NVidia drivers. I think that there is an issue with the latest drivers, I get an annoying screen blank every now and then. It is most noticable with some JavaScript enhanced web sites under FireFox for some odd reason. Under OpenSUSE 10.3, this was crashing KDE (which is why I got round to installing 11!) UPDATE 2008-07-17: This may, in the end, have been a hardware issue - I reseated the cables and everything is stable at the moment
  • YAST gets better and better. This is where you really see the benefits of being backed by a professional organisation (Novell).
  • You still can't set up a network bridge in YAST though :( However, it is easy if you follow the instructions in my previous blog entry.
  • Everything seems a bit faster though that might be down to a fresh install?
  • One thing that is massively faster is installation and update of packages - Phew! At last, one of the biggest issues with SUSE has finally been cracked. It is now very fast indeed.
  • The extra back/forward buttons on my Logitech mouse work without any additional configuration - nice touch! Though the left/right scroll still doesn't work :( UPDATE 2008-07-20: Ah ha! This one is due to an oddity in the key-mappings of the Logitech mouse that I use. Hopefully, I'll now be able to sort this out when I get a chance
  • There is still a bug in YAST that drops the default router at random. this stops Host Networking from working under VirtualBox

Linux Applications I use

Finaly got round to installing OpenSUSE 11.0 on my desktop so I thought this would be a good opportunity to keep track of the software I actually use. I'll edit and update this entry over time.

System

  • VirtualBox (virtual machine, cross platform)
  • Wine
  • TurboPrint (paid for printer driver) Makes having a Canon inkjet printer worth-while again! Rather expensive for what it does but it brings the features you would expect from a good, proprietary printer driver.
  • FireFox (web browser, cross platform) Add-ins:
    • Adblock Plus
    • CS Lite (adblock for cookies!)
    • Diigo (online bookmark and web notes site)
    • FlashBlock
    • RAMBack (Forces FF to give back some RAM)
    • Secure Login (auto populates login information - uses FF's built in security database)
    • Session Manager (FF3 now recovers crashes but this saves arbitary sessions on request plus other goodies)
    • Tab Mix Plus (perhaps a bit heavyweight but makes working with tabs vastly better than FF3's built in features) - you need the dev. build for FF3 UPDATE 2008-07-18: The dev. build is no longer valid for FF 3.0.1. I hope this gets updated soon, it really makes a differents to usability when you have many tabs open. UPDATE2: It seems as though you need to reinstall the dev build after updating to FF 3.0.1
    • Google Gears (Run web apps offline)
    Development Add-ins:
    • Firebug
    • YSlow
    Sometimes used Add-ins:
    • All-In-One Sidebar (nice but not really needed)
    • CustomizeGoogle
    • FEBE (backup FF, had some problems with it recently so I've stopped using it)
    • LinkedIn Companion for Firefox
    • PasswordExporter (Handy for backup and migration)
    • iMacros (record, write and edit macros that control the browser)
Security
  • KeepassX (password store, cross platform)
  • TrueCrypt
Office Graphics & Media
  • VLC
  • MPlayer
  • VueScan (paid for scanning software) This is an excellent if slightly expensive tool that does really high quality scanning from both flatbed and film scanners. It has its own drivers too. It can output multiple file types simultaneously including PDF and TIFF and can OCR as well. It also supports multi-pass scanning (primarily for film scanning).
Development
  • Open Komodo (editor, cross platform) Add-ins:
Games
Other
  • MemoryMap (mapping, Windows using Wine or a VM)
  • Google (Note that currently only Picassa and Desktop are in Google's SUSE repository)
    • Earth
    • Sketchup (Not often used)
All of the above are available either in the main OpenSUSE repositories or via the build service unless I've provided a link (except for plugins of course).

Monday, 14 July 2008

Flashing the BIOS from Linux (Phoenix BIOS)

I haven't looked at the BIOS on my ageing ASUS A8N-SLI motherboard for ages - in fact not since I switched it fully to Linux - so how do you update the Phoenix BIOS without DOS or Windows? I don't bother with a floppy disk any more and creating a DOS boot CD just for this once every x years job is a faff!

Well there is an article here that might help.

Hmm, apparently that article doesn't really help - except that it tells you ways to create custom bootable CD's containing DOS, the BIOS updater and the BIOS file. Ho hum, I guess I'll get round to it soon as I am looking to put a dual core Athlon in the PC which requires a new BIOS.

VirtualBox, sharing a Linux hosts file system in a Linux guest

When you want to access the hosts file system from a guest OS in VirtualBox, you need to mount the virtual share. However, the default mount:

sudo mount -t vboxsf <VBox-share-name> <mount-location>

Will mean that only root can write to the shared folders. You need to tweak things to get a system that an ordinary user can write to. Here is the script I use:


#!/bin/bash

echo " "
echo "Script to mount the host disk under VirtualBox"
echo " "

USR=`whoami`

SHARE='Host-Root'
MNT="/home/$USR/VBoxHostRoot"

echo "  Mounting $SHARE to $MNT ..."

mkdir $MNT

sudo mount -t vboxsf -o uid=$USR $SHARE $MNT

echo "  Done."
echo
You can, of course, have this mounted by the guest OS at boot time by putting an entry into /etc/fstab. Just make sure that every user that is set up has the appropriate folder created or move the folder to somewhere central and give it permissions so that all users have read/write access.

Saturday, 12 July 2008

Development Virtual Machine (VirtualBox)

I've been thinking ahead to a change of job recently. Knowing that I'll be getting a new Windows based laptop and needing to have development capabilities and having developed a taste for Linux ;)

I've used my favourite VM tool VirtualBox (now owned by Sun) to create a sparlkly new OpenSUSE 11.0 virtual machine complete with Apache, MySQL, PHP, etc. as well as office tools such as Open Office, mind/concept-mapping and diagraming applications.

Unlike the Windows XP VM that I use on my Linux desktop to give me access to Windows applications - which needs 2GB of RAM to perform nicely, the SUSE VM only needs 1GB of RAM to feel as fast (even though XP doesn't have Apache, MySQL, etc. running.

Although I've created this on my Linux desktop, it should be easy enough to transfer to my new laptop. To help keep file sizes down, I've chosen to use three virtual disks. One for SWAP, one for /home and one for the root. This will make it a bit easier to transfer back and forth if I need to - though I'll probably end up with two separate and different copies as I'm already finding that doing personal development work is much easier on the VM than it is on the host OS thanks to it being a more focused machine with less rubbish installed.

Sunday, 6 July 2008

Changing backspace to go back through history (FireFox for Linux)

Us old-time Windows bods get used to our keyboard shortcuts I'm afraid. One of the most useful is using the backspace key in the browser to go back through the browsers history. Unfortunately, this is not the default under Linux (alt-left arrow is the default). FireFox has an easy way to fix this. Put "about:config" in the address bar and "backspace" in the search entry. You should see the entry "browser.backspace_action". Change this to 0.

Friday, 4 July 2008

What did I install? (For OpenSUSE)

One thing that I didn't get around to doing since I moved from Ubuntu was to work out how to make a note of what has been installed.

This is slightly complicated by the fact that you can install stuff straight from an RPM file as well as through YAST (from the repositories or 1-click links).

Well, I finally got round to working it out and here is a summary.

To see what you have done with the YAST installers, just look at the log!

sudo cat /var/log/YaST2/y2logRPM | more

But to get everything, use the raw RPM commands:

These commands show the last installed rpm packages


rpm -qa --last | more
Grep for a date:

rpm -qa --last | grep "Sun 23 Mar 2008"
Dont forget that grep takes regex's

rpm -qa --last | grep ^kde
Another way:

rpm -qa --queryformat '%{NAME} - INSTALLED - %{INSTALLTIME:date}\n'
Or maybe:

rpm -qa --queryformat '%{installtime} %{name}-%{version}-%{release} %{installtime:date}\n' | sort -nr +0 | sed -e 's/^[^ ]* //'

UPDATE 2008-07-18: I don't know if this feature was available prior to OpenSUSE 11.0 but you can now use the Software Management tool in YAST to generate a nice, XML list of all installed packages. Switch the filter to "Repositories" and select the "@System" repo. Then choose the menu "File/Export". Very useful.

Wednesday, 2 July 2008

What Linux system files might need editing?

Whilst great strides have been made by the Linux community to provide GUI's for many tasks, it is still a command line driven OS at it's heart. This, of course, is one of its strengths as everything can be scripted too. However, for none IT techies, it is very daunting.

Here I'm listing some of the system files I've had (or at least wanted) to change by hand. It's a very quick reference, largely for my own benefit should I need to rebuild my system.

  • /etc/X11/xorg.conf Even now you might need to hand crank this file to get all of the settings you need
  • /etc/bash.bashrc.local SUSE does not include /sbin in the default path
  • /etc/cups/cupsd.conf Printer server subsystem (CUPS) configuration - may need to tweak the access permissions
  • /etc/cups/mime.types Added some stuff to speed up printing from the FireFox web browser. See the article on Google Answers for details
  • /etc/fstab What and how disk partitions get mounted at boot time - may need to change permissions or may wish to remove certain entries
  • /etc/host.conf See nsswitch.conf
  • /etc/hosts Useful to override host name to address mappings for development and testing work
  • /etc/motd What people see if they log in to your system using a command line shell
  • /etc/nsswitch.conf Controls how network names are looked up. Tweaking this can make DNS lookups a lot faster
  • /etc/samba/smb.conf Configure access to Windows type resources on the host machine
  • /etc/samba/smbfstab Configure if/how the host system automatically mounts Windows resources from other machines so that they appear as Linux mounts. Use this rather than /etc/fstab if you want the embedded password only visible to the root user
  • /etc/sudoers Which users can sudo. You can also configure particular applications to automatically get sudo privaledges if you want to (hint: it is rather nice to set up a script that updates all installed software packages)
  • /etc/sysconfig/network/ifcfg-br0 If you want to bridge two network interfaces (see the last post for information on why you would want to do this), you have to set things up by hand
  • /etc/sysconfig/network/ifcfg-eth1 SUSE has an excellent GUI for managing network interfaces but just occasionally you might need to manually tweak one
  • /etc/sysconfig/network/routes The SUSE network configuration GUI seems to have a tendency to loose the default route
  • /etc/syslog-ng/syslog-ng.conf Configure logging levels
  • /etc/syslog.conf As above
  • /etc/udev/rules.d/50-udev-default.rules UDEV handles automatic creation of device files based on event rules. On my system I had to tweak the permissions on a USB scanner so that the scanning software VueScan could get access. You can also add rules to run scripts when certain hardware is detected.
  • /usr/NX/etc/node.cfg Configuration for the NX server. NX is a method of getting remote access to the screen of a machine.
  • /usr/NX/etc/server.cfg As above
This list applies to a desktop machine running OpenSUSE 10.3

It is quite likely that some of these files do have a GUI but sometimes it is just easier to get in there and edit.

Showing a less than symbol in a Blogger post

This took me ages to sort out so here is a reminder.

If you want to post a less-than symbol in a Blogger entry (for example in some code or a math formula), you cannot use the standard HTML entity "<" as Blogger cannot cope with it for some reason.

Instead use the hexadecimal equivalent "& # 60 ;" (NB: I've put spaces in so that Blogger doesn't turn it back into a symbol!). That works fine and shows the symbol (<) as expected.

Also note that normally you can just enter a <> blocks or where there is no space after it.

Not Linux related I know ;)

Bridged networking in OpenSUSE 10.3 & 11.0 (For VirtualBox)

I prefer to use VirtualBox rather than VMware as it seems to be rather faster and less resource hungry than VMware Server (the only free version of VMware with a GUI). Also VirtualBox seems to have better Linux host support (sound, etc.).

However, there is one thing that VMware is better at - setting up the guest network on the same network as the host.

Under VirtualBox this is called "Host Interface Networking" and, with a Linux host anyway, is a right royal pain to set up. This is because VirtualBox uses the powerful and flexible bridging capabilities of Linux - but they have no easy GUI setup!

So here is my summary of getting host interface working on my OpenSUSE 10.3 desktop. Firstly though, note that I have two network cards. I am not going to mess with eth0 as this is the card I use for the main network from my desktop. Instead I am going to configure eth1.

  1. Install the package "bridge-utils"
  2. Follow the instructions at the OpenSUSE web site to set up a basic bridge. You will end up with a new file in /etc/sysconfig/network called "ifcfg-br0" containing something like:
    ## Bridge 0 config - to allow VirtualBox to use
    ##    Host Interface Networking mode with eth1
    
    STARTMODE='auto'
    BOOTPROTO='static'
    # Change the above to dhcp to use your networks
    # dhcp server to assign an address
    # (the next 2 lines are then ignored)
    IPADDR=192.168.3.1
    NETMASK=255.255.0.0
    # Note that the above puts the bridge onto a different
    # subnet to my main network but that I use class B
    # addressing to ensure everything can talk
    NETWORK=
    BROADCAST=
    STARTMODE=auto
    USERCONTROL=no
    NAME='Bridge 0'
    NM_CONTROLLED=no
    BRIDGE='yes'
    BRIDGE_PORTS='eth1'
    BRIDGE_AGEINGTIME='300'
    BRIDGE_FORWARDDELAY='0'
    BRIDGE_HELLOTIME='2'
    BRIDGE_MAXAGE='20'
    BRIDGE_PATHCOSTS='19'
    BRIDGE_PORTPRIORITIES=
    BRIDGE_PRIORITY=
    BRIDGE_STP='on'
    
    
    I think that you may also need to tell the bridge where your default router is. Create a file in the same place as above called ifroute-br0 containing:
    default 192.168.1.1 -
    
    (or whatever your router is). Then, when you've done a "/etc/rc.d/network restart" as sudo, you should see that eth1 and br0 both come back up. Note that it is possible that you have to change eth1 to give it a manual IP address of 0.0.0.0, netmask 0.0.0.0 for it to work correctly (as per the instructions in section 6.7.1.2 of the VirtualBox manual - note that some of the rest of those instructions seem to be incorrect). Note that SUSE 11.0 at least has a setting for this in YAST (edit the card config and select none for address assignment). The ethernet card eth1 is now indirectly used via the bridge br0. Here is my ifcfg-eth1.
    BOOTPROTO='static'
    BROADCAST=''
    ETHTOOL_OPTIONS=''
    IPADDR='0.0.0.0'
    MTU=''
    NAME='ASUSTeK Marvell 88E8001 Gigabit Ethernet Controller (Asus)'
    NETMASK=''
    NETWORK=''
    REMOTE_IPADDR=''
    STARTMODE='hotplug'
    USERCONTROL='no'
    
    UPDATE 2008-07-18: In addition to the above, you must create a default route - but don't do it via YAST! YAST has a bug that often deletes the default route. Instead, put the following line in the file "/etc/sysconfig/network/routes":
    
    default 192.168.1.1 - -
    Note the two dashes at the end
  3. Create a permanent interface for VirtualBox to use (also called a "tap" interface) with the command:
    sudo VBoxAddIF vbox0 <user> br0
    
    Where is the VirtualBox user running the VM - I guess you have to do this for every user who might run the VM. If you run the command "ifconfig" you will now see a new network interface called vbox0 which will reappear along with br0, ethx, etc. every time you reboot. Note that these VirtualBox interfaces can only be used once so if you have two VM's, you will need two interfaces. Also note that VirtualBox has a method of creating dynamic interfaces (that only appear when you want them) but that is more complex to set up.
  4. Now tell your VM configuration to use this interface. You can do this via the GUI by putting the required name (vbox0) into the network settings box "Interface Name" under the HIS section. Or you can do it with the command:
    VBoxManage modifyvm "My VM" -hostifdev1 vbox0
    
  5. Make sure that the guest OS is running the network connection with DHCP so that it gets the correct address, gateway, DNS, etc.
  6. You might need to set a default gateway in the host OS.
Job is done!! After some years of attempting this on and off, it has finally come together and all works. Hopefully this little list is enough to get you going.

Regards, J.

UPDATE 2008-08-12: It seems that there is something slightly amis with the above instructions. On reboot, the network is not quite left in the correct state and you have to do a "/etc/rc.d/network restart" before host networking will actually work.

UPDATE 2008-08-22: Oops, sorry but I got the addif command wrong, it was missing the userid bit. Rats! Blogger keeps eating the < symbol.