<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1689813759314934420</id><updated>2011-10-20T14:46:57.406-04:00</updated><category term='Data Dynamics Reports'/><category term='CodeMash'/><category term='Leisure'/><category term='Data Dynamics'/><category term='Games'/><category term='OLAP'/><category term='ActiveReports for .NET'/><category term='General'/><category term='Vacation'/><category term='Technology'/><category term='Bass Guitar'/><category term='Mac'/><title type='text'>Pilgrim.GetThoughts();</title><subtitle type='html'>This method takes no parameters, output is unpredictable.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-1137253129167473372</id><published>2009-03-24T20:37:00.006-04:00</published><updated>2009-03-25T01:28:53.299-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Dynamics'/><category scheme='http://www.blogger.com/atom/ns#' term='ActiveReports for .NET'/><title type='text'>Using the ActiveReports WebViewer with ASP.NET MVC 1.0</title><content type='html'>The ActiveReports WebViewer was designed for ASP.NET WebForms, not for ViewPages in MVC. Therefore we still need a little bit of code-behind for the WebViewer to work. This can be accomplished by adding a WebForm to the Views folder and changing the code-behind class to inherit off of System.Web.Mvc.ViewPage instead System.Web.UI.Page.&lt;br /&gt;&lt;br /&gt;Take a look at the screencast for detailed instructions on how to set up the default MVC template to work with the ActiveReports WebViewer control.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/n8UX821uFwc&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/n8UX821uFwc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;If you would like to download the sample created during the screencast you can grab it &lt;a href="http://rapidshare.com/files/213175347/ActiveReportsWithMvc.zip.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;EDIT: I know the video is kind of on the smaller side, therefore, I will be updating this post at a future time with a step by step guide (with images). Until then, bear with the screencast and have a look at the sample linked above.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-1137253129167473372?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/1137253129167473372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=1137253129167473372' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/1137253129167473372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/1137253129167473372'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2009/03/using-activereports-webviewer-with.html' title='Using the ActiveReports WebViewer with ASP.NET MVC 1.0'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-7629138962769621155</id><published>2008-10-18T13:01:00.002-04:00</published><updated>2008-10-18T13:10:48.308-04:00</updated><title type='text'>ASP.NET MVC Web Site Template</title><content type='html'>When I installed the ASP.NET MVC Beta, I was disappointed that it only included an ASP.NET Web Application template. Some developers could probably argue for hours over which is better, the Web Application template or Web Site template, but this is more of a personal preference, therefore I won’t be going over the pros and cons of those project types here.&lt;br /&gt;&lt;br /&gt;I wanted a Web Site template for ASP.NET MVC, and here I’ll explain how I created it.&lt;br /&gt;&lt;br /&gt;The first, and most obvious step, is to install the ASP.NET MVC Beta. Once that’s installed, fire up Visual Studio 2008 and create a new Web Site. Once the project is up and running, add references to the following assemblies:&lt;br /&gt;&lt;br /&gt;System.Web.AbstractionsSystem.Web.MvcSystem.Web.Routing&lt;br /&gt;In the default install of the MVC Beta, these assembles are all found in %ProgramFiles%\Microsoft ASP.NET\ASP.NET MVC Beta\Assemblies.&lt;br /&gt;&lt;br /&gt;Now it’s time to make modifications to the Web.config to add the HTTP Modules, Handlers, and namespaces for each WebForm/ViewPage.&lt;br /&gt;&lt;br /&gt;Under the system.web\pages section of the Web.config, add a node called namespaces and then add the following namespaces:&lt;br /&gt;&lt;br /&gt;System.Web.MvcSystem.Web.Mvc.AjaxSystem.Web.Mvc.HtmlSystem.Web.Routing&lt;br /&gt;The XML should look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;!-- ... --&amp;gt;&lt;br /&gt;&amp;lt;namespaces&amp;gt;&lt;br /&gt; &amp;lt;add namespace="System.Web.Mvc"&amp;gt;&lt;br /&gt; &amp;lt;add namespace="System.Web.Mvc.Ajax"&amp;gt;&lt;br /&gt; &amp;lt;add namespace="System.Web.Mvc.Html"&amp;gt;&lt;br /&gt; &amp;lt;add namespace="System.Web.Routing"&amp;gt;&lt;br /&gt; &amp;lt;/add&amp;gt;&lt;br /&gt;&amp;lt;!-- ... --&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In the section below pages, (it should be httpHandlers), we need to add an entry for the MvcHttpHandler.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;add verb="*" path="*.mvc" validate="false" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then add the UrlRoutingModule to the httpModules configuration section.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you plan on deploying to IIS 7.0, then we need to make a few changes to the system.webServer section. Under modules, add the following:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;remove name="UrlRoutingModule"&amp;gt;&lt;br /&gt;&amp;lt;add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In handlers, add this:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;remove name="MvcHttpHandler"&amp;gt;&lt;br /&gt;&amp;lt;add name="MvcHttpHandler" precondition="integratedMode" verb="*" path="*.mvc" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&amp;gt;&lt;br /&gt;&amp;lt;remove name="UrlRoutingHandler"&amp;gt;&lt;br /&gt;&amp;lt;add name="UrlRoutingHandler" precondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now we can move on to setting up the project template files. First, add a Global application class (Global.asax). Clear its content below the Application tag. Then make the Global.asax inherit from a class called MvcApplication. (This class doesn’t exist yet, but we will create it soon).&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;%@ Application Language="C#" Inherits="MvcApplication" %&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To create the MvcApplication, add a new class file to the App_Code folder. If App_Code doesn’t exist, create it by right-clicking on your project in the Solution Explorer and selecting App_Code from the Add ASP.NET Folder submenu.&lt;br /&gt;&lt;br /&gt;The MvcApplication class needs to inherit from HttpApplication. The goal of this class is to register the default route for the default MVC view. Be sure to add the System.Web.Routing namespace to the top of this class file.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Routing;&lt;br /&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;public class MvcApplication : HttpApplication&lt;br /&gt;{&lt;br /&gt;   static void Application_Start()&lt;br /&gt;   {&lt;br /&gt;       // do not route requests for web resources&lt;br /&gt;       RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");&lt;br /&gt;&lt;br /&gt;       // add the default route&lt;br /&gt;       RouteTable.Routes.MapRoute(&lt;br /&gt;           "Default",&lt;br /&gt;           "{controller}/{action}/{id}",&lt;br /&gt;           new { controller = "Default", action = "Index", id = "" }&lt;br /&gt;       );&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now that we have the MvcApplication set up, we need to set up the Default web form so it routes requests to the MvcHttpHandler. Here’s the code:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;public partial class _Default : System.Web.UI.Page&lt;br /&gt;{&lt;br /&gt;   protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;   {&lt;br /&gt;       HttpContext.Current.RewritePath(Request.ApplicationPath);&lt;br /&gt;       IHttpHandler handler = new MvcHttpHandler();&lt;br /&gt;       handler.ProcessRequest(HttpContext.Current);&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, create two folders within App_Code called Controllers and Models. Then create a folder in your web site’s root called Views. Within the Views folder add a subfolder called Default. In the Controllers folder, create a class file called DefaultController. The source for DefaultController is below:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;using System;&lt;br /&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;[HandleError]&lt;br /&gt;public class DefaultController : Controller&lt;br /&gt;{&lt;br /&gt;   public ActionResult Index()&lt;br /&gt;   {&lt;br /&gt;       ViewData["Message"] = "Welcome to ASP.NET MVC!";&lt;br /&gt;&lt;br /&gt;       return View();&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This template isn’t going to use Models, that’s for future use though. So let’s skip ahead to adding the default view. In the Views\Default directory add a new Web Form called Index.aspx. Yes, I said Web Form because the ASP.NET MVC Beta also does not include the ViewPage item template for Web Site projects. So the first order of business is to change the codebehind to have the Index view inherit from System.Web.Mvc.ViewPage rather than from System.Web.UI.Page.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;public partial class Views_Default_Index : System.Web.Mvc.ViewPage&lt;br /&gt;{&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now, go to the Index ViewPage’s markup and add the following line to the body between the div tags:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: 10pt;"&gt;&amp;lt;%= Html.Encode(ViewData["Message"]) %&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;At this point the project can be compiled and debugged. You should see your message (set in the controller) in your default browser.&lt;br /&gt;&lt;br /&gt;To save the template, select Export Template from the File menu and follow the steps in the wizard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-7629138962769621155?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/7629138962769621155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=7629138962769621155' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7629138962769621155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7629138962769621155'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/10/aspnet-mvc-web-site-template.html' title='ASP.NET MVC Web Site Template'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-8664171250484560357</id><published>2008-08-01T18:32:00.002-04:00</published><updated>2008-08-01T18:39:23.981-04:00</updated><title type='text'>Manicotti</title><content type='html'>Well, I guess it paid off, general consensus was everyone liked it.&lt;br /&gt;&lt;br /&gt;BUT... It was just another reminder of why I hate cooking things like Manicotti. What made it take even more time was instead of preparing it for 4 people, I made enough to feed 12 normal people (in this case 8 normal people and 1 TimP).&lt;br /&gt;&lt;br /&gt;I even had to run back to the store halfway through because a good amount of shells were splitting during the boiling process.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So 3 hours after prepping it last night, and 35 mins in the oven this morning... everybody in the office was happy.&lt;br /&gt;&lt;br /&gt;Just don't expect this type of cooking from me often :)&lt;br /&gt;&lt;br /&gt;...it really is a pain in the ass.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I enjoy cooking on the grill much much much more than the process of making Manicotti.&lt;br /&gt;&lt;br /&gt;&amp;lt;/rant&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-8664171250484560357?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/8664171250484560357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=8664171250484560357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8664171250484560357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8664171250484560357'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/08/manicotti.html' title='Manicotti'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-7364392340898377263</id><published>2008-07-16T19:35:00.003-04:00</published><updated>2008-07-16T19:40:48.059-04:00</updated><title type='text'>Project Euler</title><content type='html'>A co-worker who does not blog (at least not that I know of) introduced us to Project Euler today. It's a web site which lists various math problems which are to be solved using simple programs.&lt;br /&gt;&lt;br /&gt;Well, that may sound dull, it's quite the opposite. For those who may have neglected their math skills a little bit while stuck in the realm of UI design, this is a cool way to build those problem solving skills.&lt;br /&gt;&lt;br /&gt;At our office, we're planning on doing weekly meetings after the work day to go over the problems and compare our solutions.&lt;br /&gt;&lt;br /&gt;Now, although these problems deal with large numbers, you shouldn't be sitting in front of your computer for hours waiting for a result. Each problem was designed to be solved by a computer in a minute or less. If you're waiting on your program to finish... you're doing it wrong.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://projecteuler.net/index.php?section=problems"&gt;Check it out!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, sign up for an account in order to submit your results for verification. Once you do that for a particular problem, you get access to a PDF document which explains the problem in more detail and access to the forums for that particular problem to discuss with others who have been solving these problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-7364392340898377263?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/7364392340898377263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=7364392340898377263' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7364392340898377263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7364392340898377263'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/07/project-euler.html' title='Project Euler'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4696925932857278295</id><published>2008-03-26T22:48:00.002-04:00</published><updated>2008-12-10T12:40:46.947-05:00</updated><title type='text'>What a day...</title><content type='html'>This morning I got hit with a "Seatbelt ticket"... grrr.&lt;br /&gt;&lt;br /&gt;Then I received my additional 2gb of RAM for my home system... sweet.&lt;br /&gt;&lt;br /&gt;Then I somehow ended up with a shard of glass in my big toe... grrr.&lt;br /&gt;&lt;br /&gt;Then I played around with server 2008 and discovered a pretty cool new feature in Terminal Services: Remote Apps. So basically, I have TS set up on my Server 08 VM, and added the InetMgr as a RemoteApp just to test this out with. So on my XP box, I have a remote window that has the Vista theme, neat...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_76XjFPGwTBQ/R-sLj0iFAUI/AAAAAAAAACg/g67gQKtDh5s/s1600-h/remoteapp.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_76XjFPGwTBQ/R-sLj0iFAUI/AAAAAAAAACg/g67gQKtDh5s/s400/remoteapp.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5182248506244792642" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4696925932857278295?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4696925932857278295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4696925932857278295' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4696925932857278295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4696925932857278295'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/03/what-day.html' title='What a day...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_76XjFPGwTBQ/R-sLj0iFAUI/AAAAAAAAACg/g67gQKtDh5s/s72-c/remoteapp.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-621050158183492933</id><published>2008-02-13T19:45:00.004-05:00</published><updated>2008-12-10T12:40:47.544-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Leisure'/><title type='text'>My cities are named after alcohol...</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;Amaretto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_76XjFPGwTBQ/R7OPmu7FYiI/AAAAAAAAACI/N-1rMnv-g7U/s1600-h/Amaretto_Night.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_76XjFPGwTBQ/R7O7a-7FYjI/AAAAAAAAACQ/KCpO_oVIXk8/s1600-h/Amaretto_Day.png"&gt;&lt;img src="http://2.bp.blogspot.com/_76XjFPGwTBQ/R7O7a-7FYjI/AAAAAAAAACQ/KCpO_oVIXk8/s400/Amaretto_Day.png" alt="" id="BLOGGER_PHOTO_ID_5166679269765898802" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Amaretto is a mid-sized desert city which thrives on tourism. It's romantic atmostphere, low CO2 footprint, almost non-existent crime, and the various venues keep my Sims happy. I also built a campus area so my Sims can be smart.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Parrot Bay&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_76XjFPGwTBQ/R7OPcu7FYhI/AAAAAAAAACA/AAVQyH8evd8/s1600-h/ParrotBay_Night.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_76XjFPGwTBQ/R7OPcu7FYhI/AAAAAAAAACA/AAVQyH8evd8/s1600-h/ParrotBay_Night.png"&gt;&lt;img src="http://1.bp.blogspot.com/_76XjFPGwTBQ/R7OPcu7FYhI/AAAAAAAAACA/AAVQyH8evd8/s400/ParrotBay_Night.png" alt="" id="BLOGGER_PHOTO_ID_5166630921319047698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Parrot Bay is a tropical metropolis. This was my first city, and my poor planning led to tearing down the homes of multiple Sims to build skyrise apartments for my booming population. I made some bad decisions when it came to choosing power sources and businesses, pollution was terrible, but this has since been resolved when nuclear power was used as a cleaner alternative. This capitalist city has a lot of venues (bars, liquor stores, etc) which promote crime, so that is somewhat of an issue. Also, Parrot Bay's Liberal Arts College led to a large population of hippies moving in. They make city life less fun for the other Sims by protesting, and lingering in venues all day, preventing other Sims from blowing off steam.&lt;br /&gt;&lt;br /&gt;As with all capitalist cities, we have a very nice neighborhood (near) with large houses, and for some reason, all the Sims in this neighborhood seem to be driving Lamborghinis of various colors. Opposite to this portion of town, on the other side of the downtown area exists low cost housing, and government sponsored projects. The less fortunate Sims also contribute to Parrot Bay's crime problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So this is one of my hobbies outside of my fooling around with my computers, playing around with Mono, and my various other geek related activities. This, by the way, is SimCity Societies... and yes, it's addictive to build my societies :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-621050158183492933?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/621050158183492933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=621050158183492933' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/621050158183492933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/621050158183492933'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/02/my-cities-are-named-after-alcohol.html' title='My cities are named after alcohol...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_76XjFPGwTBQ/R7O7a-7FYjI/AAAAAAAAACQ/KCpO_oVIXk8/s72-c/Amaretto_Day.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-9062240243545791</id><published>2008-01-30T01:45:00.000-05:00</published><updated>2008-01-30T01:53:47.174-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><title type='text'>The mac is awesome...</title><content type='html'>OK, so I'm not sure if it's fair to say this MacBook is downright probably the best system I've ever had... (after 1 week). But I think it's true. First of all, the hardware is downright awesome (this notebook will build large projects rather quickly (in comparison to my desktops I use to build source (which are pretty high end)), it also plays Team Fortress 2 better than my home desktop). Secondly, I can dual-boot into Windows XP (screw Vista) and can do all my dev/support/screencast/etc job functions in either OS (OS X or Win XP) thanks to Parallels Desktop and my Boot Camp partition.&lt;br /&gt;&lt;br /&gt;If you are considering getting a new laptop any time soon, I'd say get a Mac. Yes, there is a price difference, but it's well worth it. (If you look, you can find refurb MacBook Pros for around $1,700).&lt;br /&gt;&lt;br /&gt;I still can't get over some of the cool features on this damn thing. That Dashboard app is awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-9062240243545791?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/9062240243545791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=9062240243545791' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9062240243545791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9062240243545791'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/01/mac-is-awesome.html' title='The mac is awesome...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4906941347034065161</id><published>2008-01-25T20:43:00.000-05:00</published><updated>2008-12-10T12:40:47.715-05:00</updated><title type='text'>MacBook - Mono App</title><content type='html'>Well, it's only been a couple of days since I received my MacBook and I'm already toying around with Mono.&lt;br /&gt;&lt;br /&gt;Here's a screenshot of my first app (yes, overly simplistic, but the source was written with Vim, no syntax highlighting or autocompletion for me):&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_76XjFPGwTBQ/R5qRKmV_5nI/AAAAAAAAABs/oeJVnBTIlfM/s1600-h/HelloAppMono.png"&gt;&lt;img style="margin: 0px auto 10px; cursor: pointer;" src="http://2.bp.blogspot.com/_76XjFPGwTBQ/R5qRKmV_5nI/AAAAAAAAABs/oeJVnBTIlfM/s400/HelloAppMono.png" alt="" id="BLOGGER_PHOTO_ID_5159595934383859314" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4906941347034065161?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4906941347034065161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4906941347034065161' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4906941347034065161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4906941347034065161'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/01/macbook-mono-app.html' title='MacBook - Mono App'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_76XjFPGwTBQ/R5qRKmV_5nI/AAAAAAAAABs/oeJVnBTIlfM/s72-c/HelloAppMono.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-6206046754736150853</id><published>2008-01-12T14:56:00.000-05:00</published><updated>2008-01-12T15:15:23.622-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodeMash'/><title type='text'>CodeMash v2.0.0.8</title><content type='html'>Wednesday evening we headed up to Sandusky, OH for CodeMash.&lt;br /&gt;&lt;br /&gt;Apparently, James, Zach, and myself were almost creamed by a train we didn't see at a passive crossing. Lucas had already crossed the tracks, we were at a stop sign waiting for cross traffic to pass, and had about 100yds from the intersection to the tracks. We saw Luc waving his arm frantically, and he had his hazard lights on. Our attention was drawn to him and not the train nor the crossing... What's even stranger, is that we didn't know about the train until we were stopped at another train crossing 45 minutes later when I got out of the car to have a quick smoke and Luc waved me over to his car.&lt;br /&gt;&lt;br /&gt;Oh well.&lt;br /&gt;&lt;br /&gt;As soon as we arrived at the Kalahari Resort, we checked in, moved Luc's drum kit up to the room and then went to the convention center to set up our booth and registered.&lt;br /&gt;&lt;br /&gt;This was followed up by playing Rock Band in our hotel room.&lt;br /&gt;&lt;br /&gt;Thursday, I spent a good portion of the day at the booth or in sessions. If I remember correctly, I went to a Flex session and an F# session (As soon as I got back home, I downloaded F# if that tells you anything).&lt;br /&gt;&lt;br /&gt;Friday, pretty much the same. Saw a pretty cool session using Dojo and Google Gears to add the ability to have users work offline in Web Applications. Went to an Advanced Silverlight session and then a session on Story Driven testing.&lt;br /&gt;&lt;br /&gt;I'm sure the show would have been much better had I not been sick all 3 days.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oh, I forgot to mention the CodeMash Jam Session on Thursday. Luc set up his drums, Zach plugged in his bass, and a couple other guys played their guitars. I took Zach's bass for a little bit (since I didn't bring mine) and played a little slap bass to try to get the others to play a little faster (it didn't work, so I gave the bass back to Zach and used up my drink tickets instead).&lt;br /&gt;&lt;br /&gt;Overall, the show was pretty cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-6206046754736150853?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/6206046754736150853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=6206046754736150853' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/6206046754736150853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/6206046754736150853'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2008/01/codemash-v2008.html' title='CodeMash v2.0.0.8'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-7718967637162233194</id><published>2007-12-28T15:39:00.000-05:00</published><updated>2007-12-28T15:40:38.016-05:00</updated><title type='text'>Corruption Spreads Across State Lines</title><content type='html'>&lt;span style="color: rgb(51, 51, 255);"&gt;[15:37] Names:&lt;/span&gt; oh crap; i shouldn't have told my dad what a grape bomb or washington apple are....i just got a txt from my dad that he's getting the stuff to make them here&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;[15:37] Jon (Pilgrim):&lt;/span&gt; hahahaha&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-7718967637162233194?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/7718967637162233194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=7718967637162233194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7718967637162233194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7718967637162233194'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/12/corruption-spreads-across-state-lines.html' title='Corruption Spreads Across State Lines'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-8266145262502873580</id><published>2007-12-28T13:31:00.000-05:00</published><updated>2007-12-28T13:36:24.702-05:00</updated><title type='text'>Ideas...</title><content type='html'>So I've been looking into some ideas for the Data Dynamics Reports sample gallery. Flex was one. The downside to Flex is that it will take some time to learn, which in turn would delay the updated gallery.&lt;br /&gt;&lt;br /&gt;Then, I was going to visit CodeMash.org to look through the sessions again and see if anything that could possibly be used for the gallery would catch my eye. Unfortunately, today CodeMash.org is down. "Application error". So that's disappointing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-8266145262502873580?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/8266145262502873580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=8266145262502873580' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8266145262502873580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8266145262502873580'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/12/ideas.html' title='Ideas...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4852686583681803336</id><published>2007-12-04T19:30:00.000-05:00</published><updated>2007-12-15T13:29:07.142-05:00</updated><title type='text'>"Should not see me"</title><content type='html'>So I caved in and got &lt;a href="http://orange.half-life2.com/"&gt;The Orange Box&lt;/a&gt; this evening. I went to launch Portal, and a dialog popped up giving me a friendly reminder to update my video drivers.&lt;br /&gt;&lt;br /&gt;So, I go to nVidia's website and downloaded the latest forceware drivers for my card. Then I ran the installer and this strange dialog popped up with a title of: "should not see me: 163.75_forceware_winxp_32bit_english_whql.exe" and told me there was no disc in my D: drive.&lt;br /&gt;&lt;br /&gt;Which was true at the point, but what does a disc not being present in my D: drive have anything to do with installing a driver from an executable file? Not sure, but it makes me a little less optimistic about bug fixes and performance gains with the updated driver.&lt;br /&gt;&lt;br /&gt;So I popped in Disc 1 of The Orange Box, and clicked Try Again... amazing. The nVidia driver installed!&lt;br /&gt;&lt;br /&gt;*scratching my head*&lt;br /&gt;&lt;br /&gt;Why does a disc need to be present in my D: drive for me to install a 42MB video card driver that I downloaded???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4852686583681803336?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4852686583681803336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4852686583681803336' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4852686583681803336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4852686583681803336'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/12/should-not-see-me.html' title='&quot;Should not see me&quot;'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-9010447371822239520</id><published>2007-12-02T20:43:00.000-05:00</published><updated>2007-12-02T20:47:25.554-05:00</updated><title type='text'>Aww poo...</title><content type='html'>So, I've been working on the &lt;a href="http://www.datadynamics.com/Products/DDRPT/ProductScreencasts.aspx?Product=DDRPT"&gt;Screencasts for Data Dynamics Reports&lt;/a&gt;. Now, most of the screencasts were recorded at the office and sound great. Then I decided to record one of our newer screencasts at home and discovered the acoustics of my apartment suck majorly. I came to this conclusion when I compared the audio quality of the screencasts I recorded at home to those I recorded at the office. There is an extremely noticeable difference in quality. The ones recorded at the office sound great. In contrast, the screencasts recorded at home sound awful.&lt;br /&gt;&lt;br /&gt;This is an interesting discovery that I will need to keep in mind for all future screencasts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-9010447371822239520?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/9010447371822239520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=9010447371822239520' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9010447371822239520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9010447371822239520'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/12/aww-poo.html' title='Aww poo...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-9033460911768702073</id><published>2007-11-29T00:56:00.000-05:00</published><updated>2007-11-29T01:32:16.361-05:00</updated><title type='text'>A Slight Rant</title><content type='html'>So yes, I do get frustrated every once in awhile.&lt;br /&gt;&lt;br /&gt;Today what's bugging Pilgrim?&lt;br /&gt;&lt;br /&gt;I take our customer issues seriously. I have to. I want our products to work for our users. If something is not quite right, I want to help identify what's wrong so our team can make it right. But there are some people out there that say "Hey, you haven't fixed this in [an exaggerated amount of time], and I sent [an exaggerated amount of samples]."&lt;br /&gt;&lt;br /&gt;Why does this bug me? Because the product in question is a new product. No external entity can claim that something in our latest product has an issue that has existed for more than 5 months (forgive me for not including the beta period, but that's not technically "officially supported").&lt;br /&gt;&lt;br /&gt;Yes, we have learned a lot from our previous products, and have applied the lessons learned to our latest products. Our team has always given our customer issues the highest priority, which is very important. But when a user reports an issue and is not willing to be cooperative, it doesn't help anyone.&lt;br /&gt;&lt;br /&gt;[turning point]&lt;br /&gt;&lt;br /&gt;Then I watched a &lt;a href="http://video.google.com/url?docid=-4216011961522818645&amp;amp;esrc=sr10&amp;amp;ev=v&amp;amp;len=3295&amp;amp;q=Google%2Btechtalks&amp;amp;srcurl=http%3A%2F%2Fvideo.google.com%2Fvideoplay%3Fdocid%3D-4216011961522818645&amp;amp;vidurl=%2Fvideoplay%3Fdocid%3D-4216011961522818645%26q%3DGoogle%2Btechtalks%26total%3D1379%26start%3D0%26num%3D10%26so%3D0%26type%3Dsearch%26plindex%3D9&amp;amp;usg=AL29H21V2wHZWslqqFdo7WC04CwpR_cFmw"&gt;Google TechTalk: How Open Source Projects Survive Poisonous People (And You Can Too)&lt;/a&gt; this evening.&lt;br /&gt;&lt;br /&gt;So after taking some very interesting ideas from this video, I've used one of their suggestions and am currently attempting to get a much more detailed issue report from a user who seems angry about a specific issue that he is certain exists in all of our products.&lt;br /&gt;&lt;br /&gt;I responded in a very calm manner, completely removing my frustration from the picture. If the user continues to bash us, I will continue to calmly respond. I am hoping this will defuse the tension and make it clear that we want to foster a community where our users feel they can openly participate in our processes (specifically the issue identification process).&lt;br /&gt;&lt;br /&gt;Let's see if this leads to me being less frustrated and our community being better off in the long run.&lt;br /&gt;&lt;br /&gt;*Keeping my fingers crossed*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-9033460911768702073?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/9033460911768702073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=9033460911768702073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9033460911768702073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9033460911768702073'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/11/slight-rant.html' title='A Slight Rant'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-8954781973212959014</id><published>2007-11-18T16:48:00.001-05:00</published><updated>2007-11-18T16:49:40.083-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Games'/><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Human Computation</title><content type='html'>I was just watching some of the Google TechTalks and this one just stands out as ingenious!&lt;br /&gt;&lt;br /&gt;Tricking people into doing things computers cannot yet do... for free even!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://video.google.com/url?docid=-8246463980976635143&amp;amp;esrc=sr27&amp;amp;ev=v&amp;amp;len=3091&amp;amp;q=Google%2Btechtalks%2Bsite%3Avideo.google.com&amp;amp;srcurl=http%3A%2F%2Fvideo.google.com%2Fvideoplay%3Fdocid%3D-8246463980976635143&amp;amp;vidurl=%2Fvideoplay%3Fdocid%3D-8246463980976635143%26q%3DGoogle%2Btechtalks%2Bsite%253Avideo.google.com%26total%3D574%26start%3D20%26num%3D10%26so%3D0%26type%3Dsearch%26plindex%3D6&amp;amp;usg=AL29H226_f40l2Z3uDCODzb7os_52kxURw"&gt;Human Computation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-8954781973212959014?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/8954781973212959014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=8954781973212959014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8954781973212959014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8954781973212959014'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/11/human-computation.html' title='Human Computation'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-721277053856148249</id><published>2007-11-18T13:34:00.000-05:00</published><updated>2007-11-18T13:50:52.545-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><category scheme='http://www.blogger.com/atom/ns#' term='Leisure'/><title type='text'>Entertaining the Russians</title><content type='html'>Well, the past week was probably the most fun. As we are getting closer to Thanksgiving, we are also getting closer to the departure of our two Russian colleagues. So we’ve been doing our best to make sure they have a good experience before they head back home.&lt;br /&gt;&lt;br /&gt;On Thursday, we took them down to the Short North area of Columbus. The first destination was a Brew Pub which had a live blues performance.&lt;br /&gt;&lt;br /&gt;After the performance we stopped somewhere to get a quick meal in, and headed down to Spice, a dance club recommended by Raji. Now, mind you, I don’t dance, I just drink. But both of our Russian friends ended up getting out on the floor and having a good time.&lt;br /&gt;&lt;br /&gt;Friday, we took them out to a gentlemen's club. I guess the clubs in Russia are not quite as good as the clubs here (my assumption is based on a description by Sergey). It took awhile to get the both of them to relax enough to tip (yes, $1). We made sure they both had private dances, and then a certain person made the mistake of telling us he had never been to a gentlemen’s club… I won’t name names but his name rhymes with names… We forced him into getting a private dance too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-721277053856148249?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/721277053856148249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=721277053856148249' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/721277053856148249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/721277053856148249'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/11/entertaining-russians.html' title='Entertaining the Russians'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-429618243106666382</id><published>2007-11-12T23:54:00.000-05:00</published><updated>2007-11-13T00:05:52.422-05:00</updated><title type='text'>Functional Programming</title><content type='html'>I've been playing around with Haskell the past couple days. Now, I'm no expert, but I am going through some tutorials and whatnot. This stuff really does change one's perspective on coding.&lt;br /&gt;&lt;br /&gt;I have my tiny little app that takes arguments from the command line and adds them together. (Now I'm sure there's probably an easier/better way to do this, but I am just starting with Haskell.)&lt;br /&gt;&lt;br /&gt;[code]&lt;br /&gt;&lt;div style="font-family: Courier New, monospace; font-size: 10pt; background-color: gainsboro; color: black; white-space: pre; border: 1px solid black; padding: 1em;"&gt;module Main where&lt;br /&gt;import System.Environment&lt;br /&gt;&lt;br /&gt;main :: IO ()&lt;br /&gt;main = do args &lt;- getArgs&lt;br /&gt;          putStrLn ( show ( addArgs args ) )&lt;br /&gt;&lt;br /&gt;addArgs :: (Fractional a, Read a) =&gt; [String] -&gt; a&lt;br /&gt;addArgs [] = 0.0&lt;br /&gt;addArgs (x:xs) = read x + addArgs xs&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;[/code]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Yep, really simple, nothing major, but I'm sure I'll have more... I've also been looking at a framework called &lt;a href="http://www.happs.org"&gt;HAppS&lt;/a&gt; which I'm sure I'll blog about in the future...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-429618243106666382?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/429618243106666382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=429618243106666382' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/429618243106666382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/429618243106666382'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/11/functional-programming.html' title='Functional Programming'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-5751441222208321468</id><published>2007-10-28T02:14:00.001-04:00</published><updated>2007-10-28T02:24:31.762-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>An eventful week.</title><content type='html'>Wow, it has been a long week, and not in a bad way. We've had business partners from Japan in the office early in the week. We also have/had two of our offsite coworks in the office, Ali left on Thursday and Sergey will be here until the end of November.&lt;br /&gt;&lt;br /&gt;Oh yeah, how can I not mention the Hardbarger Bonfire. &lt;a href="http://hardbarger.blogspot.com"&gt;Luc&lt;/a&gt; threw a party up on his farm out in Newark. We had alot of the &lt;a href="http://www.datadynamics.com"&gt;DD&lt;/a&gt; guys there, as well as some of Luc's friends and of course his family. They're such good hosts (or loyal Buckeye fans) that they set up a radio so we wouldn't miss the OSU game, and woot, the Buckeyes won another one: 37-17 over Penn State.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-5751441222208321468?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/5751441222208321468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=5751441222208321468' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/5751441222208321468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/5751441222208321468'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/10/eventful-week.html' title='An eventful week.'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-7245269695762449470</id><published>2007-09-24T15:09:00.000-04:00</published><updated>2007-09-24T18:30:14.038-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vacation'/><title type='text'>Mini Vacation</title><content type='html'>A couple of us from &lt;a href="http://datadynamics.com/default.aspx?r=pilgrim"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Data Dynamics&lt;/span&gt;&lt;/a&gt; spent the weekend down in Raleigh, NC with the people from &lt;a href="http://www.fpoint.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;FarPoint&lt;/span&gt;&lt;/a&gt;. I have to thank Keith for being a great host, kept us busy all weekend. I appreciated the hospitality of all the FarPoint guys, and especially extend my gratitude to Chris and Don for the awesome BBQ Block Party on Saturday.&lt;br /&gt;&lt;br /&gt;Don sent us DD folk away with some samples of his &lt;a href="http://www.williamsonhousesauce.com/"&gt;Williamson House Sauces and Rib Kits&lt;/a&gt;, believe me, they will be put to good use.&lt;br /&gt;&lt;br /&gt;Sunday, the day was spent down at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Wrightsville&lt;/span&gt; Beach, my first trip to the ocean. I walked away with a terrible sunburn, but it was well worth it.&lt;br /&gt;&lt;br /&gt;It was nice to get away from Ohio for the weekend. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-7245269695762449470?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/7245269695762449470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=7245269695762449470' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7245269695762449470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/7245269695762449470'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/09/mini-vacation.html' title='Mini Vacation'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-2010669689809403168</id><published>2007-09-17T22:42:00.000-04:00</published><updated>2008-12-10T12:40:48.076-05:00</updated><title type='text'>Just one of the many new features...</title><content type='html'>I've been playing around with the latest internal build of Data Dynamics Reports since the next public release will include VS2008 support, so I tested this out by using LINQ to SQL with it:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_76XjFPGwTBQ/Ru87oBk4hXI/AAAAAAAAABk/vMSfyzSvLuE/s1600-h/ddr_linq.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_76XjFPGwTBQ/Ru87oBk4hXI/AAAAAAAAABk/vMSfyzSvLuE/s400/ddr_linq.png" alt="" id="BLOGGER_PHOTO_ID_5111369660892743026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Worked like a charm...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-2010669689809403168?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/2010669689809403168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=2010669689809403168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/2010669689809403168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/2010669689809403168'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/09/just-one-of-many-new-features.html' title='Just one of the many new features...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_76XjFPGwTBQ/Ru87oBk4hXI/AAAAAAAAABk/vMSfyzSvLuE/s72-c/ddr_linq.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4428808837668364385</id><published>2007-09-12T22:27:00.000-04:00</published><updated>2007-09-12T22:52:03.786-04:00</updated><title type='text'>XmlStringDataProvider</title><content type='html'>Following up on a forum post from a user I ended up writing an XmlStringDataProvider for Data Dynamics Reports.&lt;br /&gt;&lt;br /&gt;The data provider accepts an Xml String as the Connection String which in turn will allow for the usage of objects such as XmlReader and XmlDocument.&lt;br /&gt;&lt;br /&gt;To use these objects take a peek at some code snippets below:&lt;br /&gt;&lt;br /&gt;XmlReader:&lt;br /&gt;&lt;br /&gt;&lt;pre   style=";font-family:courier new;font-size:12px;"&gt;&lt;span style="color:green;"&gt;// get your Xml Data from somewhere...&lt;/span&gt;&lt;br /&gt;XmlReader reader = &lt;span style="color:blue;"&gt;new&lt;/span&gt; XmlTextReader("&lt;span style="color:magenta;"&gt;http://someserver.com/somewaytogetxmldata.xml&lt;/span&gt;");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// get our predesigned report file&lt;/span&gt;&lt;br /&gt;FileInfo reportFile = &lt;span style="color:blue;"&gt;new&lt;/span&gt; FileInfo(Application.StartupPath + "&lt;span style="color:magenta;"&gt;\\..\\..\\Report1.rdlx&lt;/span&gt;");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// create a ReportDefinition object fomr our reportFile&lt;/span&gt;&lt;br /&gt;ReportDefinition rdl = &lt;span style="color:blue;"&gt;new&lt;/span&gt; ReportDefinition(reportFile);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// call Read() then set the data source's connection string to the OuterXml&lt;/span&gt;&lt;br /&gt;reader.Read();&lt;br /&gt;rdl.Report.DataSources[0].ConnectionProperties.ConnectString = reader.ReadOuterXml();&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// render our report in the viewer control&lt;/span&gt;&lt;br /&gt;&lt;span style="color:olive;"&gt;this&lt;/span&gt;.reportPreview1.OpenReport(rdl, reportFile.Name);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;XmlDocument:&lt;br /&gt;&lt;br /&gt;&lt;pre   style=";font-family:courier new;font-size:12px;"&gt;&lt;span style="color:green;"&gt;// get your Xml Data from somewhere...&lt;/span&gt;&lt;br /&gt;XmlDocument doc = &lt;span style="color:blue;"&gt;new&lt;/span&gt; XmlDocument();&lt;br /&gt;doc.LoadXml(myWebService.GetSalesInformation().OuterXml);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// get our predesigned report file&lt;/span&gt;&lt;br /&gt;FileInfo reportFile = &lt;span style="color:blue;"&gt;new&lt;/span&gt; FileInfo(Application.StartupPath + "&lt;span style="color:magenta;"&gt;\\..\\..\\Report1.rdlx&lt;/span&gt;");&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// create a ReportDefinition object fomr our reportFile&lt;/span&gt;&lt;br /&gt;ReportDefinition rdl = &lt;span style="color:blue;"&gt;new&lt;/span&gt; ReportDefinition(reportFile);&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// set the data source's connection string to the OuterXml&lt;/span&gt;&lt;br /&gt;reader.Read();&lt;br /&gt;rdl.Report.DataSources[0].ConnectionProperties.ConnectString = doc.OuterXml;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;// render our report in the viewer control&lt;/span&gt;&lt;br /&gt;&lt;span style="color:olive;"&gt;this&lt;/span&gt;.reportPreview1.OpenReport(rdl, reportFile.Name);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The data provider sample can be found &lt;a href="http://www.datadynamics.com/forums/107097/ShowPost.aspx"&gt;here&lt;/a&gt; and a fully functional trial version of Data Dynamics Reports can be downloaded &lt;a href="http://www.datadynamics.com/forums/77/ShowForum.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4428808837668364385?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4428808837668364385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4428808837668364385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4428808837668364385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4428808837668364385'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/09/xmlstringdataprovider.html' title='XmlStringDataProvider'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4481399066055679103</id><published>2007-08-18T20:25:00.000-04:00</published><updated>2007-08-18T20:31:54.232-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bass Guitar'/><title type='text'>The Awakening</title><content type='html'>It's been a couple weeks since I've picked up my bass guitar. Not only that, but I pick a slap n' pop solo to start off with and now I have the biggest MFing blisters on my right index and middle fingers. The callus on my thumb appears to have held up well over time though...&lt;br /&gt;&lt;br /&gt;I need to play more often... and I need to go pick up some fresh strings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4481399066055679103?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4481399066055679103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4481399066055679103' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4481399066055679103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4481399066055679103'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/08/awakening.html' title='The Awakening'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-3217467051261077137</id><published>2007-07-29T19:55:00.000-04:00</published><updated>2007-07-30T00:18:07.155-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Pasta, Cinnabon, and the iPhone</title><content type='html'>So it's been awhile since I've been up at &lt;a href="http://www.eastontowncenter.com/"&gt;Easton Town Center&lt;/a&gt;, but my family was down in the area camping and decided to head into the city for awhile and wanted a "tour guide".&lt;br /&gt;&lt;br /&gt;While at Easton, I enjoyed The Cheesecake Factory's "Pasta Da Vinci" for lunch, then we let the women shop. After they were done browsing places like The Pottery Barn and Crate &amp; Barrel, we headed over to the Bose shop to check out high definition audio equipment... Which needless to say, the ladies were unimpressed with and wouldn't let any of us walk out of there with new toys.&lt;br /&gt;&lt;br /&gt;This is when I spotted Cinnabon and decided it was necessary to have an after lunch snack. Apparently, I was the only one thinking with my stomach because I was the only one who enjoyed the tasty goodness of a classic Cinnabon.&lt;br /&gt;&lt;br /&gt;Afterwards, I convinced them we needed to visit the Apple store and check out the iPhone. I demonstrated a few of the features (Maps, Safari, iPod) to my father and suggested he buy one, this way he wouldn't need to call me to print out directions for him (as he did earlier this morning).&lt;br /&gt;&lt;br /&gt;This is just me rambling about my day, so there is no point to be had. Just reading material for anyone who is bored I guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-3217467051261077137?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/3217467051261077137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=3217467051261077137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/3217467051261077137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/3217467051261077137'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/pasta-cinnabon-and-iphone.html' title='Pasta, Cinnabon, and the iPhone'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-3398151088672990274</id><published>2007-07-27T18:03:00.000-04:00</published><updated>2007-07-27T18:28:23.703-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Dynamics'/><category scheme='http://www.blogger.com/atom/ns#' term='OLAP'/><title type='text'>Interesting stuff...</title><content type='html'>I've been playing around with one of our upcoming products and had the opportunity to steal &lt;a href="http://hardbarger.blogspot.com"&gt;Luc&lt;/a&gt; away for a moment to have him do a quick demonstration.&lt;br /&gt;&lt;br /&gt;Now, I've always been a relational data type of guy, so I honestly had no clue about the power of OLAP, but the way this product visualizes data blew my mind.&lt;br /&gt;&lt;br /&gt;In Luc's own words "If we reduce the speed limit to 45 on this stretch of road, how many more babies will people have?"&lt;br /&gt;&lt;br /&gt;Now we don't have a sample that works with that particular line of thought, but you get the idea (and I'm sure if you had that data, you very well could find out if speed limit changes affect birth rates).&lt;br /&gt;&lt;br /&gt;I'll have more info on this as I learn more about the product (and OLAP in general).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-3398151088672990274?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/3398151088672990274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=3398151088672990274' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/3398151088672990274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/3398151088672990274'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/interesting-stuff.html' title='Interesting stuff...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-1726959988057539291</id><published>2007-07-21T12:01:00.001-04:00</published><updated>2007-07-21T12:12:34.251-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>The Finish Line</title><content type='html'>Last night was &lt;span style="font-style: italic;"&gt;the&lt;/span&gt; last night for this fine establishment. I've only frequented this blues bar a few times on Friday nights. However, after a coworker told a few of us at the office that this would be the last time we could ever go there, a couple of us decided to stop by to experience the final performances.&lt;br /&gt;&lt;br /&gt;Great music, great crowd. It was obvious that most of the patrons were wishing the night would never end. Jokes along the lines of "Oh, you're out of my favorite drink... I'll never come back to this place." were flowing constantly from this bar's most dedicated patrons.&lt;br /&gt;&lt;br /&gt;Rumor has it, the person who purchased the bar is going to turn it into an art gallery... which has made him rather unpopular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-1726959988057539291?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/1726959988057539291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=1726959988057539291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/1726959988057539291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/1726959988057539291'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/finish-line.html' title='The Finish Line'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-4105689404626210662</id><published>2007-07-19T15:28:00.002-04:00</published><updated>2008-12-10T12:40:48.788-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Data Dynamics Reports'/><title type='text'>Data Dynamics Reports: Adding Rendering Extensions</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_76XjFPGwTBQ/Rp_KGNdNqGI/AAAAAAAAAA8/LI3yPqZ6x10/s1600-h/default.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_76XjFPGwTBQ/Rp_KGNdNqGI/AAAAAAAAAA8/LI3yPqZ6x10/s400/default.jpg" alt="" id="BLOGGER_PHOTO_ID_5089008311992166498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By default, the Data Dynamics Reports ReportPreview control's "Export" toolbar menu is disabled. To enable this toolbar menu, you must add the rendering extensions to the control via the Add method off of the AvailableRenderingExtensions collection.&lt;br /&gt;&lt;br /&gt;This will eventually become a KB article. But it's always more fun to blog these types of things, because I get to use my own words, and nobody will review this post but myself. Of course, James will probably post some comments here and there, but that doesn't mean I have to change this :)&lt;br /&gt;&lt;br /&gt;I will be discussing 2 methods of adding Rendering Extensions to the ReportPreview control. In the first method, I'll be using the datadynamics.reports.config file, which is included with Data Dynamics Reports.&lt;br /&gt;&lt;br /&gt;This config file can be found in the Assemblies directory under the Reports\{version number} installation directory. (On my machine this is %ProgramFiles%\Data Dynamics\Reports\1.0.30.0\Assemblies)&lt;br /&gt;&lt;br /&gt;In Visual Studio, add this file to your project and set the Copy to Output property to Copy if newer.&lt;br /&gt;&lt;br /&gt;Now, in a form with a ReportPreview control, the following method can be called to add the Rendering Extensions:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; DataDynamics.Reports.Windows.Forms;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; DataDynamics.Reports.Configuration;&lt;br /&gt;...&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddExtensions(ReportPreview reportPreview)&lt;br /&gt;{&lt;br /&gt;    &lt;span class="rem"&gt;// Obtain the default configuration provider&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// this one reads the datadynamics.reports.config file&lt;/span&gt;&lt;br /&gt;    IConfigurationProvider provider =&lt;br /&gt;        reportPreview.ConfigurationProvider;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (provider == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="rem"&gt;// No provider specified, here you could create your own &lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;// to read from your own app.config&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="rem"&gt;// Create a new configuration manager from the provider&lt;/span&gt;&lt;br /&gt;    IConfigurationManager configManager =&lt;br /&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; ReportingConfiguration(provider);&lt;br /&gt;    &lt;br /&gt;    RenderingExtensionInfoCollection extensions = configManager.RenderingExtensions;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;if&lt;/span&gt; (extensions != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (RenderingExtensionInfo extensionInfo &lt;span class="kwrd"&gt;in&lt;/span&gt; extensions)&lt;br /&gt;        {&lt;br /&gt;            reportPreview.AvailableRenderingExtensions.Add(extensionInfo);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;Method 2:&lt;br /&gt;&lt;br /&gt;Add references of the Rendering Extensions you wish to use to your project, then manually create RenderingExtensionInfo objects to pass into the Add method of the AvailableRenderingExtensions collection:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; DataDynamics.Reports;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; DataDynamics.Reports.Rendering.Pdf;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; DataDynamics.Reports.Rendering.Html;&lt;br /&gt;...&lt;br /&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; AddExtensions(ReportPreview reportPreview)&lt;br /&gt;{&lt;br /&gt;    Type pdfRenderingExt = &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(PdfRenderingExtension);&lt;br /&gt;    Type htmlRenderingExt = &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(HtmlRenderingExtension);&lt;br /&gt;&lt;br /&gt;    RenderingExtensionInfo[] extensions =&lt;br /&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; RenderingExtensionInfo[] {&lt;br /&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; RenderingExtensionInfo(pdfRenderingExt.Assembly.FullName,&lt;br /&gt;                                   pdfRenderingExt.FullName,&lt;br /&gt;                                   &lt;span class="str"&gt;"Save as PDF"&lt;/span&gt;),&lt;br /&gt;        &lt;span class="kwrd"&gt;new&lt;/span&gt; RenderingExtensionInfo(htmlRenderingExt.Assembly.FullName,&lt;br /&gt;                                   htmlRenderingExt.FullName,&lt;br /&gt;                                   &lt;span class="str"&gt;"Save as HTML"&lt;/span&gt;)};&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; extensions.Length; i++)&lt;br /&gt;    {&lt;br /&gt;        reportPreview.AvailableRenderingExtensions.Add(extensions[i]);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;Here are the results...&lt;br /&gt;&lt;br /&gt;Method 1:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_76XjFPGwTBQ/Rp_JqtdNqEI/AAAAAAAAAAs/npgmlqIOFa0/s1600-h/method1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://1.bp.blogspot.com/_76XjFPGwTBQ/Rp_JqtdNqEI/AAAAAAAAAAs/npgmlqIOFa0/s400/method1.jpg" alt="" id="BLOGGER_PHOTO_ID_5089007839545763906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Method 2:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_76XjFPGwTBQ/Rp_J7tdNqFI/AAAAAAAAAA0/19kcLYfRkRI/s1600-h/method2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_76XjFPGwTBQ/Rp_J7tdNqFI/AAAAAAAAAA0/19kcLYfRkRI/s400/method2.jpg" alt="" id="BLOGGER_PHOTO_ID_5089008131603540050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-4105689404626210662?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/4105689404626210662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=4105689404626210662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4105689404626210662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/4105689404626210662'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/data-dynamics-reports-adding-rendering.html' title='Data Dynamics Reports: Adding Rendering Extensions'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_76XjFPGwTBQ/Rp_KGNdNqGI/AAAAAAAAAA8/LI3yPqZ6x10/s72-c/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-8763749774173118777</id><published>2007-07-19T00:40:00.001-04:00</published><updated>2008-12-10T12:40:48.932-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActiveReports for .NET'/><title type='text'>QuickStart: LINQ and ActiveReports for .NET</title><content type='html'>In this sample, I opted not to use the report designer... I prefer this method as it gives readers a better idea of what's actually going on...&lt;br /&gt;&lt;br /&gt;Note: The form already had a Viewer control added and docked...&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;As I promised, to create the NorthwindDataContext, I basically pressed CTRL+SHIFT+A (Add new item...) and added a LINQ to SQL file to my project. Then from the server explorer, I dragged the Customers, Orders, and Order Details tables onto the design area of the file and saved it... Yes, it is that simple...&lt;br /&gt;&lt;br /&gt;Now on to the fun part, binding LINQ queries to the ActiveReport3 object...&lt;br /&gt;&lt;br /&gt;Code:&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Form1 : Form&lt;br /&gt;{&lt;br /&gt;  &lt;span class="kwrd"&gt;public&lt;/span&gt; Form1()&lt;br /&gt;  {&lt;br /&gt;      InitializeComponent();&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Setup report object&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      ActiveReport3 rpt = &lt;span class="kwrd"&gt;new&lt;/span&gt; ActiveReport3();&lt;br /&gt;      rpt.Sections.Add(SectionType.Detail, &lt;span class="str"&gt;"detail"&lt;/span&gt;);&lt;br /&gt;      rpt.ReportStart += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(rpt_ReportStart);&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Create an instance of the data context and perform LINQ query&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      NorthwindDataContext db = &lt;span class="kwrd"&gt;new&lt;/span&gt; NorthwindDataContext();&lt;br /&gt;&lt;br /&gt;      var q = from c &lt;span class="kwrd"&gt;in&lt;/span&gt; db.Customers&lt;br /&gt;              join o &lt;span class="kwrd"&gt;in&lt;/span&gt; db.Orders on c.CustomerID equals o.CustomerID&lt;br /&gt;              join od &lt;span class="kwrd"&gt;in&lt;/span&gt; db.Order_Details on o.OrderID equals od.OrderID&lt;br /&gt;              select &lt;span class="kwrd"&gt;new&lt;/span&gt;&lt;br /&gt;              {&lt;br /&gt;                  c.CustomerID,&lt;br /&gt;                  c.CompanyName,&lt;br /&gt;                  o.OrderID,&lt;br /&gt;                  o.OrderDate,&lt;br /&gt;                  od.UnitPrice,&lt;br /&gt;                  od.Quantity&lt;br /&gt;              };&lt;br /&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Bind results to the report datasource (use .ToList())&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      rpt.DataSource = q.ToList();&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Bind report doc to viewer, then run&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;this&lt;/span&gt;.viewer1.Document = rpt.Document;&lt;br /&gt;      rpt.Run();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;void&lt;/span&gt; rpt_ReportStart(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;  {&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// make it easier to refer to the report and detail section&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      ActiveReport3 rpt = sender &lt;span class="kwrd"&gt;as&lt;/span&gt; ActiveReport3;&lt;br /&gt;      Detail detail = rpt.Sections[&lt;span class="str"&gt;"detail"&lt;/span&gt;] &lt;span class="kwrd"&gt;as&lt;/span&gt; Detail;&lt;br /&gt;&lt;br /&gt;      detail.CanShrink = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Init location and size of TextBoxes&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      PointF pt = &lt;span class="kwrd"&gt;new&lt;/span&gt; PointF(0f, 0f);&lt;br /&gt;      SizeF sz = &lt;span class="kwrd"&gt;new&lt;/span&gt; SizeF(1f, .2f);&lt;br /&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Since the report is bound to a List, the fields already exist&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;// Add a textbox for each field&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;//&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Field f &lt;span class="kwrd"&gt;in&lt;/span&gt; rpt.Fields)&lt;br /&gt;      {&lt;br /&gt;          &lt;span class="kwrd"&gt;using&lt;/span&gt; (DataDynamics.ActiveReports.TextBox t =&lt;br /&gt;                  &lt;span class="kwrd"&gt;new&lt;/span&gt; DataDynamics.ActiveReports.TextBox())&lt;br /&gt;          {&lt;br /&gt;              t.DataField = f.Name;&lt;br /&gt;              t.Location = pt;&lt;br /&gt;              t.Size = sz;&lt;br /&gt;              t.CanGrow = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;              t.Border.Color = Color.Black;&lt;br /&gt;              t.Border.Style = BorderLineStyle.Solid;&lt;br /&gt;              detail.Controls.Add(t);&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          &lt;span class="kwrd"&gt;if&lt;/span&gt; ((pt.X + sz.Width) &amp;gt; (rpt.PrintWidth - sz.Width))&lt;br /&gt;          {&lt;br /&gt;              pt.X = 0f;&lt;br /&gt;              pt.Y += sz.Height;&lt;br /&gt;          }&lt;br /&gt;          &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;              pt.X += sz.Width;&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;And the output:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_76XjFPGwTBQ/Rp7vDtdNqCI/AAAAAAAAAAc/epZ3y1F9rOI/s1600-h/LinqReport.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_76XjFPGwTBQ/Rp7vDtdNqCI/AAAAAAAAAAc/epZ3y1F9rOI/s320/LinqReport.JPG" alt="" id="BLOGGER_PHOTO_ID_5088767475996010530" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-8763749774173118777?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/8763749774173118777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=8763749774173118777' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8763749774173118777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/8763749774173118777'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/quickstart-linq-and-activereports-for.html' title='QuickStart: LINQ and ActiveReports for .NET'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_76XjFPGwTBQ/Rp7vDtdNqCI/AAAAAAAAAAc/epZ3y1F9rOI/s72-c/LinqReport.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-6223693246256439161</id><published>2007-07-17T22:50:00.001-04:00</published><updated>2007-07-22T11:20:12.605-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActiveReports for .NET'/><title type='text'>ActiveReports for .NET and LINQ</title><content type='html'>After reading a blogpost by David, the &lt;a href="http://tiredblogger.wordpress.com/"&gt;TiredBlogger&lt;/a&gt;, I had mentioned to a few coworkers that he had "broke the ActiveReports Design rules". Then James made a post on &lt;a href="http://mrdotnet.wordpress.com/2007/07/17/using-linq-in-activereports/"&gt;his blog&lt;/a&gt; mentioning my comments. Through further discussion with David (via the comments on James's post), I was able to assist him in understanding more about how ActiveReports for .NET works, as well as being to provide an alternate approach to binding the LINQ query to the report.&lt;br /&gt;&lt;br /&gt;I also wrote a sample today at work while testing this using the Northwind database to create a LINQ query and bind it to the ActiveReport. If I get a chance tomorrow, I plan on making this code available here, as well as very basic step-by-step instructions on setting up the NorthwindDataContext I used in this sample.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-6223693246256439161?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/6223693246256439161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=6223693246256439161' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/6223693246256439161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/6223693246256439161'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/activereports-for-net-and-linq.html' title='ActiveReports for .NET and LINQ'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1689813759314934420.post-9025799355089860278</id><published>2007-07-17T22:29:00.001-04:00</published><updated>2007-07-22T11:20:26.563-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='General'/><title type='text'>Taking the plunge...</title><content type='html'>I suppose now is as good a time as any to start blogging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1689813759314934420-9025799355089860278?l=jon-pilgrim.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jon-pilgrim.blogspot.com/feeds/9025799355089860278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1689813759314934420&amp;postID=9025799355089860278' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9025799355089860278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1689813759314934420/posts/default/9025799355089860278'/><link rel='alternate' type='text/html' href='http://jon-pilgrim.blogspot.com/2007/07/taking-plunge.html' title='Taking the plunge...'/><author><name>Jon</name><uri>http://www.blogger.com/profile/13916228028354319765</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
