Thursday, October 19, 2006 - Posts

Riding the fence between developer and DBA

In the mid- to late-1990s, the Internet boom was at its peak and IT personnel were in a virtual Camelot. You could do one thing reasonably well, and expect to be highly compensated and even fought over by myriad startups. However, when the bubble burst in 2000, the high tech job market stalled and forced companies to do the same work with fewer people. Job responsibilities were expanded, forcing geeks of all types to diversify and absorb more duties.

Alas, it appears that the pendulum has begun to swing the other way, and things are taking a turn for the better during the past year. Companies are returning to profitability and are in many cases expanding their IT staff. Personally, I don't think we'll ever see the glory days again, but at least we in this industry can breathe easier.

Now what I'm wondering is, as IT departments grow larger, what becomes of us who have inherited these additional duties?

In my case, I started as a developer and inherited a SQL Server machine about four years ago, which became 2 SQL Server machines, then 4, and so on, leading me to become as proficient with database administration as I am at coding. My official title stands as "Web Developer", but I do as much database administration and development as I do web development. I enjoy both the development and the database segments of my job, but I suspect that as our staff grows I will be pushed into one role or the other.

I'm curious if anyone else has experienced this paradigm shift. If so, I'd like to hear about it.

.NET DateTime Formatting

Here's a quick reference for DateTime formatting (example given in C# but the concepts also work in VB.NET).

//-----------------------------------------------------//

using System;
using System.Globalization;

public class MainClass {
   public static void Main(string[] args)  {
       DateTime dt = DateTime.Now;
       String[] format = {
           "d", "D",
           "f", "F",
           "g", "G",
           "m",
           "r",
           "s",
           "t", "T",
           "u", "U",
           "y",
           "dddd, MMMM dd yyyy",
           "ddd, MMM d \"'\"yy",
           "dddd, MMMM dd",
           "M/yy",
           "dd-MM-yy",
       };
       String date;
       for (int i = 0; i < format.Length; i++) {
           date = dt.ToString(format[i], DateTimeFormatInfo.InvariantInfo);
           Console.WriteLine(String.Concat(format[i], " :" , date));
       }

  /** Output.
   *
   * d :08/17/2000
   * D :Thursday, August 17, 2000
   * f :Thursday, August 17, 2000 16:32
   * F :Thursday, August 17, 2000 16:32:32
   * g :08/17/2000 16:32
   * G :08/17/2000 16:32:32
   * m :August 17
   * r :Thu, 17 Aug 2000 23:32:32 GMT
   * s :2000-08-17T16:32:32
   * t :16:32
   * T :16:32:32
   * u :2000-08-17 23:32:32Z
   * U :Thursday, August 17, 2000 23:32:32
   * y :August, 2000
   * dddd, MMMM dd yyyy :Thursday, August 17 2000
   * ddd, MMM d "'"yy :Thu, Aug 17 '00
   * dddd, MMMM dd :Thursday, August 17
   * M/yy :8/00
   * dd-MM-yy :17-08-00
   */
   }
}