When Vendors Become Customers

I just wanted to post a little note on something I find encouraging.

As I was doing some billing today, Quickbooks complained, twice, that the customer I was billing was already in the system – as a vendor.

It’s cool when you get to do business with your clients, and vice versa.

Inveneo Update

As some of you may remember, we got involved with Inveneo when they were deployed to Haiti to help that country recover from a disastrous earthquake.

I was working a support ticket from Andris Bjornson and he sent along the following update, and I ask him if I could share it.

FYI – I’m currently in Nairobi, Kenya. Last week we installed a new 1U, -48VDC server in a local telecom provider’s Kenya datacenter. The server is running ONMS to monitor a number of projects we’re deploying in Kenya, the first of which is a project we rolled out this week in Dadaab on the Somali border. Dadaab has the dubious distinction of being the largest refugee camp in the world.

Through the network we helped deploy, NGOs delivering lifesaving aid in the camps will have much improved broadband connectivity options to improve logistical communications.

Today I trained the NOC on use of OpenNMS, and several of them commented on its ease of use. I’m looking forward to see our second major OpenNMS installation grow with the network.

Thanks for your continued support…I still am really hoping to get one of my engineers out your way for OpenNMS training. We’ll have to find some time between the numerous planned deployments.



New Junk on the Trunk

It’s spring, and down South that means racing. Last weekend Jason Tower headed out in the OpenNMS Spec E30 BMW, and this time the logo is on the trunk as well as the hood.

His blog is down at the moment, so I figured I’d post the race update from last weekend here.

Last weekend was my first race in six months following thumb surgery to repair a torn ligament (still in the process of healing but steadily improving). The weather forecast called for rain on and off all weekend which always makes things challenging – you never know which tires to run or how to set up the car’s suspension for optimal handling. Saturday’s qualifying session was run in damp conditions and traffic was a bit of a problem. Due to the slow pace we only had three or four laps to work with and I never had a clean lap. Still, I managed 8th out of 21 cars which isn’t too bad considering the amount of rust I had to shake off. The race itself was unfortunately a disaster. A car went off in turn 3 on the first lap which summoned the emergency vehicles to the spot. The next time around another car failed to see the yellow flag, went in too hot, and spun once he finally saw what was happening. The car behind him had to take evasive action to avoid contact so he drove off track and smashed into the wrecker, damaging it and totaling his car. Hitting an EV is one of the worst sins you can commit on track, and as a result the race was red flagged (stopped completely) and our day was over. The worst part is that both of the drivers involved were close friends of mine, and it cast a long shadow over the event. It’s also a shame because I picked up two positions on the first lap and was in 6th overall (and gaining) but since the entire race was disqualified it didn’t count for anything.

2012 VIR March Madness – Spec E30 from Jason Tower on Vimeo.

On Sunday the usual morning qualifying session was changed to a qualifying race to make up for Saturday’s red flagged race. Again I started 8th but following the previous day’s events I drove much more conservatively than usual and it showed. I lost a position and didn’t take advantage of passing opportunities that I would have normally, finishing ninth. So I had to start in ninth place for the afternoon main race which put me behind several slower drivers, meaning I’d have to work my way around them in traffic before I could attempt to make an assault on the leaders. Sadly this never happened. I missed a shift at the start which cost me several positions before the first turn, allowing even more “slower” cars to get in front of me. To make matters worse we were on a damp but drying track, so there was a “dry line” that was fine for a single driver but made passing much more difficult because any passing maneuver would have to take place on the wet portion of the track. Furthermore there were a couple of local yellows in corners that usually lend themselves to passing opportunities, and since you can’t pass under yellow it took me a long time just to get past the slower cars in front of me, and meanwhile the leaders were half a lap ahead. A full course yellow bunched the field which helped, and a few laps later a slower out of class car offered me a clean line around the outside of turn 15 which I gladly accepted. However he was unable to hold his inside line, drifted outside towards me, and I was forced to drive off track to avoid contact. As a result I spun across the track (fortunately no one was behind me), nearly flat spotted my tires, and wound up deep in the wet grass. By the time i got back on track i was hopelessly behind the leaders and had little choice but to circulate the track in relative solitude until the checkered flag. Despite all this rotten luck I still managed a sixth place finish thanks to attrition and a couple of late passes on the last lap.

2012 VIR March Madess – Spec E30 from Jason Tower on Vimeo.

A bit of a disappointing weekend overall but there were a few rays of sunshine – the car felt good, my still recuperating thumb didn’t give me any problems, I had no mechanical problems, and brought the car home in one piece which is more than several people could say (four of my close friends suffered significant damage before the weekend was over, including the aforementioned totaled car). A bit of bad luck and some conservative driving kept me from contesting the podium but I was in the top half of one race and the top third of the other two which I’ll gladly take given the circumstances.

The next race is at CMP in May, and as it’s my favorite track and I’ll be charging hard for a top finish!


