The Peculiar Ways Of My Cat 2

Soon after writing the first “Peculiar Ways of My Cat” post, I bought two seven foot cat towers. I figured the offering would be my best chance at preventing the critter from shredding the contents of my home. Though it wasn’t completely successful, it at least proved to be partially effective. At this point in time, the towers have taken quite a beating, and may not survive for much longer. Clawed nearly beyond recognition, they offer a mere glimpse at their earlier days. Too bad, considering I originally thought of placing the cat’s food bowl on the highest level. I figured it would be a good way to keep him in shape, while I would benefit from the entertainment. Having no easy way to secure the food dish up there, I decided against it, ultimately.

Besides the towers, I’ve taken steps to train him beyond his existing ability to follow a particular procedure whenever it is time to eat. As my next challenge, I’m teaching him to come to me at any time, not only when he’s hungry. To do this, I will discreetly pick up some treats, and call his name from a distance. If he approaches me, he gets a treat. Once he starts to understand that I have treats, I have to utilize the stop command – keeping him in place. Then, all I need to do is move across the apartment, and call him over.  If he starts moving before I call him over, he doesn’t get a treat, and the exercise starts all over again. So far, it is working well, but much more repetition is needed before I am ready to write another “Turning a Cat into a Dog” article.

The more I observe his behavior, the more I become aware of the intelligence he possesses. For example, he has learned to associate the squeal of my mother’s brakes with her arrival. The squeal itself is fairly subtle, but very often I will see him dart suddenly across the room. This usually means he heard the brakes, and wants to get to the balcony as fast as possible, to confirm that she has, in fact, arrived. Once he does, he will sometimes proceed to run back and forth across the length of the window, in excitement. If that’s not the behavior of a dog, I don’t know what is.

On the transportation side, there have been new developments. Originally, I would simply put him a fabric grocery bag, and hand him off to my mother, who would then bring him to her place by car. Once he arrives at my parents place, he had other cats to play with and/or terrorize, and that always brings good physical exercise.

Eventually, I had the idea of walking to my parents place with the cat in tow. Since they leave only 15 mins away on foot, this was a realistic possibility. To accomplish this, I wrapped the cat up in multiple fabric shopping bags, creating a very complex restraint with the bag handles. Only his head was out in the open, the rest of his body was completely wrapped in the bag, and tangled with the handles. My entanglement approach was designed to decrease the chance of him running away, should he to somehow get free while in transit. My plan worked well – I was able to walk to and from my parents place by simply carrying him with one arm. Despite being an indoor cat, he proved to be quite the professional urbanite, rarely getting nervous from what he was witnessing. The only signs of nervousness were perfectly understandable, for example: a loud bus drove by, relatively close.  All I had to do was use both arms in these moments, to calm him down and prevent him from moving. One day, I will look into getting some sort of an animal carrier, as it should make the whole process easier. During these adventures, the cat seems to enjoy being out of his limited indoor environment. Also, the reactions I get from random people are too priceless to pass up.

Open Command Window Here in Windows 7

Despite the numerous graphical advancements introduced in Windows 7, the Command Prompt has remained largely unchanged. Yet, it has always remained a useful, lightweight tool for interacting with the file system. I remember using it often in Windows XP, which was really when I was getting serious about Computer Science. In fact, I looked for ways to improve the command prompt experience. I eventually discovered a power toy for Windows XP titled “Open Command Window Here”. When installed, it would add an extra option to the context menu, which simply said “Open Command Window Here”. It would typically be visible when you right-clicked a folder, and, once selected, would make a new Command Prompt window would appear. This new window would have current location automatically set to the folder you right-clicked. This was particularly useful when you want to access a folder that is deep in the folder structure, and were already seeing it in Windows Explorer.

Unlike Windows XP, Windows 7 ships with this feature; however, it isn’t immediately visible to the user. To access it, you have to hold SHIFT, and then right-click. This will make numerous additional options appear, among them, “Open Command Window Here” can be seen.

