Monthly Archive for January, 2006

Jan 6th 2006

visiting with friends

Jennifer made plans to go up to Tennessee this weekend to visit with her friend Kristin. Her plan was to go to work as normal and then head up there after work.

I only worked a half day today so that I could pick up Craig from the airport after lunchtime. Craig flew out from San Antonio on a buddy pass.

When I picked up Craig, I discovered that he brought with him some audio books including the Wheel of Time book 1. He also brought a Gandhi book and one other that I can’t remember - I think it was a classic.

Craig and I had an early dinner out at a local restaurant and then went back to the townhouse.

He was pretty tired from his flight and waking up early so he took a nap when we got back. I relaxed and did some work on the computer. A couple of hours later I got Craig up and we talked about going to see a movie. We decided to see Aeon Flux.

The movie wasn’t as good as I thought it would be, so I was slightly disappointed. By the time we got out of the movie it was pretty late - close to midnight so we went back to the house and turned in for the night.

Jan 7th 2006

shopping isn’t that bad when it’s at cool places

So Craig and I ended up doing a lot of shopping today. I don’t think I’m the best host because I’m not very good at event planning.

We drove up to the northside of town and went to Fry’s Electronics. I love this place. It’s like a candy store for geeks. I found a USB 2.0-based gigabit network adapter that I want to plug into the tivo upstairs. I’ve wanted to get this for a while now so I’m pretty happy.

Next we went over to Parisian so I could return some shoes and a wallet that I got for Christmas. With the credit I bought a pair of black slip-on Timberland loafers. They are super comfortable and I bought them because

Scott highly recommended Timberlands. He told me that when he was I Tokyo for nine months he did a tremendous amount of walking and found that all of his other shoes simply fell apart from the wear. He bought some Timberlands and they fared much better, so he swears by Timberlands now. This sort of sounds like an advertisement.

Afterwards Craig and I were pretty hungry from all of this shopping and stopped at Sonic. I got a bacon cheeseburger with hickory sauce as well as a route 44 lemon slushy. It was awesome.

On our way home we stopped at Publix to buy some junk food to have tonight as well as some extra supplies to make mojitos with. After there we went over to Barnes & Noble so Craig could look for some more Wheel of Time audiobooks to buy.

By this time the sun was setting and it was getting late. We made plans to get some pizza to take home and then stay up all night drinking mojitos and playing really old-school computer games. I know this doesn’t sound very exciting but Craig and I were pretty excited. We picked up a large pepperoni & bacon pizza from Johnny’s Pizza and then went back home.

We wanted to play either Heroes of Might & Magic (one of the old ones) or Warlords. I started digging around on the internet and came up with Warlords 2. It’s an ancient game, but Craig and I used to spend hours and hours playing this game with Adam (Craig’s brother), Brian (Adam’s friend), George (Adam’s other friend), and Christian (Craig & my friend). It’s a turn-based strategy game. We played a couple of games with four computer opponents and Craig and I teamed up against them.

old-school fun

Because we were playing in ‘hotseat’ mode, we had some time to kill while one took his turn, so I put on the extended edition version of ‘Lord of the Rings: Fellowship of the Ring‘ to watch. I wanted to see how far through the trilogy we could get.

I was having some problems with the DVD to play in the Xbox despite it being the official retail DVD that I bought. The other two movies (that I ripped onto DVD+R’s) played on the Xbox with no problems - really strange. So what I had to do was put the DVD onto the DVD drive on the computer downstairs, share the drive, and play it over the network in XBMC. I love XBMC.

While we played, I made mojitos using the super fun mojito-making kit that Katie gave me for Christmas. It consists of a large mixing tumbler with the recipe etched into the glass, a wooden muddler, a strainer, and six mojito glasses (tubular glasses). Craig had beer.

In addition to the regular mojito recipe, I tried an ‘Italian mojito’ variant that Craig recommended. What you do is substitute the mint with fresh basil and use lemons instead of limes. It was pretty good.

We were up all night playing Warlords 2, eating pizza, drinking, and watching Lord of the Rings. It was a lot of fun.

Jan 8th 2006

playing disc golf

Because we were up so late last night, Craig and I both slept in this morning. I called Jen and she had left Tennessee early this morning and was home by noon.

