Computer Stuff

Disclaimer - tinkering with settings and scripts can break your system.. all information here is presented as-is and without warranty.

Gnome 3 stuff now has its own page. Ubuntu 12.04 stuff continued on the Ubuntu Stuff page.

3/20/11 - Starting a new file for PC-related activities... sort of a continuation of Ubuntu Notes.

A few days ago I received my new ZaReason Limbo 6000A system with a 3ghz quad core AMD processor, 4gb ram, 500gb disk, a DVD R/W drive, and preloaded with a customized 64-bit version of Ubuntu 10.04 LTS. My old Ubuntu 8.04 system running on a 1.4ghz AMD still works fine but as end-of-support approaches on 8.04 I had to make a move, trying to upgrade it would be risky, better to let it continue being the slow workhorse that it is.

I set up the GUI to use the Clearlooks theme with Ambiance window decorations, which puts the buttons on the right but still looks mostly stock...


...that's my MEVO corewar evolver (click to enlarge).

4/3/11 - The last couple of weeks have been a blur of setup activity, I use an odd mix of apps for my electronics job and hobbies, spanning three different operating systems. The new system is now beginning to resemble my old setup except it's much faster, looks a lot better and has lots less built-up cruft. That'll change. Pretty much all of the bash scripts and many of the simpler binaries I use (including anything compiled with FreeBasic) copied right over and work fine with minor editing to account for different install paths etc, binaries that called libraries had to be recompiled. Most of the build tools and utilities I use were already installed. FreeBasic itself didn't work and doesn't offer a 64-bit version but I found instructions for installing the needed 32 bit libraries. The web came fully functional with popular codecs, I didn't have to do much for web stuff other than install a couple of FireFox plugins I use and install Pan gFTP SeaMonkey acroread etc from the repository, plus lsb so Google Earth would work. Other essential apps for me include Assogiate, VLC, Sound Converter, Gerbv, Audacity, flip (from tofrodos), mplayer-gui so I can use a script to play all the songs in a directory without messing with playlists, wine for running LTSpice and IrfanView, DosEmu for running all my old dos apps and batch files, and VirtualBox with the extensions for running Windows.

Wine and DosEmu

Getting everything running smoothly took a bit of trial and (lots of) error. At first I made the mistake of using WineTricks to load up my wine install in an effort to get more Windows stuff running under wine instead of virtually, but that proved futile for the apps I was trying to run and worse it destabilized LTSpice, causing it to frequently crash. Redid my .wine dir from scratch (deleted then ran winecfg), only needed to add mfc42.dll for Irfanview. Better to run the more intense Windows stuff under an actual copy of Windows... although I do need to figure out the wine prefix thing to have different wine configurations. All I really need in wine are apps I associate to right clicks with the help of scripts, here's the one for IrfanView...

#!/bin/bash
winpath="$1"
if [ -n "$1" ];then
echo "$1" | grep "/" &> /dev/null && winpath="Z:${winpath//\//\\}"
fi
wine "C:\Program Files\IrfanView\i_view32.exe" "$winpath"

...the one for LTSpice is the same except for the last line. The script checks to see if a parameter is specified, if it is then checks to see if there's a "/" path separator and if there is then converts all "/" characters to "\" and prepends Z: so Windows apps will understand.

