How to Remove the Start Button from Secondary Display Taskbars in DisplayFusion 3.3.1

If you’re like me and use multiple monitors as part of your computer setup, DisplayFusion is one of the best ways to take advantage of that extra screen space. Simple features like adding a taskbar to your secondary displays – a feature that Microsoft has glaringly neglected to include in Windows – make extra displays much more useful.

DisplayFusion also lets you assign hotkeys to quickly manage windows, which is a great compliment to Windows 7’s built-in window management features like Aero Snap. For aesthetics, you can set different backgrounds for each display and even have separate screen savers.

In the recently released DisplayFusion 3.3.1, Start buttons were added to secondary taskbars. While I’m sure this will be a useful feature for many people, I don’t even use my original Start button (thanks to Launchy).

Removing the additional Start button is actually very simple, although it isn’t in the Settings window where I expected to find it.

To remove the Start button from a DisplayFusion taskbar, just right click the task bar, and select Multi-Monitor Taskbar –> Start Button –> Disabled.

That’s it! To re-enable the Start button, just repeat the process and choose Automatic.

How to Make Launchy Find ClickOnce Application Shortcuts

If you’ve never heard of Launchy, let me do you a favor by quickly explaining it. Launchy is a simple application launcher for Windows, Mac, and Linux that makes it easy to open any application installed on your computer just by using your keyboard.

After installing Launchy, you’ll basically never have to open your Start menu again. If you want to open Firefox, for example, simply press the customizable Launchy hotkey (I set mine to CTRL + Space, but the default is ALT + Space), type a few letters of the program you’re looking for, then press enter. If the wrong program is shown, use the arrow keys to find it in the list.

One downside to Launchy is that it can’t launch applications installed via the ClickOnce deployment method by default. ClickOnce is popular deployment solution for .NET applications, and is used by applications like MetroTwit and even my own BreakTaker.

Adding support for ClickOnce applications in Launchy is easy, just follow these instructions.

Step 1: Open Launchy by pressing the Launchy hotkey or opening its Program Files entry.

Step 2: Right click Launchy and select Options.

Step 3: Click the Catalog tab. The locations in “Directories” are the areas that Launchy will search for application shortcuts, and the “File Types” specify which types of shortcuts it will look for.

ClickOnce applications don’t use the standard .lnk extension for their shortcuts, they instead use the extension .appref-ms.

For each directory listed, select it and click the plus button (+) under File Types. Type *.appref-ms and press enter, and repeat for each directory.

Step 3: After you’ve added *.appref-ms to each directory, click the Rescan Catalog button. Click OK once Launchy has finished looking for new shortcuts.

That’s it! Launchy should now be able to locate ClickOnce applications stored on your computer.

Launching a ClickOnce application with Launchy

How to Restore Aero Effects if the Windows Desktop Window Manager Crashes

Aero” is the graphical user interface that Microsoft introduced with Windows Vista and Windows 7. It includes many productivity features for managing your windowed desktop environment, but one of the most noticeable features is the glass-like transparency effect that is typically present on the borders of windows.

Aero window effects working properly

At times, the Desktop Window Manager (DWM) service that runs Aero can crash. This can happen for a variety of reasons, but I’ve most frequently seen it when using applications that are not fully compatible with Windows 7, or when undocking my laptop with a full-screen application open.

Error message shown after the Desktop Window Manager has crashed

When the Desktop Window Manager service crashes, you’ll immediately notice that the Aero transparency effects will disappear.

Aero effects are disabled after the Desktop Window Manager service has crashed

You can fix this problem by restarting your computer, but there’s an easy fix to restart the service and re-enable Aero effects.

Restarting the Desktop Window Manager Service

Step 1: Click the Start (Windows) button and type “run” in the search box. Select the “Run” application that appears in the Programs list.

Note: You can also press the Windows Key + R to access the Run dialog.

Step 2: Type services.msc and press enter.

Step 3: Locate the entry for Desktop Window Manager Session Manager, right click it, and select Restart.

That’s it! The Desktop Window Manager service should now have restarted and Aero effects should be re-enabled.

Optional – Restarting DWM via Command Line

You can also restart the Desktop Window Manager via command line, which is useful if you wanted to create a batch script to automatically restart DWM when it crashes.

To restart DWM via command line, open the command prompt (cmd.exe) and type:

net stop uxsms

Followed by:

net start uxsms

This will have the same effect as restarting the DWM service through the Windows Service Manager application.

