Teaching IT

My company runs a 24/7 site with a substantial number of users and connections to partner systems all over the world. We do what we can to make the system fault tolerant, but problems can still appear at any time of day or night. Ideally we would have a technical support team that’s staffed around the clock, but that not in the cards for now.

We used to have a system where anyone that could fix a problem would get a text message, and whoever was closest to a computer would respond. It worked most of the time, but there were some issues. The team creating the tickets would often be unsure of which component was broken, so the issues would hit lots of people who would be unable to help, and it also exposes a quirk of human behaviour that makes us less likely to help when more people are available.

[Read More]

Invitations and the VCard Format

My next goal for the Themis project is to parse an invitation from an email. I am starting with invitations generated by MS Outlook because that’s my target audience, but a peak inside of a Google Calendar invitation gives me hope that I’ll be able to support multiple calendars without much trouble.

Outlook invitations are sent in the VCalendar format, content type “text/calendar”. The standard was published as RFC 2445 in 1998. It describes a standard layout for calendar data in the VCard format, which is described in RFC 2425.

[Read More]
design 

64-bit IIS vs. 32-bit Assemblies

I found my first 64-bit bug at work. I was moving a windows service built for the ‘Any CPU’ to a 64-bit server. It started fine on the new server, and gave no indication of poor health in the logs, but one key function was malfunctioning. I’m not exactly sure what the cause is, but I know that the hash of any binary file was resulting in the same value. The service does some direct memory manipulation which is a likely culprit.

[Read More]

SQLite vs. SQL CE 3.5 with Entity Framework 4

My wife and I have been taking a Japanese class. I’m enjoying it quite a bit, even though learning languages has never been easy for me. I need to work hard to memorize all the new words, and that means lots and lots of practice.

My wife bought a pack of index cards. This is what a normal person would do. To me, it seems like defeat. Why use paper when there’s a computer in the room? While she’s at the store, I grab a white board and sketch out a data model.

[Read More]

IE9 Try and Fail

I decided to give IE9 a try. What’s not to like about a browser that’s supposed to be faster, cleaner, and support new HTML features?

They really nailed the faster and cleaner parts. I didn’t find the user interface in IE8 too busy, but seeing the improvement I’m happy for the extra space.

Plunking a site onto my task bar like it were an application is pretty awesome. There are a couple of websites that I’ll do this for without hesitation.I wonder how long it’ll take to see adoption of the magic html jump list task extensions. I’m not terribly optimistic myself; I’m hoping someone will find a way to add tasks and maybe an overlay to sites that don’t have them built in.

[Read More]
devops 

Themis: System Design

I’m charging forward on the Shared Resource Schedule Service. There are a lot of things I’m getting into place before I start writing code. Don’t try to tell me that I’m not being agile either, you always need to design a little to write good code. The key to being agile is designing only as much as you need, and being prepared to change your mind later.

The Name

The first order of business was to choose a name. It helps to know the name before you create a project. I’m also hoping to put the source in a public repository right away so that I can talk about the coding process while I build it.

[Read More]

My First Open Source Project

I’ve been spending time on the first part of the shared resource service project: “Receive event invitations by email and send an acceptance email”. I hadn’t considered the difficulty I would face receiving emails. This is the most important part of the application, and if I can’t make it work, there’s really no point to continue.

I don’t want to write my own POP3 library, I’ve done that before and it’s much more complicated than it appears. Buying a commercial component isn’t going to happen either. That left me with one option: To scour the Internet for an open source library.

[Read More]

Changing From an iPod to a Creative Zen

The time finally came for me to replace my iPod with something new. I was using aniPod click wheelthat I got as a warranty replacement back in 2004.It was good to me, but I felt that it was time to look at other options.If iTunes ran a little better on my PC, I probably would have just bought another iPod without a second thought.

Hardware

It took me quite a while to choose a new device. I did look at the iPod Nano, but they couldn’t store quite as much as I wanted.The iPod classic on the other hand is way more storage thanI need, and I prefer the lighter weight, longer battery life, and the improved durability of flash storage.

[Read More]

SQL Management Studio Express with VS 2010 Express

I had some fun trying to install SQL Management Studio on my home computer over the weekend. I was successful in the end, but it was a rough journey.

These seem to be the things that can lead you into my scenario:

  • Windows 7
  • Visual Web Developer 2010 Express (which installs SQL Server 2008 Express)

These are the things I ran into trying to install SQL Management Studio (both from an SQL 2008 standard disk, and a download of the express version from the Microsoft web site):

[Read More]
sql  devops 

Shared Resource Service Requirements

I want to start my project by dividing up the various things the system needs to do, then put them into the order I plan to approach them. I want to start with requirements that are the most risky and most important to success first, and work my way down the list until I finish with items that are neither risky nor important.

This approach gives me several advantages. It’s not an issue in this case since I don’t have any deadlines to meet, but if this were a professional project and a deadline had to be pushed up, I am more likely to have a product that does the most essential things. If I had a fixed deadline and the project starts running long, I’m more likely to have a working product that’s just missing a few less important features. In an ideal world those don’t happen, but at the end of the project the parts that were risky and/or essential have had the most time to be tested and fine-tuned as the application matures.

[Read More]
design