I love my job for a number of reasons, but one is that for once in my life I often have the financial ability to help friends realize their dreams (as I’ve been able to realize a number of mine).

Today I am wearing my Severed Fifth “Liberate” T-shirt that I just received in the mail.

Jono Bacon plays in Severed Fifth, and we were more than happy to help him and the rest of the guys out when announced they were working on their first professionally recorded album, and this is the result. We also got a nice little “thank you” in the digipak, right behind the CD.

No matter what type of music you like, the album is worth checking out just to get to hear Jono sing in his spooky, evil angry voice. I like to listen to it whenever I feel my energy lag, such as right now, this afternoon, after the pizza I had for lunch.

I love what the digital revolution has done to empower artists like Jono (as well as Jonathan Coulton, Louis CK, and others). With digital distribution disrupting traditional business models in media, music and software, it’s always refreshing to see the level of professionalism available without expensive (and increasingly unnecessary) middlemen.

Plus, I guess that in the word’s of MC Frontalot:

♫ Severed Fifth is in the tee shirt business ♫

OpenNMS and Google Summer of Code 2012

I am surprised and delighted to announce that the OpenNMS project has been accepted into the Google Summer of Code once again.

With so many great projects applying to the program, it is always humbling to find our group included.

If you are interested in working with us this year, please check out our wiki page and remember – if you write to the mailing list be sure to register first. We kind of file that under “can follow directions” when considering applicants. (grin)

Another Story About Broken Healthcare

I had a wonderful weekend away on the North Carolina coast, but when I returned home I found that I had a letter from Blue Cross Blue Shield of North Carolina:

Dear Group Administrator:

According to our records, your group insurance premium has not been received. As a result, claims for services rendered after 02/29/2012, are now suspended.

This was followed by:

If you are planning to terminate your group coverage, please be advised that under North Carolina General Statute 58-50-40 employers are required to give employees 45 days prior notice of insurance cancellations. Violation of this law is a felony.

What a way to harsh the mood. First I’m informed that claims will be denied and then I’m threatened with a felony.

The part that pisses me off the most is that I pay all premiums on time. I pay my bills. On time. I have no idea what our business credit score is, but my personal score is over 800 at all three major reporting agencies. I take debts seriously.

This letter is a result of a bug in their software. It turns out that our annual renewal starts on 1 March. This is when our premiums increase, on average 30-35%, and for some reason this causes their billing system to invoice us late.

Usually, the insurance premium invoice arrives at the beginning of the prior month – i.e. I already have an invoice for April that’s due on the 22nd of March. But because of their billing system issues, my March bill did arrive until March 1st, with a due date of the 12th.

I paid it on the 8th, and according to my bank, BCBSNC cashed the check on the 12th – the same day they sent me a letter for non-payment.

What’s funny is that I have a collection of six of these letters. Yes, every single year they do this to me, and I’m not taking it anymore. In the spirit of Karen Sandler, I’d decided to take them to task for their crappy software.

So I called 877-237-6275, the number on the letter I received from “Sonya Walker, Director of Membership Operations” where I sat in queue for 20 minutes. I was then greeted by “Chris” who told me, oh, yeah, your account is paid in full, and that my payment and the letter must have passed in the mail.

I informed him that this wasn’t the case – I was never in arrears and that I was about to get very angry. If he wanted to, I suggested he transfer me to a supervisor, because I was getting ready to yell.

He decided to transfer me. Wise man.

After another 20 minutes of waiting I found myself talking to Misha Newman. I explained the situation again that I was tired of being told I was delinquent in my payments when it was untrue, and she replied that their software couldn’t handle renewals, which is why the letters get sent.

I asked for a bug report number.

She was a bit confused, so I told her that I’ve been getting these for six years now and that it needed to be fixed if they want to keep me as a customer. You can’t just send out threatening letters and then brush it off. If BCBSNC can’t manage the simplest accounting issue, doesn’t that cast serious doubt on their ability to manage things more complex things like medical claims?

I want someone in their IT department to at least document the issue and give me a way to know when it has been fixed.

I also demanded an apology from “Sonya Walker” if she even exists. It is quite common for large companies to make up names and positions for letters like the one I received. When someone calls to complain, it gives them a code to route the call. Ms. Newman informed me that Ms. Walker was no longer with their group, but that she did exist, and she would be happy to get her director to send me a letter. That should be interesting.

The sad part is that I doubt the alternatives to BCBSNC are any better (suggestions welcome). I think it is incredibly callous of them to value my time so poorly. On just this call alone I spent nearly an hour. You might say that I brought it on myself, which is partially true, but I also have over a dozen people that rely on me to make those insurance payments and I can’t be sure that there wasn’t some other mistake – so I’m forced to make that call.

I can’t help but think if health care was more transparent and used more open source ideas, if not software, that problems like this would be less common and easier to fix.