Happy Birthday Tina!

posted on 2004-10-06 at 23:26:30 by Joel Ross

Today is my wife's birthday. She turned 11010. Yes, that's a clever "encoding" to disquise her age. I'm pretty sure she doesn't want that published, so I'll leave it up to you to figure out how old she is.

It's a good thing no one knows binary these days!

Anyway, she'll probably never see this, since reading my blog is somewhere between cleaning the toilet with a toothbrush and reshingling the house on her priority list, but if she ever does, well, then she'll know I love her*!

* Being mentioned on my blog does not constitute me loving you.

Categories: Personal


 

Week Five Picks, A Little Early

posted on 2004-10-06 at 23:21:14 by Joel Ross

I know I won't have time to post tomorrow, so I'll get my picks in early this week. Some of the odds aren't posted yet, so I'll update those once I see the odds.

So here's the picks.

  • Miami vs. New England (-13): New England will continue it's winning streak, but not by 13. That's a Ross Code of betting. Favorites by more than 10 usually don't cover. Since the beginning of the 2003 season, teams favored by 10 or more are 8-15 against the spread. So, therefore, New England wins, but Miami covers.
  • Cleveland vs. Pittsburgh (-6): I don't follow the AFC close enough, but I'll give this one to the home team. Just because!
  • Oakland vs. Indianapolis (-9): Indy should be able to pick apart Oakland, and the Raiders offense isn't all that good. Nine points isn't much to a quarterback who can put up over 200 yards in a quarter.
  • Detroit vs. Atlanta (-7): I'm torn here. It's an odd week. In odd weeks, Atlanta barely beat San Fran and Arizona. In even weeks, they Handled Carolina and St. Louis easily. So will the even or odd Falcons show up? Who knows. Better question? Can Detroit even beat the odd Falcons? I'm saying no.
  • Tampa Bay vs. New Orleans (-3): If Deuce is back or not, I don't see it mattering. Tampa Bay is not good this year. And inserting Chris Simms won't help matters. Yes, he may be a great quarterback someday, but right now, he's only played two games, and hasn't started yet.
  • New York Giants vs. Dallas (-4): Dallas has a great defense (yes, I'm onboard now), and the Giants could only put up 14 against a depleted Green Bay secondary.
  • Minnesota (-4) vs. Houston: The Vikings are only favored by four? I don't think that's enough. Culpepper is having an awesome year, and the Texans defense will struggle to contain him. He's a threat through the air and the ground. How do you stop that?
  • Buffalo vs. New York Jets (-7): Buffalo seems to find a way to collapse. it doesn't matter how, but they usually find a way. Last week, they had fourth and three. Worst outcome? Don't convert, play tough defense, get the ball back late in the game, right? No. Miss a blitz pickup, fumble, and give up a touchdown. Now that's finding a way to lose!
  • Jacksonville (-3) vs. San Diego: Again, only three points? Yeah, San Diego is at home, but is playing in San Diego really that rough for opposing teams. It's not the Frozen Tundra. It's not a mile high. It's sunny San Diego!
  • Carolina vs. Denver (-5.5): This one's a hunch, plain and simple. Carolina has a good defense, and the'll be out to show last weekend was a fluke. Denver, well, it's obvious Griffin isn't the back people said he was after week one, and I've never been a Plummer fan.
  • St. Louis vs. Seattle (-7): I'm coming around. Seattle is the real deal this year. St. Louis is up and down. If this one's close, will the coaching staff make the right choices? (see pooch kick, week three) I have confidence in Mike Holmgren, but not necessarily in Mike Martz.
  • Arizona vs. San Francisco (-1): This could be the best game of the week. This truly is two evenly matched teams. This could decide (early in the season) who's the early favorite for the number one pick next year!
  • Baltimore (-1) vs. Washington: This one's off the boards for two of the three oddsmakers. The other one's a pick (no spread). I'd go with Baltimore if that's the case, but I'll check back later. UPDATE: Even giving up one point, I'll still take Baltimore!
  • Tennessee vs. Green Bay (-3): This one's not on the board yet. Hmm. Wonder why? Maybe because Favre hasn't practiced yet, even though in my mind, there's no question here. He'll play. He has for 12 years straight now. And if that wasn't reason enough not to post odds, McNair's status is still in question. I'll check back on this one too. UPDATE: I'm picking Green Bay. Brett Favre at home on Monday night? I'll go with that

After 10 of 14 games last wee being road favorites (and going 5-4 against the spread and 6-4 overall), this week has 10 of the 12 posted games as home favorites. My prediction? The home team is a better and more consistent team to have as a favorite, and will perform better.

Hopefully I'm right. We'll see in a week.

UPDATE 10.08.2004: The lines for Baltimore vs. Washington and Tennessee vs. Green Bay have been posted, so I updated this with my picks for those two games.

Categories: Football


 

CruiseControl.NET and MSBuild

posted on 2004-10-06 at 22:02:39 by Joel Ross

Mike Swanson has a great post about using CruiseControl.NET with MSBuild. It includes details about unit testing, FxCop, and how to coerce CruiseControl.NET to use MSBuild.

If you're lucky enough to be developing in .NET 2.0 and Visual Studio 2005, and want continuous integration, you should check this out.

By the way, Mike is the one who convinced me to start using CruiseControl.NET, as well as NUnit for testing our system. He's a very sharp guy, and it's nice to have him in our office. You can sponge a lot from him just having him around!

Categories: ASP.NET


 

NUnit Extensions

posted on 2004-10-05 at 23:33:15 by Joel Ross

Roy Osherove has released a way to extend the NUnit framework.

This looks pretty cool. I'm not sure I will use this for my own attributes, but it comes with Nunit.Extension.Royo, which has his rollback attribute. This allows you to do modifications to a database, check the results, and automatically rollback the transaction.

That's something we struggle with in our current project - we can easily do reads from a database, but inserting, deleting or updating records is a problem. We didn't want to go with Roy's original NUnitX framework, as it tied us into his unit testing framework, making any updates to the NUnit framework much more difficult to integrate.

Now that NUnit is extensible, that problem goes away, so we can revisit testing database updates.

Of course, that would require us having time to actually work on this, which probably won't happen right away, since we are in semi-crunch mode.

Categories: ASP.NET


 

posted on 2004-10-05 at 00:13:24 by Joel Ross

For the first weekend, I was actually able to sit down and watch a full game (well, switch between two games of choice). Anyway, here's how the week ended up:

  • New York Giants 14, Green Bay 7 (-7): My picks always is contingent on Brett Favre being in the game. Usually, that's a pretty good bet in itself, but today, Favre was knocked out a little early. Who would have thought the Giants would be on a three game winning streak at all this season? Eli Manning better get used to the bench, because Warner is looking pretty good.
  • Philadelphia 19 (-9), Chicago 9: After two weeks of saying "Not picking Chicago with 9 points was a mistake," I can finally say it was the right choice. It just took one of the best teams in the NFC to make it so.
  • Washington 13 (-3), Cleveland 17: Washington isn't as good as I thought they were. And Cleveland is a little better.
  • New England 31 (-5.5), Buffalo 17: It's 4th down and you've got a good drive going. You're down by 7, and have a chance to go for it, or kick a field goal. What do you do? Go for it! What's the worse that could happen? Miss the conversion? No big deal. Play tight defense, and you'll get the ball back. Sounds like a plan! What happens? Two men come across the line untouched (the running back actually ducks out of the way). Fumble. Touchdown. New England blitzed numerous times and had men untouched through to the ball. The same guy from the same place three times in a row. In a row! No wonder Buffalo lost, and New England has won 18 straight.
  • Oakland 17 (-2.5), Houston 30: I told you that Houston should be the favorite. Did you listen? Well, as predicted right here, Houston not only covered, but won.
  • Indianapolis 24 (-3.5), Jacksonville 17: 24 points against one of the better defenses in the league? No problem. And from what I've seen, they haven't even been using Edge like they could be. He seems to be underutilized. Rightfully so, when you have Manning to Harrison, but underutilized none the less.
  • Cincinnati 17, Pittsburgh (-4.5) 28: Tommy Maddox? Who's that? These two quarterbacks should both have solid careers. I look forward to seeing those two match up in the years to come.
  • Atlanta 27, Carolina 10 (-3.5): It looks like Week Two Atlanta showed up, and they trounced Carolina. Maybe if the Odd Week Falcons show up, Detroit will have a chance next week.
  • New Orleans 10 (-3), Arizona 34: Did you know that Arizona is allowed to win games? I thought it was a rule that Arizona had to lose, but apparently, they just usually play that bad. They should play more like this more often. But let me know before you do it again, ok?
  • New York Jets 17 (-6), Miami 9: Miami is 0-4 now. Like I said earlier, at least they won't collapse in December. That's pretty bad when that's best thing going for you.
  • Denver 16 (-3), Tampa Bay 13: I saw the second half of this one. Very boring. And the spread was exactly covered, basically making the game null. One note though: Quentin Griffin is not as good as everyone thought at the beginning of the season.
  • Tennessee 17 (-3), San Diego 38: I always wondered how San Diego could be as bad as they have been. I remember watching Brees in college, and LT is awesome. Maybe they've started hitting their stride? Or does losing McNair affect their defense too?
  • St. Louis 24 (-3.5), San Francisco 14: I flipped it on around 9:45, and it was 17-0. A few plays later, it was 24-0, and half time. My thoughts? Could the 49ers be shut out two weeks in a row? Then I realized I didn't care enough to finish watching. UPDATE: Turns out St. Louis backed off, and let the 49ers score a few. This one is closer on the scoreboard than in real life, though.
  • Kansas City vs. Baltimore (-5.5): Unbelievable. Kansas City isn't supposed to have any defense, and their offense hasn't been great. Yet I turned it on just at the start of the fourth quarter, and Kansas City was up by 10! And they're all over Baltimore's offensive line - pushing right through to Boller.

Not a great week, and it's late, so here's a quick review of where I stand.

 This WeekSeason
Against The Spread6 - 7 (46.2%)29 - 28 (50.9%)
Head to Head7 - 7 (57.1%)35 - 25 (58.3%)

At least I'm still above .500, but falling fast. I should have time to post for next week's games, but it may be short and sweet.

Categories: General


 

Moving To A More Agile World...

posted on 2004-10-05 at 00:05:29 by Joel Ross

As we got into our project, and started analyzing the requirements, we came to a major realization: The benefit we were getting from gathering requirements was dwindling. We had a solid set of base requirements, but the details were difficult to lay out.

So we moved the project to more of an agile approach. And we've been going more in that direction the longer the project goes on. At first, we used it because it was convenient. We could start building parts of the system to do what we wanted it to do, and as the customer saw what we were building, they were better able to provide the details.

The power of a working module is amazing. We could talk for hours about the benefits of A over B, or B over C, or C over A. And nothing would be decided. If this ever happens, build A, and then show the client what you did. I think you'll be amazed at the results. You'll get the feedback you wanted in the beginning. We've found that, instead of discussing something for a couple of hours, we take a best guess, build it, and ask for feedback after we have a first cut. Now we get five minute conversations. And so far, we're right about 70% of the time, and the other 30% is never a complete rewrite. It's more along the line of slight modifications.

Anyway, back on track. Focus! So we started by building parts of the system that do what we need them to do, and refactoring as new requirements are added to the system.

But this caused two problems for us. One, we never had a full layout of what needed to be done, and two, jumping from task to task caused things to get dropped.

How do we prevent that now? Come into the Philadelphia room (our "war room"), and you'll see a wall full of requirements on post it notes (well, slightly bigger than that - basically 5 x 7 notecards that are sticky). As each task is assigned to a person, its given an hours estimate and is moved to the other wall - a wall of windows with each team member's name on the window, and across the window are the days left until we go live. We then schedule tasks so that each developer can see what tasks they have to work on.

Once a task is done, it's moved to another wall, and marked as complete. The number of hours it actually took is marked down as well. We also have a section for tasks that will be postponed beyond the initial release. As we get closer to the deadline, we'll work actively with the customer to prioritize everything, and start scheduling tasks so that we can get a feel for how much we can squeeze in, and what needs to be postponed.

It solves the two biggest problems. Everyone on the team knows what needs to be done to finish this version and it's all laid out - not just in one person's head, and two, nothing gets lost. Either the task is completed, or it's not. And if something comes up, there's now a process to get it into the schedule - put the post it on the wall.

We've only been using the post it notes for a few days now, but we've already moved a few to the completed section, and it feels pretty good. There definitely is some peer pressure - if your colleague is knocking off tasks left and right (even if they are 1 hour tasks) and you're taking longer to get something done (even if it's a four hour task), there's some competition there!

