The search for a new desktop continues

So the fight to find a workable productive solution continues. Lubuntu and Xubuntu both ended up having problems with some of IBM’s productivity applications. Not an issue for the majority of users, but critical for me. And I also discovered that IBM and Canonical have committed to work together to ensure that we “internal” IBM users of Ubuntu will get the support to ensure that our internal productivity tools do work under Unity.

Which gives me a pretty strong push back towards finding a way to make Unity somewhat more palatable and productive. So I’ve set about trying to turn Unity into something that I can live with for work. I’d not say I’ve completely achieved that yet, but a couple of (long) evenings have got me a fair way forward, and revealed a few problems that I probably need to raise as bugs against Unity – though given the non-standard way that I’ve exposed them, it’s debatable whether they’ll ever be addressed or not. Anyway, here are the results so far:

My normal desktop


Customised Oneiric, with the launcher open


Customised Oneiric, with application selector open

And this is what I did to a freshly installed Ubuntu 11.10 system to get there:

  1. Add back a menu of applications that can act as a launcher, and a taskbar where I can see what I have running. I came across this post describing how to resolve these issues, and merely followed the directions.

    First the menu launcher:

    sudo add-apt-repository ppa:diesch/testing
    sudo apt-get update
    sudo apt-get install classicmenu-indicator

    Once installed, run it by pressing Alt-F2 and typing classicmenu-indicator.

    Now install the taskbar:

    sudo apt-get install tint2

    Once installed, set it to auto-run on system start, by adding an entry to the Startup Applications. The executable is at /usr/bin/tint2. Then configure the resulting bottom panel (in ~/.config/tint2/tint2rc) so it only has a taskbar, removing the clock and battery indicators, by adding:
    panel_items = T
    and adjust its size to avoid interference with the unity launcher (when it’s on screen) by making sure:
    panel_size = 90% 30
    and finally (a personal choice) remove the ability to close applications from the taskbar by setting:
    mouse_right = none

  2. Next, get rid of the ugly Unity launcher by making it autohide. This is done by altering some parameters in the Unity plugin in compiz. You need to install Compiz Config Settings Manager (CCSM) first, by:

    sudo apt-get install compizconfig-settings-manager

    Then run it with ccsm, and find and select the Unity plugin. Then on the Behaviour tab:

    Set “Hide Launcher” to “Autohide”

    Set “Edge Reveal Timeout” to 100

    On the Experimental tab:

    Set “Backlight mode” to “Edge Illumination Toggles”

    Set “Launcher Icon Size” to 32

    Set “Launcher Opacity” to “0.8000”

    I still think it looks like it was designed by a child with a set of blunt crayons, but this makes it a bit more professional-looking, and since it’s now going to be hidden most of the time (and rarely used) I can live with it. I do wish there was an option to completely disable it though.

  3. Next I fixed the window buttons, by re-enabling the standard minimise, maximise, close triple, and moving them to the right side of the window title bar. Do this by entering:

    gconftool-2 --set /apps/metacity/general/button_layout --type string ":minimize,maximize,close"

  4. Then I disabled the ridiculous Overlay Scrollbars, and the Global Menu; together this moves the window buttons and menus back onto the windows where they belong, and gives us working scrollbars on all applications again, including those that are built on Eclipse:

    sudo su
    echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars
    echo "export UBUNTU_MENUPROXY=0" > /etc/X11/Xsession.d/81ubuntumenuproxy

    Sadly the scrollbars lack scroll buttons; I’ve not worked out how to resolve this yet, which can make fine positioning difficult. But it’s orders of magnitude easier than fighting with the overlay scrollbars.

  5. Firefox has an extension to separately move its menus to Unitys top panel, and this needs to be disabled too. Access it from Firefox’s Tools->AddOns menu. It seems to require that Firefox be restarted, and a logout/login sequence to be followed before it fully takes effect.
  6. Next I took back control of the workspaces, by adding an indicator applet into the notification area of the top panel, that also functions as a workspace switcher. The indicator is in a PPA, but unfortunately only for Natty rather than Oneiric. The Natty version works just fine under Oneiric, and installing it is straightforward, if a little fiddly, by following these instructions.

  7. At this point I rebooted to make sure everything was working, and noticed that the classic menu indicator was not the leftmost of my indicators any more. However, it is possible to specify the exact ordering of indicators, so I reordered mine by:


    mkdir -p ~/.local/share/indicators/application
    cp /usr/share/indicator-application/ordering-override.keyfile ~/.local/share/indicators/application/

    Editing the new local ordering-override.keyfile allows the exact order of the indicators to be specified. Lowest numbers are to the right of the panel. To find the id of unknown indicators, use:

    dbus-send --type=method_call --print-reply \
    --dest=com.canonical.indicator.application \
    /com/canonical/indicator/application/service \
    com.canonical.indicator.application.service.GetApplications | grep "object path"

    This results in lines like:
    object path "/org/ayatana/NotificationItem/gnome_power_manager/Menu"
    In this case, the id is gnome-power-manager, but note that the command output contains underscores which need to be changed to dashes to be valid in the ordering-override.keyfile.

  8. Next I installed dconf-editor, which allows a few additional tweaks to be make to Unity:

    sudo apt-get install dconf-tools

  9. I then did some configuration of general settings around the operating system. First, I configured the terminal look and feel by opening terminal preferences:

    Set font to "Monospace 9"
    Set default size to 100x40
    Set scrollback to 10000

    Next I changed all the fonts throughout the system, as the defaults seem far too large:

    gsettings set org.gnome.desktop.interface document-font-name 'Sans 10'
    gsettings set org.gnome.desktop.interface font-name 'Ubuntu 9'
    gsettings set org.gnome.desktop.interface monospace-font-name 'Ubuntu Mono 10'
    gsettings set org.gnome.nautilus.desktop font 'Ubuntu 10'
    gconftool --set /apps/metacity/general/titlebar_font 'Ubuntu Bold 9' --type STRING

    Then, in the “Screen” settings, I configured the screen to turn off at “30 minutes”, and set the screen lock “on” after the “screen turns off”. In the “Power” settings I set the system to “Do nothing” when the lid is closed (on battery or AC), and not to suspend when inactive (on battery or AC), but to shutdown when power is critically short on battery. In the Time and Date settings I set the Panel clock to show the Date and Month, and the clock in 12 hour format. Finally, in “Removable Media” I set the system to never prompt or start programs on media insertion.

  10. To add a quick list of locations to the Launcher “files” icon, I ran the following as a single command:

    echo "[Desktop Entry]

    Name=Home Folder
    Comment=Open your personal folder
    TryExec=nautilus
    Exec=nautilus --no-desktop
    Icon=user-home
    Terminal=false
    StartupNotify=true
    Type=Application
    Categories=GNOME;GTK;Core;
    OnlyShowIn=GNOME;Unity;
    X-GNOME-Bugzilla-Bugzilla=GNOME
    X-GNOME-Bugzilla-Product=nautilus
    X-GNOME-Bugzilla-Component=general
    X-Ubuntu-Gettext-Domain=nautilus
    X-Ayatana-Desktop-Shortcuts=Videos;Documents;Music;Pictures;Downloads

    [Videos Shortcut Group]
    Name=Videos
    Exec=nautilus Videos
    TargetEnvironment=Unity

    [Documents Shortcut Group]
    Name=Documents
    Exec=nautilus Documents
    TargetEnvironment=Unity

    [Music Shortcut Group]
    Name=Music
    Exec=nautilus Music
    TargetEnvironment=Unity

    [Pictures Shortcut Group]
    Name=Pictures
    Exec=nautilus Pictures
    TargetEnvironment=Unity

    [Downloads Shortcut Group]
    Name=Downloads
    Exec=nautilus Downloads
    TargetEnvironment=Unity" | sudo tee /usr/share/applications/nautilus-home.desktop

  11. Next I disabled the guest account in LightDM. This prevents someone from logging into my machine (albeit with very limited privileges) when I’m away from the machine. I suspect our security people would not be comfortable with this feature left enabled. To do this, edit /etc/lightdm/lightdm.conf, and make it read:

    [SeatDefaults]
    greeter-session=unity-greeter
    user-session=ubuntu
    allow-guest=false

  12. Next I wanted to change the Alt-PrtSc capability, so I can capture a specific area if the screen rather than the active window. I want to retain the default PrtSc functionality. To do this, I started ccsm, and in the Gnome Compatibility plugin I changed the command “gnome-screenshot -w” (active window) to “gnome-screenshot –area”.

    While I was in ccsm I also disabled the “Snapping Windows” plugin, as it was driving me nuts. I also set a key combination (Ctl-Alt-g) on the “Toggle Handles” option of the Unity MT Grab Handles plugin, to allow easier screen grabbing & manipulation, as the default theme has quite small borders to its windows.

  13. By default, Oneiric doesn’t come with any screensavers. It simply fades to black. Which is efficient, but rather boring. So I removed the default screensaver (which does nothing) and reenabled all the pretty screensavers:

    sudo apt-get remove --purge gnome-screensaver
    sudo apt-get install xscreensaver xscreensaver-gl-extra xscreensaver-data-extra

    It’s then necessary to add “xscreensaver -nosplash” to the startup applications. This is the server portion of the screensaver which does the actual displaying of the animations, the locking of the screen, and any power management. It’s configured with “xscreensaver-demo”, which allows graphical selection of screensaver animations etc. Finally, to keep the ctl-alt-L key combination to manually start the screensaver, it’s necessary to:

    sudo ln -s /usr/bin/xscreensaver-command /usr/bin/gnome-screensaver-command

  14. Getting Conky installed (to create the animated desktop) was simple, once I’d realised that the key to making it work under Unity is to change the .conkyrc configuration stanza to own_window_type normal. However, Unity does something odd with painting itself into a different window than the root, so Conky cannot do transparent without help from something like feh, but that can only work with static images, not my preferred gradient fill. I resolved the issue by adopting an image for my desktop background.

  15. Finally, I mentioned a few issues that I’d not resolved yet:

    It seems impossible to stop the Unity top panel showing the name of the active applicaton.

    It seems impossible to move the classicmenu_indicator to the left of the Unity top panel.

    Having disabled the overlay scrollbars, the remaining scrollbars lack scroll buttons

    It seems impossible to remove the workplace switcher icon from the Unity Dash (hard-coded) Raised as Bug 898230.

    It seems impossible to remove the Dash Home icon from the Unity Dash (Hard-coded) Raised as Bug 898230.

    When maximising a window, Unity still steals the window buttons, and places them in its top panel Raised as Bug 898250.

    When stealing the window buttons, it doesn’t adhere to the setting in gconf for how to display them, but uses a hardcoded default Raised as Bug 898250.

    Seems to be impossible to completely disable the Unity Launcher Raised as Bug 898260.

    Help with any of the above would be much appreciated!

