<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Data Cogs Information Technology</title><link>http://datacogs.com/datablogs/</link><description>Data Blogs</description><managingEditor>Mark Daunt</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Mark Daunt</dc:creator><title>New Blog</title><link>http://datacogs.com/datablogs/archive/2011/10/13/1640.aspx</link><pubDate>Thu, 13 Oct 2011 10:25:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2011/10/13/1640.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1640.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2011/10/13/1640.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1640.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1640.aspx</trackback:ping><description>&lt;P&gt;This old blog has served me well since 2004, but it is time to move on to a simpler and more flexible platform.&lt;/P&gt;
&lt;P&gt;I will also be blogging about my hobby, Music Technology and Audio Engineering, so watch out for that.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://kogzee.wordpress.com/"&gt;http://kogzee.wordpress.com/&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1640.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>Errors When Trying to Active SharePoint Server Enterprise Site Collection features (2010)</title><link>http://datacogs.com/datablogs/archive/2011/10/03/1631.aspx</link><pubDate>Mon, 03 Oct 2011 14:29:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2011/10/03/1631.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1631.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2011/10/03/1631.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1631.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1631.aspx</trackback:ping><description>&lt;P&gt;I was trying to get InfoPath Forms Services working, but when I tried to activate the site collection feature I&amp;nbsp;got an error about a dependency on the &amp;#8220;Premium Site&amp;#8221; feature.&amp;nbsp; This is one of those hidden features that is usually activated automatically, but some glitch made it deactivated.&lt;/P&gt;
&lt;P&gt;I tried to activate it through the following command line:&lt;/P&gt;
&lt;P&gt;stsadm -o activatefeature -id "8581a8a7-cf16-4770-ac54-260265ddb0b2" -url &lt;A href="http://es"&gt;http://es&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;But then I got this error:&lt;/P&gt;
&lt;P&gt;&amp;#8220;The InfoPath Forms Services support feature is not properly activated. Document library could not be found at FormServerTemplates.&amp;#8221;&lt;/P&gt;
&lt;P&gt;But this was fixed by running two more commands:&lt;/P&gt;
&lt;P&gt;STSADM.EXE -o activatefeature -filename IPFSWebFeatures\feature.xml -url &lt;A href="http://es"&gt;http://es&lt;/A&gt;&amp;nbsp;-force&lt;/P&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;P&gt;STSADM.EXE -o activatefeature -filename IPFSSiteFeatures\feature.xml -url &lt;A href="http://es"&gt;http://es&lt;/A&gt; -force&lt;/P&gt;
&lt;P&gt;All good now!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1631.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>Sharepoint Access Services Reports Fail With Error</title><link>http://datacogs.com/datablogs/archive/2011/03/13/1452.aspx</link><pubDate>Sun, 13 Mar 2011 12:51:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2011/03/13/1452.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1452.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2011/03/13/1452.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1452.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1452.aspx</trackback:ping><description>&lt;P&gt;I was playing around with Access Services today.&amp;nbsp; This allows you to &amp;#8220;upsize&amp;#8221; an Access Web Database to Sharepoint.&amp;nbsp; The tables become Sharepoint Lists and the reports become Reporting Services reports.&amp;nbsp; Sounds like it has potential, eh?&amp;nbsp; Anyway I found the steps required to set this all up quite painful!&amp;nbsp; Eventually I got through in through.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The last hurdle was getting Reporting Services to display the report.&amp;nbsp; I got this error when I tried to open the report in SharePoint:&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2 face=Verdana&gt;An attempt has been made to use a data extension 'ADS' that is either not registered for this report server or is not supported in this edition of Reporting Services&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I think I installed Report Services before Sharepoint, but according to this article it is easier if you do things the other way around:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://technet.microsoft.com/en-us/library/ee662542.aspx"&gt;http://technet.microsoft.com/en-us/library/ee662542.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Here is the text from the article on what I had to do:&lt;/P&gt;
&lt;H3 class=subHeading&gt;To install the Reporting Services Add-in for Connected Mode &lt;/H3&gt;
&lt;DIV class=subSection&gt;
&lt;OL class=ordered&gt;
&lt;LI&gt;
&lt;P&gt;Install the SSRS Add-in either before or after SharePoint Server installation according to the session above.&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Configure Report Server Integration in SharePoint Central Administrationhttp://msdn.microsoft.com/en-us/library/bb326213(SQL.105).aspx&lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Modify the C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config file on the Reporting Services server. Under the &amp;lt;Data&amp;gt; node, under the &amp;lt;Extension&amp;gt; node, add the ADS data extension. For example:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&amp;lt;Extension Name="ADS" Type="Microsoft.Office.Access.Reports.DataProcessing.AdsConnection, Microsoft.Office.Access.Server.DataServer, Version=14.0.0.0, Culture=Neutral, PublicKeyToken=71e9bce111e9429c"/&amp;gt; --&amp;gt;&lt;/CODE&gt; &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Modify the rssrvpolicy file on RS server. &lt;/P&gt;
&lt;OL class=ordered&gt;
&lt;LI&gt;Add the following XML code in the file under the &amp;lt;NamedPermissionSets&amp;gt; node.&lt;BR&gt;&lt;BR&gt;&lt;SPAN id=ctl00_MTCS_main_ctl04&gt;
&lt;DIV id=ctl00_MTCS_main_ctl04_ class=libCScode&gt;
&lt;DIV class=CodeSnippetTitleBar&gt;
&lt;DIV class=CodeDisplayLanguage&gt;&lt;/DIV&gt;
&lt;DIV class=CopyCodeButton&gt;&lt;A class=copyCode title="Copy Code" href="javascript:CopyCode('ctl00_MTCS_main_ctl04_code');"&gt;
&lt;DIV style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: auto; HEIGHT: 9px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" class=LibC_copy_off align=center&gt;&lt;/DIV&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style="BACKGROUND-COLOR: #ddd" dir=ltr&gt;&lt;PRE id=ctl00_MTCS_main_ctl04_code class=libCScode space="preserve"&gt;&amp;lt;PermissionSet class="NamedPermissionSet" version="1" Name="ReportExpressionsDefaultPermissionSet"&amp;gt;
&amp;lt;IPermission class="SecurityPermission" version="1" Flags="Execution" /&amp;gt;
&amp;lt;IPermission class="Microsoft.Office.Access.Server.Security.AccessServicesPermission, Microsoft.Office.Access.Server.Security, 
     Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1.0" Flags="CalculationCallback" /&amp;gt;
