<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUIGRXs8fCp7ImA9WxBbGE4.&quot;"><id>tag:blogger.com,1999:blog-13738371</id><updated>2010-03-17T09:45:24.574-04:00</updated><title>Christopher Slee</title><subtitle type="html">Where technology intersects business, that is where I live.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.chrisslee.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.chrisslee.com/" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ChristopherSlee" /><feedburner:info uri="christopherslee" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0QCQHgzeSp7ImA9WxBUFEo.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-4168142339203387411</id><published>2010-03-01T15:13:00.006-05:00</published><updated>2010-03-01T15:29:21.681-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-01T15:29:21.681-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Office 2010" /><category scheme="http://www.blogger.com/atom/ns#" term="TFS" /><title>TFS and Office 2010 Beta connections</title><content type="html">I do a lot of work with TFS and one of the things I have to do is use Excel to deliver Gantt charts to management at the various clients I have.&lt;br /&gt;&lt;br /&gt;I use excel to build a chart that reads the Interactions and assembles them (along with some sprint info) into a very workable chart that looks like a standard project management Gantt, but requires none of my time to produce.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__h1Aiq3P1rU/S4whmOcfToI/AAAAAAAADww/YNYRUoHnrWg/s1600-h/ExcelGantt.PNG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 204px;" src="http://2.bp.blogspot.com/__h1Aiq3P1rU/S4whmOcfToI/AAAAAAAADww/YNYRUoHnrWg/s400/ExcelGantt.PNG" alt="" id="BLOGGER_PHOTO_ID_5443762990180421250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The problem came when one client updated my Office install to the 2010 Beta (not that I was complaining at the time).  The issue was, when I opened the spreadsheet that talks to the TFS server, I got a rude error saying that "TF84034: Team Foundation was unable to initialize the workbook".  That was painful.  I rely on this particular workbook to do most of my reporting overhead and wanted to get this resolved quickly. &lt;br /&gt;&lt;br /&gt;After finding a few posts that talked about TFS 2010 (which we are not using yet) I found this post from &lt;a href="http://blogs.msdn.com/granth/archive/2008/07/22/tf84034-team-foundation-was-unable-to-initialize-the-workbook.aspx"&gt;Granth's Blog&lt;/a&gt; that wasn't quite the issue I had but it was close enough.&lt;br /&gt;&lt;br /&gt;I downloaded the hotfix listed on this Microsoft page (&lt;a href="http://support.microsoft.com/kb/946458"&gt;FIX: You can no longer connect to a Team Foundation server from Excel after you  insert a column in a worksheet&lt;/a&gt;) even though it wasn't my exact problem and it worked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-4168142339203387411?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1FVaoCcnUxYVMMznpVaUBWJBpzg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1FVaoCcnUxYVMMznpVaUBWJBpzg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1FVaoCcnUxYVMMznpVaUBWJBpzg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1FVaoCcnUxYVMMznpVaUBWJBpzg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/4168142339203387411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2010/03/tfs-and-office-2010-beta-connections.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/4168142339203387411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/4168142339203387411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/O6f9dZocXM0/tfs-and-office-2010-beta-connections.html" title="TFS and Office 2010 Beta connections" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/__h1Aiq3P1rU/S4whmOcfToI/AAAAAAAADww/YNYRUoHnrWg/s72-c/ExcelGantt.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2010/03/tfs-and-office-2010-beta-connections.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cER3gyfCp7ImA9WxVaEUQ.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-490392185153309740</id><published>2009-04-08T09:47:00.006-04:00</published><updated>2009-04-08T09:56:46.694-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-08T09:56:46.694-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><title>Moving from MVC Beta to MVC 1.0</title><content type="html">&lt;div&gt;During this sprint, one of our clients upgraded from the MVC Beta to MVC 1.0 and I wanted to share what &lt;a href="http://setiabud.blogspot.com/"&gt;Joe&lt;/a&gt; wikied into the team wiki because it might be useful to the rest of us. :)&lt;br /&gt;&lt;br /&gt;To upgrade to 1.0 release, you will need to uninstall ASP.NET MVC BETA. You  can do this by going to "Add/Remove Programs" under "Control Panel" and find MVC  Beta and remove it. Once you have done that, you can download ASP.NET MVC 1.0  from this &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&amp;amp;displaylang=en"&gt;link&lt;/a&gt;.  &lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;Once the install is done, do a get latest from TFS.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;You can find the Release Notes from ASP.NET team:&lt;/div&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=f4e4ee26-4bc5-41ed-80c9-261336b2a5b6&amp;amp;displaylang=en"&gt;RC1  Release Notes&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ee4b2e97-8a72-449a-82d2-2f720d421031&amp;amp;displaylang=en"&gt;RC2  Release Notes&lt;/a&gt;  &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&amp;amp;displaylang=en"&gt;Release  1.0 Release Notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;There are some changes in 1.0 release compared to the BETA version we have  been using up until 3/31/2009. Begining April 1st, all of our ASP.NET MVC  project in TFS will be based on 1.0 release. Here are some of the highlights of  the upgrade:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Views no longer need code-behind by default  &lt;/li&gt;&lt;li&gt;Visual Studio experience improvements:  &lt;ul&gt;&lt;li&gt;New contextual commands like "Add Controller", "Add View", etc  &lt;/li&gt;&lt;li&gt;Able to create partial view (ascx) as a view using the new contextual  command  &lt;/li&gt;&lt;li&gt;Basic scaffolding for strongly type views (list, edit, etc)  &lt;/li&gt;&lt;li&gt;Ability to add custom scaffolding templates&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;Page title is now setable in the ViewPage instead of just in Master.Page  &lt;/li&gt;&lt;li&gt;Strongly typed HTML (AJAX) Helper  &lt;/li&gt;&lt;li&gt;Smarter and less verbose binding for POST forms, including with complex  objects  &lt;/li&gt;&lt;li&gt;CSRF Protection  &lt;/li&gt;&lt;li&gt;New file handling methods (for upload/download files)  &lt;/li&gt;&lt;li&gt;Updated jQuery lib to 1.3.2&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;You can read a more detailed overview in ScottGu's blog &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;For our site(s), I had to manually do certain several things:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Remove all the code behinds and update the ascxs and aspxs to bind correctly   &lt;/li&gt;&lt;li&gt;Update our jQuery references  &lt;/li&gt;&lt;li&gt;Change HTML helper call to DropDownList since the upgrade changed the API  parameters  &lt;/li&gt;&lt;li&gt;Change all &lt;"button"&gt; to &lt;%=Html.Button ... %&gt; since   behaves like  if button type is not  specified correctly  &lt;/li&gt;&lt;li&gt;Change every UpdateModel method call to "TryUpdateModel" to utilize  non-exception invalid data handling and modify our controllers to display error  message correctly  &lt;/li&gt;&lt;li&gt;Add CSRF validation attribute to all POST action methods in all of our  controllers  &lt;/li&gt;&lt;li&gt;Add CSRF tag within all of our forms to work with CSRF attributes in our  controllers  &lt;/li&gt;&lt;li&gt;Change Delete action method to POST instead of GET to enhance security  &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-490392185153309740?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bD5rJo3GjewakbzHmU6riQC6YPA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bD5rJo3GjewakbzHmU6riQC6YPA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bD5rJo3GjewakbzHmU6riQC6YPA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bD5rJo3GjewakbzHmU6riQC6YPA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/490392185153309740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2009/04/moving-from-mvc-beta-to-mvc-10.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/490392185153309740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/490392185153309740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/KpcTCGUJbkk/moving-from-mvc-beta-to-mvc-10.html" title="Moving from MVC Beta to MVC 1.0" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2009/04/moving-from-mvc-beta-to-mvc-10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EBSXc4fSp7ImA9WxVUFUg.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-5114229227317529858</id><published>2009-03-20T09:27:00.000-04:00</published><updated>2009-03-20T09:27:38.935-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-20T09:27:38.935-04:00</app:edited><title>Calculating Business Days in a Scheduling System</title><content type="html">We just had a little coding competition in the office to solve "how best to code a scheduling object calculator" and &lt;a href="http://setiabud.blogspot.com/"&gt;Johannes &lt;/a&gt;did a great job &lt;a href="http://setiabud.blogspot.com/2009/03/calculating-business-days.html"&gt;recapping the issues and the alternative paths&lt;/a&gt; to a solution and showing which really is the best way to go. &lt;br /&gt;&lt;br /&gt;Happy reading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-5114229227317529858?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7y1nwb04kHjOn265PKMGZmlGvvo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7y1nwb04kHjOn265PKMGZmlGvvo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7y1nwb04kHjOn265PKMGZmlGvvo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7y1nwb04kHjOn265PKMGZmlGvvo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="related" href="http://setiabud.blogspot.com/2009/03/calculating-business-days.html" title="Calculating Business Days in a Scheduling System" /><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/5114229227317529858/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2009/03/calculating-business-days-in-scheduling.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/5114229227317529858?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/5114229227317529858?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/ACqWYs9fZT0/calculating-business-days-in-scheduling.html" title="Calculating Business Days in a Scheduling System" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2009/03/calculating-business-days-in-scheduling.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YCQH08eyp7ImA9WxVWFkU.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-7799330887623788572</id><published>2009-02-26T15:39:00.002-05:00</published><updated>2009-02-26T15:46:01.373-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-26T15:46:01.373-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><category scheme="http://www.blogger.com/atom/ns#" term="IIS" /><category scheme="http://www.blogger.com/atom/ns#" term="Deployments" /><title>ASP.NET  MVC IIS Configuration Info</title><content type="html">&lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;As we go to deploy ASP.NET MVC apps, it is important to have a basic  understanding of how to deploy on the different environments we encounter.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;Server 2008 (The easiest by far)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2008/10/07/deploying-an-asp-net-mvc-web-application-to-iis7.aspx"&gt;http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2008/10/07/deploying-an-asp-net-mvc-web-application-to-iis7.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;Server 2003 (likely a very common event)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx"&gt;http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;Windows XP (I cant' see doing this unless you want to punish yourself, but to each his own)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://itscommonsensestupid.blogspot.com/2008/11/deploy-aspnet-mvc-app-on-windows-xp-iis.html"&gt;http://itscommonsensestupid.blogspot.com/2008/11/deploy-aspnet-mvc-app-on-windows-xp-iis.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;span&gt;&lt;span&gt;Chris&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-7799330887623788572?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8z_LtHWp5Ew7B4j3qb1fVgmaUPQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8z_LtHWp5Ew7B4j3qb1fVgmaUPQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8z_LtHWp5Ew7B4j3qb1fVgmaUPQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8z_LtHWp5Ew7B4j3qb1fVgmaUPQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/7799330887623788572/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2009/02/aspnet-mvc-iis-configuration-info.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7799330887623788572?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7799330887623788572?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/JxFAdIOzW2c/aspnet-mvc-iis-configuration-info.html" title="ASP.NET  MVC IIS Configuration Info" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://www.chrisslee.com/2009/02/aspnet-mvc-iis-configuration-info.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4BRn85eyp7ImA9WxRaFUk.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-6514889637357110294</id><published>2008-12-17T15:42:00.003-05:00</published><updated>2008-12-17T15:49:17.123-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-17T15:49:17.123-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="codeplex" /><category scheme="http://www.blogger.com/atom/ns#" term="source" /><title>Pushing Source Code</title><content type="html">Well, I was pushing source code around between my dev machines using dropbox (I know I know, but it worked) then I thought, since I am sharing all this with everyone (both the experience and code) why not put it on codeplex? &lt;br /&gt;&lt;br /&gt;So, now you can keep up with the current solution by going to&lt;a href="http://www.codeplex.com/twitivia"&gt; http://www.codeplex.com/twitivia&lt;/a&gt; and downloading it.  I will shortly be posting the Windows Service solution here and also the database that got made to support both the Service and Website (once it is more complete).&lt;br /&gt;&lt;br /&gt;Turns out codeplex is just a big Team Foundation Server installation so I am checking files in and out.&lt;br /&gt;&lt;br /&gt;Just a quick note to give everyone a stats update and let you know you can hijack the code whenever you want now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-6514889637357110294?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LIZ6qvr7IwQQSAmMjIldRK4JQ_w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LIZ6qvr7IwQQSAmMjIldRK4JQ_w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LIZ6qvr7IwQQSAmMjIldRK4JQ_w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LIZ6qvr7IwQQSAmMjIldRK4JQ_w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/6514889637357110294/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/pushing-source-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/6514889637357110294?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/6514889637357110294?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/-MO3OeOnDg8/pushing-source-code.html" title="Pushing Source Code" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/pushing-source-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYDQ3c8fyp7ImA9WxRaE0o.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-7613126995955242200</id><published>2008-12-15T14:36:00.003-05:00</published><updated>2008-12-15T14:42:52.977-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-15T14:42:52.977-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><category scheme="http://www.blogger.com/atom/ns#" term="twitivia" /><title>One further refinement</title><content type="html">I believe we will be adding in one additional message to the queue, it will be a quick "time is almost up" message that will go out a few hours before the contest for the day is over. &lt;br /&gt;&lt;br /&gt;Oh geeze, the sales guy in my head just tried to issue a "Change Request Form" to the client in my head after the Project Manager just told him about adding a new message type.  Now the client is all ticked off and is threatening to kill the whole project.  I stepped in and told them all that changes like this are a normal part of the development process and this particular change won't be much at all since we haven't started coding that part yet.   That's what refactoring is for.  Refinements..&lt;br /&gt;&lt;br /&gt;Everyone seems ok now...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-7613126995955242200?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ecOwPUOHPZTpStnb76otNGVJTpg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ecOwPUOHPZTpStnb76otNGVJTpg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ecOwPUOHPZTpStnb76otNGVJTpg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ecOwPUOHPZTpStnb76otNGVJTpg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/7613126995955242200/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/one-further-refinement.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7613126995955242200?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7613126995955242200?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/40jo_C7yVpI/one-further-refinement.html" title="One further refinement" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/one-further-refinement.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AGQX4-fCp7ImA9WxRaEkw.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-3999528844998197597</id><published>2008-12-13T19:47:00.000-05:00</published><updated>2008-12-13T19:48:40.054-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-13T19:48:40.054-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="API" /><category scheme="http://www.blogger.com/atom/ns#" term="twitivia" /><title>Twitter twitter Yedda yedda</title><content type="html">&lt;p&gt;&lt;a href="http://twitter.com/"&gt;Twitter&lt;/a&gt; exposes some of its functionality via an Application Programming Interface (API).&amp;#160; That means we can talk to the twitter at a system to system level rather then having a high maintenance human (me) in the loop.&amp;#160; After doing the contest 3 times, I think we can automate pretty much the whole thing and just leave it run.&lt;/p&gt;  &lt;p&gt;Twitter provides a RESTful interface (check Wikipedia for more on what that means if you like &lt;a title="http://en.wikipedia.org/wiki/REST" href="http://en.wikipedia.org/wiki/REST"&gt;http://en.wikipedia.org/wiki/REST&lt;/a&gt;).&amp;#160; While we could spend valuable time writing an interface to twitter in C#, but it seems someone has already done that for us (sweet) and we can build our application on their work.&amp;#160; I looked at 3 libraries and have decided to use the Yedda Twitter C# Library (&lt;a title="http://devblog.yedda.com/index.php/twitter-c-library/" href="http://devblog.yedda.com/index.php/twitter-c-library/"&gt;http://devblog.yedda.com/index.php/twitter-c-library/&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;So with that decision made, we can look at how we can build the application at a higher level.&lt;/p&gt;  &lt;p&gt;I’m thinking a windows service can do all the day to day work, the twitivia.com website can be based on MVC (since I’m using that right now and it will be easier) and then we can add in some cool silverlight stuff to play with that.&lt;/p&gt;  &lt;p&gt;How about, I get started then catch you up. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-3999528844998197597?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cbI9k08Tn0Xm-z9Ts_2Vh0INfXc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cbI9k08Tn0Xm-z9Ts_2Vh0INfXc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cbI9k08Tn0Xm-z9Ts_2Vh0INfXc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cbI9k08Tn0Xm-z9Ts_2Vh0INfXc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/3999528844998197597/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/twitter-twitter-yedda-yedda.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/3999528844998197597?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/3999528844998197597?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/7ycJG7Jwrbo/twitter-twitter-yedda-yedda.html" title="Twitter twitter Yedda yedda" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/twitter-twitter-yedda-yedda.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUANRH84fSp7ImA9WxRaEUU.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-8536214728779633031</id><published>2008-12-13T11:58:00.000-05:00</published><updated>2008-12-13T12:03:15.135-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-13T12:03:15.135-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rules" /><category scheme="http://www.blogger.com/atom/ns#" term="twitivia" /><title>The rules of Twitivia</title><content type="html">&lt;p&gt;Ok, just a quick post to formalize the rules we have been talking about.&amp;#160; Ha, formalize rules.. I crack myself up.&amp;#160; &lt;/p&gt;  &lt;p&gt;Anyway, when we started posting twitivia questions way back 3 days ago, it seemed like a good idea to have the first response win.&amp;#160; Then we all watched @&lt;a href="http://twitter.com/joshuainboden"&gt;joshuainboden&lt;/a&gt; hover over his text messages and was quick on the response.&amp;#160; I believe that is when we coined the term “tweethover”.&amp;#160; &lt;/p&gt;  &lt;p&gt;So after a quick discussion with a few people, it was decided that we should award a “First Responder” award but allow the session to run for several hours to allow more people to participate and then choose the winner “randomly” from the list of winners.    &lt;br /&gt;    &lt;br /&gt;Ok, that should be the last of the non-project, project related stuff about the project.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-8536214728779633031?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JHB-9DJ-vWYQPeoBDtiR2S9FG6M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JHB-9DJ-vWYQPeoBDtiR2S9FG6M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JHB-9DJ-vWYQPeoBDtiR2S9FG6M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JHB-9DJ-vWYQPeoBDtiR2S9FG6M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/8536214728779633031/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/rules-of-twitivia.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/8536214728779633031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/8536214728779633031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/hoQAKLV6P5w/rules-of-twitivia.html" title="The rules of Twitivia" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/rules-of-twitivia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QHSHs5eCp7ImA9WxRaEEk.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-7424392160868205774</id><published>2008-12-11T15:00:00.002-05:00</published><updated>2008-12-11T20:28:59.520-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T20:28:59.520-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="twitivia" /><title>What are we building again?</title><content type="html">&lt;p&gt;So, let’s talk about what we want to accomplish next.&lt;/p&gt;  &lt;h4&gt;I have to do it??!&lt;/h4&gt;  &lt;p&gt;I have run the contest for two days, and wow is it a lot of work.&amp;#160; Well, not really, but it’s not something that anyone should have to do for very long by hand.&amp;#160; Isn’t that really why we made computers?&lt;/p&gt;  &lt;p&gt;The way I see it, there are 6 message types that should go out to the twitterverse about the game and let’s explore them.&lt;/p&gt;  &lt;h4&gt;Warning!&amp;#160; Questions ahead!&lt;/h4&gt;  &lt;p&gt;The game is going to run once a day (at least while I have to do it by hand) and the first correct answer to the question is the winner.&amp;#160; That means the speed that the players respond is important.&amp;#160; I think we should give them some warning that the question is getting ready to go and what better way then with the sponsor message that will carry the “hey, a twitivia round is queuing up”.&amp;#160;&amp;#160; So message type one is a sponsor message, something like;    &lt;br /&gt;    &lt;br /&gt;“Today's twitivia sponsor is AWH (www.awh.net) &amp;quot;Make IT work for your business&amp;quot;.&amp;#160; Prepare for the question!“    &lt;br /&gt;    &lt;br /&gt;So when we want to have more sponsors then AWH we would likely fill the message in with data and it would look like something like    &lt;br /&gt;    &lt;br /&gt;“Today's twitivia sponsor is &amp;lt;sponsorName&amp;gt; (&amp;lt;sponsorUrl&amp;gt;) &amp;quot;&amp;lt;sponsorTagline&amp;gt;&amp;quot;.&amp;#160; Prepare for the question!”    &lt;br /&gt;    &lt;br /&gt;(I’m using the &amp;lt;&amp;gt; to wrap the section we will put data into in the future.)&lt;/p&gt;  &lt;h4&gt;Next, the inquisition begins!&lt;/h4&gt;  &lt;p&gt;Twitiva wants to know, With separate divisions for righties and lefites, what sport requires its players to keep their elbows at the table?   &lt;br /&gt;    &lt;br /&gt;We have to keep the questions (and answers for that matter) under 140 characters… so the wording is important.&amp;#160; Why 140 characters?&amp;#160; That is a twitter message limit.&amp;#160; &lt;br /&gt;    &lt;br /&gt;A simple substitution like;    &lt;br /&gt;    &lt;br /&gt;Twitiva wants to know, &amp;lt;question&amp;gt;?    &lt;br /&gt;    &lt;br /&gt;would work for this.&lt;/p&gt;  &lt;h4&gt;Pavlovian response anyone?&lt;/h4&gt;  &lt;p&gt;I noticed today, when I posted the questions, the people that played that I was in the room with were chomping at the bit to see if they won.&amp;#160; I think that the lag in announcing a winner for several hours is a good thing for the games and it allows me to space the posts out over a longer period of time so they are not as annoying to everyone, and they show up spaced out in the global timeline to attract more players.&amp;#160; That is one of the goals (so if you’re reading this… sign up!)   &lt;br /&gt;    &lt;br /&gt;And the winner is: @joshuainboden for the correct answer, Arm Wrestling!    &lt;br /&gt;    &lt;br /&gt;Which again is a simple substitution for something like;    &lt;br /&gt;    &lt;br /&gt;And the winner is: @&amp;lt;userName&amp;gt; for the correct answer, &amp;lt;correctAnswer&amp;gt;!    &lt;br /&gt;    &lt;br /&gt;By tracking the username, we can then keep track of leader boards and individual player stats which we will added into the twitivia.com website (when we get there)&lt;/p&gt;  &lt;h4&gt;Gimme gimme gimme&lt;/h4&gt;  &lt;p&gt;Since everyone I know likes instant gratification, once the winner is announced, we should provide the daily stats so people can see how well they did and how many other players are playing.&amp;#160; We all want to feel part of something big (and of course, since you’re reading this, not only are you a part, you on the inside, like in the inner circle of trust).&amp;#160; Don’t violate the circle of trust…   &lt;br /&gt;    &lt;br /&gt;Daily stats from twitivia: 8 total answers, 7 correct answers, first answer 1 minute from question post.    &lt;br /&gt;    &lt;br /&gt;Would be something like;    &lt;br /&gt;    &lt;br /&gt;Daily stats from twitivia: &amp;lt;totalAnswers&amp;gt; total answers, &amp;lt;totalCorrectAnswers&amp;gt; correct answers, first answer &amp;lt;firstAnswerDelay&amp;gt; from question post.    &lt;br /&gt;    &lt;br /&gt;I figure at some point we can also do prizes (once we have real sponsorship), until then… “Yea!&amp;#160; You won! My, look at the big brain on that player” is all we are getting.&lt;/p&gt;  &lt;h4&gt;But Chris, that is only 4, what about the other two??&amp;#160; The other two!!&lt;/h4&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;p&gt;&lt;/p&gt; &lt;/ul&gt;  &lt;p&gt;The other two will be simple “reminder” type message and a “call to action” type message that will broadcast out until we have enough players playing and the game is rolling on its own.&amp;#160; Something along the lines of;&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;ul&gt;       &lt;ul&gt;&lt;/ul&gt;     &lt;/ul&gt;      &lt;li&gt;       &lt;p&gt;Tune in tomorrow for the next question and follow the twitiva project at &lt;a href="http://www.chrisslee.com"&gt;www.chrisslee.com&lt;/a&gt;&lt;/p&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;p&gt;To win at twitivia, you have to follow twitivia!&lt;/p&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;ul&gt;&lt;/ul&gt; &lt;/ul&gt;  &lt;h4&gt;Wow&lt;/h4&gt;  &lt;p&gt;That was a lot of dense narrative.&amp;#160; If you read this much, cool.&amp;#160; I figured we had to get this part done so we all understood what the goal was.&amp;#160; Next post, we start to look at solving the problem, until then I’ll slave over a hot laptop to get the questions out.&amp;#160; So play, for the love of all that is Holy, play!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-7424392160868205774?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9Pn4K9ObCt-H8IjgsZiEW_wOz-g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9Pn4K9ObCt-H8IjgsZiEW_wOz-g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9Pn4K9ObCt-H8IjgsZiEW_wOz-g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9Pn4K9ObCt-H8IjgsZiEW_wOz-g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/7424392160868205774/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/wait-what-what-are-we-building-again.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7424392160868205774?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/7424392160868205774?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/_eW9V8a8NUk/wait-what-what-are-we-building-again.html" title="What are we building again?" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/wait-what-what-are-we-building-again.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8NQnkyfSp7ImA9WxRaEE0.&quot;"><id>tag:blogger.com,1999:blog-13738371.post-4539874542699781345</id><published>2008-12-10T20:54:00.002-05:00</published><updated>2008-12-11T09:14:53.795-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-11T09:14:53.795-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="twitivia" /><title>Twitivia</title><content type="html">&lt;p&gt;Twitter, ASP.NET MVC, Silverlight, XNA, iPhone, what do they all have in common?  Twitivia!  (If you’re on twitter feel free to follow the project @twitivia on twitter).&lt;/p&gt;  &lt;p&gt;Twitivia is a project that you can follow me through, it is a simple idea, ask one trivia question a day on twitter and track the answers.&lt;/p&gt;  &lt;p&gt;The goal is to create an application that will do all the real work and then spread the client to as many platforms as possible (web, iPhone, Xbox, desktop (WPF)) and you can follow me through.  As I build the application, I am going to post the progress (bad code and all) and hopefully some can learn with me, and others will point me in the right direction when I’m lost.&lt;/p&gt;  &lt;p&gt;So, let’s get started shall we?&lt;/p&gt;  &lt;h4&gt;Step one: Get twitter all set up&lt;/h4&gt;  &lt;p&gt;Well that was simple, go to twitter.com and click the join button.&lt;a href="http://lh5.ggpht.com/__h1Aiq3P1rU/SUB6vmiq3gI/AAAAAAAAC1U/ltfLwwbWBV0/s1600-h/twitterhome%5B20%5D.png"&gt;&lt;img style="border: 0px none ; display: inline;" title="twitterhome" alt="twitterhome" src="http://lh4.ggpht.com/__h1Aiq3P1rU/SUB6wanKFlI/AAAAAAAAC1Y/hk5QEV7WP2I/twitterhome_thumb%5B18%5D.png?imgmax=800" border="0" width="244" height="177" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I setup the new account to be twitivia (obviously) and then went out and registered the domain (yes, I really did).  So when we start writing code that runs on the net, like the leader board (for scores) and all the various service end points, we can all find it.&lt;/p&gt;  &lt;p&gt;I found a nice icon, changed the design colors on the twitter site and bang, it was online.&lt;/p&gt;  &lt;h4&gt;Step two: Let people know&lt;/h4&gt;  &lt;p&gt;I posted the first question and winning answer (hmm could use that as a trivia question later on.. who was the first winner on twitivia).&lt;/p&gt;  &lt;p&gt;Then I went out to my regular twitter account (&lt;a href="http://www.twitter.com/kuronoir"&gt;http://www.twitter.com/kuronoir&lt;/a&gt; (feel free to follow me there too)) and posted the “it’s alive” announcement and since my twitter and Facebook accounts are linked, about 150-200 people were notified.&lt;/p&gt;  &lt;p&gt;I got some good feedback and have asked people to email me questions and answers we can use to populate the database.  If you have some good trivia, email me.&lt;/p&gt;  &lt;h4&gt;Step three: Let’s work out the application plan&lt;/h4&gt;  &lt;p&gt;Since the primary input and output channel is twitter, I think the first place to go would be to the twitter API and start fooling around with that.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13738371-4539874542699781345?l=www.chrisslee.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/27U8CweBVanY1izkhR8Tdq4Jluw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/27U8CweBVanY1izkhR8Tdq4Jluw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/27U8CweBVanY1izkhR8Tdq4Jluw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/27U8CweBVanY1izkhR8Tdq4Jluw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.chrisslee.com/feeds/4539874542699781345/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.chrisslee.com/2008/12/twitivia.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/4539874542699781345?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13738371/posts/default/4539874542699781345?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ChristopherSlee/~3/-v-z-0FN0o8/twitivia.html" title="Twitivia" /><author><name>Christopher Slee</name><uri>http://www.blogger.com/profile/07924528769809914260</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="01781283546748402461" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.chrisslee.com/2008/12/twitivia.html</feedburner:origLink></entry></feed>