Shows the "Open command window here" context option, which is made available when pressing SHIFT in Windows Explorer. Allows quick access to the command (DOS) prompt, while being location aware.

In general, I suggest experimenting with the SHIFT modifier – some of the “hidden” contextual options are very interesting.

Google’s Cache Feature Improved By User Script

When looking at search results in Google, you may have noticed a link titled “Cached” that appears alongside most results.

In Google search results, a link titled "Cached" can typically be seen right next to the URL.

Here’s how Google explains the feature:

Google takes a snapshot of each page examined as it crawls the web and caches these as a back-up in case the original page is unavailable. If you click on the “Cached” link, you will see the web page as it looked when we indexed it. The cached content is the content Google uses to judge whether this page is a relevant match for your query.

Whenever I encounter a search result that isn’t loading when clicked, I try using the “Cached” link. As Google warns, it isn’t necessarily up to date, but it usually reveals what I need: the content that made the page a relevant search result. As great as this feature is, if you click on any of the links within the cached page, Google will automatically try to load the live version, not the cache. If you’re accessing the cache because the site is down, this will likely fail.

Fortunately, I recently read a post on Lifehacker that solves the above problem through the use of a user script called Google Cache Continue Redux. Once installed, it will make a button appear next to all links, when you’re viewing a cached page. This allows you to keep browsing in cached mode, if desired, making the cache feature all that more powerful.

Example output of the Google Cache Continue Redux user script. Shows a yellow button that says "cache" in red along with every link.

To install the script within Google Chrome, simply visit the page and click “Install”. With Firefox, the same approach is possible; however, you first have to install the Greasemonkey plugin, and restart the browser. Opera supports user scripts as well, but the instructions are a bit longer, so I suggest looking at their documentation.

Internet Explorer 6 Crash Simulator

Ever find yourself missing the good old days of Internet Explorer 6? No? Well, me neither; however, if you want a mild chuckle, I suggest visiting this Internet Explorer 6 crash simulator:

Internet Explorer has encountered a problem and needs to close. We are sorry for the inconvenience.

Glad we don’t have to deal with that anymore.

If, by some chance, you are still using Internet Explorer 6, I highly suggest installing an updated version, or selecting any other major browser listed on this Wikipedia page.

Working with Tab Stacks in Opera 11

Long ago, Opera used to be my browser of choice. I eventually migrated to Firefox, and now Google Chrome. It was always obvious to me that some of Chrome’s features were highly influenced by Opera. Since Opera 11 was recently released with an intriguing new feature called “tab stacking”, I thought I’d go over how it works.

Consider this scenario:

The main Opera interface, showing a total of five tabs open. Three are about underwater species, while the other two are unrelated.

I have five tabs open. Let’s assume I was working on a research project that somehow involved Beluga whales, sharks, and trout.  At the same time, the two remaining tabs have both my webpage, and my blog loaded. The underwater project has nothing to do with my personal website or blog, so I will use tab stacking to merge those three related tabs into one. To do this, all I need to do is drag the tabs onto each other.

So, once I’ve stacked those three tabs into one, here’s what I have:

A collapsed tab stack, with Shark as the active tab.

The Shark tab is now surrounded by a gray border, and an arrow button can be seen on the right of it. If I want to see the tabs contained within the tab stack, I can either click on the arrow button, or double-click the Shark tab. When I do this, the tab stack expands, revealing its contents:

An expanded tab stack, with Shark as the active tab.

Once expanded, the tabs function exactly as one would expect. They are just logically grouped together, and can be collapsed again to gain space for other tabs. To collapse, simply either click on the arrow button, or double-click any tab within that stack.

When a stack is collapsed, it isn’t necessary to expand it to take a look at the contents. Even before tab stacking was created, Opera allowed users view a thumbnail of the tab contents just by hovering the mouse cursor over any tab. With tab stacking, they extended this feature, allowing users to hover over a stack, and see thumbnails of all tabs within.

