In Valid Logic

Endlessly expanding technology

Archive for May, 2007

CS SSO: Common issues with Forms Authentication

with 3 comments

Earlier today I posted the first article in a series I'd previously mentioned.  This article is about common issues that people encounter when setting up Forms Authentication.  It talks about ensuring ticket names match, setting machine keys, and setting the cookie's path and domain properly.

Also, as I'd previously mentioned, please send me suggestions for future articles if you haven't already!  Over time, I'll be adding more and more.

Over time, these will likely get more technical and involved, though I really wanted to get this first one out there as it is a common question on the forums that people seem to regularly face.

Written by krobertson

May 30th, 2007 at 9:59 pm

Posted in Archive

Belly at 19 weeks

with 2 comments

My wife, Trish, has me taking weekly pictures of her since she started showing.  She's really popped out in the last 2-3 weeks, so it is pretty exciting to see it slowly develop.  She's felt it move a couple of times now, though just little flutters.  According to the info she's read, we should start feeling it kicking within the next few weeks.

Some people have been saying "omg, you're carrying high, its going to be girl".  I don't know about that.  Personally, I don't believe the "carry high = girl, carry elsewhere = boy".  It is what it is.  But even if it is a girl, she'll be coding in C# in no time.

Written by krobertson

May 19th, 2007 at 6:47 pm

Posted in Archive

Community Server Single Sign On Scenarios

with 4 comments

I'm working on coming up with a series of posts to make explaining how to use some of our Single Sign On (SSO) modules in various scenarios.  The series will be developer-oriented, so rather than "this is how to configure it to do this", it will be about how to code around Community Server to handle certain situations with the SSO modules.  Example of some of the ones on my list:

  • How to add additional profile information when a user signs up
  • Common gotchas when using Forms Authentication
  • How to get two sites in different virtual directories to work togther
  • How to get two sites on different subdomains to work together
  • How to handle SSO with an ASP.NET parent application that uses the username field on the Forms auth ticket as a user ID

Anything else you would like to see?  Let me know!  Feel free to let me know of any unique scenarios that pose problems when trying to use the SSO modules, or some simple functionality you'd like to leverage.

Written by krobertson

May 16th, 2007 at 2:00 pm

Posted in Archive

Qgyen.Lightbox for Community Server 2007

with 4 comments

Pleased to finally release the build of Qgyen.Lightbox for Community Server 2007!  Sometimes can be a little slow getting my little modules updated to new releases, so figured I might as well get this one out tonight, as I was just going through and making a few updates to it.

Changes in this release include:

  • Fixed issue with the Flickr module having an error when the URL contained multiple number sets (Flickr will sometimes show URLs with your username, and others with a user identifier)
  • Fixed issue with the Flickr module not linking to the original photo properly if it wasn't a JPEG
  • Fixed a possible issue where the Gallery Lightbox module could throw a null reference exception
  • Added a feature where you can specify the CSS class for the rendered IMG (I use this so some images will float left/right with some padding around them).  See the readme.txt for how to do it.

Download here

If you have any issues, then please let me know!

Written by krobertson

May 15th, 2007 at 11:01 pm

Posted in Archive

Progress on building

without comments

I've really been getting up to speed on using MSBuild and think I have a very nice base set of build scripts.  I basically took the scripts from Carel Lotz's series and created a nice set of common build tasks for building and unit testing projects, and have done it in a way so that I can easily override paths or override the build progress.  For instance, since we already have continuous integration on CS, I just have it build CS (it doesn't do tests or code analysis) and copy all the DLLs and any reference DLLs into a kind of "latest good build" location.  Then I currently have the News Gateway add-on setup so that when it goes to build, it will first copy the DLLs from the latest good build of CS, and then it goes through the News Gateway project files and remaps all its external references to its latest DLLs of CS, and then it gets built, tested, and periodically analyses.

So far, I have created two custom build tasks for MSBuild.  First, I created one called GetProjectReferences, which basically returns the file location of all external references for a given set of project files.  This is used so I can copy both the compiled output of a project and all of its references to a common folder, so that any other projects that reference it can get all of the dependent files very easily.

Second, I've created a task called UpdateProjectReferences that lets you remap all of the external references in a set of project files to a certain directory.  In the CS Subversion repository, we already have a set file structure and it works pretty well for development purposes.  For the add-ons, the inter dependencies between the projects can become chaotic.  Often, the add-ons build against the output in the latest CS Web\bin folder, since it provides an easy way to link to the latest project output without having to check compiled project assemblies into Subversion (since we previously did that when we used Vault and it wasn't the best) and it also avoids project references, since those can get hairy.  But this can be a problem when it downloads News Gateway to build, as it just gets News Gateway, not it and CS.  So what it does is it updates the references to a local set that it knows are valid, recent, and good to compile against.