Categories: Consulting


 

WebHost4Life

posted on 2004-10-04 at 23:40:32 by Joel Ross

I use WebHost4Life to host both of my personal sites (this one and my family site), as well as a host for Tourney Logic, and I have been extremely happy using them.

I recently noticed that they are offering to double the space for anyone who signs up right now. Well, I've been using them for well over a year on one account and over two years on the other one. So I figured I wouldn't qualify, but I figured I would give it a shot anyway. Well, both of my accounts could be upgraded for $19.95, and guess what? My referers in both accounts cover the cost.

So now my wife can upload a ton more pictures without us having to worry about space for a while!

Categories: General


 

Bastardizing The Repeater Control

posted on 2004-10-03 at 22:58:34 by Joel Ross

Maybe I should actually get back to some technical posts, huh?


Anyway, on my current project, I created a screen with a data grid on it. Later, we got the HTML layout from our design team, and it was up to me to skin the page. The skinning required that I change the data grid to a Repeater. The design wasn't too complex, but enough that I felt the move to a Repeater was warranted.


Basically, we have a row of data. Clicking anywhere in the row should cause a post back, and that row should be added to another Repeater on the page. Basically, you select an overview row to move it to a more detailed row.


The design called for clicking anywhere in the row to cause the post back, as well as the button labeled for that action.