&amp;lt;/PermissionSet&amp;gt;
&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;In the &amp;lt;CodeGroup&amp;gt;node, find the following line and change PermissionSetName from &amp;#8220;Execution&amp;#8221; to &amp;#8220;ReportExpressionsDefaultPermissionSet&amp;#8221;&lt;BR&gt;&lt;BR&gt;&lt;SPAN id=ctl00_MTCS_main_ctl05&gt;
&lt;DIV id=ctl00_MTCS_main_ctl05_ class=libCScode&gt;
&lt;DIV class=CodeSnippetTitleBar&gt;
&lt;DIV class=CodeDisplayLanguage&gt;&lt;/DIV&gt;
&lt;DIV class=CopyCodeButton&gt;&lt;A class=copyCode title="Copy Code" href="javascript:CopyCode('ctl00_MTCS_main_ctl05_code');"&gt;
&lt;DIV style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: auto; HEIGHT: 9px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" class=LibC_copy_off align=center&gt;&lt;/DIV&gt;&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style="BACKGROUND-COLOR: #ddd" dir=ltr&gt;&lt;PRE id=ctl00_MTCS_main_ctl05_code class=libCScode space="preserve"&gt;&amp;lt;CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Execution" Name="Report_Expressions_Default_Permissions"
 Description="This code group grants default permissions for code in report expressions and Code element. "&amp;gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Enable Remote Errors for Reporting Services by following the instructions at http://go.microsoft.com/fwlink/?LinkId=183457&amp;amp;clcid=0x409.&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1452.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>Uzu For iPad Update - Now has VGA Out!</title><link>http://datacogs.com/datablogs/archive/2010/09/18/1258.aspx</link><pubDate>Sat, 18 Sep 2010 11:28:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2010/09/18/1258.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1258.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2010/09/18/1258.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1258.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1258.aspx</trackback:ping><description>If you haven't tried Uzu on the iPad yet, you just gotta!

Have a look at www.uzumotion.com for more info.

I've been hanging out the the update that allow VGA output from the iPad so I can capture video output from this thing.

I'm planning on putting together a video to accompany a musical performance for Uni.

