Scott Hanselman

Microsoft creates the CodePlex foundation

September 10, '09 Comments [28] Posted in Microsoft | Open Source | Programming
Sponsored By

imageVery cool news. Today Microsoft announce the creation of the CodePlex foundation. That's CodePlex.org.

It's amazing the amount of work that goes into something like this. I was in on a lot of very boring (but important) legal conference calls with a lot of folks from within Microsoft but it was fascinating in its own legal way. There's a lot of people who want to see this work and really be something special.

CodePlex.org is different from CodePlex.com, of course. The CodePlex foundation is a 501(c)(6) organization, separate from Microsoft. It's created to help commercial software developers use Open Source software.

Here's the best part:

"The Foundation has no pre-suppositions about particular projects, platforms, or open source licenses."

This isn't the "Visual Studio Foundation" or the ".NET Foundation" or the "MS-PL Foundation." This is on purpose. Over the next few months we'll start hearing about how Projects can get involved and align themselves with the CodePlex foundation.

When I was working with Corillian/CheckFree, it was a challenge to get Open Source software used on big proprietary projects. There was fear and confusion at all levels. We eventually got it done, and there's open source software from then-Corillian running at large banks and small credit unions all over the world. in my opinion, if CodePlex.org succeeds, open source software will be used by more professional software developers.

Here's the interim board of directors and board of advisors. You can see it skews Microsoft initially, but that'll change in the first 100 days when we find permanent members. If you want to get involved, do!

Board of Directors

From the site:

Sam Ramji will serve as interim President of the Foundation. He will be supported by an interim Board of Directors, whose other members are Bill Staples, Stephanie Boesch, Miguel de Icaza, Britt Johnston, and Shaun Walker. Mr. Ramji and the interim Board will immediately begin a search for a permanent Executive Director, who will manage the day-today operations of the Foundation, as well as a permanent Board of Directors and a Board of Advisors.

For the policy wonks, here's the foundation's bylaws (PDF) for you to peruse. This is important also, from the FAQ:

Q: What is the difference between the CodePlex Foundation and CodePlex.com?

CodePlex Foundation is an extension of the CodePlex brand established by Codplex.com. Codeplex.com has not only built a strong community, with more than 10,000 projects now hosted on the site, but has steadily built a recognized brand. CodePlex.com launched in June of 2006 out of a need for a project hosting site that operated in a way that other forges didn't – with features and structures that appealed to commercial software developers. The next chapter in solving for this challenge is the CodePlex Foundation (Codeplex.org). The Foundation is solving similar challenges; ultimately aiming to bring open source and commercial software developers together in a place where they can collaborate. This is absolutely independent from the project hosting site, but it is essentially trying to support the same mission. It is just solving a different part of the challenge, a part that Codeplex.com isn't designed to solve.

I'm on the Advisory board, which is cool, along with other folks whose names I hope you recognize and respect as non-evil. If you're not familiar with the names, I've added my own mini-bio for each. Any errors are mine.

Advisory Board

  • Larry Augustin, SugarCRM - Larry was the chairman of VA Software now called SourceForge, Inc.
  • Sara Ford, Microsoft - Sara runs CodePlex.com and has been an advocate of .NET open source for years.
  • Aaron Fulkerson, MindTouch - Fulkerson is currently Founder and CEO at Open Source and collaborative network company MindTouch.
  • Robert Gobeille, Hewlett-Packard - Bob is the lead architect of the FOSSology project, tools to facilitate the study and analysis of free and open source software.
  • Phil Haack, Microsoft - Phil runs SubText, a .NET open source blogging engine, and he succeeded in releasing Microsoft's ASP.NET MVC under the MS-PL Open Source license.
  • Scott Hanselman, Microsoft - This is me. I've worked on DasBlog as well as a number of smaller open source projects. I used to be the Chief Architect at Corillian, a leading retail online financial service firm, where we used a great deal of open source .NET software in our systems.
  • John Lam, Microsoft - John is known for a lot of things, not the least of which his work on IronRuby, an Open Source .NET implementation of Ruby on the CLR.
  • Jim Newkirk, Microsoft - Jim is one of the co-authors of NUnit and also XUnit.NET, both unit-testing frameworks for .NET.
  • Monty O'Kelley, Microsoft - Monty has worked on partnerships between Microsoft and Novell as well as advocating to make Linux virtualize better on Hyper-V
  • Stephen Walli - Stephen consults on software and open source strategy. He worked on the Interix environment to re-host UNIX apps on Windows NT, utilizing lots of open source software across a number of licenses.
  • Monty Widenius, Monty Program AB - Monty is the main author of the original MySQL database and a founder of the MySQL AB Company.

