Junkies Website Development (RSS)

This is a collection of updates, announcements, and information regarding the ongoing development of the Junkies websites (DotNetJunkies.com and SqlJunkies.com).

Windows Vista Forums on DotNetJunkies

I created five new threaded discussion forums for Windows Vista (the operating system formerly known as "Longhorn"):

  • AERO
    AERO stands for Authentic, Energetic, Reflective, and Open and is the user experience guidelines for Windows Vista, governing the look and feel of the operating system.
  • Windows Presentation Foundation (Avalon)
    Windows Presentation Foundation (formerly code name "Avalon") is the presentation subsystem class libraries in WinFX.
  • Windows Communication Foundation (Indigo)
    Windows Communication Foundation (formerly code name "Indigo") is a set of .NET technologies for building and running connected systems. It is a new breed of communications infrastructure built around the Web services architecture.
  • InfoCard
    "InfoCard" is the code name for a WinFX component that provides the consistent user experience required by the identity metasystem.
  • RSS in Windows Vista
    Today RSS is primarily used for news sites, blogs, and increasingly for audio-based serialized content. But RSS has the potential for broader reach and to more deeply integrate the information it delivers across applications of various kinds.
     

Fake Support Email from DotNetJunkies

Please be aware that someone/thing is sending out a fake support email using a DotNetJunkies.com email address. The message has a ZIP file attached. Please delete this message and do not open the attachment.

The email reads:


Dear user of dotnetjunkies.com,

Your account was used to send a large amount of spam during this week. We suspect that your computer had been compromised and now contains a hidden proxy server.

We recommend that you follow the instruction in order to keep your computer safe.

Virtually yours,

The dotnetjunkies.com support team.


Again, please delete this email and do not open it.

Blog Fix Coming Soon!

I want to let you know personally that Donny and I are working with Scott Watermasysk and Telligent Systems to get a new build of the .TEXT blog engine running on the Junkies sites. As the sites have grown, they have put an enormous strain on the blog engine and there is a bug in the version of .TEXT that we are running that causes a caching exception to occur under heavy load. The only current solution is to restart the .TEXT application.

We have been assured by Scott that they will have the latest release candidate of Community Server :: Blogs (the new name for .TEXT) and an upgrade tool for us to use as early as next week. Please understand that we are doing what we can. If we cannot get .TEXT working effectively in the extremely near future we will find an alternate blog solution and get it implemented as quickly as possible.

Thank you for your patience.

New Stuff on the *Junkies Sites

We spent some time over the past few days modifying and adding stuff to the *Junkies websites (DotNetJunkies.com and SqlJunkies.com). Among the changes are:

  • Relative font-sizing for UI accessibility - we had explicit and unchangable font sizes before.
  • RSS Feeds for Latest Articles, Upcoming Events and Latest News
  • Rearranged the home page to hopefully be more readable - hopefully it will encourage people to click on more links.

We also built PageHeader and PageFooter controls. Each has a ShowSidebars property that when set to true:

  • The PageHeader control creates a page-wide table with the header and navigation information. The navigation is read from the PageLayoutData.xml file, so modifying navigation is as easy as changing an XML file.
  • The PageHeader opens a table and creates a LeftSidebar colum, and openes the center content colum
  • The PageFooter closes the center content column and adds a RightSidebar column.
  • The PageFooter adds a bottom table with the copyright information (read from the PageLayoutData.xml file).

Additionally, you can use the control separately by setting the ShowSidebars to false - this will render only the top or bottom table depending on which control you are using. And even more, you can set ShowSidebars to True, but hide one or both sidebars by setting the PageHeader.ShowLeftSidebar property to false, and the PageFooter.ShowRightSidebar to false. All in all its pretty flexible and we are using it site wide on both sites.

New SqlJunkies Articles (Including Yukon Beta 1)

We published the following articles on SqlJunkies.com today:
 
Yukon Demo: AdventureWorks Contacts
By Jason Stowe - An Example Using SQLCLR Stored Procedures with HTTP Endpoint using HttpWebRequest/HttpWebResponse and Generated Proxy Classes
 
SQL WebBench is a stand alone browser based application that demonstrates Native SQL Web Services in Microsoft® SQL Server™ Yukon Beta 1. SQL Web Bench allows for HTTP SOAP endpoint manipulation and the ability to invoke remote SQL web services right from your browser via a WSDL XSL transform. SQL Web Bench demonstrates and exposes the raw SOAP that is sent and received from the server.
 
This step-by-step article describes how to move a database diagram that was created in SQL Server Enterprise Manager. Database diagrams are contained in the dtproperties system table of the database.
 
This article describes how to implement a callback function during the installation of the SQL Server 2000 Desktop Engine (MSDE 2000) and also discusses all the conditions that must be met to make sure the callback function runs properly.
 
