This site functions as an archive of Conner's Blog, which was a blog from 2006-2014 located at http://connermccall.com. Images and links are likely to be broken.

Fantasy Football Rankings

I finished finalizing my fantasy football ranking for this year's draft. Over the last 4-5 years I have not kept up with the NFL. So I have not been competitive in any of the I've been in. Since 2003 I haven't finished in the top five in the leagues I've participated in. I decided this has to change. To accomplish this, I decided to do some actual research and analysis.

The initial steps in my quest were to locate the historical data in a format I could load into a mysql database. The next step was to run a few queries to determine various useful information. I started by calculating the total fantasy points each player scored in every game he played.The one pay league I play in uses a fairly standard scoring system:

Passing Yards 50 Yard Per Point
Interceptions -2 Points
Passing TD 4 Points
Rushing and Receiving Yards 20 Yards Per Point
Rushing and Receiving TD 6 Points

We also award or take away points for fumbles, fumble recoveries, 2pt conversions, etc, but I didn't factor those in as scoring change per player is usually less than 10 points per season.

Then came the fun part, weighing each score to determine which players will be valuable this coming year. To accomplish this I pulled the last three years of fantasy scoring averages per games played and total points scored. I also pulled the number of games played by each player in each of the 3 years I was looking at.

[caption id="" align="alignright" width="240" caption="Future Football Stars or Fantasy Football Players"]Future Football Stars or Fantasy Football Players[/caption]

It took a while, but I think finally determined a system that gives me good information about each player, without the data seeming illogical. First, I calculating a score for the three year averages for each player. I first determined if the player had scored in the previous year. If he did not I gave that player a zero. If they did score then I determined for which of the three previous seasons he had scored points in. To calculate the score I valued the 2005 season at 1/4 of the average, 2006 was valued at 1/2 the average, and 2007 receiving the full average. I then divided the score by the number of years the player had been active. So in the case of Joseph Addai, I took half of his 2006 average of 6.56 added this to last years average of 9.87, divided the total by 2 and came up with score of 6.57.

if 2007_avg = 0; return 0;
elseif 2005_avg = 0; return (2006_avg * .5 + 2007_avg) / 2
else return (2005_avg * .25 + 2006_avg * .5 + 200_)avg) / 3
endif

I used the same calculation for total points scored over the three years. Points for games that were played were calculated a bit differently. I wanted to penalize players that were injury prone, but I wanted last years games played to weigh heavily so rookies would not be impacted for not playing in previous seasons. If a player played 2-3 games in 2005 and 2006, but played all 16 in 2007, I wanted him to score highly. To accomplish this, I added the total games played in the three years and divided the total by 48, which was the number of possible games. I then added the number of games played in 2007 to that result. So in the case of Cedric Benson, I added 9, 15, and 11 and divided by 48 which returned .73, I then added that to 11 for a score of 11.73. If a player played in every game over the three years he received a 17.

proportion = (games_in_2005 + games_in_2006 + games_in_2007) / 48;
return proportion = games_in_2007;

Next I needed to use these scores to calculate a final ranking. This I accomplished by dividing the total points score by the game score. I then added that result to the players average score and then added the game score in. This resulted in the following top ten ranking.

return (total_points_score / games_played_score) + average_points_score + games_played_score;

First Last Totals Averages Games Weight
Adrian L. Peterson 147 10.5 14.29 35.08
LaDainian Tomlinson 131.58 8.22 17 32.96
Tom Brady 129.42 8.09 17 32.7
Peyton Manning 107.75 6.73 17 30.07
Marshawn Lynch 103 7.92 13.27 28.96
Joseph Addai 100.25 6.57 15.65 28.63
Derek Anderson 90.5 6.01 16.54 28.03
Drew Brees 89.83 5.61 17 27.9
Ryan Grant 92 6.13 15.31 27.45
Brian Westbrook 87.67 5.97 15.88 27.37

These were my rankings, but I took it a step further. I assume people who worry about fantasy football for a living know more about the sport then me. I took some expert opinion into consideration. Using a magazine I picked up at B. Dalton, I gave each player a score based on five experts ranking of the top 25 players. I gave the number one pick for each expert 25 points and the 25th player one point. I then averaged the ranking and divided by 10. This resulted in the following top 25:

