Wallpaper Rotation File for Ubuntu

If like me, you use Linux, specifically Ubuntu Linux, and you are a fan of my book covers this is for you. A background or wallpaper rotation file featuring the three covers of my SF novels.

First off, here’s the file you will need: http://ken-mcconnell.com/novels/covers.zip

Unzip the file in your home folder. Then become root and move the file to the wallpaper folder on your Ubuntu boxen located here: /usr/share/backgrounds

The folder was created with root permissions. It contains three images of the book covers and an xml file that tells the Ubuntu how to rotate the images.

Right click on your desktop and bring up the Change Background program. In the bottom right hand corner is a selection dropdown that lets you see images or files. Chose files, so you can see the folder called covers and the xml file inside the folder. Point the program to that xml file. Then save it and every three minutes your desktop will rotate from one cover image to another with a 5 second fade. The timing is controlled by the xml file and is in seconds. You can easily change the time and add photos to the folder, as I come out with more books. Approximately one per year. ;-)

Let me know if you are successful at getting this going on Ubuntu or any Gnome distribution of Linux. Oh, and please, pass it on to whomever you think would appreciate it.

Look Ma, I’m an Android Developer

Well, not quite yet. But I do have the emulator going on my Linux boxen. I knew you wouldn’t believe me unless I had visual proof, so here’s a slide of the desktop. See!

Screenshot

I know those buttons on the left are driving you crazy. That’s why I leave them there you know? Me and the Ubuntu developers are the only ones who use them stock on the left. We’re close like that. All other Ubuntu users move them to the right, where God and everyone else intended them to be.

Open Source Programmers and Self Published Writers

As someone who makes his living in the computer field, I’ve always been aware of the two kinds of programmers. The ones who work for companies that sell highly polished programs in shrink wrapped packages and are sold on store shelves, and the other ones who work on their own projects that are usually less slick and given away for free. The former programmers make a decent living writing code for others to sell. All they have to do is write code. The later programmers do it for the chance to learn something new and make programs that they themselves want or need to use. These two programmers are known as Professional Programmers and Open Source Programmers.

In publishing there are similar types of authors. Those that just write, and their books are blessed by big companies and get packaged in slick covers to be sold on shelves, and there are those who write, and produce their own books, the way they want them made, and many times give them away for free or sell them for far less profit. The former writers make a decent living writing books that big publishers sell. All they have to do is write books. The later authors do it for the chance to learn something new and make novels that they themselves want to read. These two authors are known as Professional Authors and Self Published Authors.

Having written and used open source software for years now, I can completely see the similarities to self published writers. But I also use proprietary software, and I appreciate many aspects of it. Just like I also support and enjoy traditionally published fiction, just as much as I enjoy doing my own fiction, my own way. I try not to play favorites, but in the end, I will always gravitate to those who are doing their own thing, be they traditionally published or non traditionally published.

I’m not opposed to traditional publishing, nor am I completely committed to self-publishing. I just enjoy scratching my own itch and writing what I find entertaining. If an editor wants to buy it, cool. If only readers want to buy it, that’s cool too. Either way, my writing gets out there and others are able to enjoy it.

Firefox Callsign Lookup Search Engine

If you drop by my web site, www.w0pht.org and click on the Amateur Radio page, you will find an option to install a Search plugin into your Firefox browser Search Engine box.  The handy little plugin lets you search the QRZ database for who owns an Amateur Radio callsign.  If you are a Ham, this is terribly useful in the your Radio shack.  If you are not a Ham, please disregard.

I also have a Mac Widget that does the same thing.  Sometime soon I will make that available to users of Mac OS X.  I may some day even make a Vista (what do they call Widgets again?) widget.  But since I would not touch Vista with a  ten foot pole, maybe not for a long time.  Feel free to take the Widget code and make it work on Vista. Here’s the code, any HTML dweeb can do it.

Something I may actually do is make a Linux version for use with gDesklets.

Testing the Watir

I’ve been using the Ruby based testing framework called Watir for testing web pages.  I wrote a test suite on my Mac to test with the Mac browser and with only a few header changes was able to use the same script on Windows to test with IE.  Now if they can just make a Linux version of the libraries that can test Firefox, I will have all bases covered.  Actually, I think someone is working on that already at least on Windows and it’s called FireWatir.

Be nice to get it for Linux.

Covering All Bases

I was recently working on a web page that sorted data that came back from a database in an array.  I managed to get the page working and then realized after testing, that it was returning some rows that were messing up my table structure.  After searching the data I came across some missing or Null data on one particular column.  The data was being pulled in from a view in the database.  The reason I was getting null data from that column was due to how the view was filtering the data.  So after thinking the code on the page was at fault for most of the day, it turned out that I was using a restrictive view on the data.

Lesson learned – if your code seems to be working, go check your database for other possible reasons it may be breaking.  If I had done that sooner, I would have found the issue a lot faster.