I'll probably end up looking into contributing some of these tasks back to the MSBuild Community Tasks project.

Written by krobertson

May 10th, 2007 at 10:29 pm

Posted in Archive

Follow up on MSBuild

with one comment

As a follow up on my post yesterday about continuous integration, I am really starting to like MSBuild.  Sure, it has a few quirks, but with the MSBuild Community Tasks, they have tasks for most of the things I want to do, and it doesn't look very hard to write your own tasks.  Sure, you have to write/compile your custom tasks as opposed to kind of scripting them with nant, but that isn't much of a problem, in my opinion.  Additionally, it is one less application I need to mess with.  Why learn CruiseControl.NET, nAnt, and MSBuild, when I can get it all done with just CruiseControl.NET and MSBuild.  One less thing to deal with.

Also, I highly recommend this series of posts by Carel Lotz on setting up CCNet and MSBuild with Subversion, FxCop, NUnit, and NCover.  I was reading it last night through Google cache (the site was down for a while) and it got me up and going very quickly.  Covers a nice range of tasks very clearly with clean build scripts.  Was able to quickly take some of its basics and begin getting MSBuild to do what I needed.

Think tonight I'm going to write my first custom task.  I already got it to build a project and it tracks all the output DLLs, but I also want it to parse a project file to find all the file-based references.  I found how to get a project's references, but in the form of the full assembly reference, couldn't get the path to the file it referenced.  Going to write a task that can open a project file as XML, get its references as files, and then return the list.

Written by krobertson

May 9th, 2007 at 2:08 pm

Posted in Archive

Getting up to speed with continuous integration

without comments

Lately, I've been looking into getting up to speed with continuous integration after watching the recent dnrTV with Jay Flowers and CI Factory.  At Telligent, we've had a continuous integration server setup for quite a while, though it is primarily maintained by Dan Bartels and it handles building of CS and some of the other main projects.  I've been wanting to get things expanded to some of the add-ons for CS, with a huge goal of doing nightly builds where it does the whole enchilada: builds the latest CS, updates the version numbers of the add-ons, does a release build against the latest CS, obfuscates, and then packages and MSI and makes it available somewhere.  If I could do this, I'd be in heaven, as release time would instantly become a breeze for me (aside from all the coding).

I very quickly got up and going with CruiseControl.Net and using MSBuild to do the building.  Going off Dan's existing configurations, it was a breeze.  The problem comes in when you want to do the more advanced stuff like auto versioning, executing commands for obfuscating, and building the MSI with the Visual Studio Setup project.  So my options are to either come up with some sort of batch execution stuff (maybe PowerShell scripts), or to head into the zone of ccnet + nant + msbuild.  The advantage to using nant is that there are a ton of community tasks out there for doing exactly what I need.  The disadvantage is a higher level of complexity, especially if you're unfamiliar with nant.

I've tried to use CI Factory to get up and going quickly, since in the dnrTV, they got up and going with building SubText in the hour long show.  So far though, I can see some disadvantages to using CI Factory.  First, it likes to dictate your file structure.  It has its way of organization, and it is all setup to use it that way.  Try changing it around, and the scripts it generates can start to unravel.  Second, it likes to maintain its own copies of all the executables, which while I can see the reason for it, I don't need it.  I don't need multiple copies of nant, subversion, and ccnet.  In fact, I just want one unified ccnet instance.  And third, for me, it just hasn't worked so far.  I'm using the latest beta version, and while it is definitely a sweet utility, it still shows signs of being a beta.  Even when I try to let it use its file structure and all, it still get fouled up, likely because I can't move the existing projects into its desired folder structure.  But it gets things like failing to start svn, after it has already got a list of the recent changes.  And since it has this huge maze of configuration files and build scripts, it isn't necessarily an easy fix for someone who is new to ccnet, new to nant, and new to CI Factory.

I had tried to take the CI Factory scripts and mold them into my desired folder structure and everything, but I only got part of the way.  Ultimately, I think I'll end up writing my own nant scripts, maybe using CI Factory as a basis for some of the more advanced stuff, but follow the "start simple, then add more" route rather than "start huge and fine tune".

Written by krobertson

May 8th, 2007 at 12:22 pm

Posted in Archive

New Thinkpad T60

with 2 comments

