This blog is where you'll get all the general public announcements from. Site information as well as new projects and releases will be announced here.
Physical move back to LA

If you were wondering why the site was down for about 8 days, it was due to a physical move of the servers and a major screw up by Verizon.  The site was only supposed to be down for 1 day, but Verizon screwed up the line order and was never able to get it working.  So, I placed an order with the local cable provider for business Internet service and they were able to get me up and running.

The nice thing about business cable Internet service is that I get a guaranteed minimum bandwidth (unlike residential service), it is 3x the bandwidth of the service that I ordered from Verizon, and at 2/3 the cost.  The only problem is that you don't have any access to the settings in the cable modem, and your public static IP addresses are hard wired to the LAN side of the modem, which used to be a major problem with only extremely expensive solutions.

There didn't used to be any low cost solutions that would allow you to place a firewall between the LAN side of the modem and your network, if you wanted to be able to use the public static IPs.  A client of mine that has business service through Comcast, wasted over $6,000 on a firewall/router to do this.  Fortunately, pfSense 2.0 beta (my firewall software) is free and supports IP aliases which allows you to give each firewall interface multiple IPs that are routable.  It is beta software and there are bugs in the UI, but it's working very nicely for us.

CAPTCHA added to user creation

Since the beginning of this year, there has been a major increase in the automated creation of fraudulent user accounts targeting Community Server systems.  Over the past few days we deleted thousands of these accounts and have implemented CAPTCHA on the user creation page.  We have also upgraded the web module to .NET 3.5.  If you run into any issues with these changes, please post them here.

Bill Bosacker

Web server upgraded to Windows Server 2008

We just finished upgrading this web server to Windows Server 2008 from Windows Server 2003, which was a major PITA.  The entire DMZ is virtualized (including the domain controllers) and the upgrade resulted in the corruption of AD, so the entire forest had to be rebuilt from scratch.  The virtual drives of the web servers were too small to process the upgrade, so they had to be expanded as well.  With Windows 2000 and Windows 2003 a 16GB expandable drive is more than enough for a web server, even after adding an \I386 folder for the CD and service packs.  However, with smallest full install of Windows Server 2008 requires about 7.5GB and at least that much space to perform an upgrade from Windows Server 2003.

This site has been up and down over the past 4 days during the upgrade process.  After 3 days, we finally had the new forest up and a viable version of the web servers running in 80GB expandable virtual drives.  It then took almost 8 hours for the server to upgrade to Windows Server 2008 and another 4 hours to get all the applications working, mostly due to issues caused by the expanding of the virtual drives.  A long story short, we're up and running again.  We had to upgrade the servers for a new site that is written to run on IIS7 and is going on-line within the next 2 weeks.  We'll make another announcement once the new site goes on-line.

New Rock Hard Sueets! blog and the end of CS Nuggets

We have a new Rock Hard Sueets! blog for Dave Burke's open source Sueetie project.  Time permitting, we will be moving this site over to Sueetie.  Since CS 2008 changed how posts are created in a major way, it may take a while to do this conversion.  I have also just posted the final CS Nuggets post as we are dropping all support for Community Server.

Blog comments working again

Thanks to a note from Dave Burke I learned that comments had stopped working after the upgrade to CS2008.5.  It turns out that the upgrade had turned off the ViewState on all of the post.aspx pages, which I had turned on previously to enable the Invisible CAPTCHA scheme that I was using.  I have again turned on the ViewState for the pages that require it.  If you notice any quirkiness, please let me know.

New Project: ASP.NET Live Membership

I'm taking a little time right now to announce a new project that is going to be released very shortly.  The ASP.NET Live Membership project is 100% compatible with the existing ASP.NET Membership System in the .NET Framework, but will use a different database schema and replacement set of stored procedures.  Check out the new ASP.NET Live Membership blog where a more detailed description of the project has been posted.

Upgraded to CS 2008.5