The search for a new desktop

As I mentioned here, I’m less than happy with the move Ubuntu have made towards adopting new desktop environments that seem to be more suited to touchscreen devices than desktop computers. So I’ve been test-driving a few of the alternatives to try to find something that will let me get on with my work, without getting in the way all the time.

So far I’m very impressed with LXDE, which is available pre-packaged onto the underlying Ubuntu 11.10 base as “Lubuntu”. Admittedly it’s very basic out the box (or off the USB key), but that seems to be because it’s been designed for very low-powered or old computers. All the default applications have also been selected to keep memory and CPU usage to a minimum. Nothing wrong with that, but in my case, I have a ridiculously powerful laptop with lashings of disk and memory to run it on – so all I want is the good old fashioned desktop metaphor back. Lowered system requirements are simply an added benefit.

So I’ve gone about hacking Lubuntu into something better suited for me. So far I’ve removed sylpheed sylpheed-doc sylpheed-i18n sylpheed-plugins mtpaint osmo xpad ace-of-penguins abiword abiword-common libabiword-2.8 gnumeric and gnumeric-common. That got rid of most of the default applications, and makes way for me to replace them with something fuller-featured.

I then added thunderbird xscreensaver-data-extra xscreensaver-gl-extra recoll inkscape scribus gimp gimp-data gimp-data-extras gimp-help-en gimp-help-common dia shotwell libreoffice aisleriot gnome-sudoku freemind audacity musescore easytag pitivi and conky-all. That adds most of the applications that I would expect to need from the standard Ubuntu repositories.

