Continuous Integration With Multiple Projects

posted on 2004-09-20 at 12:04:49 by Joel Ross

I got tired of seeing a failing build every time I checked in a file for our Tourney Logic build server, especially when it wasn't what I was working on that was failing. It was another project altogether that I'm just getting started into how to build the installer automatically. I switched gears, so it's in an unfinished state (meaning, the build fails!).

Anyway, every time I checked in a file for the Tourney Bracket Control 2.0 (yes, we have finally started development on it!), I got a notice saying the build failed, when I knew it hadn't. So I decided to take some time to see how to set up multiple projects in CruiseControl.NET.

I'm only going to talk about the changes needed to go from a single project to a multiple project, so if you want the background on a single project set up, read my post on setting up continuous integration.

The changes are fairly straightforward. In your ccnet.config file, under each project element, add the following element:

<state type="state" filename="project1.ccnet.state" />

Make the state file unique for each project you want to track. If you have an existing build process, using new state files will cause the build number to start over. The state file tracks the build number, as well as the state of each build (pass or fail). Each project will now get it?s own URL too, so you?ll have to make the webUrl element unique too. Now each project can watch different folders in your repository, meaning a check in in one folder will not cause a build in another project not relying on that folder.

Now that brings up a question I had, and later found the answer to: What if you have two projects that share a library, and you want each to monitor that folder as well as the project?s folder? The way I have it working now is that I monitor the root folder. Here?s my folder structure:

/CurrentCode
  /Project1
  /Project2
   /SharedLibrary

So both projects monitor the CurrentCode folder. The advantage I get is that if Project2 is broken, Project1 knows nothing about it, but the disadvantage is that if Project2 has a file checked in, Project1 still builds. There?s a solution I?ll present, but note that I haven?t tried it, so I can?t verify that it works. Make your sourceControl element look like this:

<sourceControl type="multi">
  <sourceControls>
    <vault>
      <executable>C:\Program Files\Sourcegear\Vault client\vault.exe</executable>
      <username>[UserName]</username>
      <password>[password]</password>
      <host>www.mydomain.com</host>
      </repository> DefaultRepository</repository>
      <folder>$/CurrentCode/Project1</folder>
      <ssl>False</ssl>
    </vault>
    <vault>
      <executable>C:\Program Files\Sourcegear\Vault client\vault.exe</executable>
      <username>[UserName]</username>
      <password>[password]</password>
      <host>www.mydomain.com</host>
      </repository> DefaultRepository</repository>
      <folder>$/CurrentCode/SharedLibrary</folder>
      <ssl>False</ssl>
    </vault>
  </sourceControls>
</sourceControl>

I'll probably make this next week, so when I do, I'll let you know if it works. Basically, you are telling CC.Net to monitor more than one folder, allowing for more granular control over what gets built. Under the new method, if a file is checked into the /CurrentCode/Project1 folder, Project2 would not be rebuilt. This (to me) is a much better plan.

One note here: If you do have projects that share a component, and both projects build that component, make sure to stagger the build timing. I did this by modifying the modificationDelaySeconds to stagger the delay that CC.Net uses. We discovered this issue when one of our projects kept failing because the .pdb file could not be written to - because another project was using the same file at the same time.

The rest of the changes are for the web sites. Here's my new web folder structure:

/Builds
  /Project1
  /Project2
  /Dashboard

Each of the subfolders is an IIS application. Project1 and Project2 are copies of the CC.Net web folder. A couple of changes need to be made in conjunction. The web.config file's appSettings section for Project1 looks like this:

<appSettings>
  <add key="logDir" value="log" />
  <add key="ServerLogFilePath" value="C:\Inetpub\wwwroot\Builds\Project1\log\ccnet.log" />
  <add key="ServerLogFileLines" value="50" />
</appSettings>

The changes to make with this are in the ccnet.config file. There are two changes. First, in the publishers section, the logDir needs to match the web.config log file. The other change to remember to make is to change the projectUrl in the email section. Make sure it points to the Builds/Project1 folder.