As a long time Open Source guy myself, I promise that I'll fight the good fight and continue to nudge things in the right direction.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Windows Tip: Easily show your Computer Name in the Taskbar

September 10, '09 Comments [21] Posted in Tools | Win7
Sponsored By

For those of you (and me) who manage more than one computer or remote into many computers or virtual machines, it can be very hard to remember which machine you're on.

There are many solutions out there for stamping your computer name. Most often I see people creating custom wallpaper using a tool like BgInfo. However, you can't always see your desktop, I like a more persistent solution.

The only thing that is always on my screen is the taskbar. Here's how to add your Computer Name to the Taskbar.

  • First, go to your Documents folder, or any folder, really. Make a new folder and name that folder the same name as your computer. So, now I have c:\users\scottha\documents\HANSELMAN-W500.
  • Next, Right-Click on an empty area in the taskbar and click Toolbars, then new Toolbar.

image

  • Now, select the new folder you named the same as your Toolbar and click "Select Folder."

Bam.

image

Doesn't that look nice?

Thanks to Brad Wilson for the tip. I'll be doing this to all my machines.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Scott Hanselman's 2009 Ultimate Developer and Power Users Tool List for Windows

September 2, '09 Comments [137] Posted in Tools
Sponsored By
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?

The Big Ten Life and Work-Changing Utilities

"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. 

Rocking Sweet Windows 7 Specific Stuff

"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.

A (.NET) Developer's Life

"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

The Angle Bracket Tax (XML/HTML Stuff)

"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.

Regular Expressions

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.

Launchers

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.

Low-Level Utilities

"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.

Websites and Bookmarklets

"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.

Tools for Bloggers and Those Who Read Blogs

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

 

Browser Add-Ins/Extensions

"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.

Things Windows Forgot

"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.

Outlook AddIns and Life Organizers

"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.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The Weekly Source Code 45 - Kicking Butt on Windows 7 *and* Windows XP

September 1, '09 Comments [11] Posted in Source Code | Win7 | Windows Client
Sponsored By

image I really advocate folks reading as much source as they can because you become a better writer by reading as much as writing. That's the whole point of the Weekly Source Code - reading code to be a better developer.

There's a very cool developer context going on right now called "Code7." If you code a Windows 7 application between now and October 7 you could win a giant bag of money and/or a trip to PDC.

There's a pile of new APIs in Windows 7 (as well as existing and useful Vista APIs) like these:

  • Windows 7 Taskbar Integration
  • Transactional File System
  • I/O Optimization
  • Event Tracing for Windows (ETW)
  • Windows 7 Libraries
  • Windows 7 Sensor and Location Platform
  • Aero Glass

In some of these instances, there isn't hardware (yet) for things like Ambient Light Sensors. One dude has taken a Webcam and hooked it into the Windows 7 Sensors API and made a program to dim his monitors with the new Monitor Configuration API*. He might even make it turn off his machine when he walks away.

XP2Win7 - Windows 7 Sample Code/Application

I've been checking out what sample applications there are to start learning about Windows 7. The coolest so far as been the "PhotoView" application. Don't sweat the fact it's YAPA (Yet Another Photo Application) and consider it a loosely confederated collection of samples.

MainWindow

What's cool about this application is that it works on Windows XP and Windows Vista and Windows 7. This may be obvious and even a silly statement to you, Dear Reader, but it's a nice reminder that and app can be awesome on all three platforms. 99% of the apps that I use work great on Windows 7. Sure, some drivers and wacky VPN things will need to be updated, but it's comforting to me to know I can write an app for Windows that will, um, work on Windows. ;)