Now where does the bastardization come in? Well, to make the HtmlTableRow post back automatically, I had to add the post back code by hand. So in the repeater's ItemDataBound event, I get a reference to the row, and add an onClick attribute to it, which calls   doPostBack(), and add the button's clientId as the parameter.


So basically:

row.Attributes["onClick"] = "javascript:__doPostBack('" + link.ClientID + "', '');";




It's a little bit of a hack, but it works right? Well, not quite. First, the ClientID uses the _ as a separator, but the javascript uses the $. So add a Replace for _ with $? Yes and no. Yes, that works. No, because if you don't explicitly give the controls an ID (as well as the hierarchy of controls), the control will get an ID automatically - usually _ctrln. So what to do then? Here's the line I'm using (and it works perfectly every time!):

row.Attributes["onClick"] = "javascript:__doPostBack('" + link.ClientID.Replace("_", "$").Replace("$$", "$_") + "', '');";



Now to me, that's a bastardization of the Repeater control. But it works.

Categories: ASP.NET


 

ASP.NET Page Process

posted on 2004-10-03 at 22:40:43 by Joel Ross

Here's a link to the ASP.NET page process. I look this up on google every time I need to use it, so I figured I'd just post it here so I can get to it.

Now if I could just find one that incorporates the processing of server controls - that would a ton.

