NFL Wild Card Playoffs
posted on 2005-01-07 at 23:38:46 by Joel Ross
Again, I don't feel like reviewing my picks from last week, but let's get the results on the table. I finished the season by going 6-9 (40.0%) against the spread, making me 123-123 for the season. That means if I put any amount on every game, I would be exactly where I started - even! I'm not sure if that's a good thing or a bad thing.
These last two weeks really hurt me. Teams sitting players and not playing to their potential (see Indy against Denver) didn't help at all. Anyway, picking winners, I was 156-100 (60.9%), finishing 7-8 in week 17.
I didn't do as well as I had hoped. For a comparison, last year I was 128-118 against the spread, and 169-87 picking winners. I kind of thought I would do better this year! But it's a new season now right - the playoffs are upon us! With that, lets look at this weekend's games.
- St. Louis vs. Seattle (-4): The closest spread of the weekend games. This is my only dog I'm picking this week too. I think St. Louis has what it takes, and Seattle hasn't lived up to expections this year. Personally, I was 2-6-1 when picking St. Louis, and 3-7 when picking Seattle. Both teams were horrible playing against the spread (5-11 and 6-10 for Seattle and St. Louis, respectively). Based on that alone, neither team should cover, and no matter who I pick, I'll lose. So that means Seattle will win 30-26. That way neither team covers! But I don't think that will happen. Look for the Rams to win it.
- New York Jets vs. San Diego (-7): San Diego took a while to get some respect in the odds. That shows, as they were 13-1-2 against the spread this year. That's good! And when I picked them, I was 10-1-1. I could have made a lot of money on San Diego this year! On the other hand, the Jets weren't all that bad themselves. They were 8-7-1 against the spread, and I was 6-4 when picking them. But back to the game. Drew Brees will continue to impress, and LT will go over 100 yards, to get back on track, as San Diego wins.
- Denver vs. Indianapolis (-10): Last week obviously does not represent how this week will be. For one, Manning will play the whole game. That changes the whole game right there. Denver may have "sent a message" to Indy last week, but this week, Manning will send his own message, as he'll put on a clinic in the dome.
- Minnesota vs. Green Bay (-6): Minnesota once again tried to get out of playing an extra game this year. Last year, they lost to Arizona and didn't make it. This year, they lost to Washington, and only because New Orleans beat Carolina did they get to play one more. Green Bay, on the other hand, is about the opposite of Minnesota. They started out horribly, and caught fire. They don't have what it takes to win the Super Bowl (or even get there) because of thier defense, but it's good enough to beat Minnesota. They did it twice already. What's one more time? Oh yeah, the dome loving Vikings will be playing in 27 degree weather against Favre. Not looking too good for them.
I'm ready for the games to mean something again. Week 17 had one key match up, and it turned out to be a dud - New Orleans against Carolina, and neither even made it in!
Oh yeah - what did everyone think of Sean Alexander's comments? For those who don't know, he fell one yard short of the rushing title this year (to Curtis Martin - great season for him), and after the game, he said his team stabbed him in the back. Why? Well, Seattle was on the one yard line, and ran a quarterback sneak rather than hand the ball off to him.
It's always amazed me how different players can be. On the one end, you have Alexander (who later apologized, and sounded pretty sincere), and then you have Manning, who didn't even want to talk about his TD record.
Categories: Football
A Sad Day In My Internet History
posted on 2005-01-06 at 00:13:42 by Joel Ross
Over the holidays, a part of me was lost.
Follow me back in history if you will. I was late getting into computers. In 1995, I got my first computer as a senior in highschool. Being new to the Internet, I signed up with AOL. They offered the most hours (remember that? When the internet was by the hour?), so they got my business. Finding a screen name was difficult. At the time, my favorite musician was Bizzy Bone, of Bone Thugs-N-Harmony. So I tried Bizzy as a screen name. It was used. Bizzy187. Used. Bizzy211. Used. Note that those numbers mean something, but I won't go into details about what they are.
Anyway, I eventually got frustrated and typed in bizzy10510. A completely random number. And it wasn't taken! My first ever internet presence was created!
Since that time, I have registered bizzy10510 as a user name just about every place I go because it's never used. And if it is, then most likely I just forgot I registered there before.
So why was a part of me lost? My mom took over my AOL account when I moved out. I didn't need it once I got a cable modem, so she took it over. My screen name was the master account, so it couldn't be deleted or changed. So I kept using it. Mainly on AIM, but I still used it. Just after Christmas, my mom switched internet providers and cancelled the account. So my very first internet presence has been turned off.
AOL doesn't allow account holders to carry over screen names to AIM - at least they don't now. My wife still has hers, but her account was turned off a few years ago.
But that's not the main reason it's a sad day in my internet history. Most people don't know this, but while using that screen name, I met my future wife online. We started chatting online on December 11th, 1997. We eventually met in person, and started dating. Obviously, we got married.
So while losing the account is a trivial thing, I definitely have fond memories of it. Maybe I'll try to get the name back in a few months, after AOL recycles the screen name. That's the nice part of having an uncommon screen name!
Categories: Personal
Corporate Podcasting Policy
posted on 2005-01-05 at 22:06:13 by Joel Ross
Via Angus Logan (via Leon O'Brien), I saw an article on CIO.com about Podcasting and companies. Specifically, it states the obvious. Podcasting provides the same risks to companies that blogging does. Since anyone can make a podcast, they can also say something harmful about that company.
The same goes for blogging too, although it's probably harder to monitor podcasts. For example, if the CEO of the company I work for wants to monitor my blog for information I might post about the company, he can use Google Alerts (or Technorati, or Pubsub) to monitor key words (I do!). But podcasting is different. Audio isn't searchable (yet - I'm sure that's coming). So how can you find out? Well, most likely, word of mouth, which means if something harmful is said, no one will know about it until it's already made the rounds. In contrast, I usually get the Google Alert the next day after I use a key word on my blog. Do you hire someone to monitor podcasts by employees? What if you're a company of 1000, and just 3% do podcasts. Say twice per week average, at an hour a piece? That's 60 hours of podcasts to wade through. That's a lot.
So what is a company to do? Forbid podcasting? No. The solution is easy. Hire knowledgeable employees!
Categories: Podcasting
Building a Better Custom Validator
posted on 2005-01-05 at 00:12:09 by Joel Ross
I recently had a need to have a custom validator that would validate even when the textbox was empty. My first solution was to use a custom validator in conjunction with a required field validator. That worked just fine.
Until I found a situation where the field would sometimes be required and sometimes not be required. And it wasn't based on entries in another field. It had to do with whether a whole form was filled out - if nothing was populated, then the form is fine. If any one piece was populated, then it should validate everything.
So the custom / required validator combo didn't work for me. So I decided to build my own validator. It's very similar to the custom validator (I used that as my code sample using Reflector).
Here's the code for the validator:
1: using System;
2: using System.ComponentModel;
3: using System.Security.Permissions;
4: using System.Web;
5: using System.Web.UI;
6: using System.Web.UI.WebControls;
7:
8: namespace RossCode.Web.UI.WebControls
9: {
10: /// <summary>
11: /// Summary description for RequiredCustomValidator.
12: /// </summary>
13: [ToolboxData("<{0}:RequiredCustomValidator runat=server ErrorMessage=\"RequiredCustomValidator\"></{0}:RequiredCustomValidator>"), DefaultEvent("ServerValidate")]
14: public class RequiredCustomValidator : System.Web.UI.WebControls.BaseValidator
15: {
16: static RequiredCustomValidator() {
17: EventServerValidate = new object();
18: }
19:
20: public RequiredCustomValidator() { }
21:
22: protected override bool EvaluateIsValid() {
23: string textValue = "";
24: string controlId = base.ControlToValidate;
25:
26: if (controlId.Length > 0) {
27: textValue = base.GetControlValidationValue(controlId);
28: }
29:
30: return OnServerValidate(textValue);
31: }
32:
33: public virtual bool OnServerValidate(string value){
34: ServerValidateEventHandler handler1 = (ServerValidateEventHandler) base.Events[RequiredCustomValidator.EventServerValidate];
35: ServerValidateEventArgs args1 = new ServerValidateEventArgs(value, true);
36: if (handler1 != null) {
37: handler1(this, args1);
38: return args1.IsValid;
39: }
40: return true;
41:
42: }
43:
44: private static readonly object EventServerValidate;
45:
46: public event ServerValidateEventHandler ServerValidate {
47: add {
48: base.Events.AddHandler(RequiredCustomValidator.EventServerValidate, value);
49: }
50: remove {
51: base.Events.RemoveHandler(RequiredCustomValidator.EventServerValidate, value);
52: }
53: }
54:
55: protected override bool ControlPropertiesValid() {
56: string controlId = base.ControlToValidate;
57: if (controlId.Length > 0) {
58: base.CheckControlValidationProperty(controlId, "ControlToValidate");
59: }
60: return true;
61: }
62:
63: public string ClientValidationFunction {
64: get {
65: object obj1 = this.ViewState["ClientValidationFunction"];
66: if (obj1 != null) {
67: return (string) obj1;
68: }
69: return string.Empty;
70: }
71: set {
72: this.ViewState["ClientValidationFunction"] = value;
73: }
74: }
75:
76: protected override void AddAttributesToRender(HtmlTextWriter writer) {
77: base.AddAttributesToRender(writer);
78: if (base.RenderUplevel) {
79: writer.AddAttribute("evaluationfunction", "RequiredCustomValidatorEvaluateIsValid");
80: if (this.ClientValidationFunction.Length > 0) {
81: writer.AddAttribute("clientvalidationfunction", this.ClientValidationFunction);
82: }
83: }
84: }
85: }
86: }
I'm not sure why, but for some reason, it doesn't work in design view. But if you know me or read this blog regularly, you'll know I don't much care for design view anyway. Even without it, this works.
The ServerValidate event fires even when nothing is in the box. I am now thinking about doing my own custom control for the regular expression validator too - when I give it a regex, and the regex doesn't allow blanks, why is that valid?
Anyway, here's the code. Feel free to use it as you please.
Categories: ASP.NET
Week XVII NFL Picks
posted on 2004-12-30 at 23:33:15 by Joel Ross
I've been lax lately, so I haven't reviewed weeks 15 or 16 yet. And I don't think I will. I'll just tell you how I did. Week 15, I was 9-6 against the spread and week 16, I was 7-8. Overall, I'm 117-114 (50.7%).
Picking winners, I was 10-6 and 11-5 for weeks 15 and 16, respectively. Overall, I'm 149-91 (62.1%).
Anyway, let's get to week 17's picks. And this time (unlike week 16), I'm going to consider teams sitting players in meaningless games.
- San Francisco vs. New England (-14): New England will win, but only because the 49ers are horrible. New England already has their bye, so this one won't be terribly exciting.
- Pittsburgh vs. Buffalo (-8): All scenarios for the Bills require them winning or tying. Pittsburgh, starting Tommy Maddox, has nothing to play for. Therefore, Buffalo should win.
- Miami vs. Baltimore (-10): Baltimore needs a lot of help to get in. They'll at least get their win, but won't have enough to make the playoffs.
- Minnesota (-6) vs. Washington:
- Cincinnati (-3) vs. Philadelphia: Win and you're in. They had that last year against Arizona and lost. That won't happen this year.
- Green Bay vs. Chicago (-3): Green Bay has nothing to play for. But they'll still win.
- New Orleans vs. Carolina (-8): This is the game of the week. Carolina will win, but it will be close. And no matter who wins, neither may make the playoffs, depending on how the games play out.
- Detroit (-3) vs. Tennessee: Completely meaningless game, other than the younger players getting experience.
- New York Jets vs. St. Louis (-1.5): Jets win, and they are in. St. Louis needs the win, but won't get it.
- Cleveland vs. Houston (-10.5): No playoff implications. Houston wins, but not be 11.
- Tampa Bay vs. Arizona (-3): One more meaningless game, but Tampa Bay wins it.
- Atlanta vs. Seattle (-5.5): Seattle needs the win to clinch a title, and Atlanta has a first round bye, so they won't have much to play for.
- Indianapolis vs. Denver (-8.5): Denver controls their own destiny, and Indy doesn't want to chance losing a major player to injury, so Denver will win and make the playoffs.
- Jacksonville vs. Oakland (PK): Jacksonville needs more help to get in than they will get, but they'll at least get their win.
- Kansas City (-3) vs. San Diego: A meaningless game here. But San Diego will beat the Cheifs.
- Dallas vs. New York Giants (-3): One more meaningless game. But it is division rivalry, so it could be interesting to watch.
So based on my picks, here's the playoffs as I see them. First, the NFC.
- Philadelphia
- Atlanta
- Green Bay
- Seattle
- Minnesota
- Carolina
Now, the AFC:
- Pittsburgh
- New England
- San Diego
- Indianapolis
- New York Jets
- Denver
We'll see how close I am!
Categories: Football
Tourney Pool Manager 2005
posted on 2004-12-29 at 22:52:57 by Joel Ross
We are working on the next version of the Tourney Pool Manager, and I think it's going to be pretty cool. We decided not to do a ton to overhaul it, but we are adding a cool feature that will make managing a pool much easier.
Now, when you fire up the Tourney Pool Mananger, it will poll our website and whenever a result is added on our website, your pool will automatically be updated. No more entering games manually - now you can rely on us entering the results, and your pool will get updated automatically!
The other change we're making is in regards to licensing. We felt that last year our licenses were a little too restrictive for personal pools. So we're changing that this year. We are going to have an unlimited license if the pool is used on a non-public facing website (for example, an intranet site).
There are also some minor bug fixes and small enhancements that tighten it down a little bit. But we still have some time for other things. If you have a feature you absolutely would want, let us know. We may be able to squeeze it in. You can either comment here, or send an email to info@tourneylogic.com.
One last thing. We are planning on running a beta for the Accenture Match Play tournament towards the end of February. We're still ironing out the details, but we plan to give something out for the winner. I'll get more details out about it as it gets closer.
Anyway, there's an update on what you can expect from this year's Tourney Pool Manager.
Categories: Develomatic
Listening to Podcasts In My Car
posted on 2004-12-29 at 22:41:08 by Joel Ross
A while ago, I mentioned that I wanted to be able to listen to podcasts in my car, and found a solution - an FM modulator that allows me to play MP3s through my radio.
I didn't get it, because my wife jumped on me about it. Well, it turns out she had alterior motives - She was getting that for me for Christmas! I ended up with the Belkin TuneCast II Mobile FM Transmitter. It's a step up from the one I linked to before, and the main difference is that this one comes with a car charger, so I won't be burning AAA batteries all the time!
So far, I'm pretty impressed. It works great. It does change how I listen though. When sitting at my computer, I listen in Windows Media Player, and set the speed to fast. My Pocket PC doesn't offer that as an option. Also, I typically skip the music in most shows. I don't try to skip them while I'm driving, so I'm getting the full effect of the show.
So far, my commute has been dedicated to the Daily Source Code. It's a nice way to wind down from a day at the office (my mornings are still dedicated to Bob and Tom!).
Categories: Podcasting
Tsunami Relief
posted on 2004-12-29 at 22:28:18 by Joel Ross
Scott Hanselman has a great idea about how to help victims of the earthquake and ensuing tsunami, but he needs some help to pressure Google.
He wants to donate all of his AdSense income. If everyone did that, we could make a difference (well, not me - my revenue from AdSense is less than a quarter).
He wants help to allow us to have a button to automatically do it, and he wants us to contact Google, asking for it.
Categories: Personal
Merry Christmas!
posted on 2004-12-24 at 23:21:18 by Joel Ross
It's almost Christmas time here in Michigan - less than an hour away. We set out all of our daughter's presents, and I'm getting ready to turn in a little earlier than normal.
But before I do, I wanted to wish everyone a Merry Christmas. May your holiday be refreshing and joyful.
And I said it last year, but I'll say it again. God placed His present on the tree, not under it.
I'll be gone for a couple of days, but Monday, I'll be back - maybe too busy to get much posted, but I'll at least have access to read emails again. Anyway, have a happy holiday!
Categories: Personal
Peyton Manning
posted on 2004-12-24 at 00:47:59 by Joel Ross
I'm not a Indy fan per se, but for some reason, I've always liked Manning and Edge. Here's a nice post about Manning and how he's been able to lead the Colts this year through examples from this past weekend. The best line: "The difference between Manning and Marino is ego and Payton leaves that out of his game."
I still don't think they'll get past Pittsburgh this year - they'll end up playing outside again, and their defense isn't where it needs to be, but if they lose, it won't be because Manning didn't do his part.
Categories: Football