Been enjoying my new Thinkpad T60.  A few weeks ago, I finally I finally broke down and ordered a new laptop.  I was originally thinking about getting a new laptop about a year ago, but decided not to as there were some newer things coming like the Core 2 Duo chips.  Then back in November, I decided to upgrade my desktop some rather than a laptop.  I was kind of looking at it with the attitude that it wasn't worth upgrading my laptop because I don't use it that much, but I didn't use it that much because it was too slow and I didn't like using it.

A few weeks ago, before my trip to Dallas, I'd decided to put Vista on my laptop and give it a shot.  I figured, maybe seeing how Vista performed on it would help me determine whether I really needed a new laptop.  First, I had a bunch of trouble as I found the DVD drive on my laptop was on its way out, as I couldn't even get it to copy all of the files off the Vista disk when installing.  After a few days, I managed to find my USB DVD drive and got the Vista install done the day before I was leaving for Dallas.  Once I get it on there though, I found Vista was horrendously slow.  I mean, the laptop was an old Pentium M 1.7ghz, 1gb RAM, some old horrible ATI chipset.  The laptop was probably about 3 years old.

Then, while I was in Dallas, I found that the period key was starting to go bad.  I had to hit it pretty decisively for it to work.  That was the last straw.  I had been comparing laptops a lot recently, deals at different places, and knew what I wanted and from where.  I just hadn't reached the point of pulling the trigger.  When I found the period key going, that was it.  I placed the order while there in Dallas.

The system I'd narrowed it down to was a new Thinkpad T60 to replace my old Thinkpad T40.  I ended up ordering it through Lenovo, as I found you can get a pretty nice deal if you link to them and order with your Visa.  Visa offers about a 15% discount on the T60.  By ordering that way, the deal was better than almost anything I'd seen on other vendors or even on Ebay.  Also, I wanted the Thinkpad rather than anything else like a Dell.  Thinkpads have always impressed me, and Dells don't always.  Dell didn't have anything that quite met the Thinkpad.  Sure, they have 15.4" widescreens with WSXGA+, but most of their systems cap at 2.33ghz.  Comparing the ones that are close to it (not counting the processor), the Thinkpad was only about $100-200 more than it.  The only Dell that compared to the Thinkpad on everything, including processor, was the Latitude D820.  When I priced it, it ended up being about $150 more than the Thinkpad was.  In general, I think the Thinkpads have actually come down in price.  I paid about as much for this as for my old T40 used, and this is more cutting edge than that was at the time.

It took a few weeks for them to assembly, package, and ship the system, but one nice thing is that it came in only two days from Hong Kong once being shipped!  It came earlier in the weekend and I've been loving it so far.  It is bigger than my old 14" T40, but overall it is a sweet machine.  I have just about everything set up on it, except for finding a way to tether through my Blackberry in Vista.  The modem drivers don't seem to be recognized on Vista.  Lenovo is still making the Thinkpads as they've always been: sleek, performant, and rugged.

Written by krobertson

May 5th, 2007 at 11:32 pm

Posted in Archive

Tired of virtualization blogs

with one comment

There were a number of blogs on virtualization that I was reading, though I've found myself more and more just not being interested.  Why?  Three reasons.

First, there just isn't a lot of information for me.  I am not some big player, I don't have massive SANs (Storage Area Networks) and all this big equipment that a lot of the info is regarding.  I use some virtualization software on my server, and I run some workstation virtualization software on my desktop/laptop.  The field isn't like software development where there are all kinds of things for you to readily play with and try.

Second, a lot of the blogs are bland.  So much of the content is like repetitive press releases.

And third, most of all, the virtualization market seems to resemble politics and school yard fights too much.  Seriously.  Between the main players in the "enterprise server virtualization" market, they are always bickering.  "We have better benchmarks."  "No, we have better benchmarks, they used the wrong version."  "We are cheaper."  "They are too cheap."  "We are new and cool."  "I'm telling my mommy."  The two worst companies in this are XenSource, the "we're cheap and don't know why the other guy costs so much but if you use our software (mainly administration software) you'll see why we're cheap" company and VMware, the "we run faster in an unfair version matchup with the other guy" company.  That is all I'll say about that, since between a few of the webcasts I watched for both and the "benchmarks" they routinely publish going back and forth, it just gets old.

I was into blogs about the virtualization market at first, as would read some stuff on configuring the software and I'd tried out various programs, and they have good content, but not regular good content.

Though the one virtualization bit I'm looking forward to more about is Microsoft's Viridian hypervisor.  Forget Virtual Server 2005 R2 SPwhatever, it is pigeon poop compared to what the virtualization software at the hypervisor can do.  Microsoft will hopefully be an interesting player.

Written by krobertson

May 4th, 2007 at 3:27 pm

Posted in Archive