Setting up DosEmu was somewhat trickier. I have an existing dos tree which I assign to the D: drive so edited the autoexec.bat to remove the part that attaches my home dir to D: (I don't want that) and instead specify the directory tree I want. Basically this involved commenting out the unix -s DOSDRIVE_D line and the following if "%DOSDRIVE_D%" line, then adding set DOSDRIVE_D=[the directory I want]. Added extra PATH dirs listing where my apps are and a D: before the final unix -e line (path must be set right before it gets to that line for right-click associations to work). Unlike wine, the DosEmu environment is its own isolated world restricted to the specified directories, so scripts to implement dos associations have to map the specified file to somewhere in the dos tree, I just copy the file to a known location then after DosEmu exits copy back any resulting files and remove the temp files. Here's the script I use to run the CVASM16 PIC assembler...

#!/bin/bash
dosroot=~/MYDOS
if [ -e "$1" ]; then {
bn=`basename "$1"`
pn=`dirname "$1"`
if [ -n $bn ]; then {
mkdir $dosroot/cvasm.tmp
cp -f "$1" $dosroot/cvasm.tmp
unix2dos $dosroot/cvasm.tmp/$bn
xdosemu "cvasm16t.bat $bn"
cp -f $dosroot/cvasm.tmp/*.lst "$pn"
cp -f $dosroot/cvasm.tmp/*.hex "$pn"
rm $dosroot/cvasm.tmp/*
rmdir $dosroot/cvasm.tmp
} fi
} fi

The cvasm16t.bat file is a batch that's coded to CD to D:\cvasm.tmp where the source file was copied before running the assembler with options to produce hex and listing files, which are copied back to where the original source was. The temp copy of the source is converted to crlf line ends using unix2dos, which (now) just flip -m $1 in a bash script (similarly dos2unix is flip -u $1 in a script). Similar techniques are used to run other dos programs by association, varying depending on what the app does.

Once the launch scripts are in place the relevant file types have to be associated with them. For existing file types this is just a matter of right-click, properties and a few clicks and keystrokes but for programming usually it's all text to the OS and I don't want all my tools on the right-clicks of every text file. This is where Assogiate comes in, I use it to create new types for *.asm *.src *.hex etc, each inheriting whatever is associated to plain text but letting me add extra apps specific to those extensions. Once set up I can edit code in various languages, right-click to assemble or compile, and right-click to download to my embedded app or otherwise run without fooling with those complicated integrated dev environment things.

VirtualBox and Windows

I installed Oracle VirtualBox 4.0.4 from the VirtualBox web site along with the extensions that enable USB support. One of the reasons I got the new system (besides needing to anyway to get more up to date) was the new Altium Designer PCB program was not compatible with my previous Windows XP box, which seems to have become partially damaged from the attempts. I need that stuff, it has to work and I have to have a way to back it all up ("computer", OS, apps and all), plus it was getting old having to constantly transfer files between the WinXP box and my main Ubuntu system (using a thumbdrive). Would be very nice to do all that stuff virtually... at least forstall setting up a new Windows box until I get everything transferred into this new Ubuntu system.. for the moment I still need my old 8.04 system for reference and there isn't really room for yet another PC around here. To try out VirtualBox (VB) I installed WinXP Home, pretty nice. The shared folder thing works perfectly, never could get that to work with VB 3 on my old machine where I resorted to setting up a local FTP server instead. Altium (probably) won't run under XP Home but this is pretty nice... went down the road and bought a shiny new copy of Windows 7 Professional. The 64-bit version was unstable and not compatible with some of my software, fortunately both 64-bit and 32-bit versions are provided. The 32-bit version is actually quite nice, at least as an environment for running Windows stuff.

All the apps I need to run worked, except for Altium, which crashed hard causing the OS to reboot. After some experimenting determined the cause was the VB guest additions, without the VB drivers Altium boots up fine (no 3D but I can work around that). I can't do without the guest additions since they also supply mouse and shared directory functionality, so instead I went to System and disabled the (simulated) video card, leaving plain VGA/VESA. This means not being able to resize the virtual window, with my 1440x900 monitor the biggest screen I could choose was 1024x768 - rather cramped for Altium. To work around that I used a shortcut containing a VBoxSDL command to launch Win7, which displays it without the menu and status icons, that lets me choose 1124x832. That'll work... but before launching I have to roll up my Gnome panels to give it the entire vertical screen.. once it boots I can put the panels back, covering up the dreaded corner "X" that's the equivalent to flipping the power switch [desktop effects have to be enabled to allow the panels to overlap a window frame, the VBoxSDL --termacpi option avoids improper shutdown].

Here's my present setup...


Getting there. BTW the network indicator in the top panel doesn't normally have a darker background, just an effect caused by the xwd screen dump utility that I used to get the screenshot, with the help of a script tied to one of my panel launchers (see below under Scripts).

To get a bit more functionality in the Windows environment (and just to feel more at home) I installed CygWin. The ncurses package is needed to provide the clear command, the CygWin install program is sort of a package manager that lets things be added and removed as needed, even has Gnome and KDE if so inclined. CygWin, like most 'nix systems, uses LF line ends so to avoid wrecking scripts I installed Scite, which preserves line end format and permits converting to and from CRLF format. Arranged to allow double-clicking and running bash scripts by adding C:\cygwin\bin to the PATH variable and associating *.sh files to C:\cygwin\bin\bash.exe. It shows a warning whenever a script is run from outside the normal filesystem (thus $0 will contain \ separators rather than the / 'nix convention), to suppress that added a CYGWIN variable containing nodosfilewarning.

Operating without the usual VirtualBox menus took a bit of setup, each USB thing to be used in the virtual environment has to be added to the USB setup so that if those devices are used they will be automatically mounted. Also has to be set to automatically use the CD device. I didn't have much luck using USB thumbdrives.. not something I would want to add to the USB filters (which would prevent using them in Ubuntu when Windows was running) and not sure it would work anyway, Ubuntu sees and automounts USB disks first and grabbing control afterwards seems a risky even if it did work (which it didn't). With the shared directory thing this is not an issue.

Getting audio to work was a challenge. Audio output always worked, but had difficulty getting input to work - mostly because the mic jack on the front of the ZaReason machine doesn't work (the headphone jack works but input just shows a pulsing noise, I suspect something isn't wired right). I tried a cheap USB mic/speaker interface but that was useless - Ubuntu 10.04 couldn't deal with it at all (killed the USB subsystem and since I'm using a USB keyboard and mouse that's the same as total lockup - blacklisted snd-usb-audio in /etc/modprobe.d/blacklist.conf to keep that from happening). The device was also useless on my old system - Ubuntu 8.04 didn't lock up with it but when booted into XP the response was far too choppy/distorted to do measurements. Once I ran cables to the rear line in / speaker out jacks on the ZaReason machine I started to get better results but it was still tricky.. had to tell VB to use the OSS driver to get anything useful. Previously in an attempt to make it work I told VB to emulate AC97 and installed the RealTek driver in Windows, but not sure if that has anything to do with anything. Somewhere in the system there's a limiter, had to set Ubuntu's input "level" to unamplified (it's really a selector switch that just looks like a slider) to avoid distorting audio sweep levels, and in Windows make sure the mixer was set so there was no software loopback going on. Once all the bits were just right the Holmes Impulse test program gave me a reasonable loopback response (speaker output connected to line input), amplitude and phase response wasn't great but calibrating got it flat from 15-15K, manually editing the mic calibration file got it flat down to 10hz. Not perfect but it'll do for now.

Useful Scripts

Note: all scripts are presented as-is and without warranty, I'm not responsible for any effect they may have on your system. Don't ever run a script unless you understand what it does. These scripts should present no issues but often scripts need to be adapted to a particular system, you might have to do that.

There are some things that I do all the time... launch a bash terminal in a particular directory, zip up a directory or file, make a screen dump of a particular window or the entire desktop, and launch a file manager with root privilages in a directory for editing config files, fiddling with my /usr/local/bin directory etc. Another handy thing is being able to play a bunch of music files in a directory in filename order - I don't like fooling around with adding playlist items, and later versions of VLC play songs in title order which messes up the "album" order. Gnome 2 makes it easy to add scripts that are always available, just put them in the ~/.gnome2/nautilus-scripts directory. One really nice aspect of scripts in nautilus-scripts is when multiple files are selected all the filenames are delivered on the same command line, very handy for running a program with multiple items. Selecting multiple items then launching something via association launches multiple tasks each with one of the files, generally not what I want to do.

Scripting 101 - all bash scripts should begin with the line #!/bin/bash to tell the system to use bash (other kinds of scripts can specify a different interpreter). Scripts must be made executeable before they can be run by double-clicking or from a command line (otherwise bash must be explicitly specified), right-click, properties, permissions. Scripts for Ubuntu and most other GNU/Linux systems must have LF line ends, I use flip from the tofrodos package for this along with a dos2unix script that runs flip -u $1 and a unix2dos script that runs flip -m $1 (unix2dos is handy for converting text created under Linux to something Windows Notepad will display, also dos and many old-comp systems expect input files to be in CRLF format). Scripts placed in nautilus-scripts are always available, for more specific usage by association or to use from the command line put the scripts in a path directory, /usr/local/bin is the standard location. Associated scripts can be put anywhere but putting them in a path directory avoids having to specify the directory or browse for the file, just type the filename when associating. I set up the Nautilus file manager so that when an executeable script is double-clicked it prompts for what to do (edit, preferences, behavior), if a script does not specifically launch a terminal (xterm gnome-terminal etc) then to see any output or interact then when running choose "run in terminal". If a script launches its own terminal or runs a graphical thing then just run. Important... anything run by right-click associations or from nautilus-scripts does not launch a terminal so you must code it yourself if the script requires non-GUI iteraction - generally this means the associated script contains something like xterm -e some_other_script $* where some_other_script is the actual script to run. There's a way to code it so it's in the same script but it's easier to use separate files and that permits the 2nd script to be used when already at a command line. For a one-line script where there is no need to keep the script running, add a & character at the end to spawn the command as a separate task so the script can go ahead and exit. That's the basics, the rest is learning how to use the bash scripting language, there are numerous how-to's on the net for that.

Here are my essentials for nautilus-scripts...

Terminal just launches Gnome Terminal wherever I am...

#!/bin/bash
gnome-terminal &

BrowseAsRoot prompts for a password then launches the nautilus file manager... [updated 11/14/11]

#!/bin/bash
gksudo "nautilus --no-desktop $(pwd)" &

MakeZipFile zips up the selected file or folder...

#!/bin/bash
# wrapper for zip command
# put in nautilus_scripts or run from command line
if [ -n "$1" ]; then
itemtozip="$1"
zipfile="$1.zip"
# made vars to maniplulate later... like detecting if being
# run from folder open and trimming out the full paths to
# avoid including them in the zip file.
if [ -e "$itemtozip" ]; then
zip -r "$zipfile" "$itemtozip"
else
echo "$itemtozip not found"
fi
else
echo "Usage: zipitup item"
echo "Creates item.zip"
fi

MPlayAll plays all files in a directory using gmplayer...

#!/bin/bash
gmplayer * &

Here are some other scripts I use (not from nautilus-scripts)...

Xdump uses the xwd utility to take a screen dump of a selected window...

#!/bin/bash
# Xdump - This script dumps the contents of a X windows to gif files
# Edit to specify output directory, default is ~/ImageDumps
# Renames the output file in sequence starting with dump1.gif
# Note..filenames and paths below must not contain spaces!
# Requires xwd and convert from imagemagick
# ---- config variables ----
outdir=~/ImageDumps
namebase=dump
#nameext=png
#nameext=jpg
nameext=gif
namenum=1
tempdir=~
# --------------------------
xwd -nobdrs > $tempdir/xwdimage.xwd
mkdir $outdir
while [ -e $outdir/$namebase$namenum.$nameext ]; do
namenum=$[$namenum + 1]
done
convert $tempdir/xwdimage.xwd $outdir/$namebase$namenum.$nameext
rm $tempdir/xwdimage.xwd

This requires xwd from x11-apps and convert from imagemagick, both were already installed. To use I made a launcher that runs this script (not useful for command line use so doesn't matter where it's put but somewhere under home is handy for easy editing to change the image type), and put the launcher on my top Gnome panel. Clicking on a window interior dumps only the window contents, some apps like Gnome Terminal (but not xterm) permit clicking on the title bar to save window borders and all, most apps permit only the window contents to be saved (seems like that wasn't the case under 8.04, not sure why). Clicking on an exposed area of the desktop saves the whole screen.

These scripts create a ram disk (64 megs on my systems), here's MakeRamDisk...

#!/bin/bash
gksudo mkramdisk.sh

...and the mkramdisk.sh script that it runs (assumed by the above to be in a path directory)...

#!/bin/bash
# make a ram disk for Ubuntu and similar systems
# this must be run as root (gksudo mkramdisk.sh)
rddevice=/dev/ram14
rdmountpoint=/media/ramdisk
rdworkdir=/media/ramdisk/work
if [ ! -e $rdworkdir ]; then # only run if ramdisk workdir doesn't exist
if [ ! -e $rdmountpoint ]; then # if mountpoint doesn't exist
mkdir $rdmountpoint # create it
fi
mke2fs -m 0 $rddevice # format the ramdisk and mount it...
mount $rddevice $rdmountpoint && mkdir $rdworkdir # create work dir
chmod 777 $rdworkdir # make so anyone can use it
fi

This UnmountRamDisk script unmounts the ram disk...

#!/bin/bash
gksudo umount /media/ramdisk

...needed because unmounting using right-click unmount doesn't work.

And of course the obligatory unix2dos and dos2unix scripts (make sure binary versions are not present)...

#!/bin/bash
# unix2dos - uses flip to convert a file to CRLF format
flip -m $1
#!/bin/bash
# dos2unix - uses flip to convert a file to LF format
flip -u $1

These are a few of my general-use scripts, I've got lots more that are more specific such as scripts for compiling PIC and other code, doing various things involving the game of CoreWar (including numerous scripts that invoke old batch files I wrote in the '90's), and in general whenever I want to automate something to avoid the command line (or avoid too much complication at the command line). Bash is quite powerful and if inclined can be used to make complete programs, such as REBS.


4/6/11 - Little Glitches... notes from my notes... and do note that just because I write about bugs and stuff doesn't mean I'm dogging Ubuntu or GNU/Linux (although I might comment about certain elements just in case UI/SW designers happen to be reading) - these are all minor glitches and if anything I have greater chances of solving or working around these things because it's an open source system - issues with Windows are far more serious and fundamental.

My ZaReason Limbo 6000A system came with a MSI 880GM-P51 motherboard and a 3ghz AMD Athlon II X4 640 processor, the system normally ships with a 2.8ghz processor but they were out of stock of that one. Slot specs are slightly different than listed on the web page, I have 2 PCIEx4 slots rather than 1, which makes me think that the motherboard in my system is different - possibly explaining the mic jack issue (just a theory but my MB has Intel HD audio which uses the same physical front connector as AC97 audio, but the jacks are wired differently). But possibly not - the other theory is it is just me and the way I'm trying to wire my test circuits runs afoul with HD audio's sensing/switching system. Regardless, the rear line in jack works and is better for testing circuit response anyway. For the most part the ZaReason-configured 64-bit version of Ubuntu 10.04 works well with the hardware, but one glitch is lm-sensors does not work - detect-sensors says I need the k10temp driver, which isn't currently present in the 2.6.32 kernel. However fan speed control seems to work fine, and hddtemp does return the hard drive temperature. Compiled k10temp.c and temporarily inserted into the kernel but afterwards sensors only returned some PCI temp.. not what I was looking for. The 2.6.33 kernel has k10temp built-in but I don't know if there are any plans to officially move 10.04 to a later kernel branch - 2.6.35 is listed in the repositories but I'm a bit hesitant to go mucking around too much at such a low level - but there was talk about adding the temp drivers to 2.6.32. Hmm... probably the best thing to do is just wait.. if I want to know how hot it's running I can feel the breeze coming out the back.

There was a little glitch where a bit more than once a second there was a little hard disk access sound - late at night when everything is quiet it was like a ticking clock (but out of time with the real ticking clock). Started investigating to see what was writing using the command "sudo find / -xdev -mmin 1" (w/o the quotes), fairly frequent writes to ~/.cache/ubuntuone/log/syncdaemon.log and /var/cache/samba/winbindd_cache.tdb, also discovered that the ~/.gvfs cannot be accessed by root (wtf? a fuse thing). The iostat command from the sysstat package is also handy for monitoring system activity. Unchecking the Ubuntu One startup thing resulted in a broken restart/shutdown panel item, fuse is easy to disable by adding ~/.xsessionrc containing GVFS_DISABLE_FUSE=1 followed by an EXPORT of that variable (the file has to be like a bash script), restores proper permissions to .gvfs but interferes with mounting CD's (they eventually mount but takes awhile), neither action did anything to quell the little disk noise, back to stock. Then it stopped on its own (after an update but that could be unrelated). The great ticking HD mystery... but I learned of a handy place I can put my own startup commands and variables so that's cool.

The Yelp Help system has a bug in the man and info page displays under Advanced Topics, the index text is garbled. I really like the man displays since it's an overview of most of the installed commands and it's much easier to read than typing man somecommand and scrolling up and down in a terminal shell. So went to /usr/share/yelp and sure enough there was man.xml and info.xml files, which sure enough contained the garbage I was seeing in the lang:"en" and lang:"en@shaw" tags. The other lang:en tags looked fine, so after backing up the original files I simply deleted the garbage tags. The indexes look fine now, man page displays work. There are still some issues with links in the Info pages, destination is incorrect for anything linking to gettext or coreutils (but it does land within the correct info file) and hyperlinks don't work in any of the info doc files (however the side index panel does work). The garbled text thing is a known bug (not sure if the fix is known, haven't seen it reported but it was obvious), not sure what's up with the info links, seems internal - under 8.04 Yelp also has problems with file#tag links but there hyperlinks in the info files do work. Not a big deal or anything, I can still access the info.

The "Safely remove drive" option [sometimes] displays an error message when using to unmount a USB thumbdrive [not all thumbdrives are affected]. "Eject" produces no error and the remove error is probably cosmetic [asks the drive to confirm but some ignore the request], but some of the reports about this issue suggest potential problems [possible cached kernel writes, confusion over eject vs safely remove and which one should be used - was simpler when it was simply unmount]. This one has an easy alternate solution - indicator-usb is a little app that when added to the startup programs pops up a panel icon whenever a removeable drive is attached, when clicked there's a remove option. Easier to use than the old method of right-clicking the drive, which is often covered up by open windows.

I had a bit of a apt package system messup... noticed some security updates were not selectable.. in particular libavdevice52 libavformat52 libpostproc51 and libswscale0, these are used by VLC, mplayer and blender and probably other multimedia apps. A case where updated libraries were complaining because their dependents were not also updated. I noticed in the confict reports from synaptic they could use the -extra versions instead - so marked the -extra versions of the problem packages for installation which removed the conflicting versions without affecting the actual apps. However trying to mark the updated core versions of the libraries (that get security updates) also marked the apps that depend on the libraries for removal - not exactly useful. Update manager did the right thing and prevented those updates from being installed, I did what I did to keep from seeing the conflict even though it means I probably won't get security updates for these packages. A known issue, they're working on it. Update 4/8/11 - appears to be fixed now... the -extra versions got the same fixes and went in just fine - the lesson seems to be when Update Manager shows unselectable updates it's doing what it's supposed to do, ignore it until they become selectable. However it still could represent a buggy situation - some apps may be uninstallable during the time when the repositories are inconsistent... this doesn't happen often, in fact it's the first time I've noticed the effect in the 5 years I've been using Ubuntu.

I noticed a bit of glitchiness when copying launchers to the Gnome panel, sometimes they don't show up at first, ending up with duplicates or losing items after a restart, icons get reset when copying on and off the panel. Once I got it set up it has been fine. Another Gnome thing... under 10.04 if I try to change the icon for a file in the Nautilus file manager it only changes the icon for that file instead of for all files of that type - trying to change the icon in Assogiate has no effect. So I can't make all my .red files red at once. Not exactly a problem except in a general sense - the tendency to dumb down the GUI and replace once useful things with eye candy that looks pretty but doesn't help get things done.

All of these are minor issues, the only one likely to affect casual users is the safely remove drive glitch [and that only happens with a couple of my thumbdrives, others work fine]... then again casual users often just yank the thumbdrive out, oblivious to the need to safely remove a drive (until data loss occurs). Although this might appear to be a long list of bugs, it's not at all, uncountable things work just fine - it's just potentially useful to document the issues I run into and my workarounds, and being a techie I tend to notice even little things. So far Ubuntu 10.04 has been very stable and pleasing to use.


4/7/11 - Open Source PCB Software... KiCad...


This is the 3/30/11 version from the KiCad download site, the version in the Ubuntu 10.04 repository is outdated and has video glitches. The 32-bit binary package is statically compiled and seems to work on my 64-bit OS, only requires copying the kicad directory to /usr/local, but to make sure I copied the bin dir to bin32, recompiled from source and replaced the binaries with dynamically-linked 64-bit versions. Compiling was fairly easy for a package of this magnitude, well documented but generalized, ended up needing to install cmake, libwxgtk2.8-dev, libqt4opengl-dev and for the source docs, doxygen, already had the rest of the dependents (probably didn't need the qt4 version of opengl, but it pulled in what it was looking for). Didn't do the sudo make install, just copied the resulting binaries to where they need to be. Being able to compile from source is significant to me, it means freedom.

I haven't used the program enough to comment too much about it, except for my "experience" making a little test board...


[edited 4/14/11] The schematic editor worked fine, didn't take long to figure it out and plop down a contrived circuit. Outputed to a netlist and ran the CVpcb tool to assign footprints to the parts, seemed to work fine. Ran PCBnew and drafted my board outline, loaded the processed netlist and got a pile of parts all on top of each other (a bit inconvenient), read the docs and figured out how to separate them then arranged on the board. Used the rules screen to specify the trace size I wanted, layed down the traces, pretty easy to figure out. Figured out that if a trace crosses through a pad it does not imply a connection as far as the rats nest is concerned, have to stop at each connected pad. Tried the 3D view... chip and LED models picked up but no surface mount parts. Edited those parts on the PCB and found the paths had Windows (\) separators, browsed to the models I wanted and removed the incorrectly-pathed models. Got 3D. This is probably something to watch out for, not sure if in the model files or the code (lots of models on the net offer both Linux and Windows versions so that might have something to do with it, in any event easy enough to fix). Overall, for a new PCB package, the process was on the easy side - with a "big" commercial package it can take days to get this far on a first try, and the 3D view is really nice... I'm used to seeing blocks because the 3D model stuff is too tedious to create the models, in KiCad for the most part I don't have to.

Ok, the circuit needs power/ground pads... this is where I ran into a bit of trouble, couldn't find a way to simply plop down a couple of pads and assign them to nets - bug in my expectations as it appears that all items must be specified in the netlist, including external connections. Although this limits "freeform" changes to the PCB, I think I like that netlist consistency is enforced. This is a high-quality program, from what I'm seeing better than some commercial packages.. not as many features but that can be a good thing - the more features a program has, the more to have to wade through to find the thing that actually needs doing. As with anything new it takes time to figure it out, but on another front it takes some digging to gather up the tools needed to convert files back and forth between the needed formats.. found mm3d, MeshLab, dxf2vrml from the dime package, a python tool called TTConv0.2 (note - must run using the python command, might require dependents - I installed installed python-wkgtk2.6) that converts a DXF drawing into a KiCad PCB for defining the board outline, and stuff under Windows for converting DWG to DXF. For casual viewing IrfanView with the plugins can display DWG and DXF but with trial version text added... DWG format seems to be very encumbered, there is a free program (lx-viewer) for accessing and converting but it requires libraries that appear to be unobtainium without becoming a member of some club - unacceptable. DraftSight for Windows (from the makers of SolidWorks) works for converting DWG files to DXF suitable for feeding to TTConv, free with registration. There's a Linux deb version but presently only for 32-bit... followed these instructions to install [and had to take low-level steps to remove its "magic" file associations]. KiCad can export to VRML which at least for the simple test board I was able to convert to DXF using MeshLab, so I think that part is covered.

Bit by bit it's coming together... more and more companies are now supporting Linux... EDA under Linux is becoming a real possibility for me, and others are already doing it. It's different, things sometimes aren't as "nice" but that's changing majorly thanks to WxWidget Qt and Gtk.


4/16/11 - Installed a PNY "Verto" GeForce 210 video card, while at it added another 4 gigs of ram to bring my total to 8 gigs. I chose the '210 chipset because it requires little power (about 30 watts max) and I really just need better software compatibility, I don't care much about high-powered 3D games (it would have been nice if it permitted oolite to run but I suspect that's another issue). Installation was essentially just plugging in the video card then using my monitor's auto-detect function to reposition the screen (which initially was way off-center). In plain (non-driver) mode it was a bit glitchy but all that smoothed out once I used "Hardware Drivers" to install the NVIDIA driver package. OpenGL-related glitches are gone, yay. Software-wise it didn't really help Windows 7 running under Virtual Box.. with the guest addition's video driver enabled it reports DX8, not good enough for Altium, which still crashes on startup if the VB video driver is enabled... back to "removing" the Virtual Box video "card". In plain VGA mode it does seem a bit faster between the video card and extra ram... now giving Win7 3 gigs of memory with the PAE option enabled.

Before installing the card I tried out the Kubuntu 11.04 beta to check out the state of KDE these days... although other than a few minor things I'm happy with the Gnome 2 GUI installed with Ubuntu 10.04, Gnome 3 just doesn't cut it for me. Not at all actually. I tried the Gnome 3 live CD and its shell wouldn't even run with my MB's integrated ATI video (not that I care), and fallback mode was a joke... Gnome 3 may be fine for simple users, obviously its new target, but simply put if I can't put my own app launchers, files and links on the desktop, then I won't willingly use it. It's not just because that's what I'm used to, it's because I put my links around the edges of the screen (where I want) so when apps are running I can still quickly get to stuff. I can't do what I do using an app-runner shell or having to go through a menu tree or navigate a file manager for everything. I understand the "new way" is good for some users (so carry on, develop away), it's just not for me and once 10.04 falls out of date I'll need an alternative to move to. I was happy to find that the new KDE (4.6) works fine (even if a bit heavy on the effects), by default it also uses the desktop for its own purposes but took maybe a minute to find an option that lets me put whatever I want on the desktop, treating it like a file manager. KDE has a built-in way to configure file associations, another important thing for getting stuff done that's missing in Gnome and has to be made up for using utilities. So cool, if Gnome goes belly up on me I'll just install KDE and hopefully in the future KDE will remain a work-friendly GUI.

4/26/11 - Tried out Linux Mint XFCE (Debian) from live DVD... not bad, has possibilities, but still seems to have some artificial lockdown going on. The Desktop folder was owned by root, to do any kind of file management there had to sudo chmod 1777 Desktop (try to stop me:-). Nothing in the way of managing file associations [9/6/11 wrong... just didn't see the option, also once installed permissions were fine. Rant about the dumbing down of user associations removed, although it's still a semi-disturbing trend with Gnome 3 and newer versions of Windows. In the case of Gnome 3 either Thunar from XFCE or PcManFM from LXDE can be installed along with Assogiate to restore the ability to freely associate files. Other bits of the other DE's such as LxPanel and a bit of configuration help make Gnome 3 work the way I'm used to using a computer.. see the Adapting Gnome 3 section below for some of the tweaks I've made to Virtual Box test installs.]


I got Oolite to work... the version in the 10.04 repository is broken but the 64 bit v1.75.1 from the website works fine on my system. Had to install it twice.. the first time it pulls in autopackage stuff, after that it installs normally (to home or the system). Great game! Just one little "problem", with my joystick it is hard to control, rolls and turns "stop on a time" with no "drift". So trying to get the source code to try to fix that.. the web site the source is hosted at is kind of sort of broken (at least at the moment from here), but using subversion (svn) works (compile instructions here). Compiles, runs without "installing" or removing the stock version... but there is a minor glitch when loading a player, doesn't go to the commander profile screen automatically after loading, have to press F5, and after crashing the ship it reverts back to initial conditions rather than last load/save, otherwise seems OK. Both issues were solved by installing patched gnustep stuff from a ppa as detailed in the compile instructions (didn't have to recompile).

4/27/11 - one of the (Oolite) joystick setup options is for a precision toggle, that helps a lot. Also noticed there is a bit of recovery time in the controls, a small fraction of a second.. so the "drift" code is already there, if I care enough can probably find and change the constant that controls it, maybe make it a setting that can be tweaked without recompiling.

[Or maybe not... getting rather used to it just like it is, switching between normal and precision mode as needed...]



10.04 panel config bugginess... panel issues have been noted before, but a few days ago after updating LTspice in wine it kinda whacked out my panels (an unrelated bug in wine which is a pretty freaky app to begin with - sometimes GUI-related things go wrong when running software that's totally alien to the native system but without the sandbox of a virtual machine), after restarting I found the indicators rearranged - the logout/shutdown/restart thing was no longer at the end. Unlocked the notification area and moved it more to the middle, that fixed that. Booted this morning and there were two "Terry" things (one disfunctional) and no logout option at all. Enough of this buggy indicator social networking stuff I will never use, right-clicked the useless indicators and removed, that puts the logout options on the System menu where they belong anyway. Also removes the volume control, to get a volume control back (a different one but I don't care) I added gnome-volume-control-applet to the startup programs (there must be a notification area on the panel). And removed Ubuntu One. Back to uncluttered normality now... did the same thing some time ago to the 10.04 install running on my HP Mini 110.

I suppose the conflict between "power" users and "normal" users has been going on ever since there was such a thing as GUIs for computers, with developers trying to strike the balance. These days, with the proliferation of cell phones the web and social media, "normal" has become simplified to the point of not being all that useful for us older folks who still use computers primarily to, you know, compute. And we're becoming more and more the minority, so less importance is attached to things like being able to configure the system for fast work flow, instead it's all this (cough) new exciting vision stuff. I'm sure there are things I do to my system that breaks the fancy stuff... if I only did "normal" stuff I probably wouldn't notice the new limitations. The funny thing is I'm not really against the trend (just against it becoming the only choice) - if the GUI changes mean more people use Linux-based systems, then the more it will be supported and that benefits me, even if I have to rip out stuff that gets in my way. And that is why I use GNU/Linux - because I can. I can choose which distro to use. I can choose which GUI suits me best. I can undo defaults and restore access to my desktop (sometimes, if not time for a new GUI). If I really want I can start from scratch and pick and choose which elements to include but I prefer to use a well-supported system like Ubuntu and just modify it to my liking, less work (at the moment anyway). Even when I have to do surgery to fix something, I learn more about how the components work. So it's good.

4/29/11 - I think what's been bugging me regarding desktop environments is the thought of becoming dependent on something, only to have the powers that be take it away from me (unfortunately that's a repeating theme). True, free software can't be fully taken away, not in the same way as proprietary software, but stopping support eventually means the same thing, just a slower death... it just becomes more and more inconvenient. The solution for GUI-makers is simple - don't remove legacy interfaces that people are using! That used to be the golden rule - don't alienate existing users. I'm not talking about shells like Unity and fancy indicators, those things can be removed if not wanted, rather I'm talking about removing functions from libraries other apps depend on, and removing OS functionality that is essential to some users. Simply because the "majority" doesn't need or want the more advanced functions is not a reason to upset the minority who do and would rather there be no major changes to their work flow. Hide the advanced stuff, fine, add a fancy shell, whatever, but remove too much real functionality and the advanced users will have to move on to something else.

I installed KDE on top of my existing system and it didn't take much effort to configure it to work the way I work.. a couple minor glitches mostly related to cohabitation with Gnome (specifically no shutdown/restart options, just logout, and fonts are different depending on if I boot into it directly or after exiting Gnome - fixed that by using KDE's system settings to pick another font size) but it looks like it would get the job done. All those additional KDE apps work fine under Gnome as well (actually I've been running KDE apps under Gnome for about as long as I've been using Ubuntu), same for Gnome apps under KDE. Hopefully this versatility will continue. I still prefer Gnome (2) and will continue to use it so long as it remains useful, but KDE is waiting and ready if it gets too weird or if I just want a change (that I can use, can do without changes I can't use).

5/1/11 - Tried to switch to KDM to get the shutdown/login options in KDE (sudo dpkg-reconfigure gdm then select kdm), that didn't work - system hung on splash screen. Had to boot to recovery mode, go to a prompt, and run dpkg-reconfigure gdm again to go back to GDM to fix it. That was a close one.. definitely need to be careful when messing around with low-level boot stuff. Could be related to the NVIDIA driver.. ever since installing the GF210 card the splash screen has an initial glitch and isn't in the right resolution (which is probably because it goes by so fast I haven't been able to select my monitor's autodetect function in time - darn, should have taken advantage of the hang but was preoccupied thinking "uhoh I just borked my system"). For now better just stick to GDM and if I want to run KDE then log out from Gnome (my system is set to log in automatically, possibly affecting things - but I have it set to allow 10 seconds for other login but I don't see any screen, not sure what's up with that...). OK.. poke some more - in Login Screen unchecked the play sound option (probably unrelated, just any change but who knows), rebooted and while in grub (which I previously had to enable to see - commented the GRUB_HIDDEN options) pressed c then entered vbeinfo to see what graphics modes it supports... 1024x768x32 looks good (just listed didn't change anything), exit then press a key to rerun the menu, let it boot - no splash at all just odd garbage at the top.. then the login screen appeared (there it is!). Back in Gnome edited /etc/default/grub (after copying to a backup!) added GRUB_GFXPAYLOAD_LINUX=1024x768x32 after the commented #GRUB_GFXMODE line, ran sudo update-initramfs -u then sudo update-grub, rebooted, now I have a non-glitching splash and the login screen appears. Reboot again to make sure... occasionally the "Ubuntu" splash doesn't appear at shutdown, showing the messages (did that before, don't care) but otherwise works fine now, no startup splash glitches, can boot into Gnome or KDE or do nothing to boot the last GUI used. Now if I can figure out how to get rid of all the ACPI AE_NOT_EXIST errors in dmesg, they don't seem to be causing any real effect (that I know of) but I prefer there be no startup errors. Also getting a few GLib errors in .xsession-errors for polkit-gnome-authentication-agent and gnome-power-manager and some compiz thing it can't load (same errors on my HP mini 110 but more of them there, probably harmless as that system works fine too), and complaining about no user sharing (not sure about that but I don't want to enable file sharing except for what VirtualBox does and it shares fine). Very occasionally a message is displayed on startup that some panel thing couldn't be loaded (clicking no at the offer to delete it) but haven't seen that one since right after installing KDE, the time before was after poking something else, I forget... seems to be fine now. Eeeks! lots of scary stuff under the hood, the trick is figuring out what matters and what can be ignored (which is probably most of it unless there's a real issue).

Yep, when I poke the system sometimes it pokes back... to be expected. But I feel the need to test the limits, fix things that bug me and make the system work the way I want it to. Remember any commands etc here are provided as-is and without warranty - just documenting, don't try anything (ever:-) if you don't know at least the basics of how to fix a broken system - always back up changed config files, document changes so they can be undone, and have a live CD handy in case the system no longer boots. Helps to have another machine to google solutions when things really go belly-up.

Back to GUI trends - can't seem to get away from that because it potentially impacts my future ability to efficiently get work done. Worried about nothing perhaps - but the trend seems to be eliminating desktop icons with mainstream distros jumping on board and that is worrysome, despite the fact that many are shouting loudly that that's a deal-breaker. But maybe it'll help to offer examples as to why. The argument against icons on the desktop seems to be that open windows cover them up - but that only happens when apps are run maximized which I hardly ever do. Along the left side of my screen I have symlinks to directories I need most often (see the screen shots at the beginning of this page), these usually remain uncovered so it only takes a double-click to open and get to my data. Even if covered there's a show desktop button that minimizes all windows at once, so at most it's a click and a double-click to get to frequently used data. Ditto for apps but I put the most frequently used apps on the panel so they're always available. Such as the launcher for my Xdump script to take screenshots. I just think that the solution is to keep the simplified shells (Unity, Gnome Shell, etc) but leave the regular desktop essentially just as it is - it ain't broken but taking it away most certainly breaks it, regardless of what the "clean desktop" crowd thinks. Just because they don't use desktop icons doesn't mean their usage pattern should be forced on those who've been using desktop icons pretty much ever since PC's had a GUI. Even Windows doesn't dare take away something like that. I was cleaning up a friend of mine's Vista machine and she had wall-to-wall icons, when I offered to organize them into subfolders she insisted that I not touch them, she knew where everything was and she'd organize them herself as needed. Silly perhaps to some, but a very important consideration - I put my icons where I want, remember what's where, and get aggrevated if anything rearranges the positions. Going icon-less might attract the smartphone crowd, but think twice if you think that'll "help" Windows users switch to Linux, the typical Windows user is probably as horrified as I am about the prospect of not being able to place icons on the desktop. It is a very important feature, in fact one of the core features of modern desktop GUI's so it kind of blows my mind that removing that feature would even be considered. Worse, it should be about choice - if someone doesn't want icons on their desktop they don't have to put any there - why must it be at the expense of millions of users who think otherwise? I suspect Gnome 3 is capable of working like Gnome 2 but that's not how it was configured in the gnome.org demo, and the usual gconf settings to tell Nautilus to manage the desktop weren't there. So what else am I supposed to think? Make it hard to impossible for me to use something then I won't like it and I will say so when I see it becoming a lack of choice (when it is just an option I don't care). There are plenty of others saying essentially the same thing.

I do respect and appreciate the efforts of developers who work hard to bring nice free software to the masses [really! I need the stuff so thanks], but please, listen to your existing users (and new users too, it takes both camps to make a great project). All that needs to be done is make Gnome 3 do essentially what Gnome 2 can do, perhaps with setup options like KDE has, then the issue goes away. I'll give it time, Gnome 3 is new so hopefully all this will be ironed out by the time Ubuntu 10.04 reaches EOL. In the grand scheme of things it doesn't even place on the list of things that are actually important, but we get bombarded with important stuff every day - writing about GUI trends, bugs etc is an escape from all that real-world stuff, tempered by the fact that none of this stuff matters to someone who has real troubles. Life is good when decisions made by free software developers can be the topic of discussion, so carry on.


Adapting to KDE...

5/4/11 - I'm really starting to like KDE, it took a bit of reconfiguration but I now have a desktop that lets me do it my way (the old way!). So long as Gnome 2 remains viable I can see myself switching between the two systems depending on what mood I'm in, for the most part the two systems are compatible with one another and are just two shells looking at the same apps and files. But I find myself leaning more towards the KDE side. There are things I have to work around, but there seems to be more stuff to adjust to find ways to get things done efficiently and the core seems more solid - still a bit flashy for my taste but the moving stuff doesn't slow me down and I do appreciate good looks.

Here's my present KDE desktop with a Dolphin window open...


Using the Humanity icons. Two volume controls, one is the gnome-volume-control-applet I had to add to make up for the lack of one in Gnome Ubuntu after removing the indicator stuff, they lead to different but useful mixer settings so leaving it be. To get it to work the way I'm used to changed "Activity" setting to folder view then in "Location" set it to Desktop, there's an option to show any folder so if I wanted to I could separate it from my Gnome desktop. The Shutdown Menu icon at the top is my way of working around KDE not being able to shut down or restart when run from GDM (system locked when I tried to use KDM but GDM is fine and probably needed for the Gnome side. Changed the icon for the "start" menu to back to the usual "K" icon (the humanity icons made it the Ubuntu symbol), beside it added widgets for show desktop and Quicklaunch with icons for Pan Xdump Firefox DosEmu and Dolphin. Dolphin doesn't have global scripts like in Nautilus but has an optional Terminal button, that rocks. Preview mode can be global or per-folder. No file tree but I don't need that, can add shortcuts to my favorite directories to the left side. Nautilus can be run if absolutely needed but causes side effects as in breaking the safely remove function for removeable media for the rest of the session (apparently a hal thing).

To get here I installed the packages kde-full and khelpcenter then tweeked. First tweek was to fix the horrid Firefox fonts on some sites by editing ~/.fonts.conf and making it look like this...

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>~/.fonts</dir>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="autohint">
<bool>true</bool>
</edit>
</match>
</fontconfig>

Then I set up the desktop to work the way I want, messed with font sizes so it worked the same whether booting into it or starting after exiting gnome, changed the icon themes, background etc, figured out the panel settings and all that. Made it so windows can cover the bar so Windows 7 under VirtualBox using vboxsdl and fixed resolution would fit without truncating part of the screen. The virtual window close button is now exposed (in Gnome I covered it with the top panel so I couldn't accidently click it), figured out the vboxsdl --termacpi launch option so now if I click the close button it causes a proper shutdown before closing the window. Still need to be careful though or oops.

There's no shutdown or reboot options when running KDE from GDM and I can't run KDM (at least I don't know how without breaking stuff), so to compensate I made a shutdownmenu script in /usr/local/bin...

#!/bin/bash
# a menu for shutting down the system - a workaround because
# my KDE won't display shutdown/restart options when run from GDM.
# shutdowncommand is a copy of shutdown with chmod a+s shutdowncommand
# so that it'll run as root without having to run the script as root.
# 5/4/11
# using kdialog... (split to 2 lines)
retstr=$(kdialog --title "Shutdown Menu " --radiolist "Select..." \
Shutdown Shutdown on Reboot Reboot off)
# using zenity... (split to 3 lines)
#retstr=$(zenity --title "Shutdown Menu" --list --text "Select..." \
# --radiolist --column "" --column "" --hide-header \
# true Shutdown false Reboot)
if [ "$retstr" == "Shutdown" ];then
shutdowncommand -P now
fi
if [ "$retstr" == "Reboot" ];then
shutdowncommand -r now
fi

The shutdowncommand binary is a copy of /sbin/shutdown set to always run as root, a simple way to do it that avoids unnecessary security/bug risks (sure theoretically an attacker could shut down my system, but if someone gained any command-level access it's pretty much over anyway, access to a copy of the shutdown command doesn't matter). The script can use either kdialog or zenity for the selection dialog, presently kdialog looks better as I haven't figured out yet how to spruce up GTK apps without risking messing up the look in Gnome (GTK/Gnome apps are functional under KDE but by default have a rather plain look).

Kdialog and Zenity are nice for controlling scripts using a GUI, so fixed up Xdump so I could pick the output type without having to edit the script...

#!/bin/bash
# Xdump - This script dumps the contents of a X windows to gif files
# Edit to specify output directory, default is ~/ImageDumps
# Renames the output file in sequence starting with dump1.gif
# Note..filenames and paths below must not contain spaces!
# Requires xwd and convert from imagemagick
# new version 5/3/11 - uses zenity or kdialog to prompt
# for image type and provide an option to cancel
# ---- config variables ----
outdir=~/ImageDumps
namebase=dump
namenum=1
tempdir=~
# --------------------------
# using kdialog... (split to 2 lines)
nameext=$(kdialog --title "Screen Dump " --radiolist "Select..." \
gif gif on jpg jpg off png png off)
# using zenity... (split to 3 lines)
#nameext=$(zenity --title "Screen Dump" --list --text "Select..." \
# --radiolist --column "" --column "" --hide-header \
# true gif false jpg false png)
sleep 1
if [ "$nameext" != "" ]; then
xwd -nobdrs > $tempdir/xwdimage.xwd
mkdir $outdir
while [ -e $outdir/$namebase$namenum.$nameext ]; do
namenum=$[$namenum + 1]
done
convert $tempdir/xwdimage.xwd $outdir/$namebase$namenum.$nameext
rm $tempdir/xwdimage.xwd
fi

...much better.

Dolphin doesn't let me run scripts via the GUI, under Gnome I had it set so that it prompts and I almost always ran scripts in a terminal. A basic solution is to use KDE's very excellent file association dialog to add bash to apps for type x-shellscript, set to run in a terminal, but that doesn't preserve the working directory (runs in the home dir). So made a runshellscript script in /usr/local/bin...

#!/bin/bash
cd $(dirname "$1")
"$1"

...and added runshellscript (in a terminal) to x-shellscript files. This is probably not fully long-name compatible, the directory name should not contain spaces.

At this point just about everything I could previously do in Gnome 2 I can now do in KDE, and some things are better, like associations, file type icons and the help stuff (no info display bugs). A few minor things are lacking like the temperature display - the k10temp driver requires an offset to translate to something resembling an actual temperature. Ksensors can do the offset but won't stay put. The download widgets lists possibilities but the installer seems to be non-functional. Fancy stuff... probably better off figuring out how to make my own widgets that do (only) what I need.

And of course, figure out how to make GTK apps look better. Not essential but would be nice.

5/7/11 - Themes are tricky when switching between KDE and Gnome, pretty easy to make a mess. I had pretty good luck by using the packages kde-style-qtcurve, gtk-chtheme and gnome-color-chooser, and adding gnome-settings-daemon to the KDE startup apps [new info 5/31/11 - if this item is in ~/.config/autostart it can mess up the icon theme in Gnome, a better way is to use the command line to copy another .desktop file to the ~/.kde/Autostart directory and rename/edit it to load gnome-settings-daemon]. QtCurve probably isn't needed but it has lots of configurable stuff for making the window frames and buttons work well with the GTK theme. The gtk-chtheme app permits changing the look of GTK apps but it (and any other GTK theme switcher) will mess up the colors on the Gnome side (at least using Ambiance controls). Restoring my saved Gnome theme doesn't fix but reselecting Ambiance in gtk-chtheme then restoring my settings (which is actually Clearlooks with Ambiance controls and Humanity icons) works right. Finally, gnome-color-chooser permits changing the GTK scroll bars so they'll work in KDE, without that some apps (like gedit) didn't draw the border around the scroll button rendering it nearly invisible, and also useful for editing the tool-tip colors so they're not invisible in some apps.

Still needs tweaking but here's what I have so far...


...inadvertently popped up one of those plasmoid things... sometimes they're useful but at other times it's just distracting. Other than changing how my scroll bars look the tweaks (in the end) didn't change the way it looks in Gnome.

This is all with the version of KDE in the repositories (at the moment 4.4.5), a PPA can be enabled that supplies KDE 4.6 but the upgrade would have to be done very carefully in Synaptic, just adding the Kubuntu PPA with 4.4 installed won't work because some packages have changed and Update Manager (thankfully) won't remove packages. 4.4 seems to be working well enough so in no hurry to break my system again. Overall at the moment I think I still like Gnome 2 better (my panel items work better and I have more control over the menus) but either system will work for getting real work done, and that's the main goal here - to have an alternative GUI that works. XFCE and LXDE also remain potential alternatives but there are a few things lacking that I need, like a way to easily configure my file associations. All these GUI's use mostly the same association system so it should be possible to make a stand-alone mime/association utility, then that won't be an issue.


Watch out when using PPA's

5/31/11 - A feature of "Update Manager" is it will not remove existing packages, normally this is good but occasionally can result in partial updates being offered. Especially if alternate repositories are enabled. The general advice is to never do a partial update, it can break stuff. Occasionally this happens when a package is updated before its dependencies, in these cases simply decline and try later, such as with the libavdevice52 update that happened a couple of months ago. It happened again a couple of days ago, but it was not obvious what was wrong - this time I went to Synaptic and told it to mark all updates and that made it clear, I'm using the winehq PPA and it was upgrading wine from version 1.2 to 1.3 and wanted to remove 1.2 first. That's fine so applied it, but if it would have said it was going to remove something else I needed I would have had to take other actions or waited for the repositories to sync up. Not sure what the rules are for updating a package versus uninstalling and installing a new version, but obviously it's related to why a given version of Ubuntu sticks to the same packages with only minor updates - sometimes the user has to help it out a bit to make sure all dependencies are satisfied without breaking something else. Sometimes a bit of thought is needed but it's still much preferable to how installers for that other OS sometimes replace vital components with incompatible versions silently breaking other apps... I'd rather be alerted to potential conflicts and figure out for myself whether or not to update an app, or if need be, remove the PPA causing issues and stick with my currently installed version.


[5/15/11] Here's a script I made for running games from the bsd-games package... set the launcher to run it in a terminal...

#!/bin/bash
gk=""
while [ "$gk" == "" ]; do
clear
echo "---------- BSD GAMES -----------"
echo "a) adventure v) number"
echo "b) arithmetic w) phantasia"
echo "c) atc x) pig"
echo "d) backgammon y) pom"
echo "e) battlestar z) ppt"
echo "f) bcd 0) primes"
echo "g) boggle 1) quiz"
echo "h) bsd-fbg 2) rain"
echo "i) caesar 3) random"
echo "j) canfield 4) robots"
echo "k) cfscores 5) rot13"
echo "l) cribbage 6) sail"
echo "m) dab 7) snake"
echo "n) go-fish 8) snscore"
echo "o) gomoku 9) teachgammon"
echo "p) hack !) trek"
echo "q) hangman @) vert-banner"
echo "r) hunt #) worm"
echo "s) mille $) worms"
echo "t) morse %) wtf"
echo "u) mpoly ^) wump"
echo -n "Select: "
read -n 1 gk
clear
if [ "$gk" == "a" ];then gk=""; adventure; fi
if [ "$gk" == "b" ];then gk=""; arithmetic; fi
if [ "$gk" == "c" ];then gk=""; atc; fi
if [ "$gk" == "d" ];then gk=""; backgammon; fi
if [ "$gk" == "e" ];then gk=""; battlestar; fi
if [ "$gk" == "f" ];then gk=""; bcd; fi
if [ "$gk" == "g" ];then gk=""; boggle; fi
if [ "$gk" == "h" ];then gk=""; bsd-fbg; fi
if [ "$gk" == "i" ];then gk=""; caesar; fi
if [ "$gk" == "j" ];then gk=""; canfield; fi
if [ "$gk" == "k" ];then gk=""; cfscores; fi
if [ "$gk" == "l" ];then gk=""; cribbage; fi
if [ "$gk" == "m" ];then gk=""; dab; fi
if [ "$gk" == "n" ];then gk=""; go-fish; fi
if [ "$gk" == "o" ];then gk=""; gomoku; fi
if [ "$gk" == "p" ];then gk=""; hack; fi
if [ "$gk" == "q" ];then gk=""; hangman; fi
if [ "$gk" == "r" ];then gk=""; hunt; fi
if [ "$gk" == "s" ];then gk=""; mille; fi
if [ "$gk" == "t" ];then gk=""; morse; fi
if [ "$gk" == "u" ];then gk=""; mpoly; fi
if [ "$gk" == "v" ];then gk=""; number; fi
if [ "$gk" == "w" ];then gk=""; phantasia; fi
if [ "$gk" == "x" ];then gk=""; pig; fi
if [ "$gk" == "y" ];then gk=""; pom; fi
if [ "$gk" == "z" ];then gk=""; ppt; fi
if [ "$gk" == "0" ];then gk=""; primes; fi
if [ "$gk" == "1" ];then gk=""; quiz; fi
if [ "$gk" == "2" ];then gk=""; rain; fi
if [ "$gk" == "3" ];then gk=""; random; fi
if [ "$gk" == "4" ];then gk=""; robots; fi
if [ "$gk" == "5" ];then gk=""; rot13; fi
if [ "$gk" == "6" ];then gk=""; sail; fi
if [ "$gk" == "7" ];then gk=""; snake; fi
if [ "$gk" == "8" ];then gk=""; snscore; fi
if [ "$gk" == "9" ];then gk=""; teachgammon; fi
if [ "$gk" == "!" ];then gk=""; trek; fi
if [ "$gk" == "@" ];then gk=""; vert-banner; fi
if [ "$gk" == "#" ];then gk=""; worm; fi
if [ "$gk" == "$" ];then gk=""; worms; fi
if [ "$gk" == "%" ];then gk=""; wtf; fi
if [ "$gk" == "^" ];then gk=""; wump; fi
done

11/14/11 - Yikes... this page was getting huge with all the screen shots, so moved the Gnome 3 stuff to its own page [newer stuff is on the Ubuntu Stuff page].

My main system is still Ubuntu 10.04 (and working fine) but Gnome 2 has been depreciated, new Ubuntu development is now based around Gnome 3 components so before I can upgrade my main work system I have to make sure it'll work for me. So far it looks like it will work but I still have concerns, in particular the concern that upstream developers will remove functionality that I need. Ubuntu 12.04 will be a 5 year LTS version so if the vital functions make it to release then it will for the most part lock in the features, making it less likely that an update will render my system unusable for my work flow. I love Gnome and want to continue using it, but if it gets too nuts then I'll have to adapt to XFCE, LXDE, KDE or something else that lets me do at least most of what I do.

In other comp-stuff news, I finally found a video editor that works - OpenShot 1.4. I've tried others but they crashed, produced glitchy output, or were just too hard to use. OpenShot just works - drag clips to the clips box, drag the clips to the timeline, use the resize tool to trim as needed, right-click timeline sections to add fade-in, fade-out, configure layout, add effects, etc, and export to just about any format with an installed codec. Comes with a nice manual but for most things the manual isn't needed. Works almost perfectly for the kinds of videos I need to make, which is mainly isolating song clips from a DVD recording, which I first rip to VOB files using dvd::rip or similar then de-interlace and convert to AVI files using WinFF as OpenShot 1.4.0 can't handle VOB files (tries but truncates). But it accepts just about anything else.

VirtualBox 4.1.x is much improved (presently using 4.1.6 with the extension pack), I can now run Altium in Win7 with the guest extensions without crashing (previously I had to disable the video driver portion, losing the ability to resize), Gnome Shell also works lots better virtually but some systems with compositing drivers (compiz in particular) still fail to update the screen when minimized then restored until I click on it (and sometimes not even then). Gnome Shell (mutter) also has minimize/restore problems but restores the screen when I move the mouse into the virtual machine window. Metacity-based environments work perfectly, even with compositing enabled. Getting there... previously I wasn't able to run the fancier Linux systems at all, now it's mainly just issues with minimizing and restoring the VM window.


7/7/12 - moved the embedded processor stuff to its own section - it's a vast subject.


3/12/13 - My main system is still Ubuntu 10.04 and working fine but at some point I'll have to upgrade... desktop support runs out next month and only 2 more years of support for the rest of the guts. Ubuntu 12.04 is a possibility... it is possible to upgrade via CD or USB without redoing everything - did that with my HP mini 110 netbook and didn't have to redo too much, the apps changed a lot but all my data scripts etc remained intact. Lots more choice for a GUI with 12.04... gnome-panel is mostly the same, lxpanel in a custom Gnome/Nautilus session works, right now it's using Gnome Shell with extensions to make it work more like the Gnome 2 I'm used too, and can run Unity 2D on demand for browsing videos etc. Upgrading my main work system to 12.04 will still take a lot of work with a real possibility of failing, so I'll probably put it off as long as possible. Right now things work well, so it'll really depend on how the repositories, PPA's and other stuff like VirtualBox behave in the future. But at some point, probably sooner than later, I'll need to make a move. When I do I want it to be the right move, I hate upgrades and core OS functionality changing once I get used to how things work - I want updated apps but not necessarily an updated OS unless it truly fixes a problem.

I installed Debian 6.0.7 (the latest stable) into VirtualBox...


...tempting :-) Most of the packages are fairly old (2010-ish) but if one wants to reject "progress" this might be the way to go. Had to do a couple things after installing - by default sudo isn't allowed so added my user account to the sudo group, and to install the latest VB guest additions uninstalled the old OSE version then (because I hadn't added myself to the sudo group yet) had to open a terminal on the guest additions virtual cdrom, run "su -" then run "bash ./VBoxLinuxAdditions.run" - the autoprompt thing wouldn't work. Also installed build-essential prior to that but I don't think that installed anything that was needed. For some reason I was not able to configure it to automatically log on using the GUI tool, the checkbox for that is grayed out.

Here's Debian 7 (testing) running the classic session...


It took a bit of theme hacking to make it look right to me... installed gtk3-engine-unico, copied my modified Ambiance theme to ~/.themes, the Ambiance metacity window theme wouldn't work so installed the murrine themes and gtk2 engine and used the Albatross window theme, not quite Ambiance but close - most of the other themes produced an out-of-place orange title bar. Using Mist icons. Little bit of flakiness with the highlighting of the gnome panel window buttons with this theme combination but at least the buttons are rounded and "bevelled" instead of flat and featureless. The distro defaults to Gnome Shell (with a working overview, usually under VirtualBox the overview background is corrupted), gnome panel is also installed by default and can be selected

Either version will take some hacking to get the fonts right, particularly for web browsing. Firefox isn't in the repositories, instead can use IceWeasle (rebranded forked FireFox) or Epiphany-browser (webkit-based). No luck at first getting the official Firefox download to work in Debian 7/testing.. problem is there's no 32-bit binary support installed and the ia32-libs package is (seemingly) broken - the 32 bit libs and the Firefox download runs fine on Debian 6. On 7, fixed it (sort of) by entering an obscure dpkg command (found in the faq) to enable 32 bit support and permit ia32-libs and ia32-libs-gtk to install (the latter removes the gnome metapackage and a few other hopefully unneeded things), Firefox works now (other than the Ambiance gtk2 theme being broken - fixed by installing gtk-chtheme and picking something else) but there's another issue - anything compiled by FreeBasic requires libncurses.so.5 and it isn't supplied in a 32-bit version. Not an issue in Debian 6 (installed by its ia32-libs). To fix it in Debian 7/testing I copied the libncurses library and link from my Ubuntu 10.04 system to the appropriate directory for 32 bit libraries.

Both of these were installed from a small "net install" ISO engine, installation was easy. Much more thought required setting up the VM itself than doing the actual install, the only deviations from simply clicking continue was selecting the time zone and selecting yes for writing the partition changes. Post-install hacks are more difficult, particularly with the Gnome 3 version which also has incomplete 32-bit support. The theme hacks are similar to other Gnome 3 install, somewhat complicated by not supporting the GTK2 version of Ambiance (probably fixable by finding and installing the right engine parts - or just do something else). For some reason the cool blue highlight in the screenshot changed to not as cool orange - on one hand Gnome 3 includes lots of hackable bits and GUI options but getting the themes right can be difficult, mainly because the GTK3 API is a moving target. Hoping eventually it'll settle down so someone can create a usable theme tool (or just themes) that won't break with each point release. Lack of a distro-updated Firefox is kind of an issue, works but has to be manually updated.. or would have to get used to IceWeasle or Epiphany... if they support the kinds of plugins I use.

Debian 6 is probably the closest to Ubuntu 10.04 but it probably won't buy much (if any) support time... like 10.04 it represents a dead end. Better to just bite it and adapt to the new Gnome 3 ways. Debian Testing is a true rolling release - if I adapted to that theoretically I would not have to worry about upgrading or support, but it may come at the price of occasional breakage. I'll run the VM for awhile to see what happens (the last time I tried to roll with Mint Debian Edition under VB the system eventually tied itself into a broken knot). Ubuntu 12.04 would theoretically give me another 4 years of support before having to do the upgrade dance - overall it seems more compatible and complete (better support for proprietary SW, PPA's etc), and it's already partially rolling.. some apps (like Firefox and other stuff that affects security or bugs) are kept up-to-date while the core OS/GUI bits remain stable.. no worries about slipping in a new GTK that breaks themes removes features etc. A big determinator will be my perceived longevity of Cannonical/Ubuntu - while I don't care much about Unity, Mir, etc for my own use (at least not on the desktop), it would help things if they can be successful in becoming widely used on phones, tablets, etc as it helps to ensure a thriving ecosystem. The bickerings of late are somewhat disturbing - the comments read like sour grapes but from a user point of view I want Cannonical to make money any way they can as it keeps the software free to use for all, including me. If that means having to provide internally-controlled software rather than relying on (often unreliable) upstream (who right or wrong often have different goals) then so be it. It's a fine line, too much commercialism or apparent invasion of privacy turns off users and hurts the bottom line, but as far as the latest Mir vs Wayland flap I think there should be no controversy - to achieve their goals either Cannonical needs their own in-house solution or upstream needs to be fully supportive and merge in everything Cannonical needs (and obviously the former is more desirable from a business/control POV unless the latter can be guaranteed). I suspect in the end the two projects will simply sync up and so long as apps don't care, neither will users. Perhaps Mir on tablets/phones with Wayland on desktop systems? Or Ubuntu can use Mir, Debian and other distros use Wayland, and (as is mostly the case with window managers) apps won't really care what actually paints the screen. Seeing as tablets/phones and traditional desktops are different (mouse vs touch, right-click vs gestures, different driver/network needs etc), personally I see a need for both projects so each can concentrate on being the best it can for the intended usage. Just make them interchangeable (and with X) on the app level.

5/11/13 - Did it... upgraded my main production system from 10.04 to 12.04 using the update manager app. Went suprisingly well... after making a full image backup of my hard drive and making sure I could mount it, clicked the big fat upgrade button and let it do its thing. Wasn't exactly automatic and there were glitches - had to select the display manager (lightdm), decide whether to keep certain config files (kept grub, replaced the rest), a few buggy dialogs with bunches of unreadable blocks instead of text (hopefully not saying anything important, hit enter enter to clear), told it to keep "obsolete" software (some of that stuff I need for manually installed apps), tons of error messages in the console as it was upgrading but that's pretty much normal, upon reboot got a scary message about disk with /tmp not available but did nothing and it continued on its own, booted into Unity. Hillarious stack of icons on the side, logged out and back into LXDE (which was previously installed) to set about fixing stuff. Used Synaptic to fix a couple of broken packages, to remove one broken package had to make an empty directory it was complaining it couldn't change to. Installed gnome-panel for a more sane UI and set about putting my system back together... not much got clobbered, reinstalled wine, AcroRead, Google Earth (which installed ia32-libs, need that for many other things), fixed up gnome-panel with the stuff I like including adding my modified Ambiance theme, had to manually download and compile sensors applet to get CPU/Video temp back. Started the upgrade process about 9am, about 12 it was done, by 3pm had a functional system back that for the most part is just like Gnome 2. After a bit more tweaking... [updated screenshot 5/13/13] [this is using the mutter WM]


[more details on the Ubuntu Stuff page]

5/15/13 - It still works :-) So far I'm very pleased with my new GUI that works just like the old GUI, just shinier, better and maybe a bit faster. There are/were a few cosmetic bugs but so far all have been solved by just learning what software and settings play well with one another.. or are just so minor I don't care (like the glitch where on gnome panel window buttons sometimes on the first button the text overlays the icon - I have to really try hard to even notice that, let alone care). On the other hand, when I play videos fast-moving images no longer tend to glitch, that alone makes the upgrade worth it. What few apps that got zapped (that I care about) were easy to put back. As far as I can tell my media files play correctly, DVD's play and look better than ever, and most importantly, my custom or obscure apps scripts and programming tools I use for work still work - so far the only mods I've had to make are to a few scripts that use xterm, which now requires that all the parms after the -e be quoted, no big deal. This is why I like Ubuntu (at least this version) - the dumbed down defaults may not suit me but I can change the defaults, and (I presume) because Ubuntu is backed by a commercial entity I don't have to deal with software I consider essential being omitted because it doesn't meet a narrow definition of "free". Sure Canonical has been doing "businessy" stuff lately that's got some people miffed, but whatever they need to do to stay in business benefits me by helping to ensure that my system continues to be supported for the next few years. If that means Mir and cell phones, whatever. I doubt I'll ever bother with it (unless I get a cell phone:-), or Wayland either for that matter, X works fine and I can't see ever using any system that doesn't support something as basic as minimizing a window.

With 12.04 I'm insulated from whatever Gnome or Ubuntu does until support runs out (or otherwise goes away), newer versions of Gnome do not interest me - they still seem to be on a path to see how many features they can remove (including stuff I need). Perhaps those who design GUI's will eventually figure out that users - not developers - should be the ones who decide what features are needed [*], and I don't mean what developers think users need. I'm not sure but I'm guessing most users (or at least most users who do real work with their PC's) don't want a cell-phone-like or tablet-like interface on a PC. At least not unless it efficiently supports doing PC-like things like working with many open windows at once - I'm not opposed to new ideas, just opposed to attempts to force new ideas that don't work as well on users who don't want to use the stuff. I find it amusing that the new Windows 8 interface doesn't support... windows. Sometimes I get the feeling some Linux GUI designers want to head in the same direction. They might want to observe and reconsider that.

5/17/13 [*] - Regarding who determines feature sets.. a long-held concept in open-source development is that developers "scratch their own itch". Programs often start because someone wants to do something so they write a program that does what they want to do. Others might find it useful or not. That, combined with it being less work to put programs and patches upstream is a big part of what makes open-source successful - at the core, good old fashioned selfishness. Nothing wrong with that, it is a case where selfishness - the desire to get what one wants while minimizing the amount of work needed to get it - helps the community as we can all partake in the results. However this model can break down for major applications and GUI systems that have a great many users, especially when the itches developers are scratching are contrary to the needs of existing users of the software, who have adapted it into their workflow and depend on the software to continue to meet their needs. Issuing an update that in effect breaks the software, regardless of how cool the developer thinks it is, is not cool at all. The solution is simple - don't do that! Make it new software instead then if people like it they can use it, but not have to choose between an old unsupported distro or new broken software. Nobody is saying don't innovate, just saying it is not nice to trash people's work flow by removing features they depend on.

Overall I like Gnome 3.4 better than Gnome 2.3x (at least the underlying components, the default shell doesn't work for me) but I don't like the direction being taken in later versions of Gnome. Or Ubuntu for that matter but at least Ubuntu tends to value and provide alternative desktops for those who don't like the defaults. Not seeing that with Gnome, which seems to be a race to see how much they can dumb down the GUI. I need desktop icons, a panel with buttons to quickly navigate open apps and windows, and the ability to minimize, maximize, resize and position open windows to suit whatever I'm doing at the time - without these things my work flow is seriously impacted. I want (and without suitable alternatives, need) gnome-panel and nautilus to keep working the way they work now. I need the GTK API to stay stable so that after some update my chosen theme doesn't turn into crap. Ubuntu, Debian and other LTS-type systems solve this problem by pinning the component versions, leaving the upstream developers free to innovate with minimal impact to existing users... this is a very good thing. It means for the next few years I don't have to care that much about how the new stuff works other than offering my comments about it. Lately Gnome has responded to user needs with the "classic" extensions, but extensions will do no good if core functions like the desktop (presently in nautilus) continue to be lobotomized without replacing these functions with software that does the same thing. Extensions can make Gnome Shell work much like Gnome 2 but there is still a lot of overhead.. a simple nautilus session with gnome-panel (or lxpanel or some other traditional panel solution) is faster and makes for a better experience than loading a bunch of extensions on top of an already-bloated shell. Gnome 3 makes it easy, almost trivial, to add alternate Gnome sessions (just add a couple of files and a way to selectively start stuff based on the desktop session) so I think developers should exploit this. BUT... developing such things with any kind of longevity requires that key features not be yanked from future versions. Right now there is little incentive to create alternate Gnome sessions since the things an alternative depends on might be yanked from future versions. Which seems to be why there's a lot of wheel reinventing going on these days, it's a way to guarantee that newly developed systems will continue to work. Doesn't have to be that way.

To summarize, to developers - keep scratching those itches, but at least try to do it in a way that doesn't negatively impact existing users.


Terry Newton (wtn90125@yahoo.com)