Viewing the thumbnails of the tabs found within a given stack, even though it is collapsed.

Once those thumbnails are visible, you can click on any one of them to bring it into focus. It reminds of me of how the Windows 7 taskbar works, though it isn’t exactly the same.

If you’re wondering how CTRL+TAB will work in conjunction with this, don’t worry. Opera has a different approach when it comes to CTRL+TAB; it will actually bring up a list of tabs, and allow you to step through them. You will see a thumbnail as you’re doing this, facilitating the task. Let’s say the tab stack was collapsed, and the tab you were currently viewing was the Shark tab. When you CTRL+TAB to the Beluga tab, it will actually make Beluga the active tab, but will maintain the collapsed state of the tab stack.

So, all-in-all, I think this is a great step for a browser. If I were working on a desk with multiple sheets of paper, I’d certainly aim to organize them into stacks. The feature is therefore fairly intuitive, at least in concept. Still, I’m left wondering how much better the feature would be with intelligence, rather than relying on manual user actions. Is there a way it could automatically create stacks whenever it made sense? Internet Explorer 8 actually does something like that: If you launch tab B from clicking on a link found within tab A, it assumes tab A and tab B are related, and gives them the same color. What if that intelligence were combined with tab stacking?

How Fear Can Keep You Writing

As I was searching for tools to help me with my general writing process, I found one that was particularly interesting, and worth sharing. Write or Die is an application that uses negative reinforcement to keep you typing. As long as you continue writing, you’ll be fine… but if you stop, Write or Die starts to get aggressive. As a first step, it will start changing the background color of the window to red. As time passes, the red gets more intense. If you don’t keep typing, and you let it get totally demonic, you will face one of three possible punishments, depending on your settings. The mildest of these punishments involves a simple pop-up, reminding you to type. Not really significant, as you just click OK and you can continue. The mid-range punishment involves playing very annoying sounds, until you keep typing. This is the default setting, and while fairly effective, it isn’t my favorite. The harshest, and my favorite, is accurately called “Kamikaze mode”. It will cause your text to consume itself until you start typing again. By that, I mean it will start deleting words you’ve typed, starting from the end, working its way to the start. That’s just about as scary as you can get, without deleting the whole document.

Write or Die's online interface

I found this application intriguing enough that I paid 10$ for the desktop edition; however, you don’t have to do that. There is an online version of Write or Die, as seen in the screenshot above. To give it a try, visit the Write or Die homepage, and look for “Write or Die Online” on the right-hand side. Choose your settings, then click “Write!”. The 10$ desktop version runs on Adobe Air, and gives you much more flexibility when it comes to configuration.

Write or Die Desktop Edition

It does have some bugs at the moment, but also introduces interesting ideas, like the ability to have a competitive “word war” against a friend. Essentially, this involves competing to meet a word count goal within a given time limit. Definitely the kind of creativity I want to support.

Steam: Warning: Configuration Information Missing

Having worked with Valve’s Hammer Editor in the past, I recently decided to get back into the whole map-making vibe. Upon trying to launch the Hammer Editor from the Source SDK, I got hit with this error:

The configuration information for the game you're trying to edit is invalid or missing

Strange. As you can see, I had the SDK configured like this:

Engine Version: The Orange Box

Current Game: Half-Life 2: Episode Two

I made sure my Half-Life 2 Episode Two download was complete before trying to open the Hammer Editor, so I was surprised when I encountered the warning. I immediately began to search for a solution online, and I found a few posts that recommended that I try running the “Refresh SDK Content” and “Reset Game Configurations” actions from the Source SDK Utilities menu:

"Refresh SDK Content" and "Reset Game Configurations"

Unfortunately, this didn’t work for me.

Solution

It turned out all I needed to do was load the game at least once – as this would trigger the creation of the configuration information file required by the SDK.

In my case, the file itself was located here:

C:Program FilesSteamsteamappsyour_username_herehalf-life 2 episode twoep2GameInfo.txt