When Jen got home, she took a shower while Craig and I resumed watching the Lord of the Rings marathon. After Jen was cleaned up we headed out to go play some Frisbee golf (I suppose it’s technically ‘disc golf’).

The three of us drove over to Oregon park in West Cobb. Craig brought some discs with him all the way from San Antonio. Because there were three of us and only two sets of discs, Craig offered to play with a putter the whole time.

It was a beautiful day outside and we had a nice time. We played one or two rounds (9 holes) and then went home.

Once we got home, we cleaned up and prepared to go out tonight. We went to Carabbas and met up with Lynne. It was a nice dinner together and we made plans to go back home afterwards and have mojitos and watch more of the Lord of the Rings trilogy.

Lynne came back home with us and we all lounged in the living room, talked, drank, and had a good time. Lynne went home and we went to bed around 11:30pm.

Jan 15th 2006

a new look with the k2 theme

I spent a lot of time today looking at this cool theme for Wordpress called ‘K2‘. It has some nice features that allow one to easily apply their own style to the theme just by dropping in a custom css file. The idea is that the core php/js/etc code can be updated with minimal changes necessary for you to upgrade the backend code.

It also has a really cool ‘ajax-style’ searchbox that will drop down potential search results while you type. There is also a lot of added code to work well & integrate with different plugins, include the cool livearchives plugin which also gives you ‘ajaxy’ drill-down capability when looking at archived pages.

I spent quite a while playing with this theme on my test site (hosted on the local linux box) and think I’m going to make the switch to K2. My plan is to keep the same style & colors that I currently have as I really like it and am not tired of it yet. Plus, my color scheme is ‘web 2.0 complaint’ according to this article I read. Jen helped me pick out the colors and she is really creative when it comes to that stuff.

I’m also planning on overhauling the rotating pictures banner at the top. They are a little too short at 725×100px so I want to make them taller 780×200px). The images are also pretty outdated - about two years old so I want to make new ones from more recent photos as well as put the text, ‘leased-territories’ or ‘billimek.com’ on each image.

Actually since I’m writing this entry in mid-March I’ve already completed the migration to K2 and did all the work to overhaul the header images (except I haven’t put the text on them yet). I’m pretty happy with the slightly different look to the site and I love the new headers.

I also spent quite a bit of time today researching hosting providers. I’ve been with 1&1 for a couple of years now and my free contract isn’t up until this fall, but I’m at my disk space quote limit and have done all I can to reduce disk usage.

I’m 100% positive that I don’t want to stay with 1&1 and convert to a pay account, so I began researching.

To make a long story short, I settled on site5. I looked at a lot of others and was almost ready to go to dreamhost, but site5 looked like a more attractive deal. For around $8/month I get (shared) hosting with 11GB of disk space (that’s 22 times more than I had with 171), 400GB of bandwith/month (I never go more than 2GB so this isn’t that big of a deal), mysql/php/ssh/etc, the ability to host up to 5 domains, and some other stuff. The reviews for site5 have all been positive and they seem to have really good customer service.

I signed up for new service tonight and will begin migration tomorrow.

Jan 16th 2006

migration to site5

After getting a few minor issues ironed out with my new site5 account (their support is stellar), I was ready to begin migrating billimek.com over from 1&1 to site5.

It was actually a lot easier to do than I thought. I already have a daily cronjob that runs on my local linux box to rsync all of the web content over from 1&1 to the local computer and apply necessary sed scripts. This results in a daily mirror of the website that works perfectly fine.

sync-from.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
 
# local directory
LDIR="***********"
 
# remote directory
RSYNC_DIR="***********"
 
# excludes file - this contains a wildcard pattern per line of files to exclude
EXCLUDES="/root/rsync.excludes"
 
# the name of the backup machine
RSYNC_SERVER="***********"
 
# username on the remote server
RSYNC_USER="***********"
 
# command-line options
OPTS="-rlptDvz --progress --stats --safe-links --delete -e ssh --exclude-from=${EXCLUDES}"
 
# sync cgi tree
rsync $OPTS --exclude=ansi ${RSYNC_USER}@${RSYNC_SERVER}:${RSYNC_DIR}/cgi-bin/ /home/cgi-bin/
 
