Sunday, February 15, 2009
This is one of the books from Manning with the cool covers that I like. This book has been written by Bruce Payette one of the designers of PowerShell. Because of this the book offers in-depth information on many aspects of PowerShell.  The book is split into two sections. Part one focuses on the basics, it covers using PowerShell at the command line and writing and run your own scripts. I read the nine chapters in this section from start to finish and was please to find lots of working and easy to follow code examples which I could play with and easily refer back to as I wrote my own scripts. I found this section greatly enhanced my knowledge of PowerShell in a short space of time, I would put this down to a good balance between verbose text and script examples to experiment with and if you are like me and learn beat by doing this book will suit you. The second section covered more advanced topics such as:
  1. Processing text files and XML
  2. .NET and WinForms
  3. Windows objects: COM and WMI
  4. Security

These were also detailed chapters with good examples however to date I have gotten more use from chapters 10 and 11 this is no fault  with the book it’s more of a reflection on what I’ve been working with recently. Since taking the time to sit down with this book I have become very keen on PowerShell especially having seen and used the scripting tools available on Linux and UNIX.

I found the book well structured and importantly for me it contains lots of script examples. Previously I had tried to learn PowerShell simply from various web sites however lack of discipline kept getting in the way. With the book I was able to discipline myself better and managed to work through this book in just over one week. Now I’m able to write my own scripts and when I’ve needed to I’ve found it very easy to refer back to the book. The back cover says that this is a book for sysadmins and developers, I would agree with this and would recommend this book for people with previous scripting of programming experience if you don’t have these then a more basic beginners book may allow you to make more progress.

The books web site: http://www.manning.com/payette/

posted on Sunday, February 15, 2009 6:18:46 PM (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Wednesday, February 04, 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, February 04, 2009 9:51:00 PM (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Wednesday, January 28, 2009

One of the books that made it onto my seemingly never ending reading list was The Productive Programmer by Neal Ford. At only 190 pages it doesn't look too intimidating to start with and on closer inspection you find this is indeed the case. Neal Ford has produced a well written text that spares waffle and gets straight to the point. It's a book that is very easy to read and difficult to put down.

The book is split into two with part one focusing one mechanics and provides examples of some very useful tools such as JediConcentrate and Launchy. However I must admit I prefer Ghoster as apposed to JediConcentrate for aiding concentration. Along side recommending tools the first section also champions the benefits of scripting languages such as Groovy, PowerShell and Ruby, he gives some interesting examples of splitting SQL files and automating various other tasks. However I personally would stress the need to be compident with regular expressions along with a scripting language.

Some of the examples in the second section give examples in Java this could lead to the book being seen as a Java orientated book, however nothing could be further from the truth. This books contains lots of useful advice that will be of use to all developers. There is a discussion of SLAP (Single Level of Abstraction Principle) which can be applied to all Object-Orientated languages. Other topics include test-driven development, static code analysis and the idea of good citizenship, all of which if nothing else should plant a seed and get you thinking.

The author has a wiki for the book at http://productiveprogrammer.com. The wiki and the book is to raise awareness of how developers can be more productive and allow much smarter people to carry out the conversation. We're all familiar with the acynom YAGNI only in the case of this book it should read You are Going to Need It.

posted on Wednesday, January 28, 2009 8:57:10 PM (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]