Tag: problems

In an earlier post I had mentioned that I didn't know how to highlight source code in blog posts (syntax highlighting) or even offset code with a monospace font/typeface. Apparently, this is a feature of WordPress.com that I didn't know about, and is available as a plugin called SyntaxHighlighter Evolved for WordPress.org. I installed it, and it seems to do what I want. It supports a variety of languages, but not all that I use (for instance R is supported but not SAS). I'll keep my eyes open for a different plugin, but this works for now.

Of course, if one doesn't want or care about the syntax highlighting, then <pre> and <code> tags should suffice. A useful post from StackOverflow concerning some subtleties of the tags is here.

While I've used Windows since the DOS era, I've also used Mac OS and Unix-like systems for nearly as long. One of the biggest features from Unix-like systems that I miss in Windows is Focus Follows Mouse (FFM).

Essentially, FFM is this: whichever window the mouse pointer is over is the window that the mouse can interact with, irrespective of whether the window is the active window for the keyboard or not. This is really useful when using two (or more windows), one of which requires scrolling and the other is used for typing. If your system has FFM, then you can type in one window and scroll the other with no need to switch between them. It may seem like a subtle feature (and it is), but it is also a boon for productivity.

Under Windows XP, I had enabled FFM using the TweakUI PowerToy. This same solution is unavailable in Windows 7.

For Windows 7, there seem to be three solutions available: using Windows 7's accessibility options, changing the registry, and a small, open source tool.

Ease of Access Center in the Control Panel

If one goes to the Ease of Access Center in the Control panel and selects "Make the mouse easier to use", there is an option labeled "Activate a window by hovering over it with the mouse." If this option is selected, an FFM-like use is enabled.

Cons: This method is pretty far from true FFM. When the mouse hovers over a window, not only does it become the active window as far as the keyboard is concerned, but it is also brought to the front of all other windows. This is not always desirable, and is not what I want.

Registry Hack

While looking for a solution to enabling FFM on Windows, I came across a blog post detailing the use of a registry hack as a work-around. I won't detail the steps here as they are available through the link, and I think this solution is inferior to the one below. (That page also talks about TweakUI for Windows XP, but I had used that before finding the above blog.)

Pros: Hovering over a window with the mouse makes it the active window (not exactly what we want) but without bringing the window to the front (closer to what we want).

Cons: This still changes the active window with respect to the keyboard in addition to the mouse, so typing in the original window isn't possible while the mouse is in the window we want to scroll. Moreover, editing the registry is somewhat complex and may deter some users from using this approach. Rebooting is also required for the changes to take effect.

X-Mouse Controls

The best solution that I've found is a program called X-Mouse Controls. It is a stand-alone program that allows one to enable hovering the mouse and select a delay (in milliseconds) without having to fiddle with the registry. There is no install necessary, and it gets the job done. Bonus points for the program being open source (GPL version 3).

Pros: Hovering over a window with the mouse makes it the active window (not exactly what we want) but without bringing the window to the front (closer to what we want). The open-source tool is easy to use, and rebooting the system isn't required.

Cons: This still changes the active window with respect to the keyboard in addition to the mouse, so typing in the original window isn't possible while the mouse is in the window we want to scroll. (This is the same con as the Registry Hack.)

