A personal repository of technical notes. - CSC

Free Citation Web Sites

Problem
Need to accurately cite quoted sources.

Solutions
Use free cite making website

BibMe
Welcome to BibMe! The fully automatic bibliography maker that auto-fills. It's the easiest way to build a works cited page. And it's free.

"BibMe: Fast & Easy Bibliography Maker - MLA, APA, Chicago, Turabian - Free." BibMe: Fast & Easy Bibliography Maker - MLA, APA, Chicago, Turabian - Free. N.p., n.d. Web. 2 Aug. 2011.
<http://www.bibme.org/>.

EasyBib Free Bibliography Maker
The fastest way to create accurate, comprehensive works cited lists. 183,320,718 citations made to date. Now with Autocite: Cite books with just an ISBN number, and websites with just a URL.

EasyBib: Free Bibliography Maker - MLA, APA, Chicago Citation Styles. Web. 02 Aug. 2011.
<http://www.easybib.com>.

See Also
"Kinds of Sources and How to Cite Them | Using Sources | Writing at Yale | The Writing Center | Yale College." Yale University. Web. 22 Jan. 2010.
<http://www.yale.edu/bass/writing/sources/kinds/index.html>.

Updates
2011-08-02 Added BibMe reference.

ConfigurationManager.GetSection() as NameValueCollection Example

Problem
Need a custom AppSettings section in config file.

Solution
Create a custom section in config file based upon AppSettingsSection. Then use NameValueCollection to handle settings. See ConfigurationManager GetSection example below.

Note: Tested in .NET 4.0 and 2.0. If using 2.0, change the version number of type in config from 4 to 2.

xml version="1.0"?>
<configuration>
       <configSections>
              <sectionGroup name="customAppSettingsGroup">
                     <section name="customAppSettingsAAA" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
                     <section name="customAppSettingsBBB" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
                     <section name="customAppSettingsCCC" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
              </sectionGroup>
       </configSections>
       <customAppSettingsGroup>
              <customAppSettingsAAA>
                     <add key="KeyOneAAA" value="ValueOneAAA"/>
                     <add key="KeyTwoAAA" value="ValueTwoAAA"/>
                     <add key="KeyThreeAAA" value="ValueThreeAAA"/>
              </customAppSettingsAAA>
              <customAppSettingsBBB>
                     <add key="KeyOneBBB" value="ValueOneBBB"/>
                     <add key="KeyTwoBBB" value="ValueTwoBBB"/>
                     <add key="KeyThreeBBB" value="ValueThreeBBB"/>
              </customAppSettingsBBB>
              <customAppSettingsCCC>
                     <add key="KeyOneCCC" value="ValueOneCCC"/>
                     <add key="KeyTwoCCC" value="ValueTwoCCC"/>
                     <add key="KeyThreeCCC" value="ValueThreeCCC"/>
              </customAppSettingsCCC>
       </customAppSettingsGroup>
</configuration>

using System;
using System.Collections.Specialized;
using System.Configuration;
using System.Collections.Generic;