After I ran the game, that file was generated automatically, and I never saw the warning again.

See Also

Forum post: GameInfo.txt is missing

Tab Management Shortcuts in Google Chrome

When I use a browser, I typically focus on using keyboard shortcuts, rather than the user interface. Since I’ve been using Google Chrome so often, I thought I would reveal the shortcuts that I’ve been using. Most of these shortcuts should work in other browsers as well, whether natively, or through the use of extensions.

CTRL + T

Opens a new tab in the current window.

CTRL + SHIFT + T

Opens the most recently closed tab. Chrome will actually remember the last ten tabs you closed, and work its way back in time with repeated keypresses.

CTRL + W or CTRL + F4

Closes a tab in the current window. If you close the last remaining tab, the window will close as well.

CTRL + 1, CTRL + 2, CTRL + 3, etc

Allows you to switch to a specific tab within a given window. To better illustrate this, see the following image:

The CTRL+# shortcut works based on the tab position, where the left-most tab is 1, and the others continue the sequence.

Pressing CTRL+1 will do nothing, because in the image I’m already on tab 1. Pressing CTRL+2 will switch to Wikipedia, and CTRL+3 will switch to Microsoft.

CTRL+9 is a special shortcut that will actually move you to the last tab, regardless of the number of tabs. In the example above, pressing CTRL+9 would bring me to tab 3.

CTRL + TAB

Switches to the next tab.

CTRL + SHIFT + TAB

Switches to the previous tab.

CTRL + N

Opens a new window.

CTRL + SHIFT + N

Opens a new incognito window. I use this shortcut whenever I access my e-mail from a shared computer, to help protect my account.

ALT + F4

Close the current window, regardless of how many tabs are open.

ALT + HOME

Loads your homepage in the current tab.

For a full list of shortcuts in Windows, see the Google Chrome Keyboard and mouse shortcuts page.

Past Experiences from a Virtual World

I mentioned in a previous article that I used to play World of Warcraft, probably a total of seven months over six years. Though I rarely play anymore, I thought it would be a good idea to share some of my more interesting and/or amusing experiences within the game.

Before I begin, you should know that in most games, whenever I have the option to play a character that heals others, I take it. It is simply the function I enjoy the most. I like monitoring the health of others, healing them when they’re getting attacked, saving them where they would have normally died. Some games, including World of Warcraft, allow you to resurrect dead players, another mechanic I enjoy. Overall, it’s often a stressful job, because other players treat you as a goalkeeper of sorts. A healer’s entire job is to make sure no one dies, but sometimes there’s just too much damage being dealt, and someone does die. Often, the healer gets harassed for this, but it isn’t always his fault. Sometimes the player got himself killed by making a poor decision, or it was just bad luck. Regardless of the stress, the complexities, it is simply what I like to do, so in most games, that’s what I do.

Wandering around in spirit form

World of Warcraft supports player versus player (PVP), meaning players can fight against each other pretty much anywhere, provided you’re playing on a server that allows that. Seeking more realism, I decided to join a PVP server as a member of the Horde, the more evil-looking faction. The good guys, known as the Alliance, were just too good for me. So, as I was working on leveling my character, I would occasionally cross paths with members of the Alliance. Upon seeing me, they would usually chase after me until they successfully killed my character. Death, in World of Warcraft, is not final. Instead, it is merely an inconvenience – you have to spend in-game money repairing your gear, and you have to walk back (as a spirit) to your corpse. Thing is, if the guy that killed you wants to, he can easily hang around your corpse, waiting for you to rise. As soon as you do, he can kill you all over again, while you’re weak, and keep doing that until he gets bored. As the guy getting killed, you can choose to resurrect somewhere else, stopping the repeated deaths, but the cost of this option is usually not desirable.

