Monday, 09 February 2009
Most of you probably have heard of, or even used Camtasia, it's a wonderful product with many nice features. I really liked how the camera would automatically zoom in and out as I entered text in a web form. However no matter how nice Camtasia Studio is, it's well out of my price range for all the uasge I would make of it. However I've just found an alternative in the form on CamStudio.

It's a open source implementation of a screen recorder that includes some nice features such as defining an area of the screen which the camera should stay focused on. Most importantly to me is the ability to convert the AVI captured video to a SWF that can then be embedded in a web page. This is the tool I used for my previous post on Windows Mobile Internet Connection sharing.

posted on Monday, 09 February 2009 15:11:55 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Sunday, 08 February 2009
Developer, Developer, Developer (DDD) are free community events held across the and Ireland which highlight some interesting technologies in the field of .NET. Last year the event as in Galway this year it will be in Belfast on Saturday 4th April.

Having attended last years event I can recommend this as very worth while. You can get more details at the confrences web site. The event will be held at the Belfast Metropolitan College on Brunswick Street Building, Belfast.





posted on Sunday, 08 February 2009 09:52:37 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Friday, 06 February 2009
Windows PowerShell is Microsoft's latest command line and scripting language. It's a major move forward from the days on MS-DOS Batch files and gives Windows a scripting environment more in keeping with the likes of the Bash Shell on Linux. Needless to say I like PowerShell and there are enough people out there already singing it's prasies what I want to highlight is the ability to customize the PowerShell environment for yourself.

Those of you comming from Unix or Linux will possibly have at one point encountered the '.bash_profile'. This was a hidden file in the root of your home directory and allowed you to customize various settings suchas adding environment variables. This was extremely useful and I can recall adding various JAR files to a classpath environment variable in a previous life. So when I came over to PowerShell and started writting my own scripts I wanted to may life easy for myself. Typing C:\users\alan\code\scripts is just too much like hard word even with tab complition. Wouldn't it be nice to just type 'cd $MyScripts'? Well it is and with tab completion of environment variables all I need to type is 'cd $mys' the tab key takes care of the rest.

PowerSehll has a hierarchl structure for profiles which allows profiles to be specified once for all users or for an individual user. It's simply a matter of knowing where on the hard drive to store the 'ps1' script. Your options are as follows:
  • %windir%\system32\WindowsPowerShell\v1.0\profile.ps1
  • %windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
  • %UserProfile%\My Documents\WindowsPowerShell\profile.ps1
  • %UserProfile%\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Those profiles stored under the %windir% will effect all users whereas profiles stored under the %UserProfile% will effect only that user.

Ok so now we can look at a bit of PowerShell script to create the profile and begin customizing it.


test-path $profile
new-item -path $profile -itemtype file -force
notepad $profile

Note if you wanted to create a profile for all users replace the '-path' argument on the new-item cmdlet call with one of the paths listed above.

Now that you have a profile you can start customizing it, one of the most common things I've stored in my profile in the past has been environment variables. To do this with PowerShell simply use the Set-Variable cmdlet as shown below where I create a new variable called 'MyScripts' which will point to 'C:\Users\Alan\Code\PowerShell\MyScripts'


Set-Variable -Name MyScripts -Value "C:\Users\Alan\Code\PowerShell\MyScripts"

posted on Friday, 06 February 2009 16:14:24 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Thursday, 05 February 2009
If you've used the Command Prompt Here PowerToy in the past you'll definitely want this ability when you make the move to PowerShell. You have two options.

  1. Customize the ini file for the command prompt here PowerToy
  2. Download an already had version here from Scott Hansleman

posted on Thursday, 05 February 2009 16:45:34 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Wednesday, 04 February 2009
Microsoft Press's Professional Series (the silver ones :-)) aim to create a series of books that provide information for IT professionals in a technology independent manner. Examples of previous books in the series that I've enjoyed are Code complete by Steve McConnell and the Object Thinking by David West. Both of these contain information that can be easily transferred from one language to another such as between Java and C#.

Simple Architecture for Complex Enterprises by Roger Sessions sets out to create another book in this series; this time focusing on enterprise architecture in particular the focus is on the idea of creating simple solutions. The Book is split into two sections, the first concentrates on the issues of complexity. It starts off by giving an overview of the current state of play in the field of enterprise architecture. Following on from the description on enterprise architecture Roger gives an overview of The Zachman Framework, The Open Group Architecture Framework (TOGAF) and The Federal Enterprise Architecture (FEA). He points out how these should not be seen as competing against each other and how they can in fact be used to complement each other.

Now we dive into the main target that this book is hoping to address with chapter 2 "A First Look at Complexity". Along with defining complexity Roger proposes a solution in the form of partitioning that can be used to break complex system down into manageable chunks. This idea is well illustrated with the use of a Rubik's cube and how a 4-by-4 cube has 7.4 x 1045 possible permutations, whereas a 2-by-2 cube has 'only' 3.7 x 106 permutations. There eight 2-by-2 cubes would only have 29.6 x 10 ^6 possibilities. So this example proves with undisputable numbers that splitting a complex problem into smaller simpler problems allows us to produce simpler solutions.

The second section of the book is "The Quest for Simplification" is where we find Roger's suggestions on how we can avoid complexity in our applications. The methodology that is proposed to control complexity is Simple Iterative Process. SIP describes the main approaches used for complexity control: partitioning, simplification and iterative delivery. After this chapter 6 shows us an example of a system gone badly wrong and illustrates how SIP could have helped this system. The system in question is the National Program for Information Technology (NPfIT) that the British government commissioned for the National Health Service (NHS), even if you have no interest in IT and pay taxes in the UK this chapter should be of interest due to the colossal money squandered on the project due to late delivery all of which can be attributed to a complex solution being implemented for a complex problem. The next chapter the looks at how we can start designing software to control the complexity problem using a technique called "Software Fortresses".

I liked this book particularly because it does what I think is important when writing on a topic such as enterprise architecture, it will help get you thinking! I would encourage developers, architects and CIO's to read this book and ensure they are aware of the danger of complexity entering their projects.

I would like to conclude this post by referring to thoughts from the book. To be a successful architect you must be passionate about simplicity, you must aim to make it your goal to deliver a simple solution for complex problems, anybody can develop a complex solution, it takes a great architect to take a complex problem and deliver a simple solution.


posted on Wednesday, 04 February 2009 21:51:00 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]