public partial class ProofOfConcept_CustomAppSettings_Default : System.Web.UI.Page
{
       protected void Page_Load(object sender, EventArgs e)
       {
              // EXAMPLE 1: Retrieve 1 custom appsettings section.

              // ConfigurationManager.GetSection() as NameValueCollection example
              // Create a custom AppSettings section in config file
              NameValueCollection settingsAAA = ConfigurationManager.GetSection("customAppSettingsGroup/customAppSettingsAAA") as NameValueCollection;
              if (settingsAAA != null && settingsAAA.Count > 0)
              {
                     // Individual setting
                     Response.Write(settingsAAA["KeyTwoAAA"]);

                     // All settings' Values
                     foreach (string key in settingsAAA.AllKeys)
                     {
                           Response.Write(settingsAAA[key]);
                     }

                     // All settings' Keys and Values to GridView via Dictionary.
                     Dictionary<string, string> outputDictionary = new Dictionary<string, string>(allSettings.Count);
                     foreach (string key in allSettings.AllKeys)
                     {
                            outputDictionary.Add(key, allSettings[key]);
                     }
                     AllSettingsGridView.DataSource = outputDictionary;
                     AllSettingsGridView.DataBind();
              }

              // EXAMPLE 2: Retrieve multiple custom appsettings sections into a single Dictionary collection.

              Dictionary<string, NameValueCollection> allSettings = new Dictionary<string, NameValueCollection>();

              allSettings.Add("customAppSettingsAAA", ConfigurationManager.GetSection("customAppSettingsGroup/customAppSettingsAAA") as NameValueCollection);
              allSettings.Add("customAppSettingsBBB", ConfigurationManager.GetSection("customAppSettingsGroup/customAppSettingsBBB") as NameValueCollection);
              allSettings.Add("customAppSettingsCCC", ConfigurationManager.GetSection("customAppSettingsGroup/customAppSettingsCCC") as NameValueCollection);

              Response.Write(allSettings["customAppSettingsAAA"]["KeyTwoAAA"]);
              Response.Write(allSettings["customAppSettingsBBB"]["KeyOneBBB"]);
              Response.Write(allSettings["customAppSettingsCCC"]["KeyThreeCCC"]);
       }
}

Updates
2014-05-23 Added example: All settings' Keys and Values to GridView via Dictionary.
2013-12-05 Added Example 2.
2013-11-11 Updated example code.

CGI Timeout IIS 6.0

Problem
CGI Timeout
The specified CGI application exceeded the allowed time for processing. The server has deleted the process.

See
The specified CGI application exceeded the allowed time for processing.
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/w2000Msgs/1367.mspx?mfr=true

Solution
To increase timout:
1) Enable the Metabase Edit-While Running setting.
2) Locate metabase file:
C:\WINDOWS\system32\inetsrv\MetaBase.xml
3) Backup metabase file.
4) Edit metabase file with Notepad.
5) To double timeout value from default 5 minutes to 10 minutes, change CGITimeout="300" to CGITimeout="600".
6) Save.

References
Enabling Edit-While-Running in IIS 6.0 (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/e6c04028-7db3-4564-9912-04e82c52d5ca.mspx?mfr=true

Editing the Metabase (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/e643878b-67ea-4bf9-a9fd-3245b1baed64.mspx?mfr=true

CGITimeout Metabase Property (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/c49c897e-7afa-4963-aa39-dd03920c1e9c.mspx?mfr=true

Configuring CGI Application Timeouts (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/1cc829e2-a9fe-4885-b0a5-43a6d14e1961.mspx?mfr=true

Overview of the IIS 6.0 Metabase (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/6929e089-c495-4ac8-8db0-b069b349b7ba.mspx?mfr=true

Delete SQL SERVER Database Transaction Log

Problem
- Unable to modify table.
The transaction log for database 'MyDatabase' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

Solution
For detailed log backup solutions, see links under References below.

To delete an unneeded log on a development server:

BACKUP LOG MyDatabase WITH TRUNCATE_ONLY
DBCC SHRINKFILE(MyDatabase_Log, 2)


To determine log file name used as parameter with SHRINKFILE:

In Microsoft SQL Server Management Studio
  1. Right-click Object Explorer/MyDatabase
  2. Click Properties
  3. Click Select a page/Files
  4. See Database files: for name of log file.

References
BACKUP (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms186865(SQL.90).aspx

DBCC SHRINKFILE (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms189493(SQL.90).aspx

Troubleshooting a Full Transaction Log (Error 9002)
http://msdn.microsoft.com/en-us/library/ms175495(SQL.90).aspx

How to use the DBCC SHRINKFILE statement to shrink the transaction log file in SQL Server 2005
http://support.microsoft.com/kb/907511

SQL SERVER - Shrinking Truncate Log File - Log Full « Journey to SQL Authority with Pinal Dave
http://blog.sqlauthority.com/2006/12/30/sql-server-shrinking-truncate-log-file-log-full/

The transaction log for database 'mydatabase' is full. To find out why space in the log cannot be reused, see the log_reuse_wait : Transact-SQL : SQL Server : MSDN Forums
http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/f3467f88-8657-439f-b422-00e4a0dd14ab/