&lt;img src ="http://datacogs.com/datablogs/aggbug/1258.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>Interface Polymorphism and Late Binding in .NET</title><link>http://datacogs.com/datablogs/archive/2010/07/10/1214.aspx</link><pubDate>Sat, 10 Jul 2010 12:50:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2010/07/10/1214.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1214.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2010/07/10/1214.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1214.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1214.aspx</trackback:ping><description>&lt;P&gt;I was putting together a demo of this concept for a class I am teaching in Port Moresby this week.&lt;/P&gt;
&lt;P&gt;Using this technique you can have multiple implemenations of an interface, while the client application can be written to be completely agnositic about the implementation.&lt;/P&gt;
&lt;P&gt;Here we use Activator.CreateInstance to late bind the implementation class.&lt;/P&gt;
&lt;P&gt;Here's the interface:&lt;/P&gt;
&lt;P&gt;public interface IErrorLog&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;void LogMessage(string message, string location);&lt;BR&gt;&amp;nbsp;string DisplayLog(string location);&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;Here's a text file implementation:&lt;/P&gt;
&lt;P&gt;using System;&lt;BR&gt;using System.Text;&lt;BR&gt;using System.IO;&lt;/P&gt;
&lt;P&gt;public class LogToFile : IErrorLog{&lt;BR&gt;&amp;nbsp;public void LogMessage(string message, string location){&lt;BR&gt;&amp;nbsp;&amp;nbsp;FileStream fs = new FileStream(location, FileMode.OpenOrCreate, FileAccess.Write);&lt;BR&gt;&amp;nbsp;&amp;nbsp;StreamWriter w = new StreamWriter(fs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;//Set the file pointer to the end.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w.BaseStream.Seek(0, SeekOrigin.End);&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log(message, w);&lt;BR&gt;&amp;nbsp;&amp;nbsp;w.Close();&amp;nbsp;&amp;nbsp; //Close the writer and underlying file.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public string DisplayLog(string location){&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileStream fs = new FileStream(location, FileMode.OpenOrCreate, FileAccess.Read);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StreamReader r = new StreamReader(fs);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r.BaseStream.Seek(0, SeekOrigin.Begin);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder sb = new StringBuilder();&lt;BR&gt;&amp;nbsp;&amp;nbsp;//While not at the end of the file, write to standard output.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;while (r.Peek() &amp;gt; -1) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sb.Append(r.ReadLine());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;sb.Append("\n");&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sb.ToString();&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;private void Log(string logMessage, StreamWriter w){&lt;BR&gt;&amp;nbsp;&amp;nbsp;w.WriteLine("{0}, {1}, {2}", DateTime.Now.ToString("d/M/yyyy"), DateTime.Now.ToString("HH:mm"), logMessage);&lt;BR&gt;&amp;nbsp;&amp;nbsp;w.Flush();&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's a database implementation:&lt;/P&gt;
&lt;P&gt;using System;&lt;BR&gt;using System.Data;&lt;BR&gt;using System.Data.SqlClient;&lt;/P&gt;
&lt;P&gt;public class LogToDB : IErrorLog{&lt;BR&gt;&amp;nbsp;public void LogMessage(string message, string location){&lt;BR&gt;&amp;nbsp;&amp;nbsp;SqlConnection cn = new SqlConnection(location);&lt;BR&gt;&amp;nbsp;&amp;nbsp;cn.Open();&lt;BR&gt;&amp;nbsp;&amp;nbsp;Log(message, cn);&lt;BR&gt;&amp;nbsp;&amp;nbsp;cn.Close();&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;public string DisplayLog(string location){&lt;BR&gt;&amp;nbsp;&amp;nbsp;SqlConnection cn = new SqlConnection(location);&lt;BR&gt;&amp;nbsp;&amp;nbsp;SqlDataReader dr;&lt;BR&gt;&amp;nbsp;&amp;nbsp;SqlCommand cmd = new SqlCommand();&lt;BR&gt;&amp;nbsp;&amp;nbsp;string strLog = "";&lt;BR&gt;&amp;nbsp;&amp;nbsp;cn.Open();&lt;BR&gt;&amp;nbsp;&amp;nbsp;cmd.CommandText = "select * from LogTable";&lt;BR&gt;&amp;nbsp;&amp;nbsp;cmd.Connection = cn;&lt;BR&gt;&amp;nbsp;&amp;nbsp;dr = cmd.ExecuteReader();&lt;BR&gt;&amp;nbsp;&amp;nbsp;while (dr.Read()){&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;strLog = strLog + Convert.ToDateTime(dr[0]).ToString("d/M/yyyy")&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ ", " + Convert.ToDateTime(dr[1]).ToString("HH:mm") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ ", " + dr[2].ToString() + "\n";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;cn.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;return strLog;&lt;BR&gt;&amp;nbsp;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;private void Log(string logMessage, SqlConnection cn){&lt;BR&gt;&amp;nbsp;&amp;nbsp;try{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlCommand cmd&amp;nbsp; = new SqlCommand();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText = "INSERT INTO LogTable(LogDate, LogTime, LogMessage)" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ " VALUES('" + System.DateTime.Now.ToString("M/d/yyyy") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ "', '" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ DateTime.Now.ToShortTimeString() + "', '" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+ logMessage + "')";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.Connection = cn;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.ExecuteNonQuery();&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;catch (SqlException eException) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach(SqlError eErr in eException.Errors){&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Windows.Forms.MessageBox.Show(eErr.Message);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;}&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's the app.config file, where we can specify which implementation or client will spin up:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt; &lt;BR&gt;&amp;lt;configuration&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;appSettings&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;add key="Type"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="LogToDB"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;add key="Location"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="Data Source=.;Integrated Security=SSPI;Initial Catalog=LogDB"/&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;BR&gt;&amp;nbsp;&amp;lt;add key="Type"&lt;BR&gt;&amp;nbsp;&amp;nbsp;value="LogToFile"/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;add key="Location"&lt;BR&gt;&amp;nbsp;&amp;nbsp;value="c:\testlog.txt"/&amp;gt;&lt;BR&gt;--&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;lt;/appSettings&amp;gt;&lt;BR&gt;&amp;lt;/configuration&amp;gt;&lt;/P&gt;
&lt;P&gt;And here's out client application.&amp;nbsp; Note there is no hard coding of any implementation classes here.&amp;nbsp; Beauty, eh?&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public IErrorLog ErrLog;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string LogLocation;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void Form1_Load(object sender, EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string logType = ConfigurationManager.AppSettings["Type"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LogLocation = ConfigurationManager.AppSettings["Location"];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //late binding&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectHandle handle = Activator.CreateInstance(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "WindowsApplication1", logType);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrLog = handle.Unwrap() as IErrorLog;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void btnLogMessage_Click(object sender, System.EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrLog.LogMessage(txtMessage.Text.ToString(), LogLocation);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void btnDisplayLog_Click(object sender, System.EventArgs e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MessageBox.Show(ErrLog.DisplayLog(LogLocation));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1214.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>SharePoint 2010 RTM Virtual Machine Downloads</title><link>http://datacogs.com/datablogs/archive/2010/05/21/1170.aspx</link><pubDate>Fri, 21 May 2010 08:24:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2010/05/21/1170.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1170.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2010/05/21/1170.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1170.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1170.aspx</trackback:ping><description>&lt;P&gt;Available here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=751fa0d1-356c-4002-9c60-d539896c66ce&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Only 18 GB or so :-)&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1170.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>SharePoint 2010 Certification Exams in Beta - Free</title><link>http://datacogs.com/datablogs/archive/2010/05/21/1169.aspx</link><pubDate>Fri, 21 May 2010 08:22:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2010/05/21/1169.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1169.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2010/05/21/1169.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1169.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1169.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://blogs.technet.com/betaexams/archive/2010/05/19/register-for-sharepoint-2010-beta-exams.aspx"&gt;http://blogs.technet.com/betaexams/archive/2010/05/19/register-for-sharepoint-2010-beta-exams.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1169.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>Internet Tethering With Telstra and iPhone</title><link>http://datacogs.com/datablogs/archive/2009/08/11/1066.aspx</link><pubDate>Tue, 11 Aug 2009 12:40:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2009/08/11/1066.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1066.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2009/08/11/1066.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1066.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1066.aspx</trackback:ping><description>&lt;P&gt;I just got a nice new 32 GB iPhone 3G S yesterday from the Apple Store in Sydney.&amp;nbsp; It's quite an interesting shop, but that's another story.&amp;nbsp; Anyway, my hotel doesn't have wireless internet in the rooms which is a pain in the butt, so I was wishing I had one of those 3G modems.&amp;nbsp; I had heard of hacking the iPhone to make it a 3G modem, but now I find out it's legit!&amp;nbsp; It's called Internet Tethering.&amp;nbsp; Here is an article that I followed to set it up.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blog.cameronlaird.com/2009/06/easy-internet-iphone-tethering-with-telstra.html"&gt;http://blog.cameronlaird.com/2009/06/easy-internet-iphone-tethering-with-telstra.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Make sure you read all the comments etc.&amp;nbsp; before getting started as some of the links are mixed up.&amp;nbsp; I got mine working with the telstra.internet not the telstra.iph one.&amp;nbsp; Also I am using the USB connection as bluetooth would just chew up the phone battery.&lt;/P&gt;
&lt;P&gt;It's nice and fast and means no more need for those 3G dongle things.&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1066.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>VirtualBox is Amazing!</title><link>http://datacogs.com/datablogs/archive/2009/06/17/1052.aspx</link><pubDate>Wed, 17 Jun 2009 10:54:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2009/06/17/1052.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1052.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2009/06/17/1052.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1052.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1052.aspx</trackback:ping><description>&lt;P&gt;I just bought a new laptop, and because I am studying Music Technology part time at university now, I decided to get a Macbook Pro so that I could use Apple's Logic program for music projects as well as run all my development apps like Visual Studio/SharePoint/SQL Server etc.&lt;/P&gt;
&lt;P&gt;Setting up the dual boot with Mac OSX and Vista 64bit was no problem at all.&amp;nbsp; (Andrew Connell has a great blog post about this &lt;A href="http://www.andrewconnell.com/blog/archive/2008/07/10/Triple-Boot-Goodness-on-the-MacBook-Pro.aspx"&gt;http://www.andrewconnell.com/blog/archive/2008/07/10/Triple-Boot-Goodness-on-the-MacBook-Pro.aspx&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;I have quite a few Virtual PC and Virtual Server images that I use for training as well as software development, but I was wondering if it would be possible to have the same VM's run from either the Mac OS or Vista?&lt;/P&gt;
&lt;P&gt;Well, you can exclude VPC right off the bat.&amp;nbsp; They did have a Mac version, but it is now discontinued and I'm not sure if the same .vmc could be opened in Mac and Windows anyway.&lt;/P&gt;
&lt;P&gt;VMWare has Fusion for Mac, but it costs a few bucks.&lt;/P&gt;
&lt;P&gt;So a collegue of mine recommended I try Sun's FREE VirtualBox, which runs on damn near anything.&lt;/P&gt;
&lt;P&gt;So I did, and I have to say, I am amazed at this product.&amp;nbsp; Not only was it easy to install and configure on both Mac and PC, but it runs my existing VPC images as is (well after uninstalling the MS Virtual Machine Additions and installing the VirtualBox Guest Additions)&lt;/P&gt;
&lt;P&gt;And the bonus is - the exact same image can be started up in either the Mac of Windows OS - perfect for my situation.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Plus I was getting weird scrolling lag issues in VPC that completely disappeared in VirtualBox.&amp;nbsp; Everything is stable and rock solid.&lt;/P&gt;
&lt;P&gt;VirtualBox also has a really nice feature called &amp;#8220;Seamless Mode&amp;#8220;, where your guest OS applications are not run on a separate window, they are run in their own independent windows on the host OS desktop.&amp;nbsp; You have to see it to appreciate it.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Anyway, I'm totally impressed and it has been a long time since I've been able to say that about a piece of software, especially a free one.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1052.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mark Daunt</dc:creator><title>SharePoint Designer Now Free</title><link>http://datacogs.com/datablogs/archive/2009/04/04/1027.aspx</link><pubDate>Sat, 04 Apr 2009 11:22:00 GMT</pubDate><guid>http://datacogs.com/datablogs/archive/2009/04/04/1027.aspx</guid><wfw:comment>http://datacogs.com/datablogs/comments/1027.aspx</wfw:comment><comments>http://datacogs.com/datablogs/archive/2009/04/04/1027.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://datacogs.com/datablogs/comments/commentRss/1027.aspx</wfw:commentRss><trackback:ping>http://datacogs.com/datablogs/services/trackbacks/1027.aspx</trackback:ping><description>&lt;P&gt;Thanks Stephen Alderman :-) ...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://datacogs.com/datablogs/aggbug/1027.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