And while I'm adding things to it, I want to see the processing a server control goes under during design time in the VS.NET editor.

Categories: ASP.NET


 

Art Van's Customer Service

posted on 2004-10-02 at 11:01:22 by Joel Ross

I've seen a couple posts about companies customer support lately, and I thought I would throw my two cents in about my recent experience with Art Van.

While I'm not a big fan of their advertising (every sale is the biggest sale ever), they do carry good furniture for reasonable prices. For example, our old coffee table and end tables were from there, our old and current dining room table are from there, and our couch came from there.

It's the couch that gave us problems. After less than 2 years, it started to come unraveled. And it ripped. So we called them, and they came out to fix it. The service guy said he never saw anything like that from that couch. He fixed the rip, and a week later, Art Van called to say they would fix the raveling for us. After three weeks without the couches (remember, this is about customer service, not necessarily repair service), we finally callled to see what was going on. The manager of the local Muskegon store said they were almost complete, but since it took so long, we could reselect if we wanted to.

Which we did. We got the old couches back, but were a little worried that 1) it would happen again, and 2) it was Art Van, and not Broyhill doing the recovering. So we selected a Lane sectional, but it was out of stock. They left the Broyhill with us, until the couch came in. Most of it came in a couple of weeks ago, and the rest is being delivered today (why I am sitting at home right now).

Anyway, we were very impressed that we got a full in-store credit after two years of use of the old couches. The sectional, while providing the same amount of seating, was actually less, so we got a coffee table and a new entertainment center with the left over money.

I'll definitely be going back if (when) we need something else.

On a side note, my wife has been looking for an entertainment center that fills a few needs: Fits in a 45 inch width area, holds all of our stereo equipment plus our TV, and keeps most of it out of the reach of our daughter. She's been looking since we replaced the front window (in May), and just found the right one at Art Van last week. I have to say, I was happy we waited. This one is perfect.

Categories: General


 

<< 1 ... 110 111 112 113 114 115 116 117 118 119 120 ... 124 >>