Wednesday, December 1, 2010

Net Helpmsg

So apparently Net Helpmsg this has been around for a while but I just discovered it today. I was trying to track down the cause of a build error which included in the stack "exited with code 5".

Net HelpMsg is a utility that provides the error message description when you provide an error code:

A couple of links for more details (if more is needed):

Thursday, November 11, 2010

Free Programming Windows Phone 7 Book

Veteran's Day today – Thank you to all who have served to protect us.

Charles Petzold has releases a free e-book: Programming Windows Phone 7. I have barely opened the book so far but I am having flashbacks to my first Windows 3.1 programming experience and clinging to his Programming Windows 3.1 book for survival…I'm tempted to dig through the boxes in my basement to find my copy and reread it's the hello world example!

You can find it at his site: http://www.charlespetzold.com/phone/index.html or from Microsoft

Thursday, October 28, 2010

Windows 7 64-Bit and Eclipse Issue

This week I ran into issues setting up a java development environment on Windows 7 64-bit. I attempted to use my company’s image which includes: 1) 32-bit JDK 2) Eclipse Galileo (32 bit) 3) Subcliplse plugin 4) The Maven plugin, m2eclipse.

Everything seemed to be going well until I tried to install the plugins…and received “An error occurred while uninstalling”. I dorked around for a bit trying to get it to work but was unsuccessful.