TweetDeck for Chrome is a Flexible, Lightweight Version of its Desktop Counterpart

TweetDeck Desktop is arguably one of the best desktop Twitter clients for power users. It offers endless columns of information, multiple account support, and many features that Twitter itself had to copy. This app can basically do it all, and might even be getting purchased for $50 million by Twitter.

My only major complaint is that TweetDeck Desktop runs on Adobe Air, and while I have no qualms with the technology itself, it often suffers from major performance problems, especially when starting the app for the first time. With a modest seven columns (okay, maybe that’s not modest?), I usually need to “warm up” TweetDeck like I used to warm up my ’97 Ford Escort in a brutal North Dakota January.

With the launch of Google Chrome’s web store, an app store for its popular web browser, TweetDeck jumped off the Adobe Air bandwagon and onto the new Chrome platform. The result: a screaming fast, delightfully useful version of TweetDeck that runs directly from your browser.

To get started, head over to the Chrome web store (while using Chrome, obviously), and install TweetDeck for Chrome.

Once you have TweetDeck installed in Chrome, you can access it from any new tab page (press CTRL + T) or, alternatively, install the TweetDeck Launcher extension to open TweetDeck directly from your browser’s toolbar.

My favorite part about getting started with TweetDeck for Chrome was that I didn’t have to reconfigure my columns or information. If you already have TweetDeck for Desktop installed on your computer, it can automatically import your settings. Otherwise, you can log in with your TweetDeck account which should also restore most of your settings (although I think it only restores custom columns).

TweetDeck for Chrome in the New Tab page
Skip the tedious configuration process by importing from TweetDeck Desktop

Note: You’ll have to approve the import process through TweetDeck desktop before the data can be imported to TweetDeck for Chrome.