The Dashboard folder is a copy of the webdashboard folder. If you don't change the port that CC.Net reports on (by default 21234), then the dashboard's web.config file can be left untouched. Otherwise, update appSettings section to reflect the correct port.

That?s it! You can now run multiple projects with the same CC.Net installation. And they can even depend on shared parts without affecting each other.

Categories: ASP.NET


 

Ahoy there, Me Hardy

posted on 2004-09-19 at 00:14:13 by Joel Ross

Arrr! Today (September 19th) is Talk Like A Pirate Day.

Sounds like another good opportunity to annoy the wife!

Categories: Personal


 

Google AdSense

posted on 2004-09-16 at 15:09:06 by Joel Ross

I added Google Adsense today. Not sure what I'll get out of it (probably next to nothing). I thought it might be interesting to see what kinds of ads show up, and if I make some revenue, then that's good too.

Don't feel obligated to click on it, though. And if you have a problem with it, let me know why.

Categories: Blogging


 

Week Two Picks

posted on 2004-09-16 at 15:06:34 by Joel Ross

The odds are out, so that means it's time to make some picks, along with my legendary* commentary:

  • Denver (-3) vs. Jacksonville: Denver looked too good to me to lose to Jacksonville. Jacksonville has a pretty good defense, but Denver's offense is always good. Jacksonville, with Champ Bailey guarding Jimmy Smith, will have to rely heavily on Fred Taylor in the backfield.
  • Pittsburgh vs. Baltimore (-4): After losing to Cleveland, Baltimore should be hungry. Four points isn'e enough for the Steelers.
  • Houston vs. Detroit (-3): I always like seeing recent expansion teams play each other. What's that? Detroit isn't an expansion team? I thought you had to be to get all those top draft picks. Oh, wait. You just have to suck! And the Lions have, but they play well at home (5-3 last season). Houston really is a recent expansion team, and I think this will be close, but Detroit pulls it out at home.
  • Indianapolis vs. Tennessee (-2.5): Another grudge match for the Colts. These two QBs shared MVP honors, and now they both try to prove who deserved it more. Of course, this will probably come down to a running game, which Indy has, and Tennessee, well, not so much.
  • Chicago vs. Green Bay (-9): Green Bay at home. Against the Bears. Brett Favre looking good. Ahman Green looking even better. A big rivaly. All those add up to a Green Bay win (which I think will happen), but nine points is a lot to cover.
  • Washington (-3) vs. New York Giants: Joe Gibbs is 1-0 in the new century. He'll make it 2-0 this year.
  • San Francisco vs. New Orleans (-7.5): Both of these teams are mediocre at best. This will be closer than the spread, but New Orleans will get the win.
  • St. Louis vs. Atlanta (-2.5): I was surprised to see two things about this game. 1.) Altanta is a favorite, and 2.) at the same time, that Mike Vick is not concidered a sure fire fantasy starter yet. Those contridict each other don't they? I think both statements are wrong. St. Louis should still be the favorite (they'll win), and Mike Vick should have a decent day against a pretty weak Rams defense.
  • Carolina vs. Kansas City (-6): This will be a close game, I think. KC will win, but Carolina will cover.
  • Seattle (-2.5) vs. Tampa Bay: Seattle, with or without Alexander, should have no problem with dispatching a rapidly falling apart Tampa Bay team.
  • Cleveland vs. Dallas (-5): I saw Dallas' defense last week. Not something to be worried too much about, and their offense isn't all that spectacular either. And Cleveland scored 20 on a very solid defense, and help Jamal Lewis (who gained 500 yards against them in two games last year) to under 60. They can move the ball too, with Garcia taking the helm and doing a good job.
  • New England (-8) vs. Arizona: The Patriots winning streak will end at some point, but not against a weak Cardinals team. One bright spot for Arizona? They should have a decent day running the ball. But they won't get within 8 points of New England.
  • Buffalo vs. Oakland (-3.5): This game could go either way, but for whatever reason, I picked Buffalo.
  • New York Jets (-3) vs. San Diego: The Jets should handily defeat the Chargers. They'll put pressure on Brees, meaning a work load for Tomlinson (either running or blocking the blitz or a quick dump off on blitzes). Pennington should pick apart their defense.
  • Miami vs. Cincinnati (-5): Miami has to be thankful for a road game - no hurricanes in Cincy! But it won't help their chances of winning.
  • Minnesota vs. Philadelphia (-3): The premiere match up of the week! Which, since it's on Monday night, it should be right? It's a good thing two team's offenses aren't on the field at the same time. There's not enough room for both Moss' and Owen's egos out there! So who is the best QB - WR combo out there? This should tell us. Neither team is a great defensive team, so look for lots of points. Maybe not a 5 touchdown night for Culpepper or a three touchdown night for Owens, but a highscoring game none the less.

