Journal Blog Archive - Mar 2011

Posts Below
3/2/2011 - My Puppy Linux Wishlist
3/12/2011 - My Lucid Puppy 5.2 cosmetic customizations
3/16/2011 - Sort of able to use Astroblahhh Desktop in Puppy Linux


   ▲ Top  ▼ Bottom  △ TOC   ↓ Down
My Puppy Linux Wishlist
Wednesday, March 2nd, 2011
07:38:02 GMT

Here's a list of what I want in my custom version of Puppy Linux.

Things that I still need to find (or figure out how to install) are bold.

Things that I've found, or figured out how to install or do, which were formerly bold, are italicized.

I might add to this list in the future. (Updated 3/20/2011 around 7:43 PM. Probably won't add much from now on, though, since I'd rather create things that are more polished and organized, and these updates make this post even messier-looking than it was to begin with).


Other things

Stuff I'd like to have but probably can't

Again, donations and/or requests for open source, public domain software are welcome.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Wednesday, March 9th, 2011
08:33:46 GMT

I was about to post a kind of thorough update about what I've been doing with Puppy Linux, but then Firefox abruptly crashed, and I lost some unsaved work, which was very disheartening.

Anyhow, I wasn't altogether happy with that post anyway - I prefer writing things that are more polished and detailed. But, I'm very impatient to finish setting up Puppy Linux, so, it's difficult for me to focus on writing.

I guess I'll just post an abbreviated version of that post.

Here's my current Lucid Puppy 5.2 desktop:

As you can see, I still need to perfect it.

And, here's a screenshot I managed to take while I was using Second Life in Lucid Puppy 5.2:

Yep, Second Life works in Lucid Puppy 5.2. It crashes a lot, but, it works.

There's plenty else to say, but, I really hate data loss, and I no longer feel like working on this post.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
My Lucid Puppy 5.2 cosmetic customizations
Saturday, March 12th, 2011
20:21:13 GMT

I finally mostly finished my cosmetic customizations of my copy of Lucid Puppy 5.2.

My desktop and menus: (Edit, 3/25/2011, 6:43 PM: Removed the screenshot of my Puppy desktop. Instead, here's a link to the stunningly lovely picture I've been using for wallpaper: 11-8-04 Aurora )

And here's what my Firefox home page looks like, and what one of my Rox-Filer windows looks like:

I'll probably upload my custom dark GTK+ 2.0 theme someday, after I get the messy source code comments I put in it cleaned up.

I'd like to also upload the IceWM theme I slightly modified. (The IceWM theme is the thing that styles the window title bars, taskbar, and menus). But, first, I have to figure out if I have the right to share my modified version.

The IceWM theme I slightly modified was the lovely "Velvet Azul" theme by WhoDo. I got it from this Puppy Linux Forum thread: IceWM Themes Exchange, page 4

Throughout these past few weeks of learning how to do things in Linux, I've been taking lots of notes.

So, hopefully, I'll eventually write and release some helpful web pages of tips for Puppy Linux, Lucid Puppy 5.2, and Linux in general.

Also, hopefully, once I get Astroblahhh Desktop up and running, I'll be able to tell you all where I got that incredible aurora wallpaper, and the cute custom icons. (By comparing the dates on those files to the dates of web links in my Astroblahhh Desktop web links database, I'll probably be able to figure out where I got those files.)

