Healthcare.gov Website

Jekyll and Healthcare.gov

I just read the article, Launching HealthCare.gov from the developers of Jekyll and was definitely impressed with the power that it has to support a site of that scale. Of course there is probably hardware to back up the site itself, but as a CMS, Jekyll can pull it’s own weight.

There were a few plugins that they developed in order to support customized behavior, which if you’re hosting a Jekyll site on Github then you won’t be able to benefit from the use of plugins because Github runs in safe mode, but Jekyll was what is powering the site and that’s pretty cool.

Awareness

Have you ever been driving down the road and a few minutes later you wonder how you got to where you were? How did I actually make it through the traffic lights or stop signs? I know that I have. I drive the same path to work everyday of the week and since its such a repetitive path (and early in the morning), I tend to drive on autopilot. There have been a handful of times that I have gotten halfway to work and wondered, “Was that last light even green?”

I think a lot of Christians do just that in their relationship with God. We know He’s always there Deut 31:8 because He promised us that He wouldn’t leave us, but so many of us are walking in God’s presence on autopilot. We’re not really paying attention that God is at work all around us and wants to work with us and through us to bring us the many blessings that He has in store for us. Many of us get caught up in the traditions of church and lose the real meaning of what’s going on. Singing along with the songs and not really paying attention to what God is trying to speak to us through those songs. Listening to the message that the pastor is speaking but not really hearing.

But just being aware isn’t enough. You can be totally aware that your spouse is in the room, but not really engage in any activity that helps deepen your relationship with that spouse. We need to instead make a conscious effort to engage in that awareness. One time you might have a deep conversation with your wife, another time it may be just gently giving her a hug, but whatever it is, it’s a conscious decision to respond to her presence. The same is true with our relationship with God, slow down and take a few minutes to really respond to God’s presence. Get it in your heart that He is there, not just your head.

If we take time to get into God’s presence and really think about how much He loves us and desires an intimate relationship with us, there are so many blessings that we open ourselves up to Joshua 1:8.

Smartphone Market Share

For those of you looking for statistics that might help you determine which smartphones will be around long term, here are some links from Gartner Research that should shed some light on whose really winning the "smartphone war".

Newest links at the top.

I’m definitely an iOS fan, but the most recent statistics are showing that Android seems to be coming out on top as far as consumers are concerned, with Microsoft’s Windows Phone OS failing miserably.

Sorting in .NET

I found some very interesting behavior in the .NET sort method today that I thought I would share in case it catches anyone else off guard.

To set up the scenario, I had two objects that had the same value for the property that was being compared. These objects were already in the order I wanted them to be in; although, in the context of the other objects in the list, they needed to be sorted correctly. The result was the two objects with the same value were now in the opposite order. I’ve provided a little sample code that demonstrates the problem.

  internal static class Program
  {
      private static void Main()
      {
          var list = new List {
                                  new MyClass("Alpha", DateTime.Today),
                                  new MyClass("Beta", DateTime.Today),
                                  new MyClass("Charlie", DateTime.Today)
                              };
          list.Sort();
          list.ForEach(d => Console.WriteLine(d));
          // Expected output:
          // Alpha      11/28/2011 12:00:00 AM
          // Beta       11/28/2011 12:00:00 AM
          // Charlie    11/28/2011 12:00:00 AM
          // Actual output:
          // Charlie    11/28/2011 12:00:00 AM
          // Beta       11/28/2011 12:00:00 AM
          // Alpha      11/28/2011 12:00:00 AM
      }
  }

  internal struct MyClass : IComparable
  {
      public string MyName;

      public DateTime MyDate;

      public MyClass(string myName, DateTime myDate)
      {
          this.MyName = myName;
          this.MyDate = myDate;
      }

      public int CompareTo(MyClass other)
      {
          return DateTime.Compare(this.MyDate, other.MyDate);
      }

      public override string ToString()
      {
          return string.Format("{0,-10} {1,-30}", this.MyName, this.MyDate);
      }
  }

In order to fix my sorting behavior, I had to add another field to make sure that the sort was maintained with values that were the same.

  public int CompareTo(MyClass other)
  {
      var result = DateTime.Compare(this.MyDate, other.MyDate);
      return result == 0 ? this.MyName.CompareTo(other.MyName) : result;
  }

That solved my problem, hopefully it helps if someone else runs into this issue.

It worked! Never Mind.

On a day-to-day basis, my interactions with customers are limited, but every once in a while I get some support calls that just take me by surprise. Today was no exception.

To give a little background, in our software we have a feature that allows us to catch any crash that is about to bring the software down and send a log of recent activity along with a short note from the customer. The customer put in the note, “Trying to print ReportA”. Definitely wanting to help resolve his issue and correct any defects that might reside in our software, I asked for a little more detail, since the log file didn’t have anything relating to that report. I asked questions like: What screen were you in? What item were you trying to print the report from? etc. At this point, I hadn’t offered any suggestions, I was just doing the typical detective work to narrow down where the defect may be. A few minutes later an email arrived in my inbox. It was a reply from the customer. Anxious to nail down the defect, I opened the email. The email contained only two words: It worked! Okay, great, I was glad the software was working for him, but what did he do differently this time? I replied asking some more questions to see if it would be possible to narrow down where the problem was and sent off the email. Again, only minutes later, I received a reply. Expecting some sort of explanation about the different approach he took, I opened the email. Just like last time, only two words were in the email: Never Mind.

Milk vs. Meat

1 Corinthians 3:1-3

1 And I, brethren, could not speak to you as to spiritual people but as to carnal, as to babes in Christ. 2 I fed you with milk and not with solid food; for until now you were not able to receive it, and even now you are still not able; 3 for you are still carnal. For where there are envy, strife, and divisions among you, are you not carnal and behaving like mere men?

Where are we still relying on the flesh to get us through our day-to-day instead of relying on God? This is where we are still depending on God’s milk to feed us. We are starving our Spirit, our Spirit needs milk early on, but there comes a time when, like a child, more than milk is required to sustain us.

So, can you have that done today?

I work at a software company where we’ve been developing a pretty sizable ERP (Enterprise Resource Planning) system. The office is an open layout, we all have our work stations, but there is no private office, so we can pretty much hear everyone’s conversations.

Today, one of my coworkers got on the phone for a support call for our software. He had the customer on speakerphone. The customer was explaining something that he was trying to do, that we had not yet implemented in our software, and the conversation went as follows:

Developer:
That’s something that is on our feature request list, it’s a pretty sizable feature, it’ll take some time to complete.
Customer:
So, can you have that done by 4pm today?

First thing to be aware of, the customer said with all seriousness, and when our developer was referring to the sizable feature, we had estimated a modest 40 hours of development time for that feature. There was definitely some humor in that in our end, wondering “How could he have even thought that?”

This particular conversation illustrates the disjointed relationship of “real world problems and solutions” and the process it takes to turn that into software. As humans, we have certain innate abilities that allow us to problem solve. As a developer, we need to make sure the software handles as many of those steps as possible.

One example would be to look at a set of data and be able to analyze what is good and what is bad. Now start asking yourself, “How am I determining whether this is good or bad data?”. Next try to generalize that so that the same set of rules applies to every piece of data in that category. It’s not always that easy.

Without going into a bunch of theory and programming language pseudo-code, I hope this gives you a level of patience next time you talk to customer support for the software that you’re using.