I was going to wait until I had time to write the new CFS module, but decided to upgrade early so that I can do some live testing.  The upgrade to SP1 should be within the next couple of weeks, once I get a chance to update the SDK.  If you run into any problems, please let me know.

Site was down over the weekend

On Saturday,  the site went down during a server upgrade when I accidentally gave the last domain controller on the network the wrong IP address.  Around 3am this morning, I finally got everything up and working.  I still have 1 physical server and several virtual servers to upgrade, so the site may go down periodically (up to an hour) while I work on these servers.

Thank you for your patience...

Invisible CAPTCHA added! Anonymous comments enabled!

I've been wanting to enable anonymous comments for quite some time, but I hadn't due to the enormous amount of BLOG spam that is being generated on the Internet.  I had considered using a CAPTCHA scheme with images, but it usually turns out to be more of a nuisance to users and requires quite a bit of coding for each and every page that uses it.  I was going to bite the bullet and use images when Dave Burke directed me to a post of his, Spam and BlogEngine.NET - Nadda, Nope, Nothin, which has a link to another post about Invisible CAPTCHA.

After doing a little research and giving up on the image approach (which requires you to turn on the IIS session state system), I started work on my favorite BLOG theme, Paperclip.  After enabling the view state, adding some server side code, and adding a single custom validator to the page, I had it working.  The only down side is that users who do not have javascript enabled in their browser will not be able to add comments.  For me, this isn't an issue as I don't support users that don't have javascript enabled.

All this being said, here is what you need to do to the post.aspx page of each and every BLOG theme to get this working:

  1. Make sure that EnableViewState="True" is in the @Page directive at the top of the page.
  2. Replace the following server side script:
    void Page_Load(object sender, EventArgs e)
        if (CurrentWeblogPost != null)
            SetTitle(CurrentWeblogPost.Subject, false);

    void Page_Load(object sender, EventArgs e)
        if (CurrentWeblogPost != null)
            SetTitle(CurrentWeblogPost.Subject, false);
    /// <summary>
    /// Initializes the captcha and registers the JavaScript
    /// </summary>
    private void InititializeCaptcha()
        if (ViewState["CaptchaName"] == null || ViewState["CaptchaValue"] == null)
            ViewState["CaptchaName"] = Guid.NewGuid().ToString();
            ViewState["CaptchaValue"] = Guid.NewGuid().ToString();
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.AppendLine("function SetCaptcha(){");
        sb.AppendLine("var form = document.getElementById('" + Page.Form.ClientID + "');");
        sb.AppendLine("var el = document.createElement('input');");
        sb.AppendLine("el.type = 'hidden';");
        sb.AppendLine(" = '" + ViewState["CaptchaName"].ToString() + "';");
        sb.AppendLine("el.value = '" + ViewState["CaptchaValue"].ToString() + "';");
        Page.ClientScript.RegisterClientScriptBlock(GetType(), "captchascript", sb.ToString(), true);
        Page.ClientScript.RegisterOnSubmitStatement(GetType(), "captchayo", "SetCaptcha()");
    /// <summary>
    /// Gets whether or not the user is human
    private bool IsCaptchaValid
            if (ViewState["CaptchaName"] != null && ViewState["CaptchaValue"] != null)
                return Request.Form[ViewState["CaptchaName"].ToString()] == ViewState["CaptchaValue"].ToString();
            return false;
    protected void valCaptcha_ServerValidate(object source, ServerValidateEventArgs args)
        args.IsValid &= IsCaptchaValid;
  3. Just before the <CSBlog:WeblogPostCommentForm... element toward the end of the file, insert:
    <asp:CustomValidator ID="valCaptcha" Display="Dynamic" EnableClientScript="False" ValidateEmptyText="True" ValidationGroup="CreateCommentForm" OnServerValidate="valCaptcha_ServerValidate" runat="server"><p><strong>Automatted entry detected, comment not saved.</strong></p></asp:CustomValidator>
  4. Add the following attribute to the <CSBlog:WeblogPostCommentForm... element toward the end of the file:

That's it, you're done.  If you run into any issues, please post them here.