First Last Totals Averages Games Weight Experts Experts Weight
Adrian L. Peterson 147 10.5 14.29 35.08 2.4 37.48
LaDainian Tomlinson 131.58 8.22 17 32.96 2.48 35.44
Tom Brady 129.42 8.09 17 32.7 1.48 34.18
Peyton Manning 107.75 6.73 17 30.07 0.54 30.61
Joseph Addai 100.25 6.57 15.65 28.63 1.92 30.55
Marshawn Lynch 103 7.92 13.27 28.96 1.22 30.18
Brian Westbrook 87.67 5.97 15.88 27.37 2.14 29.51
Ryan Grant 92 6.13 15.31 27.45 1.52 28.97
Randy Moss 83.17 5.3 16.94 27.14 1.82 28.96
Derek Anderson 90.5 6.01 16.54 28.03 0 28.03
Drew Brees 89.83 5.61 17 27.9 0.02 27.92
Terrell Owens 77.75 5.54 15.79 26.26 1.32 27.58
Clinton Portis 69.42 5.06 16.83 26.01 1.48 27.49
Carson Palmer 84.5 5.28 17 27.25 0 27.25
Ben Roethlisberger 85 5.76 15.9 27 0 27
Tony Romo 81.25 5.08 17 26.86 0.12 26.98
Maurice Jones-Drew 85 5.52 15.65 26.6 0.34 26.94
Marques Colston 82 5.33 16.63 26.89 0.02 26.91
Jay Cutler 72.75 5.96 16.44 26.82 0 26.82
Marion Barber III 65.67 4.17 16.94 24.98 1.72 26.7
Matt Hasselbeck 77.58 5.14 16.92 26.65 0 26.65
Reggie Wayne 67.92 4.24 17 25.24 1 26.24
Steven Jackson 74.08 5.32 12.9 23.96 2.24 26.2
Brett Favre 75.75 4.73 17 26.19 0 26.19
Donovan McNabb 72.42 6.13 14.69 25.75 0 25.75

I'm happy with this result. Using these values should land me a solid team. Of course the game is won during the season, so I'm going to have to follow the league this year. Hopefully I can remain competitive, I would be happy with a 3th or 4th place finish this year. Hopefully having a useful way of valueing players before the draft will help me reach that goal.

Mac and Tees

I saw these at the farmers market in Bozeman last week. They had some very clever tee shirts. This was my favorite from the shirts I saw at the farmers market.

The FAQ is worth a read, my favorite line "Every tee is inspected for awesomeness. Each shirt is made with loveā€¦lots and lots of love...and rubber gloves." Oh, and the last question I can attest to, at least if the girls running the stand at the Farmers Market were the girls who run the business. :)

Mac and Tees

Great Conky Tutorial

I just discovered this wonderful conky tutorial at Linux Owns. I am planning on writing up a tutorial combining this one and my Compiz tutorial so it works well in Compiz. Of course if you don't use different wallpapers on each desktop, linuxown's tutorial is a good starting point.

Linux Owns - Create a Custom Conky Setup

The Garage: A Montana Eating Experience

When I was in Montana last week, my family and I went to The Garage in Bozeman, MT. No website, so you will just have to trust me when I say it exists. The Garage is a soup and burger joint located just off main street. Apparently it's usually busy, and on the night we went it wasn't full but it was busy for a Tuesday. There was plenty of patio seating which made the experience great, unfortunately the sun was directly in my eyes for the first 15 minutes or so, they did have some shade, but the sun was peaking through at first.

The first thing that stood out was the menus. The design itself wasn't phenomenal, but they came bound to state licenses plates. This is a great touch. Not overwhelming, but unique enough to be remember on a future hungry night.

Their food was pretty good. I had a burger that was topped with spinach, bacon, and swiss cheese. It was excellent, not as good as a Five Guys burger, but still excellent. The best part of the meal was their coleslaw. Normally I'm hesitant to order coleslaw, but decided to take the risk. It was well worth it, the coleslaw was cabbage, red onion, and I believe sesame seeds. The dressing was great, it was oil based and really tasty. My brother ordered the fries, and it they were pretty good, but nothing to crow about.

On great thing about Montana is most restaurants have a large beer selection. The Garage was no different, having a good selection of local and national brews to choose from. I opted for a Skinny Dip from the New Belgium brewery in Colorado and it went well with my meal.

Their soup selection appears to be what they are known for locally. Unfortunatly it was a hot day and I opted to skip the soup. They have a soup bar during the winter months and I hope to be able to return in December and give it a try.

