Winter Scripting Games II

So far not doing great, missed the deadline of the 2nd and 4th events and was too hasty in submitting the 3rd to get it right.

This quiz is a good feeler for what Perl other people write, and if you look at the difference from the official solution, Jan Dubois', and mine, there's a world of difference looking at Perl written by a non-Perl programmer. It's strange and alien looking to me, and explains why people harp on about Perl's ugliness.

Winter Scripting Games

I decided to enter the 2008 Winter Scripting Games. I managed to get full points for the first event but screwed up and didn't notice the deadline for the second.
Here's my entry for the first. It seems a bit simpler than Jan's solution and avoids an eval. I'll try to do a better job with commentary for the latter events.

Customer Service

Dear TiVo® Customer,
Yikes! We hate to be the bearer of bad news, but...

It seems that when I moved in the beginning of December 2005 instead of canceling my TiVo service I got a 3 month credit and ended up paying the $12.95 until May 2007 when I happened to cancel the credit card they used for automatic billing.

Now I owe them $12.95 for the month that they couldn't bill, even though they admit that my TiVo unit didn't transmit anything to them after November 24th 2005. As TiVo are all about customer service they gave me two options-- pay or go to collections. They are unable to issue a credit for the month that they were unable to charge me for the service I wasn't using.

Wireless Extender

In my basement apartment I was unable to make cell calls with AT&T. Most of the time I'd just get "call failed" and it wouldn't go through.

The zBoost actually works. I attached the antenna on the outside of the building and ran the cable to the unit inside. I now get full bars and perfect phone calls. Can be picked up for around $230, not inexpensive but preferable to paying for a landline.

Programming Erlang

I thought it would be a nice break from the Perl and C# programming I do at work to learn something new, and the Erlang seemed an interesting choice. I picked up Programming Erlang*.

It's a quiet Sunday, and I can learn about Erlang in lieu of chores. The problem is that this book is just boring. I've got through the first 150 of 383 pages (excluding appendices) and the author hasn't demonstrated a single program. The point of an introductory programming book is to evangelize and make your reader excited about solving their programming problems with this new language.

One of the things I don't think many people appreciate is just how good the llama and camel books are at getting people into Perl. I've read a lot of books about programming languages, and very few have sparked such motivation to want to learn more and start writing programs.

Business Activity Monitoring

Business Activity Monitoring is a fancy term for writing rules that look for problems in the systems that run your business and sending people messages messages to (hopefully) fix them.

It's something I've been working on for the last year, and it's something that's helped fix a lot of things that we were making mistakes with in the day-to-day running of the business. We have a system that runs a SQL query, takes out any rows it's seen before, then if there's any left feed it through a template and send an email.

It's allowed me to take every mistake that we've found in the way that we entered data into the system, or processes, and turn it into a rule that will catch it next time. This is something I've always been keen on, every time you catch a mistake it's a positive thing. Computers can have fun checking thousands of updated records every day, and humans can do more useful things with their time, or more importantly, grow the business without having to hire more people.

It's interesting to me as I never really worked with business systems before. Almost all my previous focus was in a very narrow part of the business, trying to make websites that made it easy for customers to place orders, and then giving that order to somebody and letting it be their problem. Now I get to think about purchase orders, tracking numbers, inventory counts, profit margins, etc, things that were somebody else's problem.

One of the things I've learnt about reporting is that if you can't be lazy then there isn't any point. Our accounting package has a whole bunch of useful reports, but they rely on somebody running them. Most of the checks I've added could have written a simple script to handle, but I can just copy and paste a SQL query into the tools GUI, check off the recipients, pick a schedule from a drop down list, and be done in a couple of minutes.

Monday June 18, 2007

09:33 PM

Square wheels

Why would somebody implement a database in a database? I've seen this anti-pattern a few times before and it's confusing to me, when do you wake up and say "obviously the answer is to put the data a database, but let's invent our own abstraction".

Signal to Noise

Email used to be a simple text* channel for the exchange of ideas. Of course, over time, like many channels the signal to noise ratio approaches zero.

I think the email I just received is a sign of impending doom. A simple message, just three short paragraphs containing 201 words. Unfortunately the alternative HTML rendering with leaf motif stationary increased this 1,222 byte message to 33,547-- 96.35% of the message was fluff.