I then reconfigured the panels. Lubuntu comes with one panel on the bottom of the screen, a la Windows XP, but I’m used to the Gnome approach. So I moved the original panel to the top of the screen and added a second panel to the bottom. I then reconfigured the panels to match what I’m used to in a Gnome 2.x environment by moving around the various panel items – which was far easier than configuring the Gnome panels. So far so good.

Interesting to note that at this point, my test laptop (which is “only” a dual core 2Ghz machine with 2GB of ram) absolutely flies. But I still have a lot of things to try:

I know it’s just eye-candy for the sake of it, but I tried to add a simple Conky installation, showing some key facts and figures to the desktop – date/time, CPU, RAM & disk monitoring etc. It turns out that Conky and LXDE’s FilemanPC (which manages the desktop) don’t play well together out the box. You can get Conky scripts roughly working by altering them to contain “own_window_type normal” rather than “own_window_type overlay” or “own_window_type desktop”. However, the window can easily get minimised, with no way to recover it. Low priority, but more research required on that.

Currently most of the Thinkpad Fn-F1-12 key combinations aren’t recognised. The only one I really care about is Fn-F4 for suspend, which I can workaround using the menus, but I’d like to get at least that one enabled.

Next I need to test all the IBM-specific software that I normally use. I suspect that there may be some issues around the support of some of the Lotus products, which are built on top of an Eclipse base, and hence may not play well with my different desktop environment. Time will tell on that, but its critical for me.

