Thursday, 30 July 2009

Personally I prefer to keep my desktop as clutter free as possible, when working on projects I like to create root folders as described in the book 'The Productive Programmer'. However I know lots of people like to use the desktop as a dumping ground for things they are currently working on. If you like to use the desktop in this manner then you might be interested in fences. Originally I heard about fences as a Windows 7 feature however on looking into it a bit more I found that this is a feature that can be enabled in Windows XP and Vista, Stardock provide a freeware program called fences.

posted on Thursday, 30 July 2009 07:16:42 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Tuesday, 09 June 2009

Included with the RC release of Windows 7 is PowerShell version 2 and a new editor called 'PowerShell ISE' (Integrated Scripting Environment).  Previously when I've been writing PowerShell scripts I've used PowerGUI as my script editor of choice so once I'd upgrade to Windows 7 I was keen to put the new PowerShell ISE to the test.

When I first started PowerShell ISE I get the standard screen as shown in the screen shot. I see there is a debug menu and with a script file open I can see there is reasonable support for syntax highlighting. PowerShell ISE

It's a relatively simple and clean interface, with a tabbed editor that allows you to easily move between scripts that you're editing and the toolbar isn't overly cluttered. However I did notice one thing slightly odd a slider control in the bottom right of the editor's window. This allows you to easily increase on decrease the size of the font used in the editor, not something I can see myself using that often as I'm normally set configuration like this up once in my development environment such as Visual Studio or Netbeans.

PowerShell ISE large text

One other point I noticed very early was the use of the Ctrl+W shortcut, in most web browsers this closes a tab and in PowerGUI it also closes the current editor window, however in PowerShell ISE the Ctrl+T and Ctrl+W key relate to output panel. My personal preference would have been for these to work with the script editor window.

The next thing I was keen to try was debugging, being well used to working with Visual Studio I tried to double click in the line number where I wanted the breakpoint, this didn't work but fortunately the keyboard shortcut F9, a small point but I'm always happy when there is some consistency between editors especially when they come from the same company. When debugging the shortcut keys F10 and F11 are also consistent with Visual Studio's debugging.

When debugging you can mouse over a variable name to see the value that has been assigned. However PowerGUI gives slightly more information as it will also tell you the type of the variable.

Debugging in PowerShell ISE Debuggin in PowerGui




One thing I did notice is that PowerShell ISE will break at the following line and allow you to step over it and wait at the next line, when I step over the second line PowerShell ISE will then display an error in the output window, however PowerGUI will report the error once I step over the first line and doesn't stop at the second line, to stop at the second line I needed to set a specific breakpoint.

lines of script

Another useful feature in PowerShell ISE is the ability to issue debug commands at the command window while debugging. For example just type the name of a variable and it's value will be displayed in the output window. PowerShell ISE DBG example

Other useful features are the ability to view the call stack using the keyboard shortcut Ctrl+Shift+D, and highlighting sshot-7a cmdlet and pressing F1 to get the help form that particular cmdlet. 

However despite the very good support for debugging PowerShell Scripts I prefer the intellisense offered by PowerGUI. PowerShell ISE does offer tab completion in the editor for cmdlet names however I prefer the Ctrl+Space option available in PowerGUI as this matches what I'm used to given that Visual Studio is mostly my day to day environment. I do appreciate that Tab completion option would be more familiar to System Admins. PowerGUI intellisense

But PowerShell ISE still has one trick up it's sleeve with it's programmability. PowerShell ISE has it's own object model thus allowing you to extend it with your own PowerShell script. You can add the script to the ISE profile and this will then be persisted between sessions. Note that this is a different profile than PowerShell and you can create the necessary file by typing the following command into the ISE command prompt:

if (!(test-path $profile )) {new-item -type file -path $profile -force}

Once the profile script has been created you can open it and start changing settings some settings. In Visual Studio I like to use the font 'Consolas' so these two lines of code will set ISE to use the font I like and at my preferred size when the editor starts.


This is a very simple example of what's possible using the profile script to customize ISE but more complex customization is possible such as adding new menu items. If you put the following script into your profile and restart ISE you'll see a new entry on the menu bar called 'Add-ons', under this you will find an option 'Say Hi' click this and the famous 'Hello World!' message will be displayed in you editor pane.

function Get-Message
    $psise.CurrentPowerShellTab.Files[0].Editor.InsertText("Hello World!")
$null = $psise.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Say Hi", {Get-Message}, $null)


If you want to find out what members are available on the $psise object just issue '$psise | Get-Member' at the command window in ISE.

So which is best? Out of the box PowerGUI suits me the best due to the similarity with Visual Studio however I found the debugger better in PowerShell ISE. Also I'll be giving serious consideration to PowerShell ISE's programmability and experimenting with this to see how far I can push it, I'll post any interesting extensions I create.

posted on Tuesday, 09 June 2009 20:18:58 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Monday, 01 June 2009

I just upgraded to Windows 7 RC and solved my first issue. Upon upgrading I found all the folders and shortcuts under 'All Program' on the start menu was empty. Now the start menu isn't something I've used for a while since I started using the program Launchy. Launchy is an application launcher that runs in the background that I can call by using the Alt+Space keyboard shortcut, I then type the name of the program I want to launch and press the enter key. Been a programmer and very used to working with command line interfaces I find this much simpler that navigating any form of start menu. sshot-1