Because of the repeated deaths I endured, I came to dislike the PVP system. I liked the realism it offered, but I felt it opened the door to far too much griefing. I therefore decided, fairly early on, that I would not fight members of the Alliance. Yes, I resided on a PVP server, but it didn’t mean I had to indulge in a system that I felt was broken. So, whenever I spotted members of the Alliance – regardless of their experience level, I would either wave, or salute them. It is impossible to chat with members of the opposite faction, seeing as they speak different in-game languages. Put simply, this meant I was limited to physical actions, like waving and saluting.

The result of my unique approach? Half the time, the Alliance would disregard my friendly greeting, and proceed to attack me. Usually, when this happened, I would just let them continue, while I shook my head “no”. That, or I would burst into dance while being struck repeatedly. Sometimes, this strategy would make them stop. Other times, they didn’t care, and continued until I was dead. Thankfully, the other half of my encounters were really great – the Alliance would reciprocate the greeting, and we would either go our own way, or collaborate. Now, collaborating between factions is pretty tricky, but it is always cool when you manage to find a friendly enemy that will work with you. For example, I remember a time where I was waiting for an non-player enemy to spawn, and so was the Alliance member. Since only one enemy will appear (at a time), only one of us can get the credit for the kill. Since I was there first, when the enemy spawned, the Alliance guy waited for me to start the attack, which marked the target in my favor. If anything dropped from that enemy, I would get the reward, as well as credit for the kill. So, after I hit the enemy once, the Alliance guy stepped in, and helped me fight it. There was no way the game would reward him, as it was marked in my name, and he’s part of the opposite faction… but he did it anyway. When the creature died, I got credit, and technically could have left right there. The Alliance guy, however, would have to wait before the target reappeared. Rather than leave, I stuck around and helped him defeat it, as a gesture of thanks. This unique approach to PVP quickly became one of the most enjoyable elements of the game, for me. I really liked that I possessed the power to eliminate most enemies, but refused to indulge, choosing to be friendly instead.

Unfortunately, not everyone shared the same views as I did. I know of one particular guy that is a perfect example of this: when he spotted an enemy, he’d chase after them as long as he needed to, just to kill them. Often, he’d stick around and kill them a few additional times, just for the sake of it. Let’s call this guy Alex. I rarely spoke to Alex, but when I did – it was usually when I renewed my World of Warcraft subscription. In the game, he was ridiculously rich and powerful, and would sometimes offer to help me progress. I appreciated this, and would accept his help. Aside from his World of Warcraft aggression, we got along pretty decently in real life. Still, I never truly realized how far he’d take this aggression, until one particular scenario came up.

We had begun an arena fight, one which featured multiple monsters. As we were fighting the first, we noticed a few Alliance members had arrived, and were watching us from the stands. They were a party of three, and were not making a move against us, even though we were in a vulnerable position. To me, this probably meant that they were waiting for their turn to fight in the arena. After a while, they ran in and started attacking the monsters with us, effectively speeding up the process. I thought this was pretty cool, and I liked that Alex was not attacking them, even though he was much more powerful. They helped us kill all monsters, and as I was casually going through the rewards I got for killing them, I heard Alex on voice chat say the following, in a slightly panicked voice: “Matt, run away, fast!”. I immediately hopped on my horse, and rode out of there, while Alex explained, with a laugh, that he had attacked the three Alliance members that helped us. He eventually killed them all, and stuck around to do it a few times more. From that point on, I understood that he really didn’t care, at all, he just enjoyed griefing, harassing people. The game, unfortunately, allowed people like that to thrive, despite efforts taken against it. Thankfully, nothing was stopping me from continuing my unique approach to PVP, so I kept my subscription active.

Finally, after years of on-and-off playing, I decided I would quit once and for all. Rather than just cancel my subscription, I decided I would give away all my in-game money and belongings. Now, the game has fairly large cities, which are commonly packed with players. I went to the largest Horde city, and proceeded to announce my giveaway. Players came running from all over the place, eagerly wanting to receive free stuff. After I ran out of money and belongings, I sold all the clothes off my back and gave away the money from that too. Then, I logged out, deleted my character, and cancelled my account. Giving stuff away was a lot of fun, and it remains one of my better memories of the game, interestingly.