# sync html tree
rsync $OPTS --exclude=**/cgi-bin/** ${RSYNC_USER}@${RSYNC_SERVER}:${RSYNC_DIR}/ /home/html/
 
# fix any broken ownerships
chown -R apache:apache /home/cgi-bin
chown -R apache:apache /home/html/hold
 
# backup local databases
/root/backup_database.sh
 
# backup remote database
ssh -l ${RSYNC_USER} ${RSYNC_SERVER} bin/backup_database.sh
 
# transfer remote databases
rsync $OPTS ${RSYNC_USER}@${RSYNC_SERVER}:billimek_g2.sql /root/billimek_g2.sql
rsync $OPTS ${RSYNC_USER}@${RSYNC_SERVER}:billimek_wp.sql /root/billimek_wp.sql
 
# restore databases
/root/restore_database.sh

This script (as the name implies) syncs all of the data from the remote server to the local one, forcing the local one to look like the remote one, so any changes (unless in the rsync.excludes file) are overwritten to look like the remote site.

It also backs up the local databases, tells the remote server to dump the databases, syncs them over locally, and restores them.

rsync.ecludes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
**/config.php
**/php.ini
mrtg_tivo/tivo**
images/larry/
**/wp-config.php
jeff/wp-content/cache/
jeff/wp-content/themes/k2/styles/lt/rotate.php
images/new_headers/
/horde
/mail
/roundcube
/.htaccess
jeff/.htaccess
/phpmyadmin
/mambo
/eaccelerator.php
hold/gallery/.htaccess
hold/g2data/sessions/
hold/g2data/smarty/
hold/g2data/locks/
hold/g2data/cache/entity/
hold/g2data/cache/module/
hold/g2data/cache/theme/
jen/
/robots.txt

This is what the local backup_database.sh looks like:

1
2
3
4
5
6
7
8
#!/bin/bash
 