Finally, assuming I can get all these basics working, I think I’ll be looking into producing a custom theme, as the standard Lubuntu (cold) blue isn’t at all to my taste.

Ubuntu losing its way?

As you can probably tell, I’ve been a fairly ardent supporter of Ubuntu Linux for several years now. I run it on all my machines here at home, and on several machines at work, including my primary workstation, a Lenovo X201 laptop.

It’s served me really well; every six months a new release has brought me a better, more reliable alternative to Microsoft’s Windows, with better support for my hardware, better pre-installed applications, and better usability.

It’s been so good that I’ve been able to eschew the IBM standard Windows software stack, and avoid the rather slow-to-evolve Redhat-based desktop that IBM has been promoting amongst it’s more technical community. Living on the bleeding edge with Ubuntu has been surprisingly easy.

Sadly, with the last couple of releases, that has been changing. Ubuntu seems to be going it’s own way, with a new graphical user interface (GUI) called Unity. Adopting it seems to have involved a lot of changes for changes sake. We’ve suddenly had the window controls moved from the right to the left. Now the window controls aren’t on the window at all – they’re on the top panel. And it’s design looks like something designed by a 6-year old with a set of crayons.

It might work well for people on a touchscreen netbook or smartphone who want to do nothing more challenging than check their email, but on my laptop, which is often docked to multiple high-resolution monitors, where I want to have a couple of dozen windows open at once, well, frankly it’s an unproductive mess.

I’ve tried to change my way of working. To adapt. But it just isn’t possible to do what I need productively. It just doesn’t work. I’ve also tried Gnome Shell, which is the other readily available GUI in Ubuntu 11.10. And it’s just as bad, probably because it’s very similar to Unity.

So with a heavy heart I’m getting ready to move on. The trouble is, what to? Gnome and KDE are both mired in the same “innovative new desktop metaphor” game as Unity. Which only leaves me with some of the niche desktop environments like LXDE, XFCE, CDE or maybe even Enlightenment. LXDE or XFCE are my most likely choices – they’re both similar to the old Gnome 2 desktop in ethos, but nowhere near as polished in their implementation.

Or my other option is switch back to Microsoft Windows 7, or to move on to Apple.

It’s not my preferred option, but I need my computer to work. It’s a tool, not a philosophical or religious debate; I need to be productive, to satisfy my customers, to earn money to pay the bills.

Server drive failure

In other news, I received a barrage of emails from my home server the other day, each complaining about a degraded raid array. A swift check through the emails indicates that every array on the machine had been degraded, and a little more investigation leads to the simple conclusion that one of the hard drives has completely failed.

So far I’ve not had time to check if this is a failure of the drive, the controller, or perhaps even just a cable coming loose, but it’s nice to see the server continuing to function completely normally despite this failure. Lots of kudos for the software raid functionality in Linux.