Distorting the Debate

Driving on I35 yesterday, I saw a bumper sticker stating "Guns Cause Violence just Like Flies Cause Garbage". This is one of those irritating statements that does nothing but create arguments (as opposed to stimulating debate). The point I believe the speaker, who appears to be Zink Mitchell, wanted to make is that guns are not the cause of violence just as flies are not the cause of garbage. Though true in spirit, this analogy is a fallacy.

Let's look at this statement closer. I will agree that flies don't create garbage, they are attracted to the smell in their search for dead organic material to lay their eggs on. Knowing this, we can determine that garbage must first exist for flies to appear. Additionally, it also seems that flies are one of the organisms that are responsible for breaking down garbage, or making it disappear. Some would say that flies make garbage worse, but if you understand the process, you would know they actually help remove garbage from the ecosystem.

Let's compare the second part of the analogy to the first. We have determined that flies are attacked by garbage, and are not the cause of garbage. For the analogy to work guns must be attracted to violence. If this was true, it would seem to follow that guns would appear anytime a fist fight broke out, or any other violent activity. I think we must all agree this is not the case.

Once again I hate statements like this, they don't add anything to what is a very important debate. Though I don't believe that banning guns is the answer to violent crime, I can not see how one can argue that strict controls on hand guns and automatic weapons are a bad thing. I have no problem with my neighbor being able to go to Cabela's and buy a shotgun or rifle for hunting. I do have a problem with my neighbor being able to go out and purchase a sub machine gun or assault rifle. If he really feels the need to fire a sub machine gun or assault rifle, he should join the military. I would guess most of the men and woman in uniform would rather carrying a shotgun any day.

Oh and to make a correct analogy on guns, how about "Guns cause violence like cameras cause memories".

System Monitoring Applications

When was the last time you knew what was normal for your server? Have you ever had a suspicion some process was eating up your resources? Ever left for vacation and want'd to know if your web server went down? These are some of the questions that a good system monitoring application can help answer.

Before I left for vacation I installed Munin and Nagios. These are two mature system monitoring applications. Munin keeps track of various bits of system information; the number of apache processes, system load, mysql queries, and other useful statistics. Munin's benefit is it keeps a historical record of system status and displays it in graph format over day, week, month, and year. This can allows you to monitor your servers to determine if anything out of the ordinary is occurring.

Nagios is well suited to monitoring your system and services to determine if there are problem and send alerts if detected. It can monitor your apache services, ssh, disk space, and other critical apps. Though Nagios does allow you to review some historical data, Munin is better suited to this task. When I first installed, Nagios was configured to monitor http, ssh, root disk space, processes, number of users, and swap space. These were sufficient for my needs, but it didn't setup alerting. I was kind of short on time, and Nagio's configuration is complicated, so I didn't get alerts setup before I left. This defeated the purpose of installing Nagios to monitor my server while I was on vacation but I could still log in and check my system status if I wished.

One caveat to consider when installing Nagios on a single server, if you are monitoring the localhost and something goes wrong which makes the system inaccessible, it doesn't do much good to get alerted to the problem. The best approach would be to setup a separate monitoring system. Using Xen or another virtualization product would be a good idea in the case of a single piece of hardware.

Remember that even with good monitoring software installed, Murphy's law applies. This means that your monitoring system will fail before any of your other systems.

Becoming a Vikings Fan

Growing up in northeastern Montana, choosing a sports team wasn't easy. Since no professional sports teams play in Montana or the bordering states, geographic location wasn't a factor. Choosing a team was just a matter of taste,, so everyone followed a different team. Most people followed the closer teams such as the Bears, Broncos, and Vikings. And of course the Steelers, the Cowboys, and the 49er's had many fans.

My family was full of Packers fans. My dad and my brothers are fans. My uncle is a huge fan, even naming his sandwich shop after the team. I never really came to be a fan of a specific team, I tended to cheer for the underdog in most situations. When I moved to North Dakota, most of my friends were from Minnesota, and Vikings fans. At the time the Vikings had a team I couldn't cheer for. Randy Moss, Daunte Culpepper, and Chris Carter were not the type of players I liked. Because of this and my nature to go against the pack, I decided that I was going to be the Anti-Viking fan, cheering against them whenever I could. I still wasn't a fan of a specific team though, which made the football season much less enjoyable than following the Twins and Timberwolves.

