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.

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?

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.

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

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.

Rebooting and Shutting Down via Command Prompt

When I originally found myself needing to reboot a machine via Remote Desktop, I realized that the shut down option was removed from the Start menu. Instead, I had the option to end my Remote Desktop session, nothing else. CTRL+ALT+DEL understandably didn’t work, as my local machine interpreted the key combination, not the remote machine. Without an obvious solution at the time, I remembered that there was a command line executable that could be used to shut down. The executable worked so well that I put batch file shortcuts on the desktop of the machine, allowing me to either restart or shut down the machine with a simple double-click. Seeing as this proved useful to me, I thought I would share how to do it.

To reboot the remote machine, simply use the following command in its Command Prompt.

shutdown /r /t:1 /y

There are three arguments being specified here: the first tells the shutdown executable that you want to reboot, not shut down. The second tells it to wait 1 second before shutting down, rather than the default 20 seconds. Finally, the third tells it to automatically answer “Yes” to any questions asked by the operating system when shutting down. The latter may speed up the operation, but you may lose any unsaved changes.

To shut down, simply use the following command:

shutdown /t:1 /y

That’s all there is to it. For more information about the shutdown comment, see this Microsoft Support article.

After using this approach for a month or so, I discovered that there was a way to use CTRL+ALT+DEL in Remote Desktop. Instead of CTRL+ALT+DEL, simply press CTRL+ALT+END, and the remote machine will behave as if it received a CTRL+ALT+DEL signal.

Comparing Files and Folders With WinMerge

Before I started working for my current employer, I hadn’t yet discovered how useful differencing tools could be. As I began working regularly with Visual SourceSafe 6 at work, I grew to value the fact that I could check for differences before every file check in. It was a standard for my employer, but to me, it was a process I was getting used to. Eventually, I realized that I needed a stand-alone comparison tool, in case Visual SourceSafe wasn’t around. This eventually lead me to a WinMerge, an open source differencing and merging tool.

Win Merge User Interface

There are numerous reasons why I like WinMerge. Most of all, I really appreciate the contextual options. With files, I can select any difference within a file, and choose to copy it from one file to the other, without leaving the application. With folders, similar functionality is available… I can copy, delete, compress, or move any given file difference from one side to the other. There are plenty additional features beyond that, but for the sake of brevity, I’ll make this simple: WinMerge is a tool I highly recommend for developers everywhere.

If you’re not yet convinced, I should probably mention that it can be used with Subversion. This works in Windows specifically, provided the TortoiseSVN shell is installed. TortoiseSVN allows the user to use an external comparison tool, rather than the built-in application, TortoiseMerge.

To register WinMerge instead of TortoiseMerge, follow the steps below:

  1. Right click anywhere in Windows Explorer, and select TortoiseSVN -> Settings.Configuring Subversion to use WinMerge as a diff viewer
  2. Expand the External Programs section.
  3. Select the Diff Viewer option.
  4. Select the External radio button in the Configure the program used for comparing different revisions of files section.
  5. Press the […] button to browse to point to your WinMerge executable. In my case, this was the path: C:Program FilesWinMergeWinMergeU.exe

Pinning Tabs in Google Chrome

Today, I discovered a feature in Google Chrome that had somehow eluded me to this date. If you right-click any tab, several contextual options will be listed. Most of these are fairly standard; however, one stands out from the rest. The “pin tab” option, once selected, will transform the current tab so that only the favicon is visible, not the text. This reduces the size of the tab, but also results in it being moved to the left-most side of the bar, as seen below:

On the left of this image, tabs which have been "pinned" are visible.

When you close Chrome, and re-open it, tabs who have been pinned will load automatically. While you could achieve a similar result by adding numerous websites to your home page list, the tab pinning approach seems better, to me.  I feel it truly reflects the minimalistic nature of Google Chrome, a trait that has been a big influence in its adoption. By simply showing a favicon, they are helping support the idea that an icon should be enough to represent an application a person uses often. Windows 7, for example, took a huge step in that direction with the task bar re-design. I’m happy to see that Google is doing similar, as it optimizes how the space is used within a window, and helps organize information.

If you find that your pinned tabs are becoming too numerous, consider moving some of them to the bookmark bar. It is possible to have the bookmarks appear with only a favicons as well. To do this, simply edit an existing bookmark, and delete the name. Chrome will still allow you to use the bookmark without a name, as it still has an icon to represent it.

Google Chrome allows bookmarks to exist without a name. If a bookmark has no name, only the favicon will be displayed.

How to Launch Multiple Instances of Notepad++

Update Nov 22, 2016: I added a video tutorial for this! The written blog post remains available below.

Notepad++ is my primary text editor, as it offers a huge amount of features, and yet remains fairly simple to use.  After months of using it heavily both at home and at work, I began to wonder if I could launch multiple instances of it at one time. Given that I have two monitors in either case, I thought it would be interesting to have one Notepad++ window per monitor.

The best approach I found makes a new copy of Notepad++ launch every time you use a shortcut. To make this work on your machine, simply do the following:How to configure Notepad++ to launch a new copy of itself every time

  1. Right-click any Notepad++ shortcut.
  2. Select Properties.
  3. Move to the Shortcut tab.
  4. In the end of the Target field, add ” -multiInst”.
  5. Click OK.

Example:

  • Target: “C:Program FilesNotepad++notepad++.exe” -multiInst

You might be wondering at this point, what if I’m already using Notepad++, do I still have to use the shortcut to launch another? Thankfully, no. To launch another instance when already using the editor, you can simply press ALT + F6, or Click Run -> Open in another instance in the menu bar.

How to open another instance of Notepad++ once you're already within it