mysqldump --opt -u***** -p***** phpbb > /root/phpbb_db.txt
mysqldump --opt -u***** -p***** wordpress > /root/wp_db.txt
mysqldump --opt -u***** -p***** gallery2 > /root/gallery2_db.txt
mysqldump --opt -u***** -p***** gallery2_jen > /root/gallery2_jen_db.txt
mysqldump --opt -u***** -p***** horde > /root/horde_db.txt
chmod go-rwx /root/*_db.txt

This is what the remote backup_database.sh looks like:

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
# wp
mysqldump --opt -u***** -p***** billimek_wp > ${HOME}/billimek_wp.sql
 
# gallery2
mysqldump --opt -u***** -p***** billimek_g2 > ${HOME}/billimek_g2.sql
 
# fix permissions
chmod go-rwx ${HOME}/billimek_*.sql

This is what the local restore_databases.sh looks like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
 
# wp_db
sed -e s/"http:\/\/billimek\.com"/"http:\/\/leased-territories\.com"/g -e s/"\/home\/billimek\/public_html"/"\/home\/html"/g billimek_wp.sql > billimek_wp.sql.new
echo "mysql -u***** -p***** wordpress < billimek_wp.sql.new"
mysql -u***** -p***** wordpress < billimek_wp.sql.new
rm -f billimek_wp.sql.new
 
# gallery2_db
sed -e s/"http:\/\/billimek\.com"/"http:\/\/leased-territories\.com"/g -e s/"\/home\/billimek\/public_html"/"\/var\/www"/g billimek_g2.sql > billimek_g2.sql.new
echo "mysql -u***** -p***** gallery2 < billimek_g2.sql.new"
mysql -u***** -p***** gallery2 < billimek_g2.sql.new
rm -f billimek_g2.sql.new
 
# fix permissions
chmod go-rwx ${HOME}/billimek_*.sql

This particular script will apply sed scripts to change hard-coded pathnames that are site-specific as well as hardcoded hostnames that are site specific. I’ve found that for my purposes this works great because I can use the local site and everything works fine.

All of this happens transparently once a day and I never really have to do anything. It is an easy way to do a daily backup of my website (I also do daily backups of the local linux machine to the local windows machine), and it makes my site very portable.

Making only slight modifications to these scripts, I was able to migrate my entire website from 1&1 to site5 with very little effort. I had to tweak the sed scripts to apply the correct paths and then also go into configuration files for Wordpress & gallery2 to set the new mysql database connect parameters.

Beyond that, the transition were extremely smooth. I was actually prepared to have to spend many days getting everything moved over correctly. This is an example of planning for the future (by way of having these scripts & methodologies) paying off.

As of this writing (March 17th), I’ve been with site5 two months and have no complains - I’m a satisfied customer.

Jan 18th 2006

birthday dinner

Jen and I hosted a birthday dinner for her father this evening. We had eight people in the house: Jen, me, Jen’s Mom, Jen’s Dad, Jen’s Sister, Jen’s sister’s boyfriend, Jen’s Brother, and Jen’s grandmother. Despite the large number of people we were able to all cram into the dining room.

We started with a tasty appetizer, followed by a salad. I love the Newman’s Own honey mustard dressing - it’s so good!

Our main dish consisted of the juicy pork loin with a ’sauce’ type side to put on top which contains red & yellow peppers, onions, garlic, olive oil, and spices. It was so good! We also had mashed potatoes.

After dinner we had a really good desert of strawberries and ice cream and chocolate. I loved it.

All in all, we had a great time hanging out with family. Who knew that it would be so easy to do during the middle of the week?

Jan 20th 2006

raiding not for me?

Both Jen and I worked from home today. It was fairly uneventful for both of us.

I made prior plans to play World of Warcraft for a while this evening so after work I logged in and joined up with my guild (Prestige) to go to the ‘ Zul’Gurub‘ (ZG) instance.

This was my first time in a ‘real’ raid. I went on a ‘Baron Run’ once but that didn’t really count. Despite this being my first time, the guild leader, Sqwints, assigned me as the ‘main assist’. It was my job to target the correct mob at all times.

This can get a bit hectic because you need to pick out the correct one in a group and once it dies, switch to the other correct one. The reason for this is that everyone else will target whatever you have targeted to kill quickly. Needless to say, it’s a tough job but I think I got the hang of it.

However about halfway through I started to get some really bad performance problems. I wasn’t sure what the issue was. This resulted in me being literally frozen for the entire fight (about 3 minutes at a time). I finally determined that it was FireFox and shut it down to fix the lockups.

At the end of the experience I was worn out and didn’t have much to show for it since we didn’t even get past the second boss. I’m really not sure this ‘raiding’ thing is my cup of tea. Having to schedule in advance with 20 (or even 40) other people and then dedicate a 4-hour (or more) block of time is hard. Additionally everyone must be perfectly coordinated or else it all falls apart.

This is apparently the only avenue for end-game content in the World of Warcraft game. I’m not sure this is for me!

Jan 21st 2006

atl-sat

Today Jennifer and I went to San Antonio. We had an 8am flight and managed to get first class (we were not able to sit together and were in 1D and 4A). With it being an 8am flight we had to wake up pretty early, and I was pretty tired because I didn’t get a whole lot of sleep.

We arrived into San Antonio around 10am. Because we had a rental car with Avis and we were in San Antonio, we had to take a shuttle bus over to the actual Avis facility.

When we boarded the bus there were about six other people aside from us and the driver. The driver asked if I was a preferred customer and what my name was.

He then switched to Spanish and addressed everyone else. He continued to speak in Spanish until we reached the Avis counter area. He then switched back to English and told me that this was my stop, and said something in Spanish to everyone else. No one else got off of the bus. I wonder where they went?

Once we had our car, Jen and I drove over to Grandmas house. Dad and Jill were already there. A short while later everyone else showed up. I got to see Uncle Jimmy and Uncle Tom too - I haven’t seen the two of them in a long time.

It was great to see everyone. Aunt Loretta brought some food from Bill Miller BBQ and Grandma cooked some food too. Loretta knew that Jen doesn’t care much for beef and got her some turkey. That was really nice of her.

We all sat down for dinner and had a really nice time. Everyone was so nice and talkative. I think that Jen had a great time too. I’m glad we came out to San Antonio.

Around 4pm we headed out and drove over to Craig’s house. He was cleaning up when we arrived so we copied a missing CD from the Dune audio book.

It was getting close to dinner time and we were a bit hungry so we all went out to a great sushi place called ‘Sushi Zushi‘ that I’ve been to with Craig before.

Dinner was nice. We had a lot of sushi and a nice time talking and catching up with Craig.

After dinner we headed over to a liquor store on the way to his house to get some supplies. Back at Craig’s house we all had some drinks and watched one of Craig’s favorite shows, ‘The Penn and Teller Show‘.

Because out flight tomorrow is so early (5:30am) we thought about just staying up all night. However this didn’t work - especially since we had a lot to drink. Instead, Jen and I took a nap in the guest bedroom and I set my phone to wake us up at 3:30am.

Jan 22nd 2006

sat-atl

When we woke up at the ungodly hour of 3:30am, we decided to skip taking a shower (we’ll do that when we get home) and instead just wash our faces and brush our teeth. We packed up our small carryon bags and were ready to go.

Craig was still awake since last nice in the living room, I don’t know how he does it. Actually I do, but for me to stay up that long I need to be using the computer, not watching television.

We said our goodbyes and left from Craig’s house and headed to the airport. Returning the car at Avis was a slow process. Actually it was a slow process picking it up too. I’ve come to the conclusion that Avis is slow in San Antonio.

Once in the empty airport we checked in. The TSA had not shown up yet for work so the security line was very long (basically everyone on our flight was waiting to go through security).

Eventually we made it to the gate. I was pleased to see that we got first class (4C and 4D) which was quite nice. I was understandable very tired and slept for most of the flight. The flight was delayed from landing in Atlanta by about 30-40 minutes due to the heavy fog.

When we got back into Atlanta, we picked up the car and went home. Jennifer read the rest of her book and then took a nap.

I was fairly awake by now and decided to play a little World of Warcraft. I was playing a horde tauren shaman character and got to level 19. I thought it would be fun to try out the warsong gulch battleground. Whenever I went there as my level 60 alliance rogue, it wasn’t so fun because the alliance always loses to the horde.

This time I was playing as a horde and thing were different. I won every game. Based on this, I honestly feel that the WSG battleground is slightly biased towards the horde. It’s amazing how much more fun the battlegrounds are when you actually win once in a awhile.

Later, Jen and I watched ‘The March of the Penguins‘. It was a great movie.

Jan 28th 2006

14-hour conference call

Things have been really rough at work recently. Basically there was a big production problem that involved some corrupted data and I was working very hard on correcting the actual problem.

At first there wasn’t much exposure to this because not many people knew about it or they didn’t realize the scope of the impact. By the time a couple of days went by, this was a very high priority item.

As a result, I (and other) put in a tremendous amount of hours into resolving the existing problem.

Once we figured out what to fix, we had to test it and then focus on cleaning up the existing data. This wasn’t a trivial task due to the hundreds of millions of rows of many tables with a lot of stringent referential-integrity to worry about.

So In addition to working night & day all week, we were up until close to midnight last night putting the fix into production. It was a very long week and I was looking forward to relaxing and recharging.

This morning I got a page from the TCC to join a bridge call already in progress. On it were people like Carole, Steve, Mehdi, Beverly, James E, etc.

There was a new problem created with out fix on Friday night. Actually the problem was pre-existing but it wasn’t uncovered until we put this fix in. Aparantly our test-cases used to test this fix didn’t cover this particular condition.

We pulled in some more people to the call (James T, Sameer, and a couple of others) and evaluated the symptoms. It didn’t take to long to pinpoint the problem. James T. drove into work and looked at fixing the problem since it seemed to be related to code he owns.

The day wore on as we continued to work on a solution until eventually we did a hotfix for the problem in production. This was the first time we’ve done a hotfix in this way and it worked out quite well. It was a good compromise between process and speed as we still had the RET-built specific binaries to deploy manually. Honestly this sort of fix would not have been possible without someone like Jegan or myself having the knowledge and know-how of the applications.

We were all on the call for literally 14 hours straight. I went through both cordless phones’ batteries and eventually had to install skype and skype-in to the conference call using my headset & microphone.

It was a rough day and I prayed that I wouldn’t have to do it all again tomorrow. However this latest break means that there will be even more clean-up next week, so next week should be a really rough week again.