Alex Hoffman

Perspective on development, management and technology

  • Publishing Your Schedule From Outlook

    I’m currently managing a team that uses Lotus Notes.  Because I need to use Outlook through my company’s mail server, making my schedule public – so that team members using Notes can see my schedule and schedule meetings with me – was problematic until I realised that I can have Outlook publish my schedule in standard vCalendar format.

  • Sending Better Emails

    Like lots of people, I tend to live in world of a gazillion emails and have a reasonable system in place for handling the flood.  However, this post at 43 Folders reminded me that I haven't put as much thought into sending mail.  I think it is well worth a read.

    Amongst the particular things I already like to do with sending emails is clarify the subject of any replies I make.  For example, if I'm sent an email with the subject of  "Team Meeting", I will modify it to "[Tue 3pm 290505] Team Meeting".  Also, I ensure that I always address the person by name, and put my name at the bottom.  Makes it so much easier when reading a long email that has gone back and forth.

    Now, I'll consider prepending "FYI: " or "RA: " or "RI: "  to the subject of every email I send, as suggested in that post.  Perhaps the first line of the body should be a legend - "(FYI=for your information, RA=request action, RI=request information)"?


  • Definitions and "Application"

    Ralf Westphal has been pondering the meaning of the term "application".  I always find definitions important because all too often I find myself talking at cross purposes with others, because we are actually talking about different things.  Part of the problem is that one really needs to clarify the perspective or audience the definition is addressing.  For example to a .NET developer, a component might be "an object that implements IComponent", whereas, to a general audience a component might be "something that is a part of a larger system or structure".

  • Quote of the Week


    "The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is."

  • System.ComponentModel

    With much of the Java and OO world discussing Inversion of Control (IoC) patterns, also dubbed "dependency injection" by Martin Fowler, its worth remembering that the .NET Framework has always included a "service locator" pattern which allows a component to access shared "services".

    It can be used to support a pattern which provides a mechanism by which one can loosely-couple components - i.e. eliminate hard coded dependencies between objects.  [For those lightweight container aficionados here, .NET's implementation provides for Type 1 (interface) IoC injection of a "Service Locator" into each .NET Component]

    It's widely used in the Framework and in tools like Microsoft Visual Studio.  For example, it underpins the Windows Forms Designer architecture, and it is the mechanism through which Windows Forms Controls inherit aspects of the underlying Form.  You could use it to share say a particular ToolBar across Forms, but it goes much further than that - really to the heart of OO and how one can wire together objects without introducing hard-wired dependencies.