My job for tomorrow morning is to find out what has actually failed, replace it, and then reinstate the degraded raid arrays. One thing I’ll look into is getting SMART monitoring of the hard drives enabled. Currently it isn’t, and it would have been nice to have had some advance warning of this so I could have had the new drive ordered and waiting.

Still, hopefully the whole thing is not more than a couple of hours work.

Update: Initially it seemed like a cabling problem; simply replugging all the drives seemed to resolve the problem. However, putting it all back together again caused it to stop working again. After quite a lot of swapping of cables, and then finally wiggling of cables, it became clear that the problem was the drive after all. Ultimately it looks like the circuit-board attached to the drive has failed. Flexing the cables causes a little bit of movement of the circuit-board, which I suspect over time has caused it to fail.

A new drive seems to have completely resolved the problem. Having got that installed, it took about 5 minutes to partition it up, another 5 minutes to add the partitions to the raid sets, and about 4 hours for the linux software raid system to rebuild the raid sets.

And all is now working perfectly again.

Ubuntu 11.04 Alpha 1

I needed to reinstall my development system today, so I dropped the first Alpha code release of Ubuntu 11.04 onto it. It installs cleanly enough, but the move to the Unity graphical interface is not at all to my taste, and at the moment the classic Gnome interface isn’t functioning reliably.

Given that I’m not actively developing Ubuntu I think it’s probably just too early in the cycle for me to be sensibly using/testing it.

For now I’m going to revert back to a fresh install of Ubuntu 10.10.

Bitten by a Viper

In this case, the viper in question is an old industrial control computer, based on an Intel PXA255 processor, in PC104 form factor, running a minimal linux. It was originally manufactured by Arcom Ltd, who have in the intervening years been taken over by Eurotech S.p.A. and comes with a nice complement of default communications options.

Mine is a standard “full-fat” Viper board, with no additional expansion cards, but mounted in an industrial enclosure with an integral UPS battery-backup. Sadly it’s been lying around gathering dust in my study for about the last 5 years, and as part of a recent attempt to tidy up some of my clutter I decided I either needed to make use of it, or get rid of it.

A little searching unearthed the power supply, and then, according to the little red LED on the back panel, we had life.

The first problem was how to talk to it. This is a true industrial device – no screen or keyboard. The options are either to telnet or ssh in over the network connection, or use an ASCII terminal over a serial connection. And therein lay the first problem; it didn’t connect to my network as I was expecting, leaving only the serial option open to me. But as I’m almost exclusively laptop-based these days, finding a machine with a serial port, and then a serial cable to link it to the Viper, took quite some effort.

But having done so, and set up minicom with the correct serial port parameters (helpfully documented in the Viper manuals) I was able to login to the Viper, at which point a little debugging of the network stack revealed the issue – at some point I’d defined the Viper with a static IP address, on a different subnet to my current home network.

A few quick edits to return it to DHCP operation, and a little configuration work on my home servers dnsmasq configuration returned the Viper to my home network, at a readily accessible IP address, allowing me to ssh in again.

At this point, having proved that the system is working again, I now need to decide what to do with it; and in this case, I’m going to use it as part of my plan to implement a set of DIY ambient orbs, as I mentioned back in this post. The Viper happens to consume only 9w while network connected, and has a built-in I2C interface, which can connect to BlinkM LED’s which I can mount in my B&Q Cubo housings. This will allow me to control the colour of the orbs from a program running on the Viper.

Better than that though, I can then install an MQTT client on the Viper, allowing my Viper program to subscribe to a topic on my home servers MQTT micro-broker. This will allow me to have the Viper change the colours of the orbs in response to messages published to the broker on my home server. At that point I can trivially integrate any sort of external input to the orbs just by administering my home server, & without needing to make further updates to the Viper.

So all I need to do now is to get the AEL development kit (cross-compiler etc) set up so I can write some code for the Viper, and then buy some BlinkM LEDs. Which sounds simple, but unfortunately the AEL development kit hasn’t been updated for some 4 years now, and isn’t keen on installing on my latest and greatest Ubuntu 10.10 development machine. I’ve put some calls out to colleagues who have also had experience with these Arcom Vipers, but so far no joy. Next step will be to see if Eurotech can provide a little help – after all, I suspect the original Arcom engineers will mostly still be working there. I guess the worst case will be to set up a *really* old Linux system in a virtual machine, and install the AEL development kit on that instead.