X-Mouse Controls seems like the best solution thus far, but it is certainly not true Focus Follows Mouse: each of these solutions makes the window the mouse is in active, so the keyboard will type in that window. In Linux, the mouse can scroll a window while the keyboard types in a separate window. The pseudo-FFM solutions here work pretty well with dual monitors, but it bears mentioning that this behavior is sometimes erratic (I've noticed this mostly when using multiple Java windows of different sizes stacked on a single monitor). Fortunately, with X-Mouse Controls enabling/disabling the pseudo-FFM is a breeze.

Once was in high school, and I knew backing up my files was a good idea. I bought a second hard drive. As I was about to copy my files onto it, someone tripped on the power cord and knocked the spinning hard drive containing all of my data onto the tile floor. Angry sounds ensued, and all my data was gone.

The second time was near the end of the my second-to-last semester of undergrad. I used a Macbook at the time and was using the encrypted file system option that came with OS X 10.6. One day, right before finals week (Murphy's Law), the computer just lost the ability to unencrypt it... leaving me with a massive, encrypted .sparsebundle that was essentially useless. Well, not essentially: actually useless.

Data Backups Are NOT Optional!

From both major data losses I experience I had partial, unorganized backups. A DVD of homework here, a flash drive of music and movies there, but nothing cohesive. Nothing deserving of the name "backup". For about the past year, I've been regularly backing up my data. I prioritize backing up data now. I plan for it. If I upgrade the hard drive in my laptop, I'll only do so when I can afford to upgrade the backup drive as well. Internalizing the importance of backups is vital.

When I say that I've been regularly backing up my data, I mean backing up all of my files to an external hard drive (weekly for my desktop and monthly (worst-case scenario) for my laptop). The reason the laptop is monthly is, frankly, because using the external hard drive can be hard to remember. Moreover, the projects I work on regularly are copied at somewhat irregular intervals to flash drives and files emailed back and forth, so recent changes are often in several places. Not ideal, but I think that this system allows me to say "Yes, I do backup my data."

Or do I?

The current state of my backups

Right now I'm using the built-in "Backup and Restore" feature in Windows 7 and KBackup on Linux.

On Linux, I know that I'm just backing up my home directory and some configuration files I've edited. (Whenever I edit a configuration file, I copy it and the original to /root - this is included in the backups.)

The Windows 7 backup options seem to have some pros and cons (about which I could be mistaken). If a system image is created, ostensibly everything is backed up... but it can only be used in an all-or-nothing fashion. If individual files are backed up, they can be individually restored in the case of accidental deletion but are only useful individually. On my laptop in Windows I backup "files in libraries and personal folders for all users and system image". On my desktop I backup "All local data files". (I got my desktop before my laptop and initially shied away from the system image option because I thought it was akin to the System Restore Points introduced with Windows Me.)

Right now, at the start of my Ph.D. studies I feel pretty good about my responsibility with backing things up... but I will NOT lose my data again without a fight. I will not passively accept my backups as infallible.

The stress test

I decided to delete my data. To simulate a hard drive failure I used DBAN on my desktop: my hard drive was completely erased — just as if I had replaced it with a brand new one. I primarily use my desktop for Netflix, casual gaming (Morrowind, Minecraft, etc.), and browsing the internet; all of my teaching and research is done on my laptop. I checked reading my desktop backup on my laptop and was able to access the files through the Restore option: if everything went wrong, I could still recover what I wanted to. But what would everything going wrong look like?

I guess I should describe what I want from a backup solution at some point, and now is as good as any. My main purpose for backing up is to be there in the case of hardware failure or other major data loss event. I'm not too concerned with losing individual files (knock on wood) because I rarely delete anything, though being able to restore those would be a nice secondary goal. In a crunch, I would like to be able to open up the external hard drive enclosure, swap the backup drive for the original, and boot directly from the backup drive to continue working.

Previously I had created a Windows 7 Repair Disk, so I thought that booting from it would allow me to restore from my backup. While I think this would work, I wasn't able to test it. After the graphical system had loaded and the mouse worked I received Error 0x4001100200001012. I'm not sure what this error is, nor do I care at this point. After retrying it two or three times I gave up and concluded that the disk wasn't working. Lesson learned: always check your repair/recovery disks to make sure they work before you need them!

The Windows 7 Repair Disk didn't work, but I did have Dell Windows 7 System Restore Disks that I had previously checked. Basically the same thing, right?

Wrong. While these disks give me the option to restore my computer the factory image (which is what I expected them to do), that isn't my goal. After booting the Recovery Disk, I noticed that these disks also allow one to restore the computer from backups. Success! I thought naïvely. The disks seemed to only look for backups made with Dell's DataSafe software, not the Windows Backup and Restore feature. Lesson learned: don't assume options to restore backups refer to backups made with the system you use!

Fine, I begrudgingly thought. A full system restore to factory settings — at least that would get me to the Windows Backup and Restore software (and a usable computer). A few minutes and a disk change later and I was at Windows desktop. I opened the Backup and Restore feature and chose to restore all of the files from my external hard drive to their original locations on my desktop... and was immediately struck with the realization that the backup options I had been using for this were unsuitable for restoring all files at once. I had incorrectly chosen the individual-files only option. As it was copying the files, I had to choose to Copy and Replace all of the system files. I also ran into Error 0x80070020 indicating that the computer was trying to replace files currently in use. Not ideal. I had it skip those files and move on.

After all of the files finished copying there was a very clear problem: not all of the files copied. Essentially, all files related to installed applications weren't copied. While none of the data was lost, this backup did not allow me to quickly get up and running again as none of the programs I use work.

Moving forward

This stress test of my backup solution taught me that, while my data are sufficiently backed up, they are not as accessible as I would like. Not nearly so. In the end, it took several hours to get to this point which is both too slow and not where I want it to be.

My desired ability to boot from my backup in a crunch also implies that I should be able to read the files individually when the drive is mounted in another computer. This last point is key, because neither option that Windows Backup and Restore has allows this. Backing up files individually results in many individual zip files each containing many files without much clear organization. The system image option results in one large file which is difficult (impossible?) to use to access individual files. I had known about the latter situation before, but I learned the former during this ordeal. Lesson learned: always understand what the backup options actually mean!

I want to change my backup solution for both Windows and Linux. Essentially, I want to be able to clone the hard drive on a regular basis, but not maintain parity with my computer every minute. Keeping the backup identical to the original all the time (like RAID 1) doesn't allow me to restore files in the case of an accidental deletion (a secondary goal). At the same time, creating a clone of the hard drive every week would undoubtedly be a drain on system resources when dealing with large hard drives.

At the moment, I don't know my ideal backup solution, but I will keep looking for it and will post my findings. For now, I'll keep using Windows Backup and Restore and KBackup while having a better understanding of the very real pros and cons associated with them. A summary of my wants and lessons-learned are below.

Printing journal articles on an ink jet printer and using yellow highlighters doesn't seem to work well. An alternate solution is needed. Possible alternate solutions include:

Changing the printing (printing everything on a toner-based printer?)

Changing the method of annotating (maybe different highlighters work better?)

Going entirely digital (an e-reader or a tablet?)

While they all have their pros and cons (organization?), the last option will probably win out eventually. I currently have a Nook Simple Touch, but its PDF support is unsatisfactory at best. I might rooting it for better PDF support, but we'll see. In the end I may just end buying a Nexus 7.

It's no secret that Linux doesn't have the same level of hardware support as Windows. In some cases, Linux systems can be run where Windows wouldn't dream of being installed. On the other hand, Windows has great support for many recent devices that Linux doesn't support (either in full or in part). The wireless device on my ThinkPad is:

The appropriate driver for this (found from ELRepo.org) is kmod-r8192ce. I followed the instructions on the website to add ELRepo as a repository and then had it install kmod-r8192ce. After a restart, things seem to be looking good:

While this got the basic wireless working, things were not perfect. After connecting to any network, either secured or unsecured, I would be able to surf the web for a few minutes.... followed by nothing. The connection would just die after a few minutes (or seconds). When the connection would drop, my computer would still think I was connected, and disabling and re-enabling the network or disconnecting and reconnecting would not solve the problem. I had read that IPv6 sometimes can interfere with the network connectivity if it isn't being used (I am still on IPv4), so I appended ipv6.disable=1 to the kernel in my /etc/grub.conf file. Still not working great, but marginally better. Eventually, I began using a kernel from the 3.5 branch as opposed to the Scientific Linux 2.6 kernel. Together with the ipv6.disable=1, this seems to result in a solid connection.

Future goals

Whenever I update my kernel (and thus grub.conf file), a new kernel becomes the default... which is sometimes a 2.6 branch kernel. When I don't interfere with the start up, it can be frustrating when my internet dies again. I would like to have grub not change the kernel that I am running from 3.5 to 2.6. [Edit 2: For the time being, I am manually updating grub.conf after each kernel update.]

I need to check if ipv6.disable really offers benefits when used with the kernel version 3.5.

I'd like to figure out a way to display code snippets on wordpress. [Edit: It seems that this functionality is possible through wordpress plugins, but as my blog is currently hosted on wordpress.com it is not possible to use any. A medium-term goal of mine is to create a new website that includes this blog as a feature, so when that happens I'll re-edit this post to add in code snippets.] [Edit 3: I installed the SyntaxHighlighter Evolved plugin after moving to WordPress.org. Apparently, though, this feature is available on WordPress.com, though I didn't figure that out at the time. Of course, one could just use <pre> tags, which I had forgotten about.]