The screenshot shows what Launchy looks like, it remembers the programs you have launched in the past so now I can launch FireFox by simply typing the F and pressing enter. Since I installed Launchy I have stopped organizing the folders and shortcuts in my start menu simply because I know I'll never go looking for anything in the start menu that I install. This all worked fine while I was running Vista however after sshot-2upgrading to Windows 7 I found all the entries in the start menu gone. Yet when I navigated to the folder using Windows Explorer I found that all the folders and shortcuts still existed.  So after a bit of experimentation I found that by grouping the folders in start menu into groups such as 'Dev Tools' or 'Sys Util' I found that by reducing the number of item in 'All Programs' on the Windows menu that the Start menu was then able to display all the shortcuts. I'm not sure what the maximum number of entries the Start Menu can support is but 54 was fine for me.

If you right click on the 'All Programs' option in the Start Menu you will get a context menu that allows you to open the folder that holds the start menu folders for your account and an option to open the location for all users. You will need to check the number of items in both locations as both locations contribute to the total number of items in your start menu.

Launchy is an open source program and has builds for Windows and Linux, I first learnt of Launchy from the book 'The Productive Programmer' and would encourage you to give it a go as I've been using it for a while now and I've been really pleased with the program.

posted on Monday, 01 June 2009 22:00:03 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Wednesday, 06 May 2009

mockup You've all heard the phrase "a picture says a thousand words" and when it comes to someone describing how they want their screen to look like nothing could be more accurate. If you've ever sat with a wordy document and tried to work out how the screen should look you'll know what I mean. This is where screen mock-ups become invaluable. Screen mock-ups have been around for ages and there are a number of packages that facilitate their creation. For example Microsoft's Visio Professional edition comes with high quality shapes for modelling a windows interface.

However many of the available tools have felt cumbersome when first planning an interface. Since I first started developing software I would scribble my ideas for a layout on any scrape of paper that came to hand. In fact lost of things have been design on the back on napkins such as Compaq's first portable computer, see 7 Brilliant Ideas on Cocktail Napkins and Toilet Paper for more examples.

When scribbling an idea down like this the thought can flow freely from your head to the paper and this is what I've always missed when designing screens on a computer. But recently I started playing with Balsamiq. This is a very simple tool from as they put it 'a couple of guys in a studio' and it's awesome! The thing that won me over so quickly is just how simple and unobtrusive the software is. It feels as close as you'll get to scribbling your ideas for a screen down on scraps of paper.

Check out this video on YouTube showing Balsamiq in action! Also checkout the web site that has loads of examples


The really cool thing about these mock ups is the simplicity, by being so simple people are free to focus on what data they want on the screen and where this should be placed thus avoiding be dragged into a needless discussion in the preliminary stages on what font face should be used.

Now this isn't the end of the story along with the ultra cool minimalist desktop version Balsamiq has versions for Confluence, JIRA and XWiki. You can see how if you have these tools developers can edit the screen mock-ups within a web browser using the Balsamiq plug-in.



You can see how this really helps in communicating ideas about the design of the UI and therefore save you time and allow you to deliver a UI that matches what the customer wants.

Balsamiq is always improving take a look at the company's blog to keep up-to-date with the latest developments. Also check out Mockups To Go, this is a collection of user contributed ready to us UI components and design patterns built using Balsamiq mockups. To give you an idea of what's on offer the screen shot below shows a sample of some various web parts that are available.


posted on Wednesday, 06 May 2009 18:25:23 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [2]
 Monday, 04 May 2009

 Glimmer ajQuery Interactive design toolThis is a really cool tool from Microsoft billed as 'a jQuery Interactive Design Tool', basically it allows you to easily create jQuery effects on your site without having to write any JavaScript code!

So what do you get? Well when you start Glimmer up for the first time you are presented with the main Glimmer window displaying four wizard options. These are Image Sequencer, Glimmer main window Dropdown Menu Wizard, Custom and Tooltip Wizard. Each of these Wizards will step  you though creating the designated jQuery effect.

The wizards allow you to easily create what would normally be relatively complex jQuery effect with little effort and if this is your first brush with jQuery it's a very good place to start.

The Tooltip, Dropdown Menu and Image Sequencer wizards are relatively self explanatory, stepping through these wizards will produce html, JavaScript and CSS file necessary to implement the desired effect that you can then use in your own site. However the custom wizard allows you to get a bit more creative as you can create your own jQuery scripts. In custom mode you can open an existing html page and start creating a jQuery script that will operate on the elements in the page.

Along with the cool wizards that come pre-installed Glimmer also offers the ability for extension with custom plug-ins, full details can be found in the help that comes with Glimmer. You have the option of creating custom effects or creating a custom wizard.

I think this is a really cool tool that you must checkout. I've used to produce jQuery effects that I prefer to the equivalent ASP.Net controls. Once word spreads and more custom wizards and effects are produced this will become a truly awesome tool, so go get it and spread the word.

posted on Monday, 04 May 2009 18:41:57 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [2]