UPDATE: I just learned about reCAPTCHA, which has an ASP.NET interface.  I might look more closely into using it at a later date.

Update: Telco Issues

AT&T came out and corrected some issues that were not correctly addressed when the lines were first installed.  I need to monitor the lines very closely for the next couple of weeks, but it looks like this may be why the connections have been very unreliable.

UPDATE 07/15/2008:
It turns out that the Netopia routers were overheating, which caused them to constantly recycle.  Each time a router recycles its temperature increases due to the levels of the signals.  Elevating the routers 1 inch from their mounting surface has alleviated the issue by allowing suffient air flow underneath the units.

Netopia had stated that there needs to be at least a 1 foot gap betweens units to prevent an EMI issue, but that has proven to not be true.  There is currently no gap between any of our units, and they continue to functioning perfectly as long as they are elevated 1 inch from the mounting surface.  Netopia (Motorola) has declined to comment on the issue.

Telco Issues

We are currently experiencing connection issues that AT&T is working on.  Our connection to the Internet has been down about 95% of the time for the past 24 hours, but should be fully functional late Thursday, June 26, 2008.

Take it easy,

Updated to CS 2007.1 and converted to VS 2008

I converted the Community Server solution to Visual Studio 2008 a couple weeks, which went without any hitches, but I waited until this weekend to update the application to CS 2007.1 as I knew that that would not be as easy.  This was more than a patch and is really a stepping stone for the next major release of Community Server, CS 2008.

Several administration features are being removed from Community Server with the release of CS 2008, many of which I am using.  In the end this this will allow Telligent to take Community Server to the next level and will make administration of the site so much easier, but it means that I and others must upgrade to CS 2007.1 first.  If we don't, the upgrade to CS 2008 will be so much more painful than it needs to be.

CS 2007.1 has some problems of its own and one major piece of functionality was mistakenly removed from the administration UI.  The UI for the Auto Delete functionality (permanent deletion of posts) was removed for some unknown reason.  One person alluded to the fact that it was no longer working, but I found that to not be true.  While upgrading to CS 2007.1 I very carefully made sure that I didn't remove any of the Auto Delete UI pieces and it is functioning very well on my sites.

If you run into any issues with the site, let me know...

Name Change: CMSLive.NET

Due to the fact that another project is using the CMS.NET name and that the domain is also taken, it was decided that a different name for the project should be used.  Several different names and the availability of domains for those names were considered, before stumbling upon the name CMSLive.NET.  When it was learned that the domain name hadn't been registered, I quickly registered the name and changed the name of the project as this name exactly describes the application.

Also, due to the early release of Visual Studio .NET 2008, the application will target the 3.5 .NET Framework.  A public view of the application will be available sometime during the 1st quarter of 2008.  This will only be a demonstration of what the application will be able to do as the major portion of development will be the interfaces and tools for content editors and administrators.

Community Server 2007 Service Pack 2 Installed

Telligent released SP2 on June 12th and I just finished installing the update.  If you notice anything that was working before and currently isn't, let me know.

Project forums open for posting

I apparently forgot to allow users to post in the project forums and no one let me know about it.  Anywho, that has been corrected and I hope we can start talking about the different projects.

Take it easy,

New forums available

I have created a few new forums for open discussion on different topics.  If there are some other forums that you would like to see, leave a comment or send me a private message.



The servers and myself moved to a new location in sunny San Diego, with DSL service from AT&T.  This service is 3-4 times faster than the COVAD service I had previously, and for the same price.  I was also able to get the firewall fully functional, which has ended the attempts to break in and/or take down the site.

I have been extremely busy with my current client, so I have only been able to work on CMS.NET a couple hours here and there.  I'm still working on the core design and code, but am very happy in how it is going.  The dynamic CSS system is going to be great for skinning the site.  I'll post more as pieces become more concrete.

New site for open source C/C++/C# development

That's right.  This site is dedicated to the open source development of C/C++/C# applications primarily for, but not limited to, the .NET platform.