For a long time, that was it… until I returned following the release of a new expansion pack. Seeing as I deleted my old character, I had to start a new one. After a while of playing with the new character, I decided to see if the company behind World of Warcraft, Blizzard, would be willing to restore my old character. I e-mailed them, explaining the situation, and they agreed to restore the old character, free of charge. When I logged in as him, I quickly realized life was not going to be easy, as that character. There he was, standing wearing only a pair of boxers, with zero cash and only two or so items in his bag. I realized, at that point, that he was pretty much a homeless person… in World of Warcraft.

It didn’t help that I was isolated from my friends, seeing as they mostly all migrated from that particular server. Had they been there, I would have had an easy solution – borrow money from a friend. Since I couldn’t, I decided to try and fight weak creatures in an attempt to get some more stuff to sell. Among my two belongings was a skinning knife, which could be used as weapon, though it was not meant to be. Though a terrible weapon, it at least allowed me to slowly kill weak creatures and get the loose change and cheap gear they were carrying. It didn’t take long for me to give up on this approach, as it was taking far too long. My next idea was something I was hoping to avoid… I decided I would try and ask other players for money. In other words, I would be a beggar… in World of Warcraft.

There I was, wearing a plain white shirt I got for mere cents, and a pair of boxers, begging random strangers for money. Most of whom, by the way, were heavily armored and well-off. Though I explained why I was completely out of cash and gear, most people ignored me. Some used the opportunity to be cruel: one guy walked up, showed me he had a lot of money, and then walked off without giving me any. Then, when I started to give up hope, another guy came up to me, told me to stay where I was, and then ran off. At first, I really didn’t know what he was up to, but after three minutes or so, he came back with some spare cash, but more importantly: clothes, which he had crafted himself, specifically for a healer. (Tailoring was available as a profession in game, allowing players to actually create clothing, provided they actually had the proper ingredients.) I expressed my thanks, and was able to return to playing the game normally. I can only imagine how long I would have had to wait, had it not been for that one guy.

I started it all as a simple healer, one who evolved into a promoter of peace. Then, eventually, I became homeless, had to beg, and was restored to humanity through the kindness of a stranger. Quite a story, and yet, it all happened in a virtual world. Seeing as it involved me being homeless and resorting to begging, I think I’m happy with it remaining virtual.

Drag-and-Drop Downloads in Google Chrome

Here’s a tip for all Google Chrome users out there. By now, you’ve probably all seen how Chrome treats downloads differently than other browsers. As soon as you download a file, a bar will appear at the bottom of that particular tab, allowing easy access to the file. In doing so, it also saves space by only showing what is immediately relevant for each individual tab.

Google Chrome makes a bar appear at the bottom of a tab, whenever a file has been downloaded.

You can use controls in that bar to locate the file in Windows, or even view your full list of downloads. I’ve personally always used the “Show in folder” option, as this brings me exactly to the file, allowing me to move it elsewhere. Usually, I end up moving it to my desktop, as I like having the files right in front of me, allowing for easy disposal whenever necessary.

After using that approach for long time, I found an easier way. It seems that Chrome actually lets you drag any file from the bottom bar to your desktop, or anywhere else for that matter. It will automatically copy the file to where you drop it. I find this particularly useful when I just want to copy to the desktop, as it is usually always visible when I’m browsing.

Once I figured that out, I started to play around with drag-and-drop in general. In most cases, dragging something from a webpage to your desktop will simply create a shortcut, which isn’t particularly useful. Thankfully, I found one main exception to this: when you drag an image from a webpage into Windows, Chrome actually downloads the image, and places it wherever you dropped it. This is a feature I seem to recall Opera having many years ago, and I eventually forgot about it when I switched to another browser. I’m pleased to see it in Chrome, and will likely figure out more drag-and-drop exploits as I experiment.