This PhotoView application, also called XP2Win7 is written managed code and uses plugins to "light up on up-level platforms." That's fancy Microsoft talk that means if your operating system has a feature the app will detect it and use it.

There's a great overview Word Document that explains the app and how it is written. The MSI will install the app, then optionally the source in ~\MyDocuments\Xp2Win7 if you have trouble finding it. You'll need Visual C++ if you want to build a few parts...just read the readme. It's a pretty extraordinarily broad sample with examples on how to make MMC ReportViewer snapins, delayed services, register scheduled tasks, piles.

(Unfortunately the guys that wrote this didn't use MEF for their plugin model, but I'll talk to them. It would allow them to remove a lot of boilerplate plugin monkey code.)

It uses the Windows API Code Pack (I talk about this below) to do a lot of its work. Here's a few fun parts.

TaskBar JumpLists

When the app is run under Windows 7 it includes "jumplists" when you right-click (or swipe-up) on the taskbar button:

image

This is easily added with the Taskbar API. Notice the multiple categories, user tasks, recent items, and custom categories.

Taskbar.JumpList.CustomCategories.Clear();
Taskbar.JumpList.UserTasks.Clear();
Taskbar.JumpList.KnownCategoryToDisplay = KnownCategoryType.Recent;

CustomCategory allAlbumsCategory = new CustomCategory("All Albums");
//...snip out enumerating of the filesystem to get photo albums
Taskbar.JumpList.CustomCategories.Add(allAlbumsCategory);

Taskbar.JumpList.UserTasks.Add(
new JumpListLink()
{
Title = "Reset configuration",
Path = typeof(XP2Win7.VistaPlugins.ConfigurationResetter.Program).Assembly.Location,
Arguments = XP2Win7.VistaPlugins.ConfigurationResetter.Program.ResetCommand
});
Taskbar.JumpList.UserTasks.Add(
new JumpListLink
{
Title = "Launch indexing task",
Path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Constants.ServiceCommandLine),
Arguments = Constants.ServiceAsTaskCommandLine
});
Taskbar.JumpList.UserTasks.Add(
new JumpListLink { Title = "Open albums directory", Path = Host.UserConfiguration.AlbumRepositoryPath });

Taskbar.JumpList.RefreshTaskbarList();

Windows 7 Libraries

You can also add Windows 7 Libraries for your application:

//Create new shell library under the default Libraries
using (ShellLibrary library = new ShellLibrary("XP2Win7", true))
{
library.LibraryType = LibraryFolderType.Pictures;
library.IconResourceId = GetPictureLibraryIcon(); //Set the same Icon as the Picture library
library.IsPinnedToNavigationPane = true;


foreach (string folderPath in GetPicturesFolders())
{
library.Add(folderPath);
}

library.ShowManageLibraryUI(Application.Current.MainWindow,
"Manage the XP2Win7 library", "You can manualy add or remove folders",
true);
}

User Access Control (UAC)

Windows Vista and Windows 7 both include User Access Control (UAC). You'll recognize the little shield icon next to a button that will require a prompt from the user in the dialog below.

Application reconfiguration

Their application uses this in a few places. First, can we even show the little shield? We only want to do that if UAC is enabled:

protected override BitmapSource BitmapSource
{
get
{
if (UacHelpers.UserAccountControl.IsUacEnabled)
{
return Microsoft.SDK.Samples.VistaBridge.Library.StockIcons.StockIcons.Shield;
}
else
{
return ImageFromResource(Assembly.GetExecutingAssembly(),
"UserAccountControl.StartService-128x128.png");
}
}
}

Then, if they do click the button, and we want to launch some process as Administrator, we'll need to call a special API to do that. This is mean easy by helper APIs.

if (UacHelpers.UserAccountControl.IsUacEnabled || !UacHelpers.UserAccountControl.IsUserAdmin)
{
UacHelpers.UserAccountControl.CreateProcessAsAdmin(
typeof(ServiceStarter.Program).Assembly.Location, "XP2Win7ImageDataService");
}
else
{
Process.Start(typeof(ServiceStarter.Program).Assembly.Location, "XP2Win7ImageDataService");
}

