... all I'm offering is the truth. Nothing more. RSS 2.0
# Wednesday, March 10, 2010

I recently had a complete melt down of my work laptop which required our IIS team to repave the entire thing. I decided to keep a track of the most important things I need to add to a new baseline machine (not including Office).

  • Beyond Compare - Beyond Compare allows you to quickly and easily compare your files and folders.
  • UltraMon - UltraMon is a utility for multi-monitor systems, designed to increase productivity and unlock the full potential of multiple monitors.
  • Password Agent - An easy-to-navigate password management program that allows you to store all your passwords, secret notes and data snippets in a single, secure database.
  • Notepad2 - A fast and light-weight Notepad-like text editor with syntax highlighting. This program can be run out of the box without installation, and does not touch your system's registry.
  • Magic ISO - MagicISO is a powerful CD/DVD image file creating/editing/extracting tool. It can open / create / edit /extract CD/DVD image files, and it can convert bin to iso and back.
  • Visual Studio 200X – ‘nough said
  • NAnt - NAnt is a free .NET build tool. In theory it is kind of like make without make's wrinkles. In practice it's a lot like Ant.
  • Windows Powershell - A new command-line shell and scripting language designed for system administration and automation.
  • Reflector - Explore and analyze compiled .NET assemblies, viewing them in C#, Visual Basic, and IL.
  • SysInternals - Sysinternals utilities help you manage, troubleshoot and diagnose your Windows systems and applications.
Technorati Tags: ,
Wednesday, March 10, 2010 11:53:34 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Software
# Monday, February 15, 2010

This is the first direct look at Windows Phone 7 series. I am impressed!

Get Microsoft Silverlight

Technorati Tags:
Monday, February 15, 2010 11:53:26 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Mobile | Windows

Having seen the basic premise of the Windows Phone 7 series I fully understand why the Windows Marketplace (for version 6.x) only has about 300 applications. The new phones finally push the bar for Windows Mobile platform in a significant way. While I to applaud the Zune like interface it really takes the phone into an Apple centric design philosophy i.e. No bare bones, blank canvas designs for third parties, but they give you exactly what you need for the full social phone experience.

 

What I am looking forward to: Full Xbox Live Integration, Zune Integration (another reason to get a Zune pass), Zune HD like user interface.

I just purchased the android so this will be a hard sell to get Win Pho 7 but

Technorati Tags:
Monday, February 15, 2010 10:20:51 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback

# Tuesday, February 09, 2010

As always my posts are usually based on experiencing some travesty of code that required me either to change or endure it. In this case I was looking at a web page who’s only purpose was to return data … for the more seasoned among us the preceding sentence should scream murder. The truth is a web page has a metric ton of overhead and simply using them as conduits for the delivery of raw unformatted non html information (jpeg, text,xml, etc) is a pure waste of resources. The following is an example of what not to do when you trying to return data:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

public partial class WebPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/xml";
        Response.ContentEncoding = Encoding.UTF8;

        string xml = GetXMLString(); //Not interested in the details

        Response.Write(xml);

    }

}

This example takes advantage of the generic handler, which has all the flexibility of a web page but none of the overhead of the web page life cycle. While I am returning text/xml this could be any of your defined MIME types.

<%@ WebHandler Language="C#" Class="SomeHandler" %>

using System;
using System.Web;
using System.Text;

public class SomeHandler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/xml";
        context.Response.ContentEncoding = Encoding.UTF8;

        string xml = GetXMLString(); //Not interested in the details
        context.Response.Write(xml);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

In my humble opinion the above concept should be known to all senior asp.net developers, in fact this is one of the first interview questions I ask.

Technorati Tags: ,
Tuesday, February 09, 2010 12:16:33 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
ASP.NET | C#
# Friday, January 29, 2010

Just read an excellent article on the concepts of and incurring and paying back the “Technical Debt” that accumulates on poorly executed software projects. The idea is that one contributes to a pool of technical debt or credit, analogous to our economic and financial status. One of the great topics discussed in the article encapsulated the very real need for diplomacy when confronting your projects debt and impending bankruptcy.

“There’s a high probability the messy code you have to deal with was written by someone currently on your team. It’s important that you take this into account when reasoning about the code in its current state. Hurt feelings lead to defensiveness that, in turn, leads to slow going on the improvement train.”

Now if you are incurring a technical debt at the architecture level you are in dire straights and need rescuing by experienced designers. Unfortunately poor architecture will not only incur technical debt but probably QA and managerial debt also. I came across another interesting blog where the point was that “Pro’s don't make do”. We simply have to hold our selves to a higher standard when it comes to preparation and execution of software projects, starting with the acquisition of the appropriate tools and leaders who have the appropriate experience level for the task at hand.

The truth is I have learned more about managing software projects from failures I have encountered than from my apparent and immediate success. With that said here are a list of things that can lead to the worst kind of technical bankruptcy:

  • Setting external target dates without internal reviews are a remedy for disaster.
  • Having technical staff who do not understand the complexity of their own work will immediately lead to incorrect work estimates.
  • Implicit design and architecture are useless for most people, and especially disastrous for developers.
  • If you are unable to setup reasonable target dates and completion points throughout your project, you may not fully understand what you are delivering.
  • Setting product release dates before you fully spec your project or understand the nature of the problem.
  • Hiring a project manager who has not experience at least one epic failure from which they have learned a valuable lesson.

Technorati Tags:

Friday, January 29, 2010 11:15:11 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Management | Software
# Wednesday, January 20, 2010

I do not do nearly enough straight SQL these days, there is always a layer of abstraction between me and those db tables. Anyway I always forget how to reseed identity values for table. The following SQL statement ensures that the next insert on mytable will result in the seed value being 1.

DBCC CHECKIDENT (mytable, reseed, 0)

Wednesday, January 20, 2010 11:03:53 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] - Trackback
Programming Note to Self | Sql
Blogroll
Statistics
Total Posts: 330
This Year: 18
This Month: 2
This Week: 0
Comments: 30
About the author/Disclaimer

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

© Copyright 2010
Mark Downie
Sign In
All Content © 2010, Mark Downie
DasBlog theme 'Business' created by Christoph De Baene (delarou)