The first thing you’ll notice: TweetDeck for Chrome is crazy fast. Opening columns for two Twitter accounts, Facebook, and a couple of search columns takes mere seconds. Even better, those columns are immediately usable (I’d usually have to wait several minutes before TweetDeck Desktop would let me actually interact with it.

If you’re combining multiple accounts and social networks in TweetDeck, you’ll probably be greeted by a few “merged” columns that showcase messages from all of your accounts together. I’m not wild about this (I like my Facebooks kept separate from my Twitters), so I opted to delete those columns and instead make account-specific columns. Hey, some people like their pickles cucumbered.

To add new columns or accounts to TweetDeck for Chrome, just click the TweetDeck > button in the top left. This will present you with all of the fantastic options you’d expect from all TweetDeck clients.

To delete a column, click the wrench icon that appears when you hover over the column and then click the red Delete button at the bottom of the column. Clicking the wrench icon also gives you the option to edit notifications for that column. You can also move any column when in wrench-mode (but it appears this is the only time you can drag-and-drop columns, otherwise they remain locked).

Overall, TweetDeck for Chrome is probably my new favorite desktop Twitter client. It might take a little bit of time to get used to opening a separate Chrome window to run it on a second monitor, but it’s worth it for the performance and the fantastic feature set.

How to Create a HTML-style ComboBox in WPF and C#

Before I started doing software development in C# and WPF, I spent quite a bit of time with HTML. Because of this, I was used to having the ability to create drop-down boxes (known as select in HTML) to display lists of information with a “front-end” value the user could see and a “back-end” value that held data.

For example, I could create a list of colors that would display the color’s name in the select box, but would then correspond to a hexadecimal value in the background:

Which looks like:

If the user selected “Green”, it would show up as “#008000” behind the scenes.

This type of control is known as a ComboBox in WPF and C# and has similar functionality, but by default you can’t store Name –> Value pairs in them like you can in HTML. In this guide, I’ll show you some simple code you can use to recreate this functionality.

Creating HTML-style ComboBox in WPF and C#

For this example, I wanted to create a drop-down menu for selecting the Parity value of a serial port connection. Parity is an enumeration in C# and has values like Parity.None, Parity.Even, and Parity.Odd, but I wanted to display just “None”, “Even”, and “Odd” to the user.

The first thing I did was to create a custom class that expands the functionality of the standard ComboBoxItem. This class will store the pretty front-facing name in a string called “contents” and store the data value in an object called “tag”.

If you’re familiar with ComboBoxItems, you’ll know that they already offer Content and Tag properties. These properties don’t function the same way they do in HTML, so I found it best to create my own custom class.

// Contains the visible "Name" of the item.
private string _contents;
public string contents { get { return _contents; } set { _contents = value; } }

// Contains the hidden "Value" of the item.
private object _tag;
public object tag { get { return _tag; } set { _tag = value; } }

public CustomComboBoxItem(string contents, object tag)
 this._contents = contents;
 this._tag = tag;

// Only the Name will be displayed when the string value is used
public override string ToString() { return _contents; }

I created my ComboBox in WPF and created a Loaded event to programmatically populate the values.

And then created the corresponding comboBox_Parity_Loaded function in my C#  file where I added the CustomComboBoxItem items to the ComboBox. You can see that the first value I give it is its front-facing name, and the second is the value of the Parity enumeration.

private void comboBox_Parity_Loaded(object sender, RoutedEventArgs e)
 // Add the options with my custom class CustomComboBoxItem. This allows me to store a unique "Name"=content and "Value"=tag for each item
 comboBox_Parity.Items.Add(new CustomComboBoxItem("None", "Parity.None"));
 comboBox_Parity.Items.Add(new CustomComboBoxItem("Even", "Parity.Even"));
 comboBox_Parity.Items.Add(new CustomComboBoxItem("Odd", "Parity.Odd"));
 comboBox_Parity.Items.Add(new CustomComboBoxItem("Mark", "Parity.Mark"));
 comboBox_Parity.Items.Add(new CustomComboBoxItem("Space", "Parity.Space"));

Compiling and executing this program shows my ComboBox filled with items called “None”, “Even”, and “Odd”, but its selected value now corresponds with “Parity.None”, “Parity.Even”, and “Parity.Odd”.

To access the back-end value of the user’s selection in your code (I was using it to change a hardware setting), you need to cast the SelectedItem property of the ComboBox as a CustomComboBoxItem.

// This takes whatever item is selected in the comboBox and stores it in a new item called item_Parity. This gives you access
 // to the properties of the CustomComboBoxItem like .tag and .content.

CustomComboBoxItem item_Parity = (CustomComboBoxItem)this.comboBox_Parity.SelectedItem;

To test it out, you can use the following code to write the item’s name and corresponding value to the console.

Console.WriteLine("Item's name is: " + item_Parity.contents + " and Item's value is: " + item_Parity.tag.ToString());

That’s it! You should now have HTML-style ComboBoxes in WPF and C#.

Forget the $41 million, could Color fail simply because of GPS limitations?

There has been an incredible amount of discussion about Color, a new – let me try to describe this – mobile-social-location-aware-photo-sharing app that recently brought in an eyebrow-raising $41 million of capital. Even venture capital group Sequoia Capital was surprised, saying:

“Not since Google have we seen this.”

That statement definitely caught people’s attention. Sequoia invested around $25 million of the $41 million that Color received, which is about double the amount they invested in Google.

I’m no venture capital expert, so I’ll leave that discussion to the folks at TechCrunch and BusinessInsider, but  BusinessInsider did post a particularly interesting article about what we haven’t understood about the $41 million investment.

What I can discuss are technical limitations of new products, specifically the one very large obstacle I think Color might encounter – GPS.

Before I explain why, I need to explain the way Color works. Basically, you take pictures with your GPS-enabled mobile phone. Anybody within 100 feet of that picture’s location can see the picture, and it will automatically group pictures together within that 100-foot radius. This means that if you were at a concert, everyone taking pictures there would form a dynamic ad hoc social network, which does sound pretty cool.

Here’s the problem: if you’ve ever tried using GPS indoors, you know how inconsistent it can be (if it even works at all). When checking into a venue using Foursquare, I usually try to do it before entering the building because I can’t usually get a good GPS signal inside. Same goes for navigation – I’ll save the address and fire up Google Navigation once I have a clear view of the sky.

Since Color’s entire usage scenario revolves around a self-generated, location-based network, it all goes out the window when its users can’t get a decent GPS signal. Sure, it’ll work fine at outdoor football games or in a park, but what about restaurants, house parties, indoor concerts, indoor sporting events… you get my point. This may be less of an issue in warmer climates where more venues are roofless, but up here in the northern part of the country I can see this being a massive frustration.

Don't expect to use Color at your next World War II themed bunker party.

After doing some research, I’ve found some vague information that the Color might be able to use things like ambient background noise and light to help identify groups of people, and, of course, there are always less-accurate geolocation methods like cell tower triangulation and WiFi-based location. These methods will never be as accurate as GPS though, and for an app like Color, that could be the difference between enthusiastic adoption or frustrated abandonment.

Image credit: Camilla Carlström

Restore the old-style status bar in Firefox 4 with Status-4-Evar

Update: As pointed out in the comments, the Tree Style Tab add-on was causing Firefox 4’s status bar to display in the bottom right corner of the browser. Status-4-Evar fixes this problem, and allows for a high degree of customization of the new status bar.

One of the major changes in Firefox 4 was a completely new status bar – or lack thereof. The status bar has been renamed the “Add-on Bar” and is disabled by default. Taking a cue from Chrome, URLs and status information is shown in as-needed in a small bar that hovers at the bottom of the browser window.

If you want to restore the original status bar functionality from previous versions of Firefox, Status-4-Evar brings back some of the old features and lets you specify exactly how you want things to appear.

A simple fix with Status-4-Evar

Simply download and install Status-4-Evar, then restart Firefox. If you don’t notice anything different right away, you’ll need to enable Firefox 4’s “Add-on bar” by clicking the Firefox menu, opening Options, and selecting “Add-on Bar”. You can also press Ctrl + /.

By default, Status-4-Evar will make all the little things right in the world: URL information will appear in the bottom left, the loading progress bar will appear somewhere in the middle, and add-ons will appear in the bottom right.

Status-4-Evar can do significantly more than just move things around in your status bar too. To access its options, open the Firefox Add-on Manager by pressing Ctrl + Shift + A and click Options under Status-4-Evar.

You’ll quickly find the developer of Status-4-Evar put a lot of time into this add-on; you can change the position of almost all elements in the status bar and even move them to different positions within the browser like the URL bar. This allows you to move the progress bar to the URL bar, just like the Fission add-on I covered in my Firefox add-ons for netbooks article.

If you find yourself missing the extra space that the only-show-when-needed hover status bar gave you, you can set Status-4-Evar to automatically hide itself after a customizable period of time.

Were you bothered by the new status bar in Firefox 4, or am I completely off my rocker? Share with me in the comments below.

Why I Left LastPass for 1Password

There are very simple reasons why password security is so important:

1) We can now access most of our private, confidential information online (bank accounts, email, and social networks), and