Scanning under Ubuntu 10.10

I acquired an old Canon Canoscan N650U USB scanner recently. These date from the turn of the century, so I plugged it into my Ubuntu 10.10 system “on the off chance it might still work”, and to my surprise it (a) was immediately recognised by Ubuntu, and (b) still works perfectly.

The “Simple Scan” application included with Ubuntu is limited to the essential options, and is none the worse for that. You can crop the scan area, change the resolution, and select between text and image scan types, but that’s it. The resulting scan can be saved as one of JPEG’s, PNG’s (which can be rather large) or PDF’s.

Maximum supported resolution at the application level is 2400dpi, which is about half the marketing claims for current generation USB scanners, but oddly a lot more than the 600x1200dpi optical resolution claimed by the 650U’s specifications. I’m guessing the hardware does some interesting interpolation to produce the higher resolution output, which makes me wonder if best results might be obtained by setting it to 600dpi or 1200dpi? Either way, the results seem more than adequate for my needs so far. It’s certainly looks “good enough” from the scans of text documents and photo-type images that I’ve done so far, and ought to let me do simple one-off “photocopying” if I need to.

What I’d like to do next is find a simple OCR application that can work in tandem with the simple scan application to produce plain text output. There seem to be several OCR offerings that work under linux, but it’s clear that none of them are integrated into the basic system in the same way that the scanner support is.

A little more investigation is required.

Wacom Bamboo Pen tablet under Ubuntu 10.10

I bought one of these USB graphics tablets for my daughter for Christmas. It turns out that it’s not quite plug and play on her Ubuntu-powered netbook – well, not until a few extra commands have been entered in a terminal:

sudo add-apt-repository ppa:doctormo/wacom-plus
sudo apt-get update
sudo apt-get install wacom-dkms

After this the tablet is hot-pluggable, and acts (at least initially) as another mouse-like device. I’ve yet to try it with tablet-aware applications like Inkscape or The Gimp, both of which will need a little additional configuration to recognise and make use of the advanced features of the tablet (pressure sensitivity etc) but it’s looking good so far.

A little playing with the configuration of The Gimp has proved that the tablet works perfectly; we now have detection of pressure working, allowing the rendering of variable stroke-width depending on the pressure applied to the pen. All in all I’m very impressed – having had the opportunity to experiment a little, I’m now wondering if I could use one to create free-hand drawings in presentations, which I suspect could be very effective.

Disasterous server upgrade

You’re probably aware that I run a small server at home which acts as my print, file, media, backup and mail server, as well as providing a series of websites and external services out onto the internet. It also manages my internet connection, and shares it (safely) amongst all the other computers in my home. I built it back in mid 2007 or so, when I was first switching from Windows to Linux, and chose to install Ubuntu Server 7.04 on it.

When the next Long Term Supported release came out (8.04) I eventually upgraded to it (via 7.10) and broke support for my PCI SATA card, which played havoc with my RAID array. I eventually worked around that by changing my RAID array to not use all the hard drives, and continued to run 8.04 until about 9 months ago, when I eventually upgraded to 8.10, which resolved the PCI SATA card problem. However, I never got around to rebuilding the system to use the extra hard drive, and continued running it with only two of the three drives active. It ran perfectly like that until I started experiencing problems printing PDF’s from my laptop, which is running the latest Ubuntu / CUPS / PDF viewer.

So I decided to upgrade the server to the latest 10.04 Ubuntu Server, which has been out for about 4 months now.

The upgrade to 9.04 went really smoothly, with no apparent problems. So I decided to push on to 9.10, which also went smoothly. And on the basis that those upgrades went so well, I decided to bring my server completely up to date, and upgrade to 10.04. And pushed my luck just a little too far.