Realizing my OS was different (Windows 7 64-bit), I started over and went full blown 64-bit:

  1. Install JDK 6 for Windows 64 bit (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
  2. Install Eclipse IDE for Jave EE Developers – Windows 64 bit (http://www.eclipse.org/downloads/)
  3. Within Ecliplse install the m2Eclipse plugin (http://m2eclipse.sonatype.org/sites/m2e)
  4. Within Ecliplse install the Subclipse plugin (http://subclipse.tigris.org/update_1.6.x)
  5. Within Ecliplse install Maven Extras (http://m2eclipse.sonatype.org/sites/m2e-extras) to integrate with SVN in eclipse.
  6. Install the 64-bit version of SlikSvn (http://www.sliksvn.com/en/download): Subclipse doesn’t natively support a 64-bit version of JavaHL so a separate install is needed.

With these alternate downloads things so far are working great!

Tuesday, September 21, 2010

"Practical Liferay" Book Review

Practical Liferay is a non-technical book that explains the capabilities of Liferay and how to create a portal using its out-of-the- box components. It provides an idiots introduction to what a portal is and then takes you through the various admin screens and how to use the applications/portlets available. It does not discuss how to develop portlets and just briefly mentions how to extend Liferay with hooks.

I don't recommend this book because:

  1. Already outdated – Although the book was published in 2009, it covers Liferay version 5.1 and there are already 2 newer releases (5.2 and 6.0) available. There are enough differences between the versions that make the step by step instructions useless.
  2. No depth – The book provides little insight into the design or features of the Liferay that you can't pick up by exploring Liferay itself.

I think this is more equivalent to a Liferay for dummies and suited more for non-technical administrator who wants step by step instructions on getting a portal setup – of course it doesn't cover how to do this end to end. I would recommend starting with the guides Liferay provides: the Liferay administration guide and development guides.

Sunday, September 12, 2010

Extended Business Trip

Finally home after nearly a month in Australia rolling out a new "game-changing" product to some beta customers. Being away from home and family for that long was really tough, but it was a great learning experience and I was able to meet and work with a number of excellent people. Getting in front of customers is something we all should try to do more of. I'm considered a SME (subject matter expert) for a lot of areas in my department primarily because of time served on projects with the company, but I have never been a day-to-day consumer of the applications I develop and it had been almost 2 years since I had direct interaction with our target users. Granted my job doesn't require frequent contact with customers - we have product owners who are responsible for that and these product owners serve as our customers we are trying to satisfy – but there is just no substitute for being thrown in front of actual users who depend on the application (especially if they are commissioned-based!) to bust a few of your assumption bubbles.

Australia wasn't too bad either – we averaged 12-hour work days but I had my weekends free, so I was able to experience a lot over my 3 weekends there. I didn't get to do as much diving / snorkeling as I had hoped – it was winter and the water was a tad frigid. And for anyone interested - LAX is still my least favorite domestic airport...can't even think of a close second.

Saturday, June 5, 2010

"The Quick Python Book" Book Review

I have had no previous experience with Python so when I received a copy of the I was eager to jump in and learn something. This book is focused on the Python 3 language and is written for programmers who already know another language (mainly Java or C++). At around 300 pages it is a fairly quick read and seems to hit all the basics and touches on some of the more advanced language features. Since it assumes readers already know how to program it doesn't spend any time teaching the fundamentals of development so that you can focus on Python from the beginning.

The book contains 24 chapters that are split into 4 sections: 1) Starting out, 2) The Essentials 3) Advanced Language Features 4) Where can you go from here.

Since I am not currently planning a project with Python, I probably got the most out of Part 1. Its 3 chapters give a good overview of the language constructs, and what it does and doesn't do well. This is what I was looking to get out of the book and it provided most of what I wanted in about 20-30 minutes of reading. After reading this book I feel like I have a beginner's grasp of the language and could bumble around and create some useful scripts but definitely not any sort of worthy application. If I ever need to develop an application in Python I would have to get an additional resource (and reread this one).

Tuesday, May 18, 2010

Carolina Code Camp

I attended Carolina Code Camp on Saturday (May 15th) in Mathews North Carolina. The camp had 9 conferences and approximately 45 sessions of which I attended:
  • Introduction to Functional Programming with Scheme
  • C# Ninjitsu
  • Advanced WPF-Model-View-ViewModel Apps
  • Silverlight on MEF
  • Become an rX Pusher with the reactive Framework
A very good geek day and I came away with a couple of books:

Monday, May 10, 2010

ReMix Atlanta

I attended Remix Atlanta on Saturday (May 8th) and found it well worth the $25 to attend. The keynote by Brandon Watson on Windows Phone 7 was my favorite session of the day as it was my first exposure to Windows 7. At this point there is still a lot of details still being worked out by Microsoft such as the device specs, market place (very raw at this time) and pricing, but overall the Windows phone 7 looks very intriguing.

The conference offered 3 tracks: Windows Phone 7, Silverlight/Blend/Web and User Experience. I stuck with the Silverlight/Blend/Web track which included the following sessions:
  • Silverlight 4 and Blend 4 Essentials
  • Why Blend 4 has become Indispensable
  • What's new in ASP.NET 4 WebForms
  • Silverlight for the Enterprise
All were good but enjoyed Silverlight for the Enterprise the most of the 4 – it was the first time that I've heard of MEF and look forward to diving into it more. Another bonus was the free copy of Silverlight spy that I won in one of the sessions.

Definitely recommend attending it if the organizers offer it again in 2011.

Wednesday, May 5, 2010

Application Architectural and more Layer Diagram

In my previous post, I talked about one of the new modeling capabilities in visual studio 2010, without giving any background on application architecture which would cover what layers are. If you are lacking knowledge or experience in this area I recommend the architectural guide published by Microsoft's patterns and practices group. You definitely can't beat the price. Download the book here: http://msdn.microsoft.com/en-us/library/ff650706.aspx

I downloaded the guide a while ago so when looking for the download link, I discovered another nugget from Microsoft for layer diagrams. From the same URL above you can download layer diagram templates that match what is covered in the book.

  1. After installing create a new layer diagram and your toolbox will contain the following:

  2. When I selected Rich Client Application it added the following to my diagram.


  3. Now you can create your projects and add them to the correct layer. Then add your dependencies. Which brings up another point I skipped in my last post, if your solution is already up and running and projects referencing each other the way you want modeling you can have Visual Studio auto detect dependencies by selecting "generate dependencies" from the context menu:

Saturday, May 1, 2010

Visual Studio 2010 - Layer diagrams

Disclaimer: The feature described in this post requires either the ultimate or the premium editions. For a good visual of the edition differences see the visual studio 2010 editions poster (http://vs2010quickref.codeplex.com/)

The layer diagram is a new feature in visual studio 2010 which allows an architect to visualize applications layers and the desired communication and dependencies between the layers and components. Big deal right – you can do that in power point if you had to. Ah but the goodness with the layer diagram is that it can enforce the dependencies between layers. Therefore it is possible to stop rouge leader from having the UIX layer from accessing the data layer directly.

Getting Started

  1. Select New Diagram from the Architecture menu in visual studio
  2. Select Layer Diagram and give it a name. I recommend also adding a new project that will hold your various diagrams.
  3. Now using the toolbox, you can add you application layers and the dependencies between them
  4. To enforce these dependencies you can associate your solution projects to the appropriate layer. Using the solution explorer drag each project to the appropriate layer. Each layer will show a count of projects associated with the layer.
  5. This view shows how many projects are associated to each layer, but to see the actual projects you need to open the layer explorer
  6. The layer explorer:
  7. You can now have visual studio validate that your solution matches your architecture by opening the context menu and selecting validate architecture. This will return errors if you solution validates your diagram.
  8. Tie the validation to your builds and TFS work items:
    • You can modify your modeling project to validate on every build
    • If using CI (Continuous Integration) with TFS or MS Build you can add an option to validate your model with every build.
    • You can add work items for each violation

Wrapping it up

I've shown a very basic layer diagram but MS has provided screenshots of the potential diagrams with a true enterprise application

For more information and details see:

Saturday, April 17, 2010

Microformats

Since I completed my MBA several months ago, I have started the agonizing process of updating my resume (I've procrastinated long enough). During the updating process, I stumbled upon Micoformats, specifically hresume, which promises to allow applications and search engines to easily read and index your resume content so that you could point job posting sites to your resume instead of having to enter your information in for each one.

After some initial reading it seems like a promising solution and standard that may become mainstream (Linkedin uses it and Google is rumored to be adopting it as well). I've found little negative reports on it so far but found this coding horror post interesting.