So now you have my picks. Do what you will with them. I didn't do this last week, but I'll try to remember from here on out. My solid, without-a-doubt-you-will-not-lose pick is New England over Arizona. It's a lock. For those wondering, my bet-your-rent-money pick last week was St. Louis over Arizona, and no, I don't make that pick by spread - just by winner. Sense a theme here? Play Arizona, become a lock to win. Wait, that's been a theme for a few years now...

* Legendary as in I did it last week too!

Categories: Football


 

Week One Pick Review

posted on 2004-09-15 at 00:21:46 by Joel Ross

So the first weeks' come and gone. Now, it's time to review how I did picking games. I think I did fairly well for not following much of the preseason.

  • Indianapolis 24, New England (-3) 27: I saw most of this game. Neither of these teams seemed to have great defenses. It was disappointing to see this one come down to a missed field goal by Mike "Money" Vanderjagt. TMQ (who you should read if you want real NFL insight) called the Vanderjagt miss. If you doubt it, search his archives for "You'll Rue The Day You Didn't Miss". This one met the spread, which for my purposes is a wash - doesn't count for or against.
  • Tennessee 17 (-3), Miami 7: Didn't even see anything about this game, but from what I heard, it looks like at least Miami won't blow their playoff hopes in December this year! It'll be far sooner than that!
  • Oakland 21, Pittsburgh 24 (-4): The Bus had a pretty big game, and yet, he remains on the free agent list in both of my fantasy leagues. No one believes he'll continue, including me. But at least the Steelers are using him early in the season for all he's worth. Now if just they'd hammered in a couple of two point conversions, they could have covered.
  • Tampa Bay 10, Washington 16 (-2.5): Tampa Bay has fallen a long way from two years ago. Last year, they lose to Carolina in the opener, and this year, it's Washington. Carolina went on to the Super Bowl. Can the Redskins be far behind?
  • Baltimore 3 (-3), Cleveland 20: Here's my other reference to last season. Remember how New England got blown out by Buffalo (a rival) in the first game, then went on to the Super Bowl? Well, this is the same type of thing. Can a Baltimore / Washington Super Bowl be far behind?
  • Jacksonville 13, Buffalo 10 (-3): Fred Taylor did nothing, but Leftwitch played well. And Buffalo doesn't appear to be good. At all.
  • Cincinnati 24, New York Jets 31 (-4.5): I knew I should have started Curtis Martin over Taylor. But no!
  • Detroit 20, Chicago 16 (-3): The road streak finally ends, as the Lions win one for the first time in three years. Now, Charles Rogers has played how many games and made how much? I need a job like that. Without the whole broken collar bone thing, though.
  • Arizona 10, St. Louis 17 (-10.5): I ignored one of my "Ross Codes" here: never go with a team who's favored by 10 or more. I'll work on some data to back this up soon.
  • Seattle 21 (-2.5), New Orleans 7: The Seahawks are predicted to be in the Super Bowl by some. They look good, but can you really just factor out the whole Washington logic? I don't think so.
  • San Diego 27, Houston 20 (-4.5): I told you it was too early for Houston to be a favorite. With a guy like Tomlinson, you can never count the Chargers out.
  • New York Giants 17, Philadelphia 31 (-9): Uh oh. Looks like Owens has something to prove. And he started proving it Sunday. If I'm any team in the NFL, I'm scared of the Owens / McNabb combo (that's a passing and running attack wrapped into two guys).
  • Dallas 17, Minnesota 35 (-4.5): Of course, before you fear Owens / McNabb, you have to consider what happens when Culpepper matures (which I think may have happened). 5 touchdowns, but that wasn't what impressed me the most. It was the way he directed traffic while the play was going on.
  • Atlanta 21 (-3.5), San Francisco 19: Maybe the 49ers aren't as bad as I thought.
  • Kansas City 24, Denver 34 (-3): Quentin Griffin is making losing Clinton Portis much easier in Denver. How do they do it there? When was the last time you saw Denver field a bad running back? It was before Terrell Davis, that much I know.
  • Green Bay 24, Carolina (-3) 14: With a healthy Ahman Green, Brett Favre will always be a dominant player. We'll have to wait to see how Carolina pans out this year.

Here's a summary of how I did this week.

 Week OneSeason
Against The Spread9 - 6 (60%)9 - 6 (60%)
Head to Head12 - 4 (75%)12 - 4 (75%)

Not too bad for the first week, I guess. I'll get next week's picks up on Thursday again.

Categories: Football


 

My Team Lives, As Does The League

posted on 2004-09-10 at 21:35:19 by Joel Ross

Well, while I was gone on vacation, my fantasy team was drafted. I wasn't even sure it was going to happen, and we went on vacation less than a day after the league was officially a "go", so I basically had the default player rankings. I think my team ended up OK, but it's hard to judge. There are only eight teams in the league, so each team is pretty stacked, which makes it hard to judge how good my team is. Talk to me in week 2!

Anyway, I can already see a quarterback controversy brewing. Daunte Culpepper gets the starting nod, but Marc Bulger will pressure him all season.

I had these same quarterbacks last year too. It was always a tough decision each week determining who to start. I think I even lost a game or two because of making the wrong decision.

At running back, I have a solid 1-2 punch of LaDanian Tomlinson and Fred Taylor. I've had both of these guys before. Fred Taylor is always a gamble - he missed quite a few games from '99 through 2002. Since then, he's been much more steady, and put up good numbers. LT is great. He can run, he can catch, and he scores. With Curtis Martin on the bench, I think I'll be solid there.

At wide receiver, I'm not as strong as I could be. My starting three are Eric Moulds, Santana Moss and Jimmy Smith. All solid players, but no stars. We can use a wide receiver as our tight end, so I'm using Peerless Price there. On the bench, I have Reggie Wayne, Brandon Lloyd, and Erron Kinney. Nothing special there either.

For kickers, I have David Akers and Josh Brown. I like Akers, and he'll be in most of the games.

For defense, I have Dallas. A solid team, but I'll probably upgrade throughout the season as team's defenses establish themselves.

Anyway, I probably won't bore by blog audience with too many fantasy details, because I'm sure you don't care. But we'll see. I may bore you anyway!

Categories: Football


 

ASP.NET Weblogs Change

posted on 2004-09-10 at 14:21:28 by Joel Ross

Before I left for vacation, I started removing ALL non-full content RSS feeds. A lot of Movable Type blogs have been purged, as well as a few others.

Some remain, mainly because I just want to see the headlines - Reuters and ESPN are the main ones I can think of.

So now comes the issue. What to do about the ASP.NET Weblogs? I know the reasons - bandwidth is a problem when you have 1000+ bloggers on the same server. On the other hand, I won't subscribe to 1000 individual blogs because of this change. So now, I'll probably miss something that comes through. I mainly scan the headlines there anyway because reading it is almost too much to handle.

I'll subscribe to a few blogs directly (Raymond Chen and Mike Swanson are two that I know I will subscribe to right away). I'll probably even monitor the main feed a while longer to see who is providing good content, and subscribe to their feeds. But after a couple of weeks, I'll probably drop the main feed, and rely on word of mouth to find the info I want. And that's kind of disappointing, really.

I'm not sure what this says about Microsoft - they are a leading edge company, but can't find a way for people to effectively use it. I don't want to have to visit thier site for every story I'm interested in. And I'd like to be able to read it offline, like while I was driving to Myrtle Beach (well, riding, but you get the idea).

Maybe this is a temporary fix, and they're looking at a better solution that makes the blog world happy and keeps bandwidth in check. If so, then I'll resubscribe. But if not, they've been given their two week's notice.

Categories: Blogging


 

Back From Vacation

posted on 2004-09-10 at 14:04:08 by Joel Ross

Obviously, I'm back from South Carolina now. It was a good trip, but Frances (at least the remnants of it) chased us out of Myrtle Beach. Literally. For three counties, right after we left them, we'd hear reports of tornado warnings for the county we just left. So yeah, Frances chased us out!

We got down there on Friday afternoon, and had great weather until Monday. I was able to hit two very nice golf courses. The first was The Avocet, and the second was called Man O War.

Both are very nice courses, and for the price, good deals. Man O War was a much tougher course, but I think I shot the best round of my life (despite the first hole - a 10) on the front nine, including a par on the 9th (their signature hole - the first photo in the photo gallery). I put my drive in the water on the right (it's an island fairway), then put my 5 wood about 10 feet from the pin, and dropped my par putt. I also birdied 7. Still, I shot 51 - I'm not a great golfer! I shot 106 on Avocet and 107 on Man O War.

We started both courses early in the morning and had the rest of the day to enjoy the sun and beach. Walking along the shores of the ocean is very nice, and the Kingston Plantation is a very nice place to stay. It had a great ocean view from the condo, and just a short walk to the beach.

My wife and I enjoyed our time walking through the ocean. We could get used to that!

Anyway, on the drive back, we had rain all the way until we got through most of Ohio - basically 800 miles of the 1000 mile trip. I drove all but two hours of that trip, and some of it with my wife and daughter sleeping in the back seat.

If you get bored easily, stop reading now. Or if you'd rather read coherent thoughts, stop now.

Still with me? You were warned.

Driving through 5 states in one day with nothing to do but watch the road, you notice some things. First, why do all signs for deer show them running from right to left? Do the deer know that's the way they are supposed to cross? Why are cows in the road shown as standing, while deer are running? And cows go from left to right.

Construction was a common occurance. And the signs differed for those too. In some states, the signs will say "Reduce Speed Ahead." Action. You have to reduce your speed ahead. Others say, "Reduced Speed Ahead." A statement. We have construction, therefore traffic is slower. To me, it seems like a warning rather than a restriction. Of course, in North and South Carolina, there was no need for those signs - speed limits were the same in construction as out of construction.

Not that we had to worry about it, but the same situation (action versus statement) occured with icy bridge signs. In some states, they say "Watch for Ice on Bridge" - action. Others are informative. "Bridge Ices Before Road." Driving becomes a learning experience!

One last comment about West Virginia's roads. Some of the curves definitely seem like they were built before the speed limit there was 70 - very sharp corners. Also, I found it odd that truckers (which we learned my daughter, who is 2, likes to pronounce with an "F") have the same speed limit in parts of the state as every one else - 70. And they take advantage of that. Now, if you've never been to West Virginia, it's very hilly - no, mountainous. There are stretches of 3 miles that have a 5% grade, where you don't have to use the gas to accelerate. And trucks fly through those areas. They even have ramps for out of control trucks. I wonder how often they are used...

Anyway, I'm back from vacation, and all caught up. Now, maybe I'll have time to get a few extra posts in over the next couple of days!

Categories: Personal


 

It's time for some NFL Picks!

posted on 2004-09-09 at 12:15:39 by Joel Ross

Yup, that's right. I'm back early from vacation, just in time to make my picks! The slate is fresh, and I'm feeling refreshed!

So let's get to it! Here's how it works. In parenthesis is the spread. I'll make a pick against the spread, and that will be bold. If I think they'll cover the spread, but not win, I'll note that too. Then, next week, I'll review my picks with how the games actually played out. So with that, here's my week one picks. NOTE: I've been away from my ESPN for a week now, so I haven't been up on the latest news. This could turn into a disaster, so don't place your house payment on my picks. As a matter of fact, never place your house payment on my picks. Or anyone's picks. Actually, never bet your house payment. Period.

  • Indianapolis vs. New England (-3): A rematch of the AFC Championship game, except this time without the snow. Look for New Englands winning streak to end.
  • Tennessee (-3) vs. Miami: When your running back retires right before training camp, it's difficult to recover. Right, Lions fans?
  • Oakland vs. Pittsburgh (-4): I haven't seen much on either team, but Oakland was old last year, so they probably won't get much better.
  • Tampa Bay vs. Washington (-2.5): Washington a favorite? Can this be right? Ole Joe Gibbs must know a thing or two about football...
  • Baltimore (-3) vs. Cleveland: Ray Lewis is the man on defense. No other reason for this pick...yet.
  • Jacksonville vs. Buffalo (-3): I've always liked Fred Taylor, and I think he'll have a decent year. Buffalo may struggle this year.
  • Cincinnati vs. New York Jets (-4.5): Marvin Lewis did a tremendous job last year, and that should continue. The Jets will be decent this year, but they'll start with a loss.
  • Detroit vs. Chicago (-3): The homer in me is coming out wit this pick, but I think Detroit will win. They have a solid group of young players on offense, and the new no touch rule for defenders can only help Rogers and Williams. With Kevin Jones in the backfield, the Lions should be decent this year.
  • Arizona vs. St. Louis (-10.5): The Cards are still bad. St. Louis is still good. 'Nuff said.
  • Seattle (-2.5) vs. New Orleans: This could be a pivotal year for the Seahawks. The Saints are still young, and I'm not convinced that they have it together yet.
  • San Diego vs. Houston (-4.5): I'm surprised that the Texans are a favorite. Did I miss something? With LT in the backfield, the Chargers should be able to move the ball.
  • New York Giants vs. Philadelphia (-9): McNabb now has a legitimate target to throw to, and he'll be looking to prove he can get past the NFC Championship. And the Giants are a team in transition too.
  • Dallas vs. Minnesota (-4.5): Dallas lost their quarterback, and Minnesota has a good offense.
  • Atlanta (-3.5) vs. San Francisco: Having Mike Vick for a whole season will be good for Atlanta. San Fran, on the other hand, has lost it's coach, quarterback and best receiver over the last two years. Ouch.
  • Kansas City vs. Denver (-3): KC is good. Why aren't they the favorite?
  • Green Bay vs. Carolina (-3): Have you ever seen Brett Favre perform badly on a national stage? I can't really think of many times. And Carolina could have been a fluke last season.

All I can say now is, "Are you ready for some football?!"

Categories: Football


 

Heading Out On Vacation...

posted on 2004-09-01 at 12:43:56 by Joel Ross

I know, I know. I don't really post that much, but at least now I have an excuse! I'll be out of touch until September 10th or 11th, so the posting will be non-existent until after that time. Of course, this assumes no hurricanes, which it looks like Frances won't be an issue now - heading too far south to really affect us. We'll still see rain, but not like we could have.

I don't think I'll have internet access there, but who knows. If I do, and the hurricane does hit, maybe I'll do some hurri-blogging!

Categories: Personal


 

<< 1 ... 112 113 114 115 116 117 118 119 120 121 122 ... 124 >>