(Edit, 3/25/2011, 6:44 PM. I found the wallpaper picture: 11-8-04 Aurora I think the icons I used are probably from

I haven't even really tried very hard yet to get Astroblahhh Desktop working, since I've been so busy doing other things with Puppy.

Some highlights:

I tried compiling Notepad++ (since it's open source), but it wouldn't compile, and I know too little about C, C++, or whatever it's written in to make it work. But, it's nice to know that it's theoretically possible to make a native Linux version of Notepad++.

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑
Sort of able to use Astroblahhh Desktop in Puppy Linux
Wednesday, March 16th, 2011
17:40:24 GMT

I finally tried to get Astroblahhh Desktop running in Lucid Puppy 5.2 using LHMP.

In some ways, that task has been much easier than I feared it would be. Actually, all I had to do to get Astroblahhh Desktop running in a rudimentary way was install the, copy the "abdesk" folder into /root/Web-Server/, open up a web browser, and go to http://localhost/abdesk.

(The .pet file, when installed, automatically makes the Hiawatha web server and MariaDB variant of MySQL run, which is why I didn't have to do anything special to start them.)

To browse one of my databases, I had to copy one of my existing database folders to the default location for databases (/usr/local/var/). Then, I had to slightly change the Astroblahhh Desktop PHP script that lists the contents of databases of that type - I had to change the database table names from CamelCase to lowercase. Then, all I had to do to browse my database was go to the lister script in my web browser.

However, I won't be able to do much else besides browse my databases until I make all of the database table names in all of my Astroblahhh Desktop scripts lowercase. Something I'm using in Linux (not sure what) is case sensitive, whereas Windows conveniently didn't care.

If I didn't mind storing my source code and databases in RAM, this would be an acceptable, useable set-up. (In fact, if I all I want to do is read my databases, this is fine).

But, since I don't want my changes to my databases or source code possibly vanishing into thin air if the power goes off or if Linux crashes, I need to be able to make the Hiawatha web server and MariaDB work with files on either my Flash drive or my hard drive.

That has been trickier than I hoped it would be. I still haven't figured out how to set everything up the way I want it yet.

I figured out how to make Hiawatha use symlinks. (I put FollowSymlinks = yes in the /etc/hiawatha/hiawatha.conf file.)

Symlinks also seem to work when I put them in LHMP's default database folder (/usr/local/var/). I haven't tested them with Astroblahhh Desktop yet, but PhpMyAdmin can definitely read database folders that a symlink points to.

So far, so good. But, unfortunately, I found that symlinks only work if they're pointing at things in Puppy, or my Flash drive, but, not if they're pointing at things on my hard drive (with one exception I know of, which I'll explain below).

If I have a symlink named "abdesk" in /root/Web-Server which points at my Astroblahhh Desktop folder located on my D partition (/mnt/sda3/abdesk), and I browse to http://localhost/abdesk, I get a 403 Forbidden error. Also, there's an error in the Hiawatha log file located at /var/log/hiawatha/error.log which says "access denied via filesystem".

I'm guessing - partly because of this Puppy Linux Forum thread, Hiawatha server configuration question (Solved) - that this probably has something to do with the fact that my hard drive is in NTFS format. (Woe is me!)

(Edit, 5/13/2011, 5:29 AM. Fortunately, I was finally able to find a solution to this, which you can read below. Edit, 5/15/2011, 12:09 AM. Unfortunately, I recently found out that the solution can possibly create other, much worse problems. More details are below.)

I might be able to reformat my D partition of my hard drive as something else, but it would be a major nuisance.

Reformatting my C partition is scarcely feasible at all for me because I'm not sure I'll be able to use my Acer "recovery" discs to reinstall Windows XP. (Why couldn't my computer just come with a normal Windows installation CD?) Also, I don't even know where all of my software installers are, and having to reinstall things like OpenSim (which I recall was rather complicated) would be awful.

I don't know if there's a way for me to just copy everything on the C partition onto something else and copy it back later after I reformatted the drive (and I'm also not sure I have room on my backup disks to do that). In any case, that would probably be way too complicated, and I don't want to possibly destroy my existing, still-working system.

Fortunately, it occurred to me that TrueCrypt volumes can have a different file system format than their host volume - so maybe I could get away with not reformatting my hard drive, and yet still be able to make Hiawatha and MariaDB work with files on my hard drive, if those files were simply in a TrueCrypt encrypted file container on my hard drive.

And, in fact, that works - at least if I make a new TrueCrypt encrypted file container on my hard drive in a file system format that Linux likes, such as ext2.

Then, all I have to do is put Astroblahhh Desktop in the encrypted file container, put a symlink to Astroblahhh Desktop in my Hiawatha web server folder (/root/Web-Server/), put a database folder in the encrypted file container, put a symlink to that database folder in the default database folder (usr/local/var), and, if necessary, change the permissions on the files in Astroblahhh Desktop and my database folder, if they don't already have enough permissions.

Then, Hiawatha can access Astroblahhh Desktop, and Hiawatha and PhpMyAdmin can both access my database folder. (Edit, 5/13/2011, 5:16 AM. And Astroblahhh Desktop itself can also access the database.)

I changed the permissions on all of my Astroblahhh Desktop files (located in the "abdesk" folder) by going to my TrueCrypt volume (/mnt/truecrypt2), right-clicking on the ROX-Filer window, going to the Window menu, and choosing Terminal Here. Then, I typed:

chmod 777 abdesk -R

Gawwwwwd, Linux can be so frustratingly unintuitive. Ugh!! But at least that changed the permissions on everything in the entire folder. At least that was faster than right-clicking on everything in the folder, going to Properties, and ticking checkboxes.

By the way, I'm guessing granting full permissions like that is probably not the best idea from a security perspective. There might be some less drastically permissive permissions that achieve the same effect.

Unfortunately, though, in the TrueCrypt volumes which I created in Windows (which seem to be in the "vfat" file system format, according to the output of the command blkid in a terminal window) - it seems to be impossible to change the permissions on the files either through the clicking-checkboxes method, or chmod.

If only I knew how to make it so when I mount any TrueCrypt volumes which don't use a Linux file system format, they'll automatically have full permissions for every user (not just root).

I'm kind of a shy person, so I really don't want to have to post to forums asking for help. But, in the end, I might have to.

(Edit, 3/29/2011, 6:40 PM. I found a solution to this a while back. Here's how to make it so when TrueCrypt mounts volumes that are in the "vfat" file system format, all the files on those volumes will have full permissions:

In TrueCrypt, go to the Settings menu, choose Preferences, then go to the Mount Options tab. In the "Mount options:" text field, put:


Then, when you mount a "vfat" volume, all the files will have full permissions.

However, if you want to mount a volume which is in a different format than "vfat", like "ext2", you'll have to delete the "umask=000" text from that field, or else you'll get an error when you try to mount such a volume.)

In the process of all this messing around with symlinks, I discovered I can't create symlinks on my Flash drive, and I also can't copy existing symlinks onto my Flash drive. Quite annoying, and I still haven't figured out how to fix that. I can only have symlinks (or make them) on my NTFS hard drive or amongst Puppy's files.

Edit, 3/17/2011, 11:26 AM. Or in TrueCrypt volumes in a Linux format like "ext2" - even if those TrueCrypt volumes are hosted on my Flash drive.

Anyhow, I figured out the reason why my Flash drive can't handle symlinks. This mailing list thread clued me in: Can't Create SymLinks on CF Card

My Flash drive is in the vfat file system format, which I guess just can't handle symlinks. Most of my TrueCrypt volumes are "vfat" as well, and with them, even if they're hosted on my NTFS hard drive (which has no problems with symlinks), I get the same errors I get when trying to do things with symlinks on my Flash drive.

So, if I want to put symlinks on my Flash drive, I can either reformat my Flash drive with a file system format that can handle symlinks (probably a Linux file system format like ext2), or I can just put a TrueCrypt encrypted file container using a Linux file system format on my Flash drive.

I'll probably do the latter, since it's less trouble than having to wipe out my entire Flash drive and copy everything back to it.

Edit, 5/13/2011, 5:20 AM. I finally figured out the reason why symlinks pointing at things on my NTFS hard drive partitions weren't working in the Hiawatha web server.

Unless I'm mistaken, it's because, by default, Lucid Puppy 5.2 mounts NTFS drives or partitions in a way that makes it so only the root user can access things on NTFS drives or partitions - and Hiawatha doesn't run as the root user.

I don't know if there's a way to run Hiawatha as the root user, but, here's how to make your NTFS drives or partitions accessible by any user, not just root.

Edit, 5/15/2011, 12:10 AM (with later changes and additions).

Warning: I recently found out that the below might cause some nasty problems.

Yesterday, I mounted my C: and D: partitions with the commands ntfsmount /dev/sda2 /mnt/sda2 -o umask=0 and ntfsmount /dev/sda3 /mnt/sda3 -o umask=0.

I did very little with C: that day - I didn't save any new files to C:, just edited some stuff within TrueCrypt volumes on C:. I saved a bunch of new files to D:, though.

At shutdown, it didn't even occur to me that I might have to manually unmount my partitions. I never had to deal with that sort of thing in Windows, nor in Puppy Linux prior to this. Nothing weird happened at shutdown or while I was using my partitions, and I thought nothing was amiss.

I shut my computer down sometime in the afternoon and and didn't do anything else with it until almost the end of the day.

Around 11:55 PM or so on 5/14/2011, shortly after starting up the Lucid Puppy 5.2 variety of Puppy Linux, I tried to mount both partitions again using the above commands. It worked fine with the C: partition, but, I got a scary warning about my D: partition, saying it couldn't be mounted because it was marked for checking. (I'm not sure of the exact wording - I probably should have copied, pasted and saved the message). The warning told me to boot into Windows twice to fix that problem.

So, I booted into Windows, and, as it was booting, it automatically recommended that I let it check D:, so I did. Fortunately, it seems like my files and D: partition are fine - the most worrying message while it was checking the disk was "Deleting an index entry from index $0 of file 25.", a message which was repeated 4 times in a row. No idea what that means.

I'm not absolutely sure that the problem was related to mounting my partitions with the ntfsmount command in Lucid Puppy 5.2, but, I think it's likely. I guess probably what happened was, my partitions weren't being automatically unmounted properly at shutdown.

I'm not sure why I didn't have problems until 5/14/2011, rather than days before. I think 5/11/2011 was when I first tried the ntfsmount command (though I didn't consistently use it after that). Maybe, on 5/11/2011, I just happened to have my partitions unmounted at shutdown, or I hadn't saved enough new files to cause problems. It's possible I had my partitions unmounted, because in order to test out different ntfsmount options, I had to unmount the partitions repeatedly, using (if I recall correctly) the umount command, so, maybe when I stopped testing and shut my computer down, I just happened to have my partitions unmounted.

(Edit, 5/16/2011, 1:51 AM. Here's a page I recently found which has a really scary warning about the importance of unmounting things. Mount/USB, a page from the Ubuntu Documentation Wiki.

The following quote from that page is by the contributors to the Ubuntu Documentation Wiki, and is under this license.

Before disconnecting devices, you must unmount them first. This is similar to "Safely Remove" in Windows in that the device won't unmount until data is finished being written to the device, or until other programs are finished using it. This applies to all types of storage devices, including flash drives, flash cards, external hard drives, ipods and other media players, and even remote storage like Samba or NFS shares.

Failure to unmount before disconnecting the device can result in loss of data and/or a corrupted file system. There are no exceptions to this rule. Be safe - unmount your drives before disconnecting them!

:-( I'm really shocked that something as simple as disconnecting a drive before unmounting it can actually lead to a corrupted file system. I wonder if that's just a result of poor design.

I now regret ever having posted anything about the ntfsmount command. I should have included big, eye-catching warnings and instructions on how to unmount things, but, in my ignorance, I didn't know that failing to unmount things could be so dangerous.

Fortunately, as of 5/16/2011, 2:20 AM, my computer still seems fine - I haven't noticed any problems since letting Windows check the disk yesterday. (Edit, 5/16/2011, 3:25 AM. By the way, I haven't even tried using ntsfmount again since 5/14/2011.) So, judging by my experience, failing to unmount my internal hard drive partitions before shutdown isn't guaranteed to result in absolute catastrophe. But, I'm definitely going to avoid doing that again in the future.)

I guess probably the reason the C partition was OK was because I pretty much didn't change anything on it - except I did change some things inside TrueCrypt volumes on C:. I wonder why that didn't cause problems? Meanwhile, I had saved various new files to D:.

I don't know why the ntfsmount manual page doesn't tell you how to unmount things. But, this rather old forum thread from the Puppy Linux Forums has some ideas on what commands to use: ntfs-3g mount and unmount

Next time I use the ntfsmount command to mount my partitions, I'm going to try out "ntfsmount -u <mountpoint>" shortly before I shut down Puppy, and will update this post with what happens. (Edit, 5/16/2011, 2:30 AM. Maybe the umount command would work just as well to unmount things. (Edit, 5/16/2011, 3:21 AM: I think that's what I was using on 5/11/2011 when I was first testing ntfsmount.) Will try that too.)

However, before I attempt to use ntfsmount again at all, I'm going to make backups of my most recent files.

(Edit, 5/21/2011, 9:33 AM: Ever since 5/15 or 5/16/2011, I've been using the command nftsmount /dev/sda3 /mnt/sda3 -o umask=0 daily to mount my D: partition, and I also mounted the C: partition with ntfsmount /dev/sda2 /mnt/sda2 -o umask=0 a few times too.

I wasn't able to unmount any partition using the command ntfsmount -u <mountpoint> - but umount /mnt/sda3 seems to work fine (except for the annoyance of sometimes having to kill processes that are using the partition before I can unmount it).

I've used the umount command soon before shutting down my computer each day, and, as far as I know, have had no problems at all, unless something bad is happening that I just don't know about. Windows hasn't asked me to check the disk, and ntfsmount has successfully mounted my C and/or D partitions every time I tried to mount them.)

I guess I'll leave up the below possibly dangerous instructions on to mount NTFS drives or partitions with the ntfsmount command. However...

Warning: Please be very careful with these instructions and use them only at your own risk, and preferably after backing up your files so you won't possibly lose anything if anything goes wrong.

These instructions assume you're using Lucid Puppy 5.2, so if you're using something else, you might have to do things differently.

  • Unmount your NTFS drive or partition, if it's already mounted. (You can do that by going to your desktop, right-clicking the icons of your drive or partition, and choosing "Unmount [name of your drive or partition] (if currently mounted)" from the menu).

  • Open a terminal window. (You can do that by opening a Rox-Filer window, such as by opening the "file" icon on your desktop, and then pressing the ` backtick key, which is located just below Esc).

  • If you didn't have to unmount your NTFS drive or partition, you'll have to create a folder to mount it to. You can do that using the mkdir command. Just change sda3 to the name of your drive or partition:

    mkdir /mnt/sda3

  • Next, to mount your drive or partition, put in a command line like the following. Just change sda3 to the name of your drive or partition:

    ntfsmount /dev/sda3 /mnt/sda3 -o umask=0

  • Before shutdown, you should manually unmount any drives or partitions you manually mounted, because not unmounting them might cause problems like the problems you can read about in the box this text is in enclosed in.

    Edit, 5/21/2011, 9:39 AM. The command I use to unmount my D partition is:

    umount /mnt/sda3

    Yes, umount, not unmount.

    If there are any processes that are using your disk or partition, the umount command won't work until you kill those processes. You can get the IDs of those processes by right-clicking your disk's or partition's desktop icon and trying to unmount the disk or partition. A pop-up will show you the PIDs of the processes that need to be killed.

    Then, go to the System menu, then the System Status and Config submenu. Choose "Pprocess process manager". Scroll through the list and find a process which has a PID mentioned in the pop-up window. Click "End process (kill)", then click that process. Repeat for each process that needs to be killed. Then, try again to unmount your disk.

    There are probably shell commands that can list processes, kill processes, and list what processes are making it impossible to unmount a disk, but I don't yet know what those commands are.

Warning: Please be very careful with the above instructions and use them only at your own risk, and preferably after backing up your files so you won't possibly lose anything if anything goes wrong.

Here's a "manpage" (manual page) about the ntfsmount command:

   ▲ Top  ▼ Bottom  △ TOC   ↓ Down   Up ↑

   ▲ Top  ▼ Bottom  △ TOC   Up ↑
Thursday, March 31st, 2011
01:52:31 GMT

A while back, using Astroblahhh Desktop, I figured out where I found that lovely aurora wallpaper I had in the screenshot I previously featured in a previous journal post. Here's where I found it: 11-8-04 Aurora

I also figured out that is probably where I got most or all of the custom icons I've been using in Puppy Linux.

Also, I figured out how to make it so when make it so when TrueCrypt mounts volumes that are in the "vfat" file system format, all the files on those volumes will have full permissions.

For instructions on how to do that, go to my previous journal post 3/16/2011 - Sort of able to use Astroblahhh Desktop in Puppy Linux, which I updated recently.

Someday, I hope I'll get around to making my site more organized and up to date. I really shouldn't keep useful info buried in journal posts, but instead (or also) put it in more organized pages in the non-blog sections of my site. But, I guess messy updates are better than no updates.

I recently updated the old Site Map page for the first time in maybe 3 years. Maybe I should just get rid of it, since I'll probably end up neglecting it again.

After various small, not particularly rigorous or thorough tests, I finally feel ready to start really using two out of the three main organizers of Astroblahhh Desktop in Lucid Puppy 5.2, using the conveniently small LHMP web server/database/PHP package instead of the huge XAMPP.

Astroblahhh Desktop's web links organizer and idea organizer seem to work fine. All I had to do was change the database table names in the source code to lowercase, and other than that, I didn't really have to change anything for them to work. (However, I made some optional changes to get rid of some warning messages I kept getting due to using a deprecated function (ereg_replace), and not having set a time zone.)

The file organizer is partly functional - I can read, search, and in some ways edit file databases. I just can't add new file records to them, simply because the file organizer assumes that all file paths should look like Windows file paths (example: C:/Program Files/Inform 7), and Linux doesn't even have drive letters.

So, my next main goal is to get the file organizer fully-functional in Linux. Then, hopefully, I'll get around to releasing an update of Astroblahhh Desktop. I've added quite a bit to it since the last release in Dec. 2009.

The databases I created in Windows using MySQL in XAMPP and the databases I created in Puppy Linux using MariaDB (a variant of MySQL) in LHMP seem so far to work fine in both XAMPP and LHMP. (Though I haven't tested things out really extensively yet, so, sorry if I'm mistaken.)

So, I'm just going to keep adding to and using my same old MySQL databases that I originally created in XAMPP in Windows. Naturally, just in case something is going wrong that I'm not yet aware of, I'm going to keep backup copies of my databases as they were before I ever used them with LHMP. I'll let you all know if I run into any problems.

I'm feeling a lot more free of Windows and more at home in Linux now that I'm so close to having Astroblahhh Desktop be fully functional.

i'm so glad I made most of the software I ever wrote cross-platform, and never tried very hard to figure out how to make native Windows applications, or native Mac applications.

I always have preferred writing software which is as cross-platform as I know how to make it, and that has definitely paid off. I'm so happy that a lot of Astroblahhh Desktop works so well in Puppy Linux with only a few changes. I also get a kick out of the fact that I can even still use Inform 6 programs I wrote on a Macintosh in the 1990's on just about any computer I want. :-)

Some of my Perl scripts I originally wrote in Windows have turned out to be useful in Linux with just slight changes. Conveniently, Perl is pre-installed in Lucid Puppy 5.2.

I have Perl scripts that can create a lot of symlinks all at once, move things around, copy things, and delete things, and I can use those scripts just by double-clicking on them. I'll upload them in some form someday, once I feel less beleaguered with the need to get Astroblahhh Desktop fully functional.

Here's how to make it possible to execute Perl scripts in Lucid Puppy 5.2 (and possibly other forms of Linux or Puppy Linux) just by double-clicking on them. In Lucid Puppy 5.2, the first line of the script file has to be this:


It has to be the very first line of the file - there can't be any blank lines or anything else before it.

Next, you have to change the permissions of the script file to make it executable. In Rox-Filer (the file manager pre-installed in Lucid Puppy), right-click the file, and either type Ctrl-P, or, from the "File '[name of your file]'" sub-menu, choose Properties. In the Permissions section of the window that appears, click the checkbox that will grant Owner "Exec" permissions.

Now, you should be able to run your Perl script just by double-clicking it (or single-clicking, if you didn't change Rox-Filer's default setting for how many clicks it takes to open something). Very convenient.

And that's yet another tip that ought to go on a nice, organized page instead of being buried in my journal blog posts. But if I try to make myself go to all the trouble of making a new page and uploading it with FTP software, I probably just won't do it. It's much easier to just post a blog post.

I've been thinking maybe I ought to extend my blog software (or Astroblahhh Desktop, or some hybrid of the two) and make it into a full-fledged (but probably pretty simple) content management system (CMS), since then I'll stop being obstructed as much by my lazy tendency to not want to even open any other software besides my web browser and a text editor to update my website.

But, that's just another one of quite a lot of ideas I've thought of that I might or might not ever actually implement.

   ▲ Top  ▼ Bottom  △ TOC   Up ↑