About a year and a half ago I moved to Minneapolis. This was the first time I had lived in a place with major sports teams, and it was an experience. All the radio stations talked about the teams frequently, the paper had numerous articles. It was a dramatic change from following teams by AP article and ESPN. I became a bigger fan of the Twins and Timberwolves, but I still couldn't get over my aversion to the Vikings.

Things started to change last year. The Vikings turned a page and dumped the players I disliked. Moss left, then Culpepper, they hired a coach that may not be the best NFL head coach, but unlike Tice I don't think Childress is a crook. To cap it all of, they drafted a player I really liked in Adrian Peterson. I liked him when he was in college, and I thought the Vikings made a great selection. Again, due to the fact that I live in Minneapolis, I watched the majority of the Vikings games and realized all my reasons for disliking the Vikings were no longer there. They have one of my favorite players, they have become a defense first team, and have changed their culture to try and prevent incidents like the "Love Boat".

At the start of the pre-season, I decided I was willing to admit it, I am officially announcing my Vikings allegiance. I'm not jumping on the bandwagon, I'm not changing teams, I've just decided that the Vikings are going to be my team. I doubt I will start buying Viking's apparel, but I will cheer for them on Sunday no matter who they are playing.

I'm looking forward to this NFL season more than any other for this reason. I actually have a team to follow were before I followed the season and didn't care either way who won or lost. I think the Vikings are going to have a great season, and expect them to make the playoffs, if for no other reason then they play in a very weak division. I also get to follow the best young running back in the game right now, and see possibly the best defense in the league. It will be odd to be an admitted Vikings fan, but I'm looking forward to joining the ranks of the tormented.

On Vacation

Starting today I will be on vacation until the 20th. I'm traveling to Montana to visit my family, and if I post at all it will be very limited. I don't have any big plans for the week, but we will be visiting Virginia City and hiking around Bozeman. My camera is coming with me so look forward to some pictures from the one of the most scenic places in the U.S.

I'm turning off comment moderation so any comments made will show up right away. Unfortunatly this may mean a few pieces of spam get through my filters. Please don't panic, I'll clean things up when I get back. Everyone have a wonderful week and I look forward to boring you all to tears with my writing when I return.

Twins Back In First

Unfortunately, I did not watch last nights game. I did catch the final two innings on AM 1500, so I knew they won. I was quite surprised when I read the recap this morning that Adam Everett hit a home run. What is up with Everett as of late? Sunday he was hitting the ball all over the field, but committed a critical error that eventually cost the Twins the game. The Twins picked up Everett for his defense, almost got rid of him due to his liability on offense. Suddenly, he's doing the exact opposite. I'm not complaining though, if he can continue to hit the ball like this, we should be okay until Casilla returns to the lineup. Having Everette as a solid backup would be a nice addition to the infield where depth is not the Twins strong point.

Also I want to extend a big Thank You to Glen Perkins. You didn't have to come back and no one would have begrudged you staying home with your new daughter. Instead you come to the dome and pitch 8 shutout innings against a team you haven't pitched well against all year. Congratulations to you and your wife.

Samba and Case Sensitivity

Here is an oddity in Samba that I ran across tonight. I was working on updating my mp3 player for my trip home. I wanted to transfer over some AFI, but when I went to view all the albums I had available, only one of my albums was visible. I logged into my music server and browsed to the appropriate directory. I had three directories, AFI, Afi, and A.F.I. Looking in them, A.F.I had the album that was visible in Amarok, Afi was empty, and AFI contained the missing albums.

Thinking that was odd, I opened up the drives under nautilus and browsed to AFI, this showed all the albums, then I browsed to Afi. Surprisingly it contained all the albums to, but when I tried to play a song in the directories I received an error.

A quick google search brought up this. I appears that Samba by default is case insensitive to work with Windows. So when it translated Afi and AFI, it listed the files in both folders, which had the side effect of causing some odd problems with my music collection.

It was a simple fix, originally I had this configuration:
[media]
comment = Media Drive
path = /media/storage
read only = yes
write list = conner

I added the appropriate configuration directive:
[media]
comment = Media Drive
path = /media/storage
read only = yes
write list = conner
case sensitive = yes

Then I restarted samba and my problem was fixed. One caveat is that if you were accessing the drive using Windows, there is a possibility that this could break some things, so be careful and test.

Note: I know I could have deleted the empty directory, but I wasn't 100% sure that the problem didn't exist in other parts of my collection.