2) We’re lazy.

I’m not trying to make anyone feel bad with that last point. I’m really lazy, too. For years, I used only a few passwords and rarely changed them. It doesn’t take a long explanation to illustrate how dangerous that can be. If someone figures out your Facebook password and you use the same password for your email, the intruder can now log into your email and reset passwords for things like your online banking. And if you’ve ever wondered how embarrassing emails from politicians and celebrities end up getting exposed online, this is how it’s usually done.

A few years ago, I started using LastPass to manage my passwords, and it dramatically improved my online security. Password management software like LastPass lets you generate complicated, random passwords for each website you visit, and all you need to do is remember a single main password to access all of them.

While I love the idea behind LastPass, I haven’t been entirely comfortable with its execution. I made the switch to 1Password when it became available for Windows last year, and I’ll explain why it is a great idea, if you haven’t already done so.

1Password vs. LastPass

Although it wasn’t available for Windows until 2010, Mac users have been familiar with 1Password for quite a while. This award-winning password management lets you create strong, unique passwords, and locks them with a master password so you only need to remember a single password. Unlike LastPass, 1Password doesn’t have a free version, so why would I want to switch?

1Password lets me store my passwords locally

One of LastPass’s best features is that it stores your passwords online, so you can access them from anywhere by logging into your LastPass account. But even with amazing security, I could never feel completely secure leaving all my passwords in someone else’s hands, which is one of the biggest reasons why I switched to 1Password.

I’m braver than most technically inclined people I know, partly because I spend so much time using new technology that I have built up some sort of mental callus to its inherent risk, and party because I want to believe that most of these companies aren’t looking to screw over their users. But my paranoid tech-savvy friends aren’t wrong – we’ve seen countless examples of how companies have sold their customer’s private data for personal gain. And even if the company is 100% ethical, all it takes is for an unethical giant to buy them out and make dramatic changes to their privacy policies.

With 1Password, I can store my passwords locally on my computer so I never have to worry about a hacker breaking into a massive storage server somewhere in the world and potentially getting my information. This means I also need to be careful with how I store this information, but since 1Password encrypts everything it makes it pretty easy to keep your passwords safe. I love having total control over my data.

What if you need to access your passwords on multiple computers? This is a very realistic problem for almost all of us, and there are a few easy solutions with 1Password. You can use Dropbox, a super-easy file sharing program, to keep your passwords synced across multiple computers. And if you don’t feel comfortable doing that, you can simply save your 1Password files to a USB flash drive or portable hard drive to always have them handy.