Using the sp_fixindex Stored Procedure
This article discusses how to use the undocumented sp_fixindex system stored procedure to correct problems in the indexes of SQL Server system tables.
 
When you query a linked server, you frequently perform a pass-through query that uses the OPENQUERY, OPENROWSET, or OPENDATASOURCE statement. You can view the examples in SQL Server Books Online to see how to do this by using pre-defined Transact-SQL strings, but there are no examples of how to pass a variable to these functions. This article provides three examples of how to pass a variable to a linked server query.

Attention All SQL Server User Groups

I am sending a call out to all SQL Server User Group members. With the new launch of SqlJunkies.com we have enabled you to spread the word about your user group.

You can post announcements of your upcoming user group meetings here (http://www.sqljunkies.com/MyAccount/PostEvent.aspx).

The meeting will show up on the web site up until the day of the event. SqlJunkies.com members will be able to click on a link to add the meeting to their Outlook or Lotus calendar.

Fun in the Sun on SqlJunkies.com

We launched SqlJunkies.com this week (on Sunday during PDC). So far the response has been great.

Shannon Horn recently wrote an article that we posted accross bot SqlJunkies and DotNetJunkies. You can read it and discuss it in the forums.

On DotNetJunkies there is an interesting conversation where some users are modifying the code and converting it to VB.NET.

On SqlJunkies there is a conversation going on about the performance of temp tables versus the use of table variables.

There are some bugs on SqlJunkies.com that we are working out, but its coming along nicely. We'll be posting new builds weekly as we fix bugs and add features. This weekend we will be migrating DotNetJunkies.com to use the new code base that we built for SqlJunkies.com (we call it the Atomic Community Engine - ACE). In a few months we'll be releasing the source code.

Servers and Cell Phones

As you may have heard (via Donny's blog) the DNJ server was running poorly because all the new features, which added a lot of CPU hit and DB traffic. Donny and I chatted about how to solve the problem, and tried a few things before deciding we needed more servers. Up to this date DNJ has been running off of a single, dual-proc server (actually we used to run off a single 500 MHz server).

Daisy Cutter (our existing server) is a dual 1.2 GHz CPU with 1 GB RAM. We just added The Beast, a server Donny was using for dev testing, that is a dual AMD XP1600+ machine with 2 GB RAM (I believe).

We just ordered another server to replace Daisy Cutter, which will also be a dual AMD XP1600+ machine with 2 GB RAM. The new machine will be our Web Server, and will be running Windows Server 2003 (with IIS6.0). Daisy Cutter will not be retired, but rather it will be turned into a staging and source control server.

I'll keep you posted on how I like the new phone.

The new servers will be set up this week sometime.

On a side note, I lost my Samsung I-330 PalmOS phone last night, so today I went and replaced it with the SCP 5300 phone. Its not a PalmOS phone, but it is a PCS Vision phone (with a built-in camera, not an attachement). I didn't like the fact that the I300 phone had a touch screen- I can't feel the buttons while dialing and driving.

Server Out of Control

This evening I spent most of my time (and some of Russ's time) trying to isolate the reason why the DNJ server was performing so poorly. It seems that something was causing the aspnet_wp.exe processes (2 of them, one for each processor) to restart every 3-5 mintues. Each one kept growing in memory until they reached 75% of available memory, then BLAM! process restart.

After a bit of poking around, chating and perf monitoring I decided it was directly related to the ASP.NET Cache growing out of control. Further investigation showed that Output Cache was under control, but the Cache API entries would grow by 100 entries every 5-8 seconds until they reached around 5,000-6,000 and then the processes would restart.

In the hijacked forums code we use (the ASP.NET Forums) we had to alter some code to integrate with our existing security (authentication/authorization) model. In doing this we were putting the forum name for the users in cache. I decided to do some code reworking to see if this was the problem. After altering 7 or 8 classes in the forums codebase and recompiling we saw a perf increase. We still have an issue, but now the processes are restarting every 30 minutes instead of every 3 minutes.

Donny and I are going to run some tools on our dev machines over the next week or so to try and isolate the problems. I'll keep ya posted.

Title Fix 06.02.03

I just uploaded the fixes for the Title Bar bug. All Tutorials and How To's now have their title in the browser Title Bar as opposed to the URL.

We have a custom server control that renders the Head element including the Title element. I never wired the articles up to set the Head.Title property when the article is rendered. So, the fix was to add:

Head1.Title = Content1.Title;

...in the Tutorial.ShowContent.aspx.cs and the HowTo/ShowContnet.aspx.cs files.

Corrected the Title in a few other random files.

Posted the fix from the TechEd Wireless lounge, so that's all I'm adding now.