Pretty slick and easy to code. The Windows API Code Pack makes all these APIs and dozens more easy for managed code developers (C#, VB, and everyone else.)

Windows API Code Pack

Another great pile of Windows sample code is the Windows API Code Pack. This thing is a gold mine of samples and they are all in C# and VB. There's like 20+ samples. Here's a few:

Power Management

It's nice if your app knows the power status of the machine it's on and avoid doing crazy stuff if it's on batteries.

Power Management

You can get all sorts of great power-related info:

private void GetPowerSettings()
{
settings.PowerPersonality = PowerManager.PowerPersonality.ToString();
settings.PowerSource = PowerManager.PowerSource.ToString();
settings.BatteryPresent = PowerManager.IsBatteryPresent;
settings.UpsPresent = PowerManager.IsUpsPresent;
settings.MonitorOn = PowerManager.IsMonitorOn;
settings.MonitorRequired = PowerManager.MonitorRequired;

if (PowerManager.IsBatteryPresent)
{
settings.BatteryShortTerm = PowerManager.IsBatteryShortTerm;
settings.BatteryLifePercent = PowerManager.BatteryLifePercent;

BatteryState batteryState = PowerManager.GetCurrentBatteryState();

string batteryStateStr = string.Format(
"ACOnline: {1}{0}Max Charge: {2} mWh{0}Current Charge: {3} mWh{0}Discharge Rate: {4} {0}Estimated Time Remaining: {5}{0}Suggested Critical Battery Charge: {6} mWh{0}Suggested Battery Warning Charge: {7} mWh{0}",
Environment.NewLine,
batteryState.ACOnline,
batteryState.MaxCharge,
batteryState.CurrentCharge,
batteryState.ACOnline == true ? "N/A" : batteryState.DischargeRate.ToString() + " mWh",
batteryState.ACOnline == true ? "N/A" : batteryState.EstimatedTimeRemaining.ToString(),
batteryState.SuggestedCriticalBatteryCharge,
batteryState.SuggestedBatteryWarningCharge
);

settings.BatteryState = batteryStateStr;
}
}

There's also lots of power-related events you can be notified of:

PowerManager.IsMonitorOnChanged += new EventHandler(MonitorOnChanged);
PowerManager.PowerPersonalityChanged += new EventHandler(
PowerPersonalityChanged);
PowerManager.PowerSourceChanged += new EventHandler(PowerSourceChanged);
if (PowerManager.IsBatteryPresent)
{
PowerManager.BatteryLifePercentChanged += new EventHandler(BatteryLifePercentChanged);

// Set the label for the battery life
SetLabelButtonStatus(batteryLifePercentLabel, string.Format("{0}%", PowerManager.BatteryLifePercent.ToString()));
}

PowerManager.SystemBusyChanged += new EventHandler(SystemBusyChanged);

Stock Icons

A lot of folks don't realize that there's a pile of stock icons that are available in Windows and you can access them programmatically.

image 

That means if you need the stock icon for a BluRayRom or a ZipFile, you can just ask for it.

Task Bar Progress

One of the nicest subtle features of Win7 is that if you've got a Progress Bar doing something in your application you can make its progress known in the Taskbar icon itself. This is fantastic for long-running processes like file copies, etc.

Notice the progress bar in this application and the taskbar button in the bottom right reflects it.

image

There's also icon/image overlays and other nice touches. Even better, this is epic-easy:

// When the user changes the trackBar value,
// update the progress bar in our UI as well as Taskbar
progressBar1.Value = trackBar1.Value;

TaskbarManager.Instance.SetProgressValue(trackBar1.Value, 100);

Since your app can have multiple progress bars, you have to manually decide what you want the taskbar progress to look like.

Core Helpers

Finally there's some nice "CoreHelpers" to make your applications easy to read and run on XP, Vista and Win7 at the same time:

//example
if (CoreHelpers.RunningOnXP()) { ... }
//example
if (CoreHelpers.ThrowifNotWin7() { ... }
// and all the others you'd expect for XP, Vista, Win7

I've just touched the surface of these samples. If you're doing Windowe Client development be sure to check out http://windowsclient.net/ and http://www.msdn.com/windows for more and start writing your application for the https://www.code7contest.com.

1. Get Windows 7 and the SDK

2. Develop and Test Your Application

3. Get the Windows 7 Logo

4. Light Up Your Application with Windows 7

Related Links

* Note the (lightweight) parameter I passed into this MSDN URL. Check out the new "Lightweight" MSDN Library and give the team feedback on the site!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Amazon Kindle vs. Amazon Kindle DX - The Final Word

August 28, '09 Comments [33] Posted in Reviews
Sponsored By
Amazon Kindle vs. Amazon Kindle DX

I'm absolutely thrilled with my Amazon Kindle. I read it every night and have probably bought a dozen books with it, several newspapers and I read many dozen PDFs. I own the standard-sized Amazon Kindle 2 - it's the little one in the picture on the right.

The Kindle 2 is 8" x 5.3" x 0.36" but the screen is 6" diagonally. It's got a 600x800 pixel display, so that's 167 dpi with 16 grays. As a comparison, you monitor is likely 96dpi, possible 120dpi. An iPhone is 163 dpi.

The Kindle DX is 10.4" x 7.2" x 0.38" and the screen is 9.7" (yes, nearly 10"!) diagonally. It's spendy, but the screen is MASSIVE. That's 1200 x 824 pixel resolution at 150 dpi. It's got 4gig internal storage which I've found is effectively unlimited.

The screen on a Kindle is EXTREMELY clear. It's not backlit and it's not an LCD. It's e-ink and it's totally unique when you see it. It's very very close to paper and once you've started reading you really do forget it's not paper. There's zero eye strain, or no more than a regular book.

Let's get serious on size and layout here. The real tragedy of the Kindle is the bezel. That's the space between the screen and the edge. I don't know what the technical limitations are and I don't really care. There's just WAY to too much "whitespace" between the edge of the kindle and the screen itself. It's distracting and it's wasteful. There's easily enough room on the Kindle 2 to make the screen a 7" screen just by tightening up that space. Also, the keyboard on the Kindle 2 uses far too much vertical space.

Here's a screenshot taking from the Kindle 2 of a book. Notice that it starts with the word "morning" and ends with "duration, so the."

screen_shot-35927

Here's the same book, same point, starting with "morning" on the Kindle DX. The "so the" appears right in the middle of this screen. Effectively you can fit double the text on the page of the Kindle DX.

screen_shot-64748 

Also, the Kindle DX has native PDF support. That means you can just plug it in over USB, copy a PDF and boom, you're viewing it. It works for 95% of PDFs, but every once in a while I've had it fail. Rare, and usually it's because there's some advanced PDF feature being used that the Kindle doesn't support. The failures have only been on internal documents that have annotations and stuff. I don't know what the real limitations of the PDF support are, but I'm sure they're improving it constantly, and the Kindle can update it's OS over the 3G network, so those updates will presumably just happen.

Here's a screenshot of a PDF taken from the Kindle DX. It's totally readable. It would be totally NOT readable on the non-DX Kindle for two reasons. First, no PDF support built in, and two, if it was converted to Kindle-format, it'd be destroyed.

screen_shot-64745 

In English, this means if you're wanting to read technical books, you get a Kindle DX. Period. The small-size Kindle 2 is fantastic for prose and horrible for charts, graphs and code.


Kindle Thickness 

If you're torn between the two, it's understandable. After having used both for a week, I am also. The Kindle DX is too big and the Kindle is too small. By too small,I mean, the Kindle should have the SAME size and a larger screen. I could totally see another Kindle that's in between sizes, but I know that'll never happen, which is a shame.

Kindles Side By Side 

Bottom Line

If you're interested in a Kindle, and you read a lot of PDFs or non-Amazon eBooks, get the Kindle DX. If you read fiction and rarely, if ever, need PDF support (or only need the basics) then get the little Kindle.

While the DX is large, its PDF support is so nice that I'm compelled to prefer the DX over the little one, for myself. 

Related Posts

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.