Thursday, March 31, 2011

Time to Update My Password

For the past couple of days, my Windows machine has been warning me that my password is about to expire. Today I finally decided to change it. I have three different passwords that I have used on this machine already and I was hoping to just recycle one of them. Unfortunately Windows keeps track of my last five passwords and so I couldn't. It was time to come up with something new.

Previously I mentioned using an old locker combination and this crossed my mind. I wanted to do something a bit different and so I decided to try something else. I am sure others have the same issue and so I thought I would write about some ideas for coming up with memorable passwords.

Passwords should be a word or phrase that you will remember but are impossible to guess. You should also never use a word found in a common dictionary. So how are you supposed to remember your password if it is not in a dictionary? This is where you get creative.

First, I like to come up with a hobby or interest such as football. Then I choose a word or phrase longer than six letters associated with that interest such as:

touchdown

Next I replace certain letters with numbers that look like letters. I am always confusing the letter O and the number zero and so that is a good starting place. You can also replace the letter E with the number 3 or the letter L with the number one. Doing this leads to:

t0uchd0wn

I also like to capitalize at least one letter in the password. This leads to:

t0uchD0wn

I also like to include at least one special character. The "at" sign or @ is always a good replacement for the letter A, but I don't have any of those in my example. We could add an underscore between "touch" and "down". My personal preference is to add an exclamation point after such an event and so my password might look like this:

t0uchD0wn!

Now if I was to go back and create a password cracking program, it would take a lot of different permutations to guess this one. That makes it a good password. Throw in that it is easy to remember and I am ready to use it.

Now comes the full disclosure. I do like football, but not enough to use "touchdown" as my password. So if you ever try to break one of my passwords, it won't be this one.

Monday, March 28, 2011

Tax Preparation Software

Last week I was able to carve out some time and complete my federal income taxes. As I work in California but live in Utah, I have to file in both states and got them done as well. That makes for a lot of paperwork.

A lot has changed since I first started doing taxes several decades ago. I used to fill them out by hand. Then a little company created a software package to help make the job easier. I continue to use Turbo Tax to this day. It is a great piece of software and I recommend it if you prepare your own taxes.

The beauty of tax software today is that it immediately files your paperwork with the appropriate agencies and dramatically reduces the time it takes to get your return. This is great for someone like me who will be getting money back from the Feds and the state of California. The sooner I get my money, the sooner I can use it to pay the money I owe to Utah. One week after filing, I received my first of two refunds. Now that is fast.

Thursday, March 24, 2011

Technical Support

I have had a busy week at the office. There was a problem with our data warehouse and it was up to me to fix it. I knew I must have changed something but couldn't figure out what I did. So I called technical support.

Not all technical support departments are created equal. When I worked in Oracle's technical support many years ago, I got a feel for just how tough that job could be. You have to know the product intimately and for a product like our data warehouse, that can be a daunting task.

Amazingly, I got a live technical support representative on the phone and he stayed on the line until the problem was solved. His first questions was the same one I had been asking myself: What changed? I couldn't think of anything I had done that would cause the problem we were having. The rep set up a WebEx session so he could see what I was describing and we then started running through one or two exercises. It didn't take me long to remember that I had added something to the database earlier in the previous week and it took 5 days for that change to manifest itself. 30 seconds later the problem was corrected and the data warehouse was fixed.

The technical support rep never solved my issue. I was the one that discovered my mistake and was glad to figure it out as quickly as I did. However It sure was nice having someone else on the other end of the phone with which to discuss my problem. I'm sure it would have taken a lot longer to figure out if I was on my own.

Thursday, March 10, 2011

Too Much Data

Yesterday I started a database report and let it run all day. When I was ready to leave work and the report was still not done, I let it run overnight. I figured if I came in this morning and the report was still running, I would try to figure out what the problem was and see if I could fix it.

I got into the office this morning and the report was still running. I had to have the report done this afternoon to send to management. I had no faith that the report would complete by the time it was due and so I started looking into other methods of creating it. On the off chance my report was going to eventually complete, I let it run.

Most modern databases are fairly smart, have efficient algorithms, and are pretty good at figuring the best way of doing things, but they are not perfect. I was able to come up with another way of getting the information and discovered an assumption I had made about the data was false. Instead of asking for a subset of the data from a single source, I was asking for all the data from multiple sources joined together in such a way that was overwhelming. Discovering this problem allowed me to finish the report and get it out on time.

This whole experience underscored the importance of not making assumptions.

Thursday, March 3, 2011

Simple Solutions

A couple days ago I discovered that I have two databases with overlapping data. That means they both contain copies of the same data. Unfortunately one of the databases has been getting updated while the other one hasn't. There are two possible solutions: one is to require the data to get manually input to both databases, and the other is to write a little program that updates the updates the second database when something changes in the first. The trick is to figure out which solution will work the best.

Writing a little program means more work for me. Not only do I have to write the program, but I also have to test it and then maintain it. Having someone manually update two databases is simple to implement but is more error prone. The gating factor on which solution to use boils down to how often updates are made. Looking at my particular situation, I will most likely be writing the automatic program. So when would someone choose the manual process?

The best example of leaving something manual is with annual reports. Perhaps you have sales figures for each month and each quarter. Since the annual report is a simple matter of adding the figures from the quarterly reports and is only run once a year, that can often be left as a manual process. This is especially true given the cost of an administrative assistant vs. computer programmers. Now if I only had an administrative assistant.