Passwords stored with 1Password are already securely encrypted, but you can use a free application like TrueCrypt to ensure your passwords are inaccessible. The 1Password team wrote a great article about password security in cloud-based storage systems.

Great browser integration with hotkeys

This might seem a bit fickle, but I don’t think I could really get in the habit of using password management software that didn’t have an easy way to access my passwords and automatically insert them into my browser. 1Password has great browser plugins for Firefox, Chrome, and Internet Explorer, so I can log into my accounts effortlessly.

The best way to access your 1Password passwords in a browser is to use the hotkey CTRL + \.  When you press this key combination, a window will automatically appear prompting you to unlock your 1Password data, and after doing that you’ll see a list of any accounts available for the website you’re viewing.

1Password’s Chrome Plugin

When creating an account on any website, you should always use a unique, complex password. 1Password makes this very easy with their Generator option, where you can pick the password’s length and complexity. Since you don’t have to memorize it, why not make it as complicated as possible?

1Password’s Password Generator

One of my favorite features of 1Password’s password generator is its Pronounceable option. This lets you create a password that is easily pronounced phonetically (and thus easier to remember), which is great for using services like Twitter when you need to log into mobile apps.

If you accidentally reveal this to anybody, you can just convince them it’s the language you speak to your spirit animal in.

I’d rather pay for important software I’ll use every day

First off, LastPass does have a premium version that gives you access to mobile apps and better features. But it’s a subscription-based service, so this means you’ll have to keep paying for it as long as you want access to these features. If you ask me, I’m subscribed to way more services than I already want to be (Netflix, Audible, my mobile phone plan), and I really don’t feel like adding another monthly subscription.

1Password costs $49.99 (for Windows) which you pay once to completely own the software and receive all updates. And you know what? It’s completely worth it.

I use the same logic when explaining why it makes sense to pay for your operating system – this is software you’ll use every day, it will improve your life (I’m guessing you would be negatively affected if someone hacked your bank account because you were using insecure passwords), and its price is validated by 1Password’s high quality. I pride myself on supporting things I enjoy and improve my life, and I’d rather use the buy-it-once 1Password than a free version of LastPass.

1Password also has apps for Android, iPhone/iPod touch, and iPad, so you can always access your passwords on-the-go. The 1Password mobile apps also support Dropbox, making it easy to keep your passwords synchronized on your mobile device.

Image courtesy: mbrand

Dramatic Before and After Aerial Photos of Japan

The New York Times recently created an amazing mashup using before-and-after aerial photos of the destruction in Japan. The article contains over a dozen images taken from regions in Japan that were impacted by the recent earthquakes and tsunamis.

These images are interactive, so grab the blue slider in center to switch between the two images. The comparison is stark and really gives us perspective on how severe the damage in these regions really is.

[Satellite Photos of Japan, Before and After the Quake and Tsunami]

Chrome: ‘New Tabs At End’ Puts New Tabs at the End

Never has a title been more self-explanatory.

Chris Finke, who has previously developed killer Firefox add-ons like TwitterBar, ScribeFire, and the innovative TapSure for mobile Firefox, recently brought some much-needed functionality to Google’s Chrome web browser: the ability to open new tabs at the end of the tab bar, just like Firefox.

If you have a group of tabs open in Google Chrome and open a new tab from an existing tab, its child tab will open to the right of the parent. This keeps tabs groups logically, but with a busy tab bar it can be nearly impossible to figure out where your new tabs are appearing. This can be especially frustrating when opening links while browsing Twitter, since the new tabs won’t have similar favicons to visually differentiate them from existing tabs.

Yep, this can be confusing.

New Tabs At End does exactly what it says – it forces any new tab top open as the last tab on the right. This means that any freshly opened tab will be easy to find by glancing to the top right of your browser, and certainly helps me find what I’m looking for when I’m on a tab binge.

I understand why Chrome displays a new tab next to its parent by default, but with the limited functionality of a horizontal tab bar it only makes things more confusing. The single most important add-on I use in Firefox is Tree Style Tabs, which groups tabs vertically but also displays them in hierarchical trees so it’s easy to deal with groups of tabs with multiple parent-child relationships.

Chrome has been slowly working on their own flavor of vertical tabs, and I’m hoping they can come up with something similar to Tree Style Tabs when the feature is officially rolled out.