Under 10.04 my server would randomly hang within at most 10 minutes. An inspection of the logs also showed that the problem with the PCI SATA card not working properly had returned, which may or may not have been the root cause of the hangs. Either way, I needed to back out the changes and return to 9.10. Which turned out to be harder than it should have been, because back when I’d originally partitioned the server, I’d not been very experienced, and so hadn’t adopted a very sensible partitioning scheme and hadn’t separated my data from the operating system. Getting back to 9.10 from 10.04 was going to be a ground up reinstall.

Since a reinstall was on the cards, I decided I may as well optimise the RAID array again. And adopt a more sensible partitioning scheme that separates the system from the data (in case I ever need to do a reinstall again!) And finally, because I wanted to spread my data across three different parts of the filesystem hierachy (/srv, /home and /var/www) it seemed to make sense to allow myself some flexibility in the future by finally adopting LVM.

To backup the system, I acquired a new 2.5″ 500GB drive (how technology has moved on in only 3 years!) for £55. Although apparently slightly extravagant, I am in the process of getting a new laptop at work, and will be able to use the 500GB drive in that to provide me with a lot more storage than I could otherwise have. I then backed up the servers entire filesystem to the new drive, before wiping all three server drives.

I then installed Ubuntu Server 9.10 onto the server, partitioning the drive into a 3-way RAID 1 set for /boot, and a 3-way RAID 5 set for LVM to then subdivide as required for my final logical partitioning. I then installed all of /boot, /, swap, /home, /srv and /var/www onto separate logical LVM partitions, and installed Ubuntu server onto the resulting system. All went perfectly, until the final reboot, when the system failed to restart, unable to mount the LVM partitions & filesystems. All my attempts to fix the problem failed, and in the end, after a day of fighting with it, I gave up and repartitioned the drives as a series of RAID 5 sets for the individual partitions that I needed. The drawback is that I cannot easily resize partitions in the future – a frustration to be true, but not a insurmountable problem.

In the end it’s taken over a week for me to get the server back up, and all the different services restored to full operation again. It’s not been a good experience. And my plans for “upgrading” in the future now all revolve around full OS reinstalls, preserving my data in their separate partitions.

And printing PDF’s? Now works perfectly. Hurrah!

Veroboard CAD design on Ubuntu

As you can tell from some previous posts, I (very) occasionally wield a soldering iron in anger, and knock together the odd circuit or two. I don’t do it often enough, or on a large enough scale to justify spending the time and money on making up proper printed circuit boards, but instead use veroboard (or as it’s generically known, stripboard).

This is always a bit of a pain though, and rather open to error, especially since I don’t do it very often.

But recently I came across a program called VeeCAD, which is specifically intended to take a circuit schematic, and lay it out for stripboard. Of course, you also need a program to create your schematic that can feed it’s output into VeeCAD, and the recommended offering for that is a program called TinyCAD. Which is great, but despite both these programs being open source, they only run under Microsoft Windows. And I run Linux.

So today I experimented with Wine, which is an emulation layer, allowing Linux to run some programs that are only designed for Windows. Installing it was as easy as entering sudo apt-get install wine in a terminal. I was then able to install VeeCAD and TinyCAD into that Windows emulation environment by simply downloading and executing their installers.

VeeCAD installed flawlessly. TinyCAD complained about some issues with the level of Jet libraries that were available to it. It turns out that Jet is the name for Microsoft Access databases, which TinyCAD uses to store the information about all the electronic components it understands.

After a little searching on the internet I discovered that you can apply the Jet 4.0 Service Pack 8 (SP8) for Windows 95/98/NT 4.0 to Wine (again, download the installer from Microsoft, and execute it), and it solves the problem completely.

So now I am able to design simple electronic circuits in a nice editor (rather than on bits of paper), and then transfer them to VeeCAD, which will work out how to lay them out on veroboard, and draw diagrams of exactly where the components, links and track cuts go, to build the circuit.

Perhaps the only problem I’ve found so far is that the catalogue of electronic components that TinyCAD understands is a little limited, so it may be necessary to add some of the components that I use, as I go. Which will be a nuisance, but worth it for the convenience of automating the layout later.

Perhaps also of interest to people reading this, it appears that TinyCAD can export a PADS-PCB netlist, which can then be imported into FreePCB, which can layout multilayer PCB’s and produce Gerber and drill files suitable to send to a PCB fabrication company.