memonic

WinSplit Revolution

Save
What is WinSplit Revolution?

What is it for? WinSplit Revolution is a small utility which allows you to easily organize your open windows by tiling, resizing and positioning them to make the best use of your desktop real estate.

What can it do? WinSplit is especially useful for high-end LCD screens with high resolutions because it helps you to efficiently manage many active windows. For example WinSplit is useful for owners of the Dell 2407FPW monitor. As you can see in the screenshots below, the advantages of using WinSplit is that it saves you from having to drag and drop windows by allowing you to snap windows into specific tiled configurations using simple keyboard hotkeys.

 

screenshot

 


WinSplit Revolution is freeware. Some Rights Reserved.
This work is licensed under Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.

Upgrade and Zenburn the Console Window

Save

Upgrade and Zenburn the Console Window

Background

In Windows, console windows (aka command line or “DOS” windows) are special. In a UNIX-like environment a terminal emulator talks to a local virtual teletype and connects to three text streams: standard in, standard out and standard error. From the first version of Windows NT to now, the client-server runtime subsystem automatically creates a special window environment for any command-line program or shell. In fact, up until Windows 7, the window was actually owned by csrss.exe which runs with system privileges. These windows mostly look like the rest of Windows but they are different in deep ways. Even if you remove the entire graphics and windowing infrastructure from Windows as in Windows Server Core, you are left with the GINA logon screen and a console window which looks exactly the same because the code to draw them is in csrss.exe rather than the normal window manager. That’s also the reason why they aren’t themed in Windows XP. Console Windows also can’t be resized in the usual way. On the other hand, Console windows offer a richer programming environment than sdtin,stdout and sderror because they always have a title bar and exist within a window station which means that services like the clipboard can be assumed. The gist is that for reasons of backwards compatibility and security, it is difficult for Microsoft to change very much about how console windows work. And besides, it’s a nerd feature that normal people never use.

powershell-standard-console-scrollbars

For me, there are some minor annoyances with console windows that I mostly try to ignore:

  1. Console Windows aren’t easily resizable. You have to change the definition of the rows and columns. Dragging the window borders either creates scrollbars or does nothing.
  2. Copy operates in a block mode rather than a line mode. That means if you copy text, you end up having to fix it where line breaks were added or you can accidentally leave out columns and end up with garbage.
  3. Marking for copy blocks the execution of anything trying to write to the window. This makes “Quick Edit” mode dangerous because clicking on the window tends to freeze it. Because of item 1 and 3, I end up creating giant console windows and leaving them that way. The shortcuts that PowerShell creates for itself do this by default.

Enter Console.exe

Its not easy to replace console windows with something else. If you use a terminal emulator with VTYs in the POSIX subsystem (like xterm in the POSIX/SUA subsystem) some console applications that expect to interact with the console window or the window station service won’t run at all or only work in a special mode, like PowerShell. Also, the VTYs exist in the POSIX subsystem and don’t have access to your current window station, so you can’t start windowing applications from a terminal on a VTY (like “explorer .” to open Explorer in the current command shell directory).

Console (aka Console2) is a modern terminal environment like a Gnome Terminal or Konsole  for Windows that is 100% compatible with applications that expect a console window running in a window station. That’s because it works by hooking and hiding the console window created by CSRSS while providing a richer user environment. I gave up on this thing when I started using Vista x64 because it was broken. It has matured a lot since then and the latest beta works great with Windows 7 x64.

  • Arbitrary window resizing by dragging the borders!
  • Copy selects lines and keeps line breaks intact like xterm et al. (Hint: the default is SHIFT+{mouse-select} to select, {mouse-click} to copy and {mouse-middle-click} to paste.)
  • Available tabbed environment.
  • Easily configure fonts without editing the registry.
  • Save multiple shell environments (like visual studio command prompt, cygwin, powershell, etc.)
  • Also, there are toys like transparency and background images.
  • All the key bindings and window layout stuff is configurable.
  • The windows console function key bindings (like F7 for history) still work.
Unfortunately, selecting text still blocks the underlying windows console and therefore the execution of any script or application that might be generating text, but we get a configurable quick edit behavior where the defaults won’t have you accidentally selecting and blocking a window.

It Just Needs Zenburn

Zenburn is a low contrast color scheme originally developed for Vim and subsequently ported to almost everything. It’s a dark, low eye strain theme that is very addictive.

Here are Zenburn colors for console.xml:

 

01
<colors>
02
        <color id="0" r="62" g="62" b="62"/>
03
        <color id="1" r="100" g="100" b="175"/>
04
        <color id="2" r="0" g="128" b="0"/>
05
        <color id="3" r="0" g="128" b="128"/>
06
        <color id="4" r="51" g="35" b="35"/>
07
        <color id="5" r="170" g="80" b="170"/>
08
        <color id="6" r="220" g="220" b="0"/>
09
        <color id="7" r="220" g="220" b="204"/>
10
        <color id="8" r="192" g="128" b="128"/>
11
        <color id="9" r="175" g="175" b="255"/>
12
        <color id="10" r="127" g="159" b="127"/>
13
        <color id="11" r="140" g="208" b="211"/>
14
        <color id="12" r="227" g="113" b="113"/>
15
        <color id="13" r="200" g="128" b="200"/>
16
        <color id="14" r="240" g="223" b="175"/>
17
        <color id="15" r="255" g="255" b="255"/>
18
</colors>



Console.sf.net with Zenburn colors showing muted red error.zenburn-console
Console.sf.net with muted colors showing F7 history popup.zenburn-console-popup
Console.sf.net with Zenburn colors, multiple tabs and transparency. (The elephant is my desktop wallpaper.)
console-tabs-transparency

                    
                    
                

Stuff I Just Dig

Save
TAX DEDUCTIBLE DONATIONS: If you enjoyed this post, or this blog, please make a secure tax-deductible donation directly to the American Diabetes Association. Please read my personal story about life as a diabetic and donate today. ALL PROCEEDS will go to Diabetes Research.

Tweet This!Everyone collects utilities, and most folks have a list of a few that they feel are indispensable.  Here's mine.  Each has a distinct purpose, and I probably touch each at least a few times a week.  For me, util means utilitarian and it means don't clutter my tray.  If it saves me time, and seamlessly integrates with my life, it's the bomb. Many/most are free some aren't. Those that aren't free are very likely worth your 30-day trial, and perhaps your money.

Here are most of the contents of my C:\UTILS folder. These are all well loved and used.  I wouldn't recommend them if I didn't use them constantly. Things on this list are here because I dig them. No one paid money to be on this list and no money is accepted to be on this list.

Personal Plug: Discover more cool tools and programming tips on my weekly Podcast with Carl Franklin - Hanselminutes (Podcast Feed/Podcast Archives) - "Our show is guaranteed not to waste your time. Free free to listen in double speed and waste half as much."

This is the Updated for 2009 Version of my 2003, 2005, 2006, and 2007 List, and currently subsumes all my other lists. Link to http://www.hanselman.com/tools when referencing the latest Hanselman Ultimate Tools List. Feel free to get involved here in the comments, post corrections, or suggestions for future submissions. I very likely made mistakes, and probably forgot a few utilities that I use often.

  • New Entries to the 2009 Ultimate Tools are in Red. There are dozens of additions and many updated and corrected entries and fixed links. I started doing this list for SIX YEARS which is like 42 internet years ago. I've also removed some older stuff that no long matters in 2009.
  • Japanese Translation: Yasushi Aoki has translated the 2009 Tools List to Japanese! You can find it here http://www.hanselman.com/tools/ja-jp/ 訳: 青木靖.
NOTE: Please don't reproduce this in its entirety, I'd rather you link to http://www.hanselman.com/tools. I appreciate your enthusiasm, but posts like this take a lot of work on my part and I'd appreciate that work staying where it is and linked to, rather than being copy/pasted around the 'net. If you're reading this content and you're not at http://www.hanselman.com/, perhaps you'd like to join us at the original URL?

"But these go to eleven..." - Nigel Tufnel

  • SharedView - There's a lot of screensharing utilities out there. There's even Remote Assistance built into Windows. But when you need 15 people to share your screen, each with their own mouse, you want it to work over firewalls and you want it free, there's SharedView.
    • Here's some alternatives: CrossLoop is a nice little screen sharing system, based on VNC, that punches through firewalls, much like Copilot.com, but it's free.
  • AutoHotKey - This little gem is bananas. It's a tiny, amazingly fast free open-source utility for Windows. It lets you automate everything from keystrokes to mice. Programming for non-programmers. It's a complete automation system for Windows without the frustration of VBScript. This is the Windows equivalent of AppleScript for Windows. (That's a very good thing.)
    • Make sure you get the "AutoCorrect for English" script on the Other Download page. It's got 4700 common English Misspellings. It gives you autocorrect everywhere in Windows. Every program, always. It's just the tip of the iceberg.
  • Paint.NET - The Paint Program that Microsoft forgot, written in .NET. If you like to live on the edge, go get the Paint.NET 3.5 Alpha build with enhanced Windows 7 features.
  • Fiddler - The easy, clean, and powerful debugging proxy for checking out HTTP between here and there. It even supports sniffing SSL traffic.
  • PowerShell - The full power of .NET, WMI and COM all from a command line. PowerShell has a steep learning curve, much like the tango, but oh, my, when you really start dancing...woof. I also use PowerShell Prompt Here. It's built into Windows 7, by the way.
    • I also recommend after installing PowerShell that you immediately go get PowerTab to enable amazing "ANSI-art" style command-line tab completion.
    • Next, go get the PowerShell Community Extensions to add dozens of useful commands to PowerShell.
    • If you're willing to pay (and wait a little) keep an eye on PowerShell Plus. Certainly not required, but very shiny.
  • Windows 7 - I almost didn't put this on the list, but let's be serious. Windows Vista was death by a thousand tiny cuts. Windows 7 fixes all these little nits and adds hundreds more little gems. I discover something pleasant and useful every day.
  • Evernote and RememberTheMilk - These two apps manage notes and todos and they do it in an elegant and cross platform way. Evernote works on the Mac, Windows, iPhone, Palm Pre, Windows Mobile and BlackBerry and your notes live in the cloud. Remember The Milk is your todos any way you like them, from Google Calendar, Twitter, BlackBerry and Bookmarklets.
  • 7-Zip - It's over and 7zip won. Time to get on board. The 7z format is fast becoming the compression format that choosey hardcore users choose. You'll typically get between 2% and 10% better compression than ZIP. This app integrates into Windows Explorer nicely and opens basically EVERYTHING you could ever want to open from TARs to ISOs, from RARs to CABs.
  • SysInternals - I want to call out specifically ProcExp and AutoRuns, but anything Mark and Bryce do is pure gold. ProcExp is a great Taskman replacement and includes the invaluable "Find DLL" feature. It can also highlight any .NET processes. AutoRuns is an amazing aggregated view of any and all things that run at startup on your box.
    • A great new addition to the SysInternals Family is Process Monitor, a utility that eclipses both Filemon and Regmon. It runs on any version of Windows and lets you see exactly what a process is doing. Indispensable for developing.
    • It's also worth calling out the legendary Process Explorer as a standout and must-have utility.
  • Windows Live Writer - If you've got a blog (and if not, why not?) then this is THE app. They've also got a thriving plugin community. It's the second app I install. 

"Windows 7 is so full of win" - Overheard at Starbucks

  • Gmail Notifier Plus for Windows 7 - This is a Gmail notifier that's specifically written for Windows 7 and meant to light-up the Windows 7 "SuperBar." It adds an overlay icon showing them number of unread messages, a "toast" window with a preview of your emails, common tasks, and a Jump List to open emails directly. It also supports multiple languages and multiple accounts.
  • Ultramon Beta or DisplayFusion - Also see below in "Stuff Windows Forgot." Go get Ultramon 3.0.7 Beta or above or get Display Fusion. They both add multiple-taskbar support for Windows (all versions, including Windows 7) that's very compelling. Unfortunately they each are 90% of the way there, just a different 90% and as of the time of this writing, it's unclear who will run. I'm running trials of both. Ultramon has the very nice "light tracking" feature as you roll over their multiple monitor buttons and no preview, but DisplayFusion also supports the "Aero Preview" thumbnailing, but their light tracking looks wrong. Either way, it's great that someday, and soon, the missing multiple monitor taskbar problem will at least be fixed by a 3rd party.
  • 7stacks - The free little app does one thing. It gives you "stacks" of icons that fly up from your Windows 7 (or XP or Vista) taskbar.
  • Virtual Windows XP - Not yet released as of the time of this writing, but available as a "Release Candidate" this new version of Windows Virtual PC lets you run Windows XP applications next to your Windows 7 apps for the ultimate in backward-compatibility. You can run Vista and other VMs as well.

"Sometimes I think sensitive people are more capable of reflection because they have to shut the world out to function." - @mfeathers

  • LINQPad - Interactively query your databases with LINQ with this tool from Joseph Albahari. A fantastic learning tool for those who are just getting into LINQ or for those who want a code snippet IDE to execute any C# or VB expression. Free and wonderful. There's a whole list of LINQ related tools on Jim Wooley's site as well.
  • FireBug - Arguably the most powerful in-browser IDE available. It's a complete x-ray into your browser including HTML, CSS and JavaScript, all live on the page. A must have.
  • Microsoft Web Platform Installer - When I need to take a machine from fresh install to developer machine quickly, I start at http://www.microsoft.com/web/ and use the Platform Installer to get SQL Express, Visual Studio Express and several dozen other applications installed fast. It's also nice in that it'll setup PHP and ASP.NET open source applications easily.
  • .NET Reflector - If you haven't heard of Reflector you're probably not a .NET developer. The tool that changed the world and the way we learn about .NET. Download it, select an interesting method and hit the space bar. Take the time to install the Add-Ins and check out the amazing static analysis you can do with things like the Diff and Graph.
  • THREE WAY TIE: Notepad2 or Notepad++ (Scite also uses the same codebase) or E-TextEditor - The first two are great text editors. Each has first class CR/LF support, ANSI to Unicode switching, whitespace and line ending graphics and Mouse Wheel Zooming. A must. Here's how to completely replacenotepad.exe. Personally I renamed Notepad2.exe to "n.exe" which saves me a few dozen "otepad"s a day. Here's how to have Notepad2 be your View Source Editor. Here's how to add Notepad2 to the Explorer context menu. E-TextEditor is new on the block this year, inspired by TextMate in the Macintosh. It includes a "bundle" system that uses the scripting power of the Cygwin Linux-like environment for Windows to provide a more IDE-like experience than Notepad2 or Notepad++. It costs, though, but you should absolutely try it's 30-day trial before you shell out your US$35.
    • Notepad++ is built on the same fundamental codebase as Notepad2, and includes tabbed editing and more language syntax highlighting. Is one better than the other? They are different. I use Notepad2 as a better Notepad, but more and more I find myself using E-TextEditor aka TextMate for Windows when I need to crunch serious text. As with all opinions, there's no right answer, and I think there's room for multiple text editors in my life. These are the three I use.
    • I'm spending time in HippoEdit lately as well. It may just be the perfect combination of all of the above...the jury is still out, but it's worth a look.
  • CodeRush and Refactor! (and DxCore) - Apparently my enthusiasm for CodeRush has been noticed by a few. It just keeps getting better. However, the best kept secret about CodeRush isn't all the shiny stuff, it's the free Extensibility Engine called DxCore that brings VS.NET plugins to the masses. Don't miss out on free add-ins like CR_Documentor and ElectricEditing.
    • Also, spend some time with Resharper. The fight between them and CodeRush is truly a religious one and folks SWEAR by R#. Try both and decide for yourself!
  • ZoomIt - You need to present? Make your stuff seen. ZoomIt is so elegant and so fast, it has taken over as my #1 screen magnifier. Do try it, and spend more time with happy audiences and less time dragging a magnified window around. Believe me, I've tried at least ten different magnifiers, and ZoomIt continues to be the best. Even though there's magnification built into Windows 7 via the "Window + Plus" key, I keep ZoomIt around so I can draw on the screen like John Madden.
  • WinMerge or BeyondCompare - I'm a BeyondCompare person and have purchased it, but WinMerge is getting better and better. It's free, it's open source and it'll compare files and folders and help you merge your conflicted source code files like a champ.
    • KDiff3 is another free option with very configurable color schemas, multi-paned view, and it's cross platform on Linux, Windows and Mac.
  • Storm - You test a lot of Web Services? Check out Storm, it's Open Source and written in F#, but it'll let you test Web Services (of course) written in anything. A fine way to smoke test multiple web services from a single place.
  • NirSoft Utilities Collection - Nearly everything NirSoft does is work looking at. My favorites areMyUninstaller, a replacement for Remove Programs, and WhoIsThisDomain.
    • Also check out ZipInstaller; it installs utilities that don't provide their own installer! It creates icons, puts them in the folder you want and adds an uninstaller.
  • BugShooting - Funny how you don't know if you need an application until you need one. BugShooting is very specific - it takes screenshots, sure, but more importantly it sends them directly into your Bug Tracking system.
  • WinCheat - Not a tool to cheat Windows or in games, WinCheat is like Spy++ in that it lets you dig deep into the internals of the PE format and the Win32 Windowing subsystems. I'm consistently surprised how often I need an app like this.
  • Telerik Code Converter - Website that converts C# to VB and VB to C#.
  • Kaxaml - The original and still the most awesome notepad for XAML, a must for WPF or Silverlight developers.
  • MSBuildShellExtension - Really ought to be built in. Right-click on any .NET project and build it directly from Explorer.
  • FireBug - Arguably the most powerful in-browser IDE available. It's a complete x-ray into your browser including HTML, CSS and JavaScript, all live on the page. A must have. It's on the list twice. Go get it.
  • WebDeveloper for FireFox - If you're the last developer to download FireFox, or you're holding off, WebDeveloper is a solid reason to switch to FireFox NOW. It's amazing and has to be used to be believed. It consolidates at least 2 dozens useful functions for those who sling ASP.NET or HTML. And if you're a CSS person, the realtime CSS editing is pretty hot.
  • CodePaste.NET - When you write code, you need to share it.
  • TestDriven.NET (integrated with NCoverExplorer) - The perfect combination of Unit Testing with Visual Studio.NET. Right click and "Run Test." The output window says "Build" then switches to "Test." The best part, though, is "Test With...Debugger" as a right click that automatically starts up an external process runner, loads and starts your test. Compatible with NUnit, MBUnit and Team System. TD.NET also works with Silverlight.
  • Silverlight Spy - If you ask anyone who does Silverlight, they'll say there's only one must-have tool. Silverlight Spy and this is it.
  • NDepend - This amazing app does dependency analysis on your .NET application and presents the findings as a TreeMap.
  • Query Express - Wow, a Query Analyzer look-alike that doesn't suck, doesn't need an install, is wicked fast, is free and is only 100k. Pinch me, I'm dreaming.
  • WatiN Test Recorder - WatiN is Web Application Testing in .NET, and this Test Recorder will generate chunks of source for you by recording your clicks in an embedded IE browser. It makes my old WatirRecorder pale in comparison.
  • Jeff Key's Snippet Compiler - Sits quietly waiting for you to test a quick snippet of code or algorithm.  No need to even start VS.NET! Jeff hasn't updated it in a while, but perhaps its *re-inclusion* on this list will pressure him to get working on it again. Seriously. Jeff. Give it to me and I'll update it myself.
  • TreeTrim or Jeff Atwood's CleanSourcesPlus - Jeff extends on Omar's idea of a quick Explorer utility that lets you right click on any folder with code in it and get your bin,obj,debug,release directories blown away. Jeff's includes configuration options for deleting things like Resharper folders and Source Control bindings. TreeTrim is a similar command-line tool for cleaning up, but on steroids, including a plugin model.
  • Visual Studio Gallery - All the world's extensions to Visual Studio in one place, and ranked by the public. Easy to search and sort.
  • FileHelpers - This open source library is the easiest way I've found to get data out of fixed-length or delimited text files and into Sql or Excel.
  • MemProfiler - The amount of information this tool offers is obscene. We used this at my last job to track down a number of funky memory leak
  • LogParser - Get to know it, as it's a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources, and get the results out to an array of destinations, from SQL tables to CSV files. I dig it and use it to parse my own logs

"If you use XML you have to pay the Angle Bracket Tax" - John Lam

  • XPathMania and Mvp.XML - This is an extension to the XML Editor within Visual Studio 2005 that allows you to execute XPath queries against the current document dynamically. Created under the Mvp.Xml umbrella project - also a kickbutt XML extension library.
  • SketchPath for XPath - SketchPath does for XPath what Regulator did for Regular Expressions. It's totally hardcore.
  • XmlSpy - Just buy it.
  • Search Engine Optimization (SEO) Toolkit - Got broken links on your site? Is your HTML SEO optimized? This fantastic free tool answers all these questions and hundreds more as it chews your angle brackets for you, creating flexible reports and a full queryable database of your site.

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.  - Jamie Zawinski

  • TextCrawler - I used to use Funduc's Search and Replace for multi-file search and replace with regular expressions, but somehow the interface of TextCrawler is more intuitive to me.
  • David Seruyange's "NRegEx" Ajax-based RegEx Tester - An very minimalist online Ajax-based ASP.NET site, I keep turning to this via a bookmark when I want to test a quick RegEx. It'll tell me how a RegEx will work in .NET.
  • gSkinner - An amazing Flash-based online RegEx tool for writing and testing RegEx.
  • RexV - Another excellent, better laid out RegEx evaluator, useful for RegEx's that'll run in JavaScript.
  • Roy Osherove's Regulator - Roy entered the RegEx fray with a bang, and with syntax highlighting and web services integration with regexlib.com. The very definition of slick.
    • Regulazy - Currently at version 1.01, this tool is a great way for newbies to start using Regular Expressions. Write regular expressions without prior knowledge of the syntax!
  • Collection of Regular Expressions Toolbox - When I'm overwhelmed, I start here. A huge list of all the basics of Regular Expressions, laid out cleanly and logically. I also like these 8 Regular Expressions You Should Know.
  • RegexDesigner.NET from Chris Sells - Simple, elegant, small. A great little application.

Scott's Note: Personally, I'm all about Windows 7 now, so I'm not using a 3rd party launcher any more as I don't see the need. However, here are some stand-outs I've used in the past that you might want to check out.

"Engage." - Jean-Luc Picard

  • Slickrun - still the sexy favorite, this little floating magic bar keeps me moving fast, launching programs, macros and explorer with its shiny simplicity.
    Tell them I sent you.
    • Also available is an Open Source project called MagicWords (not updated since Feb 07) that looks similar to SlickRun.
  • Martin Plante has created SlimKeys and continues to innovate his a "universal hotkey manager" with a .NET plugin architecture. If you've got ideas or thoughts, visit the slimCODE Forums.
    Have you ever wanted to bind something to Shift-Ctrl-Alt-Window-Q but didn't know how to grab a global hotkey? This will launch programs, watch folders, and find files. There's a growing plugin community.
  • Humanized Enso - Unquestionably the smoothest and most interesting user interface of the launchers, Enso pops up as the Caps-Lock key is held down, and performs the command when the key is released. It takes a minute to understand, but it's a very clean UI metaphor. They are now bringing Enso's metaphor to Firefox as "Ubiquity."
  • Colibri - The closest thing so far, IMHO, to Quicksilver on Windows, although this little gem has a slow startup time, it runs fast! It's being actively developed and promises integration with a dozen third party programs. It also formally supports "Portable Mode" for those of you who like to carry your apps around on a USB key.
  • Launchy - Another do it all application, Launchy binds to Alt-Space by default. This app also has the potential to be Quicksilver like if it start including support for stringing together verb-noun combos. It's pretty as hell and totally skinnable (there's TWO Quicksilver skins included!)

Stuff I Just Dig

"Sweet sassy molassey." - Karl Malone

  • Hulu Desktop - Forgive me ahead of time if you don't live in the US, but Hulu Desktop is so awesome it's insane. It's all the goodness of Hulu including TV shows and movies, with the "lean-back" convenience of a Media Center. Seriously, tell your friends.
  • Mesh - It synchronizes all your files across all your machines and the cloud. It also gives you remote desktop access to your computers when you're away. You can even access files from your mobile phone or access a "Web Desktop" from anywhere.
  • µTorrent - I say "u-torrent" but I suppose "micro-torrent" is more correct. When you need a BitTorrent Client to download your Legal Torrents or my podcast torrent, there's no better, faster, cleaner or more powerful client out there. Love it.
  • xplorer2 - Norton Commander-like functionality for Windows. It's one better than Explorer. There's 32-bit and 64-bit versions and it supports Windows 7.
  • RescueTime - Are you productive? Are you spending time on what you need to be spending time on? RescueTime keeps track of what you are doing and tells you just that with fantastic reports. Very good stuff if you're trying to GTD and TCB. ;)
  • SyncBack - How can you not like a company named 2BrightSparks? There's a Freeware SE version as well. Golden, with a clean crisp configuration UI, I use this tool internally for scheduled backups and syncs between machines within my family network.
  • EtherPad - This web-based multi-person interactive notepad has quickly become my #1 tool for brainstorming online with my remote team.
  • TimeSnapper - Tivo for your desktop? Kind of. TimeSnapper can't give you files back, but it'll take a screenshot in the background at user-configurable intervals and let you answer the burning question - What was I doing all day at work? Free and only 80k. Another brilliant idea blatantly stolen off my list of things to do and executed by folks more clever than I. Kudos.
  • Jing - Jing is a weird little app that is a screenshot app, a screencast app and a sharing app. It's incredibly easy to use and includes a free account at screencast.com for sharing your videos. It keeps pulling me back into it's strange gravity.
  • WinSnap and Window Clippings - I'm torn between two of the finest screenshot utilities I've ever found. WinSnap has as many (or as few) options as you'd like. Also does wonders with rounded corners and transparency, as does Window Clippings. Both include a 32-bit and 64-bit version, as well as a portable no-install version and WinSnap offers Windows 7 taskbar features. However, Window Clippings also has no install, includes 32 and 64-bit, has a plugin model and is only $18. It's a tough one. I use Window Clippings at least daily, and I use WinSnap a few times a week. Kenny Kerr of Window Clippings is actively adding new features and has a nice clean add-in model on his Developers site. Both these apps are worth your download.
  • BabySmash! - OK, I snuck it in. So sue me. It's not a tool, or is it? If you've got an infant and you need to entertain them while you sneak in some coding, it's invaluable. ;)
  • DarkRoom - When I just want everything to go away so I can think, I don't just want a clean desktop, I want a Dark Room to work in. I love this text editor for getting my thoughts straight. I also use it for more dramatic presentations.
  • Foxit Reader for Windows - Fast as hell. Version 3.1 is even better. This little PDF reader requires no installer and is tiny and fast. Did I mention fast? Good bye, Acrobat. Sorry.
  • Visual Studio Theme Generator and Best Visual Studio Themes - This online application will actually dynamically generate a new Visual Studio color theme file for you. Or you can download a hand-built one and make Visual Studio yours.
  • Virtual TI-89 [Emulator] - Sometimes CALC.EXE doesn't cut it, and I want a REAL scientific calculator for Windows, so I emulate the one I used in college. Nerdy? Yes.
  • VLC Media Player - Screw all other media players. When you just want to watch video. Bam.
  • FAR File Manager - Norton Commander is back, it is still text mode, it's still lightning speed and it's from the makers of RAR File Archiver. I'll race you. I get FAR, you get Explorer.
  • Skype - Internet VOIP Calls with better sound than the POTS phone? Free? Conference calls as well? Sign me up.
  • DOSBox - When you're off floating in 64-bit super-Windows-7-Ultimate land, sometimes you forget that there ARE some old programs you can't run anymore now that DOS isn't really there. Enter DOSBox, an x86 DOS Emulator! Whew, now I can play Bard's Tale from 1988 on Windows 7 from 2009.
  • Cygwin - Remind yourself of your roots and give yourself a proper Unix prompt within Windows. However, it's less about the prompt as it is about the wealth of command-line tools you'll gain access to.
  • SketchFlow or Balsamiq - All good designs started out as sketches, but rather than using paper and pencil, use a UX (User Experience) sketching tool to decide what your application should look like and how it should behave.
    • Others to check out are Pencil for UI prototyping and IxEdit for interaction design without JavaScript.
  • FinePrint - This virtual printer lets you save paper, print booklets, delete pages and graphics, and provides print preview for every application. I love these guys so much it's inappropriate.
  • Fraps - DirectX video capture! Exactly what you need when you want full screen video of a DirectX or OpenGL application.
  • Expression Encoder 3 - When I do videos for the web, I record in 720p but I squish all my stuff with Expression Encoder. Version 3 added screen capture as well as better H.264 support.
  • Tor Anonymous Browsing - This tool lets your anonymous your web browsing and publishing. Use it when you're on the road, or staying in a hotel. Try PortableTor if you want to run it all of your USB key.

"Unix is user-friendly. It's just very selective about who its friends are."

  • The Ultimate Boot CD and the Ultimate Boot CD for Windows - I've downloaded and saved everything from BootDisk.com, including Win95 and Win98 boot disks and a DOS 6.22 disk. The boot CDs are life-savers and should be taken to all family gatherings where the relatives KNOW you're a computer person. They'll expect you to save their machines before the turkey is served.
  • GSpot - If you are Deeply Interested in know what codec that video is using, GSpot will likely be able to tell you more than you could possible care to.
  • Bart's Preinstalled Enviroment (BartPE) - Ever want to just boot quickly off a CD and get some data off an NTFS drive? What about network access? This is a bootdisk you'll keep in your bag all the time. Unfortunately, it's not been updated in a while, but I keep it around anyway.
  • DllFiles - You never know when you might need an old-ass dll.
  • PInvoke.NET - When you've got to call into a system DLL from managed code, at least do it with the help of this wiki that's FULL of the correct DllImport statements.
  • Videroa Converters - I love these guys. They have Video convertors for iPhones, PSPs, XBox360, Tivos, AppleTVs, everything. They are all free, but do donate to them if you can.
  • Snoop and Mole - These amazing WPF developer utilities help you visually debug your applications at runtime. What's on top of what? Where's that panel? These are how you find out.
  • DVDDecrypter and other utils -  When you just need to make an archival backup copy of a DVD.
    • PSPVideo9 - Meant for the Playstation Portable, this utility is more useful that you think. It creates MP4 squished video you can use anywhere.
  • WireShark - Used to be called Ethereal, but it's Wireshark. Very free, and very good. Although, I've needed it less and less as I find myself using...
  • ...the Microsoft Network Monitor 3.3 - Version 3.x was a fine upgrade to NetMon, overhauling the guts. This is a very full featured sniffer and I've never had a problem with it.
  • Top 100 Network Security Tools - Ever useful network security tool there is in a fantastic list.
  • Process Explorer - The ultimate replacement for TaskManager. Includes the amazing Find DLL feature to find out what processes have your DLL in memory.
  • Strings - Gives you more detail that you can handle about text hidden within binaries.

"The Internet...It's a series of tubes." - Former U.S. Senator Ted Stevens

  • TinyUrl.com - Makes big urls tiny. For when you're emailing a long URL to someone and you KNOW they will freakout it if wraps. Great for making URLs that the family will understand, although, the REAL heir to the Tiny Url throne is:
    • Bit.ly - All the goodness of TinyUrl with statistics, real-time tracking, accounts and much, much more. If you get a Bit.ly url, add a + to the end of it to see lots of statistics!
  • BrowserShots - What's your site look like in MSIE4.0? Opera 9.64? This site will show you.
  • Visibone HTML/JavaScript Reference - These guys make a great physical paper reference, but they also have a great .HTML file you can download for free that has ASCII charts and Color references.  It's a link I keep close by.
  • StackOverflow - Get your questions answered here! If you haven't heard, you better ask someone.
  • SQL Designer - A web-based DHTML/AJAX SQL Entity Relationship Designer that exports .SQL files. Seriously. Drink that in, then visit it.
  • BugMeNot - Being forced to log into a website or news organization but you don't have a username or don't want one? BugMeNot.
  • Del.icio.us - A social distributed bookmarks manager. It took me a bit to get into it, but their Bookmarklets that you drag into your Links toolbar won me over. All my bookmarks are here now and I can always find what I need, wherever I am. Very RESTful. I have used this for YEARS.
  • Color Scheme Designer - I'm not a designer and I have no style, but I do know what I like. This site makes it easy to brainstorm, design and tweak a color scheme for your next big project.
  • TypeTester - The very best way to compare up to three different web-typefaces.
    • What the Font? - This website will let you upload an image with a font and it'll guess (usually right) what font it is.
  • 32 Bookmarklets for Web Designers - I use these when I'm DEEP into some thing CSSy and it's tearing me apart.
  • http://www.downforeveryoneorjustme.com/ - Is that Website Down For Everyone Or Just Me? Enough said.
  • QuirksMode - Over 150 pages of details on CSS and JavaScript. When my brain is overflowing with the HTML of it all, I head here.
  • Google Maps + HousingMaps.com - Google Maps is cool, but Paul Rademacher's HousingMaps.comis synergy. It was the first great Mashup of Web 2.0 and I keep it around to remind me of what's possible if you keep an idea fresh and simple.
  • YouGetSignal - Amazingly helpful collection of online networking tools.
  • XRay - This sleek little bookmarklet lets you quickly see all the CSS attributes attached to any HTML element.
  • The Morning Brew - The website I read every work day that helps me keep up on what's new in .NET.
  • PortableApps.com - Take all your favorite apps with you on a USB key without installing them! All your settings remain. Be sure to get PStart, the handy Portable Apps Launcher for the Tray.
  • JSLint - Just what is sounds like, it's a JavaScript "Lint" tool that will tidy up your JavaScript and also tell you why your code sucks.

"Never trust a computer you can’t throw out a window." - Steve Wozniak

 

"The Internet?  Is that thing still around?" - Homer Simpson

  • GetRight - Downloads, resumes and most importantly, splits up large downloads over HTTP or FTP into as many as 10 concurrent streams. Great with FlashGot for FireFox.
  • Delicious - Be sure to get their Del.icio.us IE Buttons and shiny Firefox extension. However, if you use Firefox and you REALLY want a seamless experience for your bookmarks, use the Yahoo! Del.icio.us Bookmarks extension.
  • WebDeveloper for FireFox - If you're the last developer to download FireFox, or you're holding off, WebDeveloper is a solid reason to switch to FireFox NOW. It's amazing and has to be used to be believed. It consolidates at least 2 dozens useful functions for those who sling ASP.NET or HTML. And if you're a CSS person, the realtime CSS editing is pretty hot.
  • IEView and ViewInFireFox - These two utils go together. Both are FireFox extensions, but they are yin to the others yang. They add View in Internet Explorer and View in FireFox context menu items to their respective browsers. Great if you develop, but also great if you tend to visit sites that aren't browser agnostic.
  • FireFox Extensions - Stunning! Extensions for my browser that won't kill my family! CopyPlainText, DownloadManagerTweak, AdBlockPlus, and GreaseMonkey.

"I didn't know anything about this. So I called up some folks at Microsoft, and apparently we make a lot of different image editors." - Steve Balmer

  • Ultramon Beta or DisplayFusion - It's not clear why, but Windows 7 doesn't have a taskbar on every monitor. However, these two tools add this functionality back.
  • ClipX - "ClipX is a tiny clipboard history manager. It is sweet, it is free, use it."
  • Console2 - An open source Windows console enhancement with transparency, different styles, and more. Yum. I found this one a few years ago and it keeps getting better.
  • ImgBurn - Well, yes and no. Windows 7 includes a basic ISO burning app, but ImgBurn has the right balance of clean interface and piles of technical information. I like to know exact what's happening when I burn a disk and Free ImgBurn is a joy to use. Don't let their website freak you out. It's THE burning app to get.
  • PureText - Ever wish Ctrl-V didn't suck? And when I say "suck" I mean, wouldn't you rather spend less of your live in Edit|Paste Special? PureText pastes plain text, purely, plainly. Free and glorious. Thanks Steve Miller
  • MagicISO/MagicDisk - Another great utility with a scary website. The trial is a little crippled, but you can mount ISOs on Windows (including Windows 7), create and extract image files, make bootable CDs and DVDs and more.
  • Paint.NET - The Paint Program that Microsoft forgot, written in .NET. If you like to live on the edge, go get the Paint.NET 3.5 Alpha build with enhanced Windows 7 features.
  • Wim2VHD - This is REALLY advanced stuff and Windows didn't really "forget" it as it didn't include it out of the box. If you want to make a bootable and "sys-prepped" Windows 7 Virtual Machine from your Windows 7 DVD media, this is the script for you.
  • TrueCrypt - I love that this is free. Create a file or partition and encrypt the heck out of it. You can even encrypt a secret drive that'll have "decoy" documents that you can give the bad guys when they torture the password out of you. Prepare your getaway drive now.
  • TeraCopy - I'm not sure/convinced yet that TeraCopy is really faster than RoboCopy, but it feels faster. I do a lot of network file copies that go on for hours, and TeraCopy has the right balance of a clean interface and badassness to make the list. The error recovery is top-notch also.
  • BareGrep and BareTail - Really everything these guys do is worth your time. There's lots of ways to get this functionality, including the GNU Utils for Windows and BareTail. The point is, it should have been included! A "tail -f" for Windows.  Great if you work with programs that write to log files and you want to watch the log as it's being written.  Also has keyword highlighting so you can see things get visually flagged as they go by. Also, who doesn't want to Grep?
  • PassPack or KeePass - If you have a crapload of secrets and passwords and you'd like to keep them as such, take a look at these two utils. PassPack is largely online while KeePass is totally offline. KeePass is free and open source with a very clean and very powerful interface.
  • Everything - You wouldn't think with Windows 7's search being awesome that there'd be a search tool on the list. However, Everything is a little different. Sometimes you just want to search everything on your system by filename. Not contents, just files. Where's "hosts" stored? Where's that Visual Studio project item zip file? Everything finds those things quickly.
  • SpaceSniffer - Everyone's always looking for a great tool to find out what's taking up all the space on your hard drive. SpaceSniffer is fast, pretty, fun to watch and powerful. I'm using SpaceSniffer today, but I've also liked:
    • DiskView - The most powerful disk usage program I've found, DiskView integrates nicely with Explorer and includes SMART disk health statistics.
    • SequoiaView - A fast Treemap of your disk usage. The original.
    • WinDirStat - There's a lot of Disk Visualization Tools out there, but this one just seems to tell me exactly what I need to know and it can be run without installation.
    • OverDisk - This one's stuck at version 0.11b but it's still worth a download. It's a pie chart view of your disk space usage. It runs really slow - takes forever, really - however, it's worth the wait.
  • Prish Image Resizer - Yes, you heard me right, son. That means Right-Click an image in Explorer and freaking RESIZE IT BABY. Lovely. Reliable. Wife loves it. Works in 32-bit and 64-bit.
  • BgInfo from SysInternals - If you log into a lot of boxes remotely and always wonder, where the hell is this? This wallpaper tool creates custom wallpapers with all the information you'd need, like IP Address, Box Name, Disk Space, and it's totally configurable.
  • SmartFtp - Say what you like, but I've tried them all, and SmartFtp is flat-out the best FTP app out there for Windows. And they get a +1 charisma for having a 64-bit version.
  • SharpKeys - Do you want your Right-CTRL key to map to the Windows Key? I do. Why can't I do it with Windows' Control Panel? Because Windows forgot. Thankfully Randy didn't. Remap any key in Windows.
  • PC De-Crapifier - So you just bought a Dell for $300 and it has a $4000 value worth of Crapware. Get ride of that poo with the De-Crapifier.
  • Spybot - The first thing I install when I visit a relatives house. Seriously. Step One.
  • Magical Jelly Bean KeyFinder - Misplace your Windows and Office Product Keys?  Find them with this.
  • Bulk Rename Utility - A graphical and incredible versatile way to rename large numbers of files using a myriad of patterns. Invaluable.
  • PSTools from SysInternals - All the command-line tools that Windows forgot...kill, loggedon, remote exec, shutdown, getsid, etc.
  • Terminals - An Open Source multi-tabbed Remote Desktop client. Simple and useful. In danger of fading away! Support Open Source.
  • TouchCursor - If you move the cursor a lot, but you don't like moving your hands, why not make I,J,K,L (where you right hand is already) move the cursor? I'm not sure it's worth $20, but it works exactly as advertised.
  • Synchronex - A file synchronizer, sure, but not just any file synchronizer, this one supports local, UNC, FTP, SFTP, WebDAV, ZIP and versioning. And only $20. Oy. I use it for backing up my blog on a schedule. An obtuse scripting format, more complex than SyncBack SE, but more detail oriented and powerful. Once you set it and forget it, IJW (It Just Works.) Brilliant and bananas.
  • Visual Studio Prompt Here - Right click on a folder and get four different "prompt here" options; cmd.exe, Visual Studio 2003, 2005, 2008, and PowerShell. Travis has the complete round-up.

"So is Outlook the Operating System now?" - Me

  • Evernote and RememberTheMilk - Gotta show these twice! These two apps manage notes and todos and they do it in an elegant and cross platform way. Evernote works on the Mac, Windows, iPhone, Palm Pre, Windows Mobile and BlackBerry and your notes live in the cloud. Remember The Milk is your todos any way you like them, from Google Calendar, Twitter, BlackBerry and Bookmarklets.
  • SyncMyCal - I've got data in Outlook Calendar and Google Calendar, and SyncMyCal was the easiest and least expensive way for me to get these two calendars in sync.
  • PocketMod - Has nothing to do with Outlook, but everything to do with getting organized. This tiny book is created by some creative folding and your printer. Design it and print it yourself for free.
  • Getting Things Done (GTD) with Outlook
    • ClearContext - Artificial Intelligence for your Outlook Inbox.
    • Speedfiler - A replacement for Move To Folder in Outlook; file your messages as fast as your can press Enter.
    • Taglocity - A learning system, Taglocity tags, filters, searches, and teaches itself about your mail.
  • Xobni - I have a love-hate relationship with this add-in. Sometimes I think it's crashing Outlook, but then I remove it and Outlook crashes anyway. It''s an amazing little connector that lives in Outlook and connects your Outlook Contacts with their LinkedIn and Facebook profiles, but that's just a tiny part of it. It also brings together conversations, threads, files exchanged and more. 
  • OutSync - Got a lot of contacts? Got a lot of Facebook Friends? Why not get those faces into Outlook? This'll cause the new photos in your Outlook contacts to then sync with you Windows Mobile device. Boom, someone calls, you see their face. Lightweight and clean, and free from Mel Sampat.

Contents Copyright © 2003-2009 Scott Hanselman - Please link, don't copy this list...hyperlinks to are most welcome. Please follow me on Twitter.

I enjoyed the list, especially the anecdotes. Surprised you mentioned so many things that I use... AutoHotKey, Launchy, SciTE, Cygwin, PSTools, FireBug, Fiddler, RTM, Reflector, WinMerge, WebDeveloper, µTorrent, VLC, BugMeNot, Delicious, Wireshark, Strings, and many of the others.

In addition to 7-Zip, I also use IzArc, and find myself using it over 7-Zip more and more for various reasons.

The biggest utility you missed is called "CLCL", which does clipboard caching. Especially useful following a spurious reboot, or just whenever. Link at nakka.com/soft/clcl/index_eng.html

Great List - I'm not sure I'll get through it before the next version comes out... :-]

Without comaprison, I tend to amass utilities and never understood Microsoft's insistence on having to scroll the programs menu (started in Win 95 SP2? or Win 98, and people eventually gave up protesting with Vista?). Anyway, I have a few very highly recommended items:

For the Professional Developer (spend you money on these two, because there are no free alternatives that will get you even close ATM):

Araxis Merge - makes the process of comparing files and folders, merging complex differences, 2-way or 3-way, etc. almost fun... Nothing even comes close. Not free but affordable. After buying the core development tools for your job, this is the #1 or #2 tool I'd recommend spending money on. Stable, Easy to use, stayed at the top (i.e. as #1) of my most used apps list (in Windows XP) for well over a year during a major project. It also integrates with VS as the diff engine.

SQL Prompt - (by Red-Gate). Intellisense for SQL takes the tedium out of writing queries. A little more expensive than Araxis Merge IIRC, but still affordable and worth every penny. Productivity in SSMS is through the roof. Has a few quirks, but I can live with them. But I don't know how I lived without intellisense when writing SQL. This is the other of the top two tools I'd recommend spending money on. Determine which one is #1 or #2 based on how much SQL you write as opposed to how often you have to perform compare and merge operations.

For Everyone (no money required):

FF Add-on: CoolPreviews/CoolIris Preview lets you browse (and interact with) a preview of a page from a link. I open more pages through this than any other way.

Gizmo's Freeware - this started as a list of the 46 best freeware apps, and just took off. While not catering specifically to developers, the list is kept up-to-date, and contains a number of apps organized in categories. Any time I need to do something for which I don't have the right tool, I check his list out (http://www.techsupportalert.com/). And now I'll check your list out, too...

Other tools I also like:

Gizmo turned me onto Microsoft ICE (Image Composite Editor). Simple, single purpose app. Before you can say "stitch these images together", ICE did (well, if you're from the South and talk real slow like). No muss, no fuss.

LiquidXML - I won't say I've tried all the XML tools out there - and I'm not a heavy user, but this one did the job for me in the past. Free community version or pay to get full VS integration etc. Create XSL from XML, create .NET code snippets for XML (the version I have does not generate LINQ to XML...), and of course edit and validate XML.

Console2

Save

Console is a Windows console window enhancement. Console features include: multiple tabs, text editor-like text selection, different background types, alpha and color-key transparency, configurable font, different window styles

Comments (1)

Patrice Neff

Patrice Neff Sep 5, 2011

Very good first impressions with this one. I can easily have the Windows command line and Cygwin bash in one window.

WinDirStat - Windows Directory Statistics

Save

WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows.

Please visit the WinDirStat blog for more up-to-date information about the program.

On start up, it reads the whole directory tree once and then presents it in three useful views:

  • The directory list, which resembles the tree view of the Windows Explorer but is sorted by file/subtree size,
  • The treemap, which shows the whole contents of the directory tree straight away,
  • The extension list, which serves as a legend and shows statistics about the file types.
Screenshot

The treemap represents each file as a colored rectangle, the area of which is proportional to the file's size. The rectangles are arranged in such a way, that directories again make up rectangles, which contain all their files and subdirectories. So their area is proportional to the size of the subtrees. The color of a rectangle indicates the type of the file, as shown in the extension list. The cushion shading additionally brings out the directory structure.

Defining Jump List Tasks

Save

Defining Jump List Tasks

Jump List tasks are application-specific actions that are tailored to a website. By using Jump List tasks, your website can surface the most frequently used commands to users. You should define the Jump List tasks based on both the website's features and the key actions a user is expected to undertake with them. The tasks provide a set of static URIs that users can access at any time, even if the browser instance is not running. Furthermore, these tasks provide a mechanism for your website to promote their most common destinations to users even when the user is not visiting your site. For instance, a web-based communication application could surface commands enabling users to quickly access their contacts, inbox, and profile information.

Jump List tasks associated with a communication site
Figure 7: Jump List tasks associated with a communication site

All Jump List tasks are directly accessed by using a static URL path that is stored inside the .website file. Tasks are not expected to change frequently; however, they can be updated by modifying the meta elements on the webpage. Changes take effect the next time the user launches the pinned site, rather than when they are initially loaded by the browser.

You define Jump List tasks by using HTML meta tags. When accessing a pinned website, Windows caches and applies these tags during installation. URLs defined in tasks are not restricted to a domain. The following code example defines two Jump List tasks on a webpage: Task 1 and Task 2. When the user clicks Task 1, the pinned site window launches Page1.html. Similarly, when the user clicks Task 2, the pinned site window launches Page2.html on the microsoft.com domain.


<META name="msapplication-task" content="name=Task 1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico"/>
<META name="msapplication-task" content="name=Task 2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico"/>
        

The pinned site window opens all tasks inside their own tab in the current pinned site window. If no browser instance exists, a new one is created. A website can define a maximum number of five tasks. Relative URLs on the action-uri field are resolved during install by using the URI of the page that contains the meta information.

Meta elements representing tasks can be updated by sites at any time. Changes to the Jump List tasks will be reflected the next time the site is launched.

Pinned Sites: Windows 7 Desktop Integration with Internet Explorer 9

Save

Pinned Sites: Windows 7 Desktop Integration with Internet Explorer 9

Israel Hilerio, Ph.D.
Program Manager, Internet Explorer

September 15, 2010

This documentation was published for Internet Explorer 9 Beta. For the most current information, see the following:

Introduction

Windows Internet Explorer 9 introduces pinned sites, a feature with which you can integrate your websites with the Windows 7 desktop. With pinned sites enabled for a website, users can pin that site to the Windows 7 taskbar or add the site to the desktop or Start menu. Pinned sites enable easy access to favorite websites and add shortcut functionality similar to that found in Microsoft Windows applications. In addition, pinned sites require little development cost and offer robust features. Some meta elements and JavaScript is all that you need to gain functionality; you need not modify any existing content or attributes for a current website.

The following screen shot showcases the functionality available through pinned sites.

screen shot of features in pinned sites Figure 1: Features in the Windows 7 taskbar that a pinned site can use

Windows generates a shortcut file with the .website extension for each pinned site, whether the site is pinned on the taskbar, added to the desktop, or Start menu. Windows associate the site’s URL as the start URL for a specific .website file and creates a unique AppID based on that URL. The AppID is shared by any window or tab created from this Windows Internet Explorer instance and enables users to treat all of their tabs and windows that are instantiated from the same site as one group.

When a user launches your website from a pinned site, the website renders with a custom-branded look using your site’s favicon, navigation button colors, and other information you provide. The pinned site window automatically starts an isolated instance of Internet Explorer that runs in a special mode (note that Browser Helper Objects and other toolbars are not enabled in this Internet Explorer mode). If an instance of Internet Explorer that is used for general web browsing crashes, this self-contained instance used for the pinned site is not affected and continues to operate normally.

The pinned site APIs and the HTML meta tags described in this article provide capabilities for websites to tightly interact with the user through desktop concepts familiar to customers who use native Windows applications. The following sections describes the common enhancements these APIS offer through a pinned site:

Pinning a Site to the Taskbar

There is no programmatic way to pin a site to the taskbar. All pinning actions require user intervention. Users must complete one of the following actions to pin a site to the taskbar:

  • Tear off a tab, and drag it to the taskbar.
  • Drag the favicon from the address bar in Internet Explorer to the taskbar.

The following screen shot shows how a user might tear off a tab to pin the CNN website to the taskbar.

A user clicks and tears the tab to isolate it from any other tabs in the open browser
Figure 2: A user clicks and tears the tab to isolate it from any other tabs in the open browser

A user drops the tab on the taskbar to pin the site to the taskbar
Figure 3: A user drops the tab on the taskbar to pin the site to the taskbar

After the site is pinned, notice that the site renders with custom enhancements. For instance, the Back and Forward buttons match the color of the website.

A pinned site that is customized by using meta elements incorporated in the website
Figure 4: A pinned site that is customized by using meta elements incorporated in the website

We recommend that you encourage users to tear off tabs and use them as pinned sites. For instance, the following sample page from the Internet Explorer 9 Test Drive site includes a prompt (you can dynamically disable this notification later, testing for the msIsSiteMode method to know when it is appropriate to do so).

A website displays a prompt to increase knowledge of pinned sites
Figure 5: A website displays a prompt to increase knowledge of pinned sites

Adding a Website to the Start Menu (All Programs Menu)

With Internet Explorer 9, users can add any website to the Windows Start menu by using menu commands (click the Tools menu and then click Add site to Start menu). The website is then listed in the All Programs folder of the Start menu. In addition to user interaction, your website can promote this functionality programmatically by using the pinned site APIs. After adding a site through your website or the browser, users can then access the website through the Start menu, just as they access a native application running on Windows. As with those webpages pinned to the taskbar, webpages launched from the Start menu provide the fully branded experience once you provide markup to customize the start URL, icon, name, tooltip, and navigation button colors associated with the Start menu entry.

All of the mechanisms designed to add an entry into the Start menu generate a dialog box that asks users to confirm or cancel the operation, as the following screen shot shows.

The dialog box where users confirm whether to add an entry into the Start menu
Figure 6: The dialog box where users confirm whether to add an entry into the Start menu

Adding a website to the Start menu by using the pinned sites APIs

Use the window.external.msAddSiteMode() method to add a site to the Start menu. The API can be triggered from any HTML element by using JavaScript, as in the following code example:

<a onclick="window.external.msAddSiteMode();" href="#">Add Website</a><br />

You can identify if a website has been launched as a pinned site by calling the window.external.msIsSiteMode method. The msIsSiteMode method returns a Boolean value that returns true if the window was launched as a pinned site; otherwise, false.

Customizing a website launched from a pinned site

You use meta elements to customize the way the pinned site renders after it is launched from a pinned site location, by using the following syntax:

<meta name="name" content="content"/>

The values for name and content are described in the following table:

Name Content
application-name The name of the shortcut. If missing, the document title is used instead.
msapplication-tooltip Optional text that is displayed as a tooltip when the mouse pointer hovers over the pinned site shortcut icon in the Windows Start menu or desktop.
msapplication-starturl The root URL of the application. If missing, the address of the current page is used instead. Only HTTP, HTTPS, or FTP protocols are allowed.
msapplication-navbutton-color The color of the Back and Forward buttons in the pinned site browser window. Any named color, or hex color value as defined by Cascading Style Sheets (CSS), Level 3 (CSS3) is valid. For more information, see Color Table. If this meta element is absent, the color is based on the shortcut icon.
msapplication-window The initial size of the pinned site browser window. Content sub-elements provide size as number N, separated by a semicolon.
  • width=N (minimum 800)
  • height=N (minimum 600)
Note that user action overwrites this value. Windows preserves the user-generated window size when the user changes the size of the window and then closes the instance.

The following code example uses meta elements to customize the pinned site shortcut with a tooltip, start URL, initial window size, and navigation button color.


<meta name="application-name" content="Sample Site Mode Application"/>
<meta name="msapplication-tooltip" content="Start the page in Site Mode"/>
<meta name="msapplication-starturl" content="http://example.com/start.html"/>
<meta name="msapplication-window" content="width=800;height=600"/>
<meta name="msapplication-navbutton-color" content="red"/>
        

You can also specify the favicon to use by following existing webpage syntax:


<LINK rel="shortcut icon" type=image/x-icon href="http://host/favicon.ico">
<LINK rel=icon type=image/ico href="./favicon.ico">
        

Windows attempts to retrieve a 32x32 version of the favicon from the specified file. If that size cannot be found, Windows frames the 16x16 version of the favicon inside a 32x32 document image. If no favicon is specified, Windows uses a framed version of the Internet Explorer icon. The favicon icon can also be overwritten by the user through the property settings dialog box.

Defining Jump List Tasks

Jump List tasks are application-specific actions that are tailored to a website. By using Jump List tasks, your website can surface the most frequently used commands to users. You should define the Jump List tasks based on both the website's features and the key actions a user is expected to undertake with them. The tasks provide a set of static URIs that users can access at any time, even if the browser instance is not running. Furthermore, these tasks provide a mechanism for your website to promote their most common destinations to users even when the user is not visiting your site. For instance, a web-based communication application could surface commands enabling users to quickly access their contacts, inbox, and profile information.

Jump List tasks associated with a communication site
Figure 7: Jump List tasks associated with a communication site

All Jump List tasks are directly accessed by using a static URL path that is stored inside the .website file. Tasks are not expected to change frequently; however, they can be updated by modifying the meta elements on the webpage. Changes take effect the next time the user launches the pinned site, rather than when they are initially loaded by the browser.

You define Jump List tasks by using HTML meta tags. When accessing a pinned website, Windows caches and applies these tags during installation. URLs defined in tasks are not restricted to a domain. The following code example defines two Jump List tasks on a webpage: Task 1 and Task 2. When the user clicks Task 1, the pinned site window launches Page1.html. Similarly, when the user clicks Task 2, the pinned site window launches Page2.html on the microsoft.com domain.


<META name="msapplication-task" content="name=Task 1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico"/>
<META name="msapplication-task" content="name=Task 2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico"/>
        

The pinned site window opens all tasks inside their own tab in the current pinned site window. If no browser instance exists, a new one is created. A website can define a maximum number of five tasks. Relative URLs on the action-uri field are resolved during install by using the URI of the page that contains the meta information.

Meta elements representing tasks can be updated by sites at any time. Changes to the Jump List tasks will be reflected the next time the site is launched.

Defining a Jump List Category and Adding Items to It

Jump List categories are a great mechanism for your websites to surface dynamic information to end-users. Items can be added to the custom category from any webpage on the same domain. Jump List items within a custom category are visually separated from Jump List tasks and can be individually persisted or deleted by users. When a user clicks a Jump List item from a pinned site, the pinned site window displays that item in a separate tab on the same browser instance as the pinned site. Jump List items in a category list are not the way to send commands back to your application and avoid navigation, however. They are destinations intended to navigate a user to a URI.

Use Jump List categories to give users access to contextual information in the form of destinations or actions. Destinations can be used to access files, documents, or URLs. The items in the categories represent URLs with user-specific context. These might include a profile page on a social networking site or a radio station on a music streaming site. Users access the resources directly by clicking on the item links. Actions can include visiting sites, viewing history, and more. Your website can also use a custom category to notify users of interactions or alerts that are happening on the backend—new received email, friend online, upcoming appointment. Another advantage of custom categories is that they are persisted in the Jump List after the browser instance is closed. This provides users with a contextual mechanism for accessing site information when the browser is not running.

The following screen shot shows how Microsoft Office Outlook Web Access uses a custom category, Notifications, to display an upcoming appointment, scrum. When the user clicks scrum, IE opens a new tab on the same browser instance as the pinned site and displays the appointment information.

A custom notification in Outlook Web Access
Figure 8: A custom notification in Outlook Web Access

Managing a custom category is divided into several stages:

  1. Create the Category — First, call the msSiteModeCreateJumplist method to create a custom category with a label. The following code example creates a custom category named List1. You must call msSiteModeCreateJumplist at least once before using any of the other methods in these steps.
    window.external.msSiteModeCreateJumplist('List1');
    
    Note that the category label is not visible until the category is populated with at least one item. Creating a second category replaces an existing one.
  2. Create Items — Add items to the in-memory list (note that the items are not yet displayed). The following code example uses the msSiteModeAddJumpListItem method to create three list items: Item 1, Item 2, and Item 3. The first parameter specifies the item name. The second parameter specifies the URL to use when the item is selected. The third parameter specifies the icon that to use when displaying the item on the list.
    
    window.external.msSiteModeAddJumpListItem('Item 1', 'http://host/Item1.html', 'http://host/images/item1.ico');
    window.external.msSiteModeAddJumpListItem('Item 2', 'http://host/Item2.html', 'http://host/images/item2.ico');
    window.external.msSiteModeAddJumpListItem('Item 3', 'Item3.html', 'images/item3.ico');
                            
    
  3. Display the List — Display the in-memory list for the Jump List. After you call the msSiteModeShowJumplist method, Windows immediately updates the in-memory list in the Jump List.
    window.external.msSiteModeShowJumplist();
    
  4. Clear the List — Clear the items on the custom list. When you call the msSiteModeClearJumplist method, Windows immediately removes the items from the Jump List.
    window.external.msSiteModeClearJumplist();
    

The pinned site APIs display a maximum of 20 items at any one time in a custom category. If you add more than twenty items to a category, the previously added items are deleted. The pinned site APIs will not duplicate an existing entry; however, the duplicate entry will be moved to the top of the list. In some cases, the system may reduce the maximum number of items displayed. This is based on various factors such as user choice, display resolution, and font size. If there isn't space enough for all items in all categories, the items are truncated from the bottom up.

Websites are responsible for maintaining the state of the category and for adding and removing items to and from the category. In addition, your website can register for an event that is triggered when a user removes an item from a custom category by using one of the following event listeners:


document.addEventListener('mssitemodejumplistitemremoved', removed, false);
document.attachEvent('onmssitemodejumplistitemremoved', removed);
        

The listener generates a callback to a delegate with a URL parameter:

function removed(url) { … }

When a user removes an item from the Jump List, Windows cannot capture or pass back a shell event to the site. Thus, the event is artificially generated by the IE instance running the pinned site after the user adds a Jump List item and the website calls the msSiteModeShowJumplist method. However, the event is generated only if there are items that were deleted by the user prior to the site inserting them back. This creates a mismatch between the in-memory representation of the Jump List and the actual set of items in the Jump List. The pinned site APIs synchronize the in-memory Jump List representation and the actual Jump List items after the event is triggered.

Any page on the same domain can modify information on the Jump List category by using the JavaScript APIs.

Displaying Overlay Icons

Windows applications can communicate notifications and status to users by displaying an overlay icon on top of the application’s taskbar button. The msSiteModeSetIconOverlay method adds an icon overlay to the pinned site’s taskbar button. Overlay icons help draw attention to a website when the view to the pinned site’s window is blocked, as when the browser window is minimized or blocked by another window. Use overlay icons to supply important, long-standing status or notifications such as network status, online status, or new mail. Remember that presenting users with constantly changing overlays or animations creates a negative user experience.

Windows displays overlay icons in the lower-right corner of the taskbar button; however, the taskbar must be in the default large icon mode to display overlay icons. Overlay icons are not visible when the website is not running or when the website is not running as a pinned site. Overlay icons can be displayed from any webpage in the same domain. In addition, a website can apply multiple overlay icons without having to clear them first. However, when an overlay icon is cleared, Windows removes the icons starting from the most recently added. This implies that the clearing order is such that the last icon displayed is the first one removed.

The following screen shot shows how Outlook Web Access uses the overlay icon of a bell to notify the user that it is time for an appointment.

An overlay icon in Outlook Web Access
Figure 9: An overlay icon in Outlook Web Access

The following code example uses the msSiteModeSetIconOverlay method to add an overlay icon, overlay1.ico, on the taskbar button and provide a tooltip with the string “Overlay 1”.


window.external.msSiteModeSetIconOverlay('http://host/images/overlay1.ico', 'Overlay 1');       
        

Remove the overlay icon by calling the msSiteModeClearIconOverlay method.

window.external.msSiteModeClearIconOverlay();

Displaying Thumbnail Toolbar Buttons on the Thumbnail Preview

For native Windows applications, users interact with thumbnail toolbar buttons in the taskbar without having to restore or activate the site's window. A pinned site can make use of the same functionality for individual webpages. Each button represents a command that can be executed in the webpage, so users can interact with the webpage while in a minimized state or without activating it. The following screen shot shows how a webpage with multiple video clips uses thumbnail toolbar buttons to control the play, pause, and selection of videos without causing the user to access the page directly.

Thumbnail toolbar buttons to control video
Figure 10: Thumbnail toolbar buttons to control video

You can display a maximum of seven buttons in a thumbnail toolbar. Because there is a limited amount of space in which to display thumbnails, as well as a constantly changing number of thumbnails to display, applications are not guaranteed a specific toolbar size. If display space is low, buttons in the toolbar are truncated from right to left as needed. Therefore, an application should prioritize the commands associated with its buttons to ensure that those of highest priority are to the left and are therefore least likely to be truncated.

When a user clicks a thumbnail toolbar button, an event with a specific ID is returned to the webpage for processing. These events are scoped to the domain that created the events. Buttons can be created, displayed, hidden, enabled, or disabled, or their image can be replaced.

Thumbnail toolbar buttons are defined in memory before they are displayed. The following code example uses the msSiteModeAddThumbBarButton method to create three thumbnail toolbar buttons, passing in the URL of an icon resource file in the first parameter and the (optional) tooltip in the second parameter. The method returns an ID that is used by the system when a thumbnail toolbar button click event is generated.

btn1 = window.external.msSiteModeAddThumbBarButton( 'http://host/images/button1.ico', 'button 1');
btn2 = window.external.msSiteModeAddThumbBarButton( 'http://host/images/button2.ico', 'button 2');
btn1 = window.external.msSiteModeAddThumbBarButton( 'http://host/images/button3.ico', 'button 3');
        

You capture events generated when the user clicks a thumbnail toolbar button by subscribing to the msthumbnailclick event with an event handler. The following code example registers an event handler, handler1, to process all events generated by the thumbnail toolbar buttons.

document.addEventListener('msthumbnailclick', handler1, false);
…
function handler1 (btn) {
         alert ("addeventlist:thumbnail btn id" + btn.buttonID);
}
        

After being defined, you can instantiate a button only once, by using the msSiteModeShowThumbBar method.

window.external.msSiteModeShowThumbBar();

Use the msSiteModeUpdateThumbBarButton method to set the state and visibility of a button after the button has been instantiated. The following code example makes button1 disabled and visible, button2 enabled and visible, and button3 enabled but not visible.

window.external.msSiteModeUpdateThumbBarButton(btn1, false, true);
window.external.msSiteModeUpdateThumbBarButton(btn2, true, true);
window.external.msSiteModeUpdateThumbBarButton(btn3, true, false);
        

Changes to the button state take place immediately; however, changes to the button visibility take place only after the thumbnail preview window is refreshed.

You can define and implement alternate styles to dynamically replace button information already displayed in the thumbnail toolbar. First, define a new style. Use the msSiteModeAddButtonStyle method to define an alternate icon image and tooltip for the specified button. Each style contains a replacement image and a new tooltip value. The following code example defines style1 for btn1 using a new image and tooltip.

style1 = window.external.msSiteModeAddButtonStyle(btn1, 'http://host/images/style1.ico', 'style1');

Then, apply defined styles to the already displayed buttons by using the msSiteModeAddButtonStyle method. The following code example applies the previously defined style1 to btn1.

window.external.msSiteModeShowButtonStyle(btn1, style1);

Your site should hide thumbnail toolbar buttons when a user exits the website’s domain or navigates away to other pages. Similarly, sites should re-instantiate these buttons and make them visible when a user returns to the page.

When re-instantiating these buttons a site should not call the msSiteModeShowThumbBar method on the same instance as an exception will be triggered. At a minimum the method should be called with a try/catch block around it to ensure the buttons continue to work once they are reinitialized and made visible again. To support this scenario, you can call the msSiteModeAddThumbBarButton method multiple times to reinitialize your variable with the necessary ids that will be used inside the event handler to deal with the event. Therefore, the msSiteModeAddThumbBarButton method is guaranteed to return the same button id every time. This allows you to reuse your event handling logic independent of any navigation outside of the page.

Causing the Taskbar Button to Flash, Indicating That User Interaction Is Required

At times, you will want to notify users that your site requires interaction to advance or complete a task. Use the msSiteModeActivate method to start the flashing of the pinned site icon on the taskbar. For example, use this interaction when a user needs to enter their credentials, when a download is completed, or when another user is trying to communicate with a user.

To activate the state, call the msSiteModeActivate method.

window.external.msSiteModeActivate();

The icon flashes a maximum 20 times before the taskbar button stays permanently lit. After the user interacts with the site, Windows resets the taskbar button to the non-flashing state.

Icon Resolutions

Pinned sites use icons in several places: Jump List destinations, the taskbar button, thumbnail preview buttons, and overlay icons. Icon files should contain the following size representations:

  • Recommended: 16x16, 32x32, 48x48
  • Optimal: 16x16, 24x24, 32x32, 64x64
In a standard configuration, the taskbar icon will be 32x32, the Jump List destination icon will be 16x16, the thumbnail preview buttons will be 16x16, and the overlay icons will be 16x16. The image on the top left hand corner of the pinned site browser window holds a 24x24 version of the specified favicon. Using different .ico files, from the site favicon, to represent actions or destinations on the Jump List items and tasks will make it easier for your users to quickly identify the tasks they want to execute.

Detecting Features

You should use feature detection to verify that a browser supports pinned sites. The following code example evaluates to true if the feature is supported in your browser:

if (window.external.msIsSiteMode) {
    // Check if the website was launched from a pinned site.
    if (window.external.msIsSiteMode())
    {
        // TRUE
    }
    else
    {
        // FALSE
    }
} 
        

Note  The Internet Explorer 9 Beta release requires that the call to test for the API happens in a try/catch block, as follows:

try {
     if(window.external.msIsSiteMode()) { }
     else {}
}
catch(e) { }
        

Conclusion

By using pinned sites, users integrate their favorite websites with the Windows 7 desktop, Start menu, and taskbar as they do for an application running executable code on Windows. Using the pinned sites APIs, your webpages can enhance desktop integration and push information, notifications, and alerts to users without requiring the browser window to be in view. In addition, pinned sites enable a branded experience and promote your website’s capabilities in the taskbar.

Israel Hilerio is a program manager on the Internet Explorer team.


Welcome to Gyazo : Seriously Instant Screen-Grabbing

Save
Gyazo lets you instantly grab the screen and upload the image to the web. You can easily share them on Chat, Twitter, Blog, Tumblr, etc. Available for Windows, Mac and Linux.

Comments (1)

Patrice Neff

Patrice Neff May 16, 2011

Finally a no-frills simple screenshot tools. Works great on Windows.

Windows 7: How To Automatically Backup Your PuTTY connections : Aquarionics

Save

test Posted on | March 1, 2011 | 2 Comments

Go to:

  1. Control Panel
  2. Administrative Tools
  3. Task Scheduler
  4. Create Basic Task (In the bar on the right)
  5. Name: “Backup Putty Connections”
  6. Next
  7. Run Daily
  8. Next, Next, Next (Until “Start a Program”)
  9. Program/Script: C:\Windows\regedit.exe
  10. Arguments: /E "Putty_connections_backup.reg" "HKEY_CURRENT_USER\Software\SimonTatham"
  11. Start In: (The directory to put the backups in. Somewhere in your Dropbox would be good)
  12. Open Properties when finished
  13. Finish.
  14. Check the “Run with highest privileges” option (If you don’t see it, find your new task (You may need to click on “Task Scheduler Library”) and right click on it, then select “Properties”)
  15. Right click on it again
  16. Run it.
  17. Make sure the file’s been created.

How to restore them:

  1. Install PuTTY
  2. Double click on that file.