<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mike Lindegarde... Online</title>
	<atom:link href="http://mlindegarde.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mlindegarde.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 02 Aug 2011 14:22:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mlindegarde.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mike Lindegarde... Online</title>
		<link>http://mlindegarde.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mlindegarde.wordpress.com/osd.xml" title="Mike Lindegarde... Online" />
	<atom:link rel='hub' href='http://mlindegarde.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Continuous Integration for .NET projects using VirtualBox, Ubuntu, Git, Trac, and TeamCity…</title>
		<link>http://mlindegarde.wordpress.com/2010/10/28/net-continuous-integration-with-virtualbox-ubuntu-git-trac-and-teamcity/</link>
		<comments>http://mlindegarde.wordpress.com/2010/10/28/net-continuous-integration-with-virtualbox-ubuntu-git-trac-and-teamcity/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 21:00:02 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General .NET]]></category>
		<category><![CDATA[Slideshow]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[gitosis]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Reminder]]></category>
		<category><![CDATA[TeamCity]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/10/28/net-continuous-integration-with-virtualbox-ubuntu-git-trac-and-teamcity/</guid>
		<description><![CDATA[The purpose of this post is really just to serve as a cheat-sheet for the next time I have to figure this all out (either because I’m doing a fresh install on a new server or because I need to add a new project to the system).&#160; Given the small size of our development shop [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=158&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The purpose of this post is really just to serve as a cheat-sheet for the next time I have to figure this all out (either because I’m doing a fresh install on a new server or because I need to add a new project to the system).&#160; Given the small size of our development shop and the limited demands the plan is to utilize virtualization in an effort to reduce the amount of resources required to get everything up and running.&#160; With that in mind, lets get started…</p>
<div class="home-title">Step 1:&#160; Linux</div>
<p>Being a .NET developer I really wanted to keep everything in a Windows environment; however, it turns out that some of the best tools for version control are Linux based.&#160; Although most of these tools do have Windows ports I decided that the best approach would be to just bite the bullet and use Linux.&#160; While running version control on Linux will next really require a full LAMP (Linux, Apache, MySQL, PHP) you might as well go ahead and get that setup.&#160; Here is what you’ll need:</p>
<ul>
<li><a href="http://www.virtualbox.org/">VirtualBox</a> – When playing with a new OS I prefer to do so on a virtual machine.&#160; This way, if / when I completely screw things up it isn’t a big deal. </li>
<li><a href="http://www.ubuntu.com/">Ubuntu</a> – Ubuntu is currently one of the more popular Linux distributions out there.&#160; Go with the Desktop version if asked to make a choice.&#160; Once you’ve got a firm grasp on what you’re doing you may want to switch over to the server edition:&#160; for now stick with the desktop edition. </li>
</ul>
<p>Installing Ubuntu on a new virtual machine using VirtualBox is fairly straightforward:&#160; just follow the prompts the VirtualBox wizard presents you.&#160; If you get suck, a quick Internet search should help you move along.&#160; My search returned this result:&#160; <a href="http://helpdeskgeek.com/linux-tips/how-to-install-ubuntu-in-virtualbox/">How to install Ubuntu in VirtualBox</a>.&#160; You’ll also need to make sure you <a href="http://www.pcmech.com/article/using-virtualbox-additions-with-ubuntu-10-04/">install the Guest Additions</a> as well.&#160; If you’re a complete Linux rookie like I am, then you’re probably wondering how to switch to the cd drive in the terminal.&#160; In Linux you don’t do something <font color="#666666" face="Courier New">cd E:</font> to get to your CD-ROM drive.&#160; Instead you just switch to the mounting point as you would switch to any other folder.&#160; For me <font color="#666666" face="Courier New">cd /media</font> got me to the place I wanted to be and from there I could use <font color="#666666" face="Courier New">sudo</font> to run the installation scripts with the needed permissions.</p>
<div class="home-title">Step 2:&#160; LAMP</div>
<p>With Ubuntu up and running its time to get Apache, MySQL, and PHP setup on the new virtual machine.&#160; As I said earlier you could probably get away without setting up some of the LAMP components (e.g. MySQL), but getting these things setup on a fresh Ubuntu install is so easy you might as well just do it.&#160; Who knows what you might want to do with the VM in the near future.</p>
<p>Here is an excellent tutorial that will guide you through getting your LAMP setup up and running:&#160; <a href="http://www.hackourlives.com/install-apache-mysql-php-phpmyadmin-lamp-on-ubuntu-10-10/">Install Apache MySQL PHP phpmyadmin (LAMP) on Ubuntu</a>.</p>
<p>Here are some answers to questions you may have:</p>
<ul>
<li><strong>sudo</strong> – This command lets you run things as an administrator.&#160; Without this you may get permission errors when you try to navigate to certain paths or when you try to execute certain commands. </li>
<li><strong>apt-get</strong> – This is the Advanced Packaging Tool that is part of most (if not all) Debian GNU/Linux based Linux distributions&#160; (like Ubuntu).&#160; This is a very handy tool that will ensure all of the necessary dependencies for a given package are installed and help with uninstalling packages in the future.&#160; You should know that this is not the only package tool out there. </li>
<li><strong>gksu gedit</strong> – This command will open the text editor the the permissions you need to change some of the restricted files. </li>
<li><strong>gksu nautilus</strong> – This will give you a file browser with elevated permissions. </li>
</ul>
<div class="home-title">Step 3:&#160; Getting Access to Apache From Windows</div>
<p>Hosting your version control on a Linux VM isn’t going to do you a whole heck of a lot of good if you can’t access it from the Windows machine you’re developing on.&#160; Thankfully VirtualBox makes this a pretty simple task.&#160; As with the previous sections, I’m just going to point you in the right direction (see the notes below before reading the article):&#160; <a href="http://www.fliquidstudios.com/2009/06/18/creating-a-virtual-development-server-using-virtualbox/">Creating a virtual development server using VirtualBox</a>.</p>
<p>Some Notes:</p>
<ul>
<li>I skipped the entire “Configure the network” section and had no problems.&#160; I would recommend only venturing into that section if you run into problems. </li>
<li>Make sure you notice the note in the article talking about using ‘e1000’ instead of ‘pcnet’ if you have an Intel network card.&#160; All four of the computers I’ve done this on had Intel cards. </li>
<li>You will also need to do this for port 22 (SSH) for the GIT server, you might as well do that now as well. </li>
<li>“GuestPort” refers to the port on your Ubuntu VM.&#160; For Apache this should probably stay port 80 </li>
<li>“HostPort” refers to the Windows OS you’re running the VM on.&#160; In all likelihood you’ve got IIS running on port 80, so use port 8080 or some other port you currently don’t have bound to anything else. </li>
</ul>
<p>At this point you should be able to open up your favorite browser in windows, type in “http://localhost:8080” and see the o-so-exciting “It Works!” page from Apache… exciting.</p>
<div class="home-title">Step 4:&#160; Setting up Your Git Server</div>
<p>Okay, so we’ve got VirtualBox running, our Ubuntu VM all setup with a basic LAMP configuration, and you can now access Apache from the outside world (well, anywhere that can access your Windows Host machine that is).&#160; Next up we need some version control.&#160; Generally speaking, you’ve got two options here:&#160; Subversion (SVN) and Git.&#160; Both have fairly strong developer support, however support for Subversion is generally baked into the other tools we’re going to use while Git is not.&#160; Having used both Subversion and Git, I’m going to use Git in this setup.&#160; I prefer Git’s decentralized approach to version control and it seems to be growing in popularity.</p>
<p>After some searching, I found that gitosis is basically your best option for managing your Git repositories in Linux.&#160; What you’ll need:</p>
<ul>
<li><strong>A tutorial</strong> – Again, a link (or two):&#160; <a href="http://www.guztech.nl/wordpress/index.php/2010/02/setting-up-a-git-server-in-ubuntu-with-gitosis-and-using-gitextensions-on-windows/">Setting up a git server in Ubuntu with gitosis and using gitextensions on Windows</a>, and <a href="http://blog.agdunn.net/?p=277">Install (Set Up) GIT and Gitosis on Ubuntu</a>. </li>
<li><a href="http://code.google.com/p/msysgit/"><strong>mysisgit</strong></a><strong> </strong></li>
<li><strong>A SSH key</strong> – Git Bash from the above link can be used to generate your SSH key:&#160; <a href="http://help.github.com/msysgit-key-setup/">Generating SSH keys (Win/msysgit)</a>. </li>
</ul>
<p>It took me a moment or two to fully understand how to manage gitosis so I’ll review that here.&#160; The gitosis-admin repository contains all of the files you need in order to manage the repositories.&#160; If you’ve successfully followed along with the above tutorials you should have that repository cloned o<br />
nto either you Ubuntu VM somewhere or your local host machine.&#160; Make sure you execute the following command on the Ubuntu VM:</p>
<p><font color="#666666" face="Courier New">sudo chmod u+x /var/git/repositories/gitosis-admin.git/hooks/post-update</font></p>
<p>If you do not you will most likely spend a few hours wondering why your changes to the configuration file aren’t taking effect.&#160; If you don’t set the post-update hook to executable then your changes to the config will not actually take effect after the post back to the repository as they should.&#160; Also ensure that you’ve properly forwarded port 22 from you host to the guest (see Step 1).&#160; At this point you should be all set with version control.</p>
<p>One problem I did run into was when I went to move the virtual machine to a different computer I could not re-clone the gitosis-admin repository because the SSH key for the new machine was different than the one I originally used when setting up gitosis.&#160; Here is how to solve that problem:</p>
<ul>
<li>Open a terminal and execute the following command:&#160; <font color="#666666" face="Courier New">sudo bash</font> (the root user is by default locked in Ubuntu so you cannot just switch to the root user using <font color="#666666" face="Courier New">su</font>) </li>
<li>Navigate to <font color="#666666" face="Courier New">/home/git/.ssh/ </font></li>
<li>Open authorized_keys using gedit (<font color="#666666" face="Courier New">gedit authorized_keys</font>) </li>
<li>Replace the existing username with the new username in your newly generated SSH public key file </li>
<li>Replace the ssh-rsa key with the key found in your new .pub file. </li>
<li>Navigate to <font color="#666666" face="Courier New">/home/git/repositories/gitosis-admin.git </font></li>
<li>Open gitosis.conf using gedit </li>
<li>Add your new username to the members of the gitosis-admin group in the config file. </li>
<li>Using Git GUI or Git Bash to clone the gitosis-admin repository to your new machine. </li>
</ul>
<div class="home-title">Step 5:&#160; Trac</div>
<p>Okay, so we’ve installed VirtualBox, created an Ubuntu virtual machine, configured the VM with a basic LAMP setup, made Apache and SSH accessible from the Windows host machine, and setup GIT for version control.&#160; Next up:&#160; installing Trac for basic project / ticket management.&#160; The good news is that installing Trac is trivial if done correctly.&#160; The bad news is that Trac does not have out of the box support for GIT. </p>
<p>It is very important that you do <strong><u>NOT</u></strong> use sudo apt-get install trac.&#160; This will install Trac 0.11.7 and we want Trac 0.12 (the latest version).&#160; This is where <font color="#666666" face="Courier New">easy_install</font> comes into play.&#160; Here is a list of resources I used to get Trac 0.12 installed and configured:</p>
<ul>
<li><a href="http://trac.edgewall.org/wiki/Ubuntu-10.04-Bazaar">Install Trac 0.12 with Bazaar, MySQL and Mod_WSGI on Ubuntu 10.04</a> – The only part of this article you should care about is where it shows you how to use easy_install to get Trac 0.12 installed</li>
<li><a href="http://philipatswarchy.wordpress.com/2006/12/17/how-to-install-trac-on-ubuntu/">How to install Trac on Ubuntu</a> – The important parts here are step 2 (setting ownership of the Trac folder) and step 6 (creating the Trac environments).</li>
</ul>
<p><strong>NOTE:</strong>&#160; If prompted, do not configure your version control at this time.&#160; We’ll tackle that issue in the next step.</p>
<p>If you want you can run Trac using its stand alone server (<font color="#666666" face="Courier New">tracd</font>), one of the CGI methods, or using mod_python.&#160; I’ve chosen to go the mod_python route so that I have the full power of Apache at my disposal without the performance hit the CGI and FastCGI methods bring to the table.&#160; Here is an excellent resource for running Trac with mod_python:&#160; <a href="http://nanosleep.org/proj/trac-git-plugin/wiki/TracModPython">Trac and mod_python</a>.&#160; Here is what my default site virtual host file looks like after adding the necessary elements for Trac:</p>
<p> [xml] &lt;VirtualHost *:80&gt; 	ServerAdmin webmaster@localhost  	DocumentRoot /var/www 	&lt;Directory /&gt; 		Options FollowSymLinks 		AllowOverride None 	&lt;/Directory&gt; 	&lt;Directory /var/www/&gt; 		Options Indexes FollowSymLinks MultiViews 		AllowOverride None 		Order allow,deny 		allow from all 	&lt;/Directory&gt;  	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 	&lt;Directory &quot;/usr/lib/cgi-bin&quot;&gt; 		AllowOverride None 		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 		Order allow,deny 		Allow from all 	&lt;/Directory&gt;  	ErrorLog ${APACHE_LOG_DIR}/error.log  	# Possible values include: debug, info, notice, warn, error, crit, 	# alert, emerg. 	LogLevel warn  	CustomLog ${APACHE_LOG_DIR}/access.log combined      Alias /doc/ &quot;/usr/share/doc/&quot;     &lt;Directory &quot;/usr/share/doc/&quot;&gt; 	Options Indexes MultiViews FollowSymLinks 	AllowOverride None 	Order deny,allow 	Deny from all 	Allow from 127.0.0.0/255.0.0.0 ::1/128     &lt;/Directory&gt;  	&lt;Location /trac&gt; 		SetHandler mod_python 		PythonInterpreter main_interpreter 		PythonHandler trac.web.modpython_frontend 		PythonOption TracEnvParentDir /home/trac/projects 		PythonOption TracUriRoot /trac 	&lt;/Location&gt;  &lt;/VirtualHost&gt; [/xml] </p>
<p>If you’re having trouble finding the file to modify, it should be located at <font color="#666666" face="Courier New">/etc/apache2/sites-available/default</font>.</p>
<p>At this point you should be able to open a browser on your host machine and navigate to http://localhost:8080/trac and see a list of the Trac environments you’ve got setup.&#160; The next step is to get the Git plugin configured and working…</p>
<div class="home-title">Setup 6:&#160; Trac Git Plugin</div>
<p>Getting this figured out and configured for the first time was no walk in the part.&#160; Originally I had installed Trac using <font color="#666666" face="Courier New">apt-get</font> which lead to me having to uninstall Trac and then re-installing it using the <font color="#666666" face="Courier New">easy_install</font> method outlined above so that I would have version 0.12.&#160; The plugin is available for Trac 0.11, but why use outdated software on a fresh install?&#160; Once all of the versions were properly matched, getting the plugin up and running was pretty smooth sailing.&#160; Here is what you’ll need:</p>
<p><a href="http://trac-hacks.org/wiki/GitPlugin">Instruction for Installing the plugin and configuring your project</a></p>
<p>That one link should do it for you.&#160; Keep in mind that using <font color="#666666" face="Courier New">easy_install</font> will install the plugin globally so you’ll need to specifically enable the plugin in each project’s trac.ini file.&#160; Make sure you install for Trac 0.12.&#160; If you visit your Trac site (e.g. http://localhost:8080/trac/myProject) and get errors one of the following issues could be your problem (live and learn…):</p>
<ul>
<li>You need to make sure Trac has the necessary permissions.&#160; using <font color="#666666" face="Courier New">chown</font> or <font color="#666666" face="Courier New">cmod</font> on the appropriate directories should solve that problem.</li>
<li>You have mismatch version of Trac and the plugin.&#160; This resulted in error message about a type not being parse-able or something like that.&#160; To remove the old version just use the find command (<font color="#666666" face="Courier New">find / –iname ‘tracegit*’</font>) and remove all references of it.&#160; I found myself in this trouble after using <font color="#666666" face="Courier New">sudo apt-get install TracGit</font>.</li>
<li>You did not add <font color="#666666" face="Courier New">tracext.git.* = enabled</font> to the<font color="#666666" face="Courier New"> [components]</font> section of the trac.ini file for your project (located in the <font color="#666666" face="Courier New">/home/trac/projects/myProject/conf</font> folder).</li>
</ul>
<p>Okay, so that tackles using Trac with Git.</p>
<div class="home-title">Step 7:&#160; Automated build with TeamCity</div>
<p>The last piece to this rather long puzzle is getting the automated build up and running.&#160; As is the case with just about everything I’ve touched on so far:&#160; I’m no expert when it comes to TeamCity.&#160; Some intuitive guess work was all it took to get TeamCity up and running.&#160; First you’ll need to <a href="http://www.jetbrains.com/teamcity/">download TeamCity</a>.&#160; With the obvious step out of the way go ahead and install using whatever port works for you.&#160; This process is pretty straight forward.</p>
<p>Once you’ve created your admin account you’ll need to configure your first project.&#160; Configuration is a 7 step process.&#160; Step 1 (General Settings) shouldn’t require any help.&#160; When you get to Step 2 you’ll need to configure the VCS root.&#160; Here is the summary of the settings that worked for me:</p>
<ul>
<li><strong>Type of VCS</strong>:&#160; Git (JetBrains)</li>
<li><strong>Fetch URL:</strong>&#160; <a href="mailto:git@localhost:yourProject.git">git@localhost:yourProject.git</a> (whatever you were using with either the Git Bash or Git GUI in Step 4 above)</li>
<li><strong>Clone Repository To</strong>:&#160; Whatever name works for you</li>
<li><strong>User Name Style</strong>:&#160; Email</li>
<li><strong>Authentication Methods</strong>:&#160; Private Key</li>
<li><strong>User name:</strong>&#160; git</li>
<li><strong>Private Key Path</strong>:&#160; <font color="#666666" face="Courier New">c:\Users\username\.ssh\id_rsa</font></li>
<li><strong>Passphrase</strong>:&#160; yourpassphrase (again, from Step 4)</li>
</ul>
<p>Leave the rest of the fields alone and test your connection.&#160; The above settings worked for me and may not be exactly what you need:&#160; hopefully it works for you.</p>
<p>The next step is the runner.&#160; For this tutorial we’ll use a Visual Studio (sln) runner.&#160; FYI, when the field label says “something path:” it really means the full file name and not just the path, so be sure that you actually include the file name (<font color="#666666" face="Courier New">e.g. c:\CI Builds\Cms\Cms.sln</font>).&#160; Originally I was just putting that path which lead to problems.</p>
<p>One of the big benefits of this setup is automated test runs.&#160; Although Visual Studio 2010 now features integrated unit testing I still find myself using NUnit.&#160; Properly configuring NUnit for the runner is again pretty straight forward.&#160; As with the solution path, be sure to include the actual file name in the “Run tests from:” field using a wild card as necessary (<font color="#666666" face="Courier New">e.g. c:\CI Builds\Cms\Cms.Library.Tests\bin\Release\*.tests.dll</font>).</p>
<p>The last step I needed was Step 4, Build Triggering.&#160; I simply set TeamCity to trigger a build whenever new code is pushed to the Git repository.&#160; Once you’ve saved your configuration you should be able to click the run button and watch it pull down the latest source and run the tests.&#160; That, or see an error.&#160; Thankfully TeamCity’s error messages are pretty helpful and they should help you resolve any problems in fairly short order.</p>
<div class="home-title">Step 8:&#160; Further Exercises</div>
<p>At this point you should have VirtualBox running your Ubuntu VM with a basic LAMP setup, GIT, and Trac, and TeamCity running your automated builds / unit tests.&#160; There are however a few lingering issues:</p>
<ul>
<li>The VM needs to be running as a service so that we don’t have to leave the server logged in.</li>
<li>TeamCity needs to be configured to use a remote build agent (for various reasons).</li>
<li>I have not put any security into place:&#160; clearly this is important.</li>
</ul>
<p>These last few problems shouldn’t be to hard to tackle.&#160; An article about configuring VirtualBox to run a VM as a service using VirtualBox’s Remove View feature and some other tools can be found here:&#160; <a href="http://thelivedevil.com/virtualbox/how-to-run-virtualbox-as-service-in-windows/">How to run VirtaulBox as a service in Windows</a>.&#160; Configuring the remote build agent for TeamCity should also be pretty cut and dry.&#160; Look for a future blog post outlining these final steps sometime in the near future… maybe…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=158&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/10/28/net-continuous-integration-with-virtualbox-ubuntu-git-trac-and-teamcity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Pinning Eclipse to Windows 7 Taskbar</title>
		<link>http://mlindegarde.wordpress.com/2010/10/05/pinning-eclipse-to-windows-7-taskbar/</link>
		<comments>http://mlindegarde.wordpress.com/2010/10/05/pinning-eclipse-to-windows-7-taskbar/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 07:07:26 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/10/05/pinning-eclipse-to-windows-7-taskbar/</guid>
		<description><![CDATA[I’ve become a pretty big fan of pinning my most frequently used applications / tools to the taskbar so I was pretty annoyed when I could not get the Eclipse IDE to pin to the Taskbar. It turns out that this problem is caused by the Eclipse IDE not knowing where Java is installed.&#160; To [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=157&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I’ve become a pretty big fan of pinning my most frequently used applications / tools to the taskbar so I was pretty annoyed when I could not get the Eclipse IDE to pin to the Taskbar.</p>
<p>It turns out that this problem is caused by the Eclipse IDE not knowing where Java is installed.&#160; To resolve this problem you just need to edit the <em>Eclipse.ini</em> file (which is found in the same folder as your <em>eclipse.exe</em> file).&#160; Open the <em>Eclipse.ini</em> file in your favorite text editor and add the following two lines:</p>
<p>-VM   <br />C:\Program Files\Java\jre6\bin</p>
<p>Of course this is assuming that you do indeed have Java installed in the above location.&#160; If you’ve installed it somewhere else, just alter the path as needed.</p>
<p>I’m using Eclipse Helios (3.6) on Windows 7 Ultimate 64 bit.&#160; I can’t promise this will work on any other configuration; however, I don’t see why it wouldn’t.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=157&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/10/05/pinning-eclipse-to-windows-7-taskbar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Find a Column in a Table When You Know Next to Nothing</title>
		<link>http://mlindegarde.wordpress.com/2010/10/04/find-a-column-in-a-table-when-you-know-next-to-nothing/</link>
		<comments>http://mlindegarde.wordpress.com/2010/10/04/find-a-column-in-a-table-when-you-know-next-to-nothing/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 20:22:50 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Reminder]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/10/04/find-a-column-in-a-table-when-you-know-next-to-nothing/</guid>
		<description><![CDATA[While I love my job and all, I cannot say I&#8217;m a fan of endlessly searching through a cryptic database trying to decipher what the hell it means. Especially when there is no one around to explain to me why on Earth every column that looks promising has exactly zero records in its associated table. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=152&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
While I love my job and all, I cannot say I&#8217;m a fan of endlessly searching through a cryptic database trying to decipher what the hell it means.  Especially when there is no one around to explain to me why on Earth every column that looks promising has exactly zero records in its associated table.
</p>
<p>
It wasn&#8217;t long before I turned to the magic machine known as Google looking for something to help me tame the wild beast of a database.  The search results directed me to an <a href="http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/">extremely helpful blog entry</a> by Pinal Dave.&#160; In it he outlines the following SQL Query which will search all of the tables in a given database for a column with a given name:
</p>
<p>
[sql]<br />
USE SomeDb;</p>
<p>SELECT<br />
    t.name AS table_name,<br />
    SCHEMA_NAME(schema_id) AS schema_name,<br />
    c.name AS column_name</p>
<p>FROM<br />
    sys.tables AS t INNER JOIN sys.columns c<br />
        ON t.OBJECT_ID = c.OBJECT_ID</p>
<p>WHERE<br />
    c.name LIKE &#8216;%FieldName%&#8217;</p>
<p>ORDER BY<br />
    schema_name,<br />
    table_name;<br />
[/sql]
</p>
<p>This query has been extremely helpful in helping me track down data.&#160; Without this tidbit of information I’d probably still be looking for data the boss asked for months ago.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=152&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/10/04/find-a-column-in-a-table-when-you-know-next-to-nothing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>The var Keyword is for Anonymous Types and the Lazy</title>
		<link>http://mlindegarde.wordpress.com/2010/09/30/the-var-keyword-is-for-anonymous-types-and-the-lazy/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/30/the-var-keyword-is-for-anonymous-types-and-the-lazy/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 16:09:40 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General .NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/30/the-var-keyword-is-for-anonymous-types-and-the-lazy/</guid>
		<description><![CDATA[I recently started working on a project that uses the var keyword extensively.&#160; Hell, I’m willing to bet 95% of the reference variables declared by anyone other than me are declared using the var keyword.&#160; I get that the var keyword can save a ton of typing (especially in a framework that uses generics extensively).&#160; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=150&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently started working on a project that uses the <font color="#0000ff" face="Courier New"><strong>var</strong></font> keyword extensively.&#160; Hell, I’m willing to bet 95% of the reference variables declared by anyone other than me are declared using the <font color="#0000ff" face="Courier New"><strong>var</strong></font> keyword.&#160; I get that the <font color="#0000ff" face="Courier New"><strong>var</strong></font> keyword can save a ton of typing (especially in a framework that uses generics extensively).&#160; I get that there is absolutely zero performance difference between using <font color="#0000ff" face="Courier New"><strong>var</strong></font> and the actual name of the object type.&#160; What I don’t get is how people can argue that using the keyword <font color="#0000ff" face="Courier New"><strong>var</strong></font> makes code more readable.&#160; The project architect recently posted about a new class added to the project using the following code:</p>
<p> [csharp] var url = View.PopulateFullLink(Navigator.ResetLink(Model)); [/csharp] </p>
<p>Can anyone tell me what data type <font face="Courier New">url</font> is?&#160; Is it a <font color="#0000ff" face="Courier New">Uri</font>?&#160; Is it a string?&#160; I don’t know:&#160; you cannot tell from just looking at that code.&#160; I understand that in Visual Studio I can figure out the data type fairly easily by hovering over the variable or by using any of the other contextual support tools the IDE offers.&#160; Unfortunately this code was posted on the Internet which does not offer that sort of functionality.&#160; Has the development world forgotten that not all code is viewed inside of an IDE?&#160; In the end it turns out that <font face="Courier New">url</font> is a <font color="#0000ff" face="Courier New">string</font>.&#160; Would it really have been that much more typing to explicitly declare the data type instead of using <font color="#0000ff" face="Courier New"><strong>var</strong></font>?</p>
<p><font color="#0000ff" face="Courier New"><strong>var</strong></font> has its place and that place is with anonymous types (which, frankly, I don’t use much outside of Linq).&#160; The <strong><font color="#0000ff" face="Courier New">var</font></strong> keyword is very well suited for that purpose:&#160; by definition anonymous types don’t have a type name that you could use to declare the variable.&#160; I accept that I’ve lost the Hungarian notation battle; however, I’m not willing to completely let go of any mention of a variable’s data type anywhere in the code.&#160; Give me something I can look at to determine a given object’s data type without having to depend on an IDE.&#160; Some of us still look at code in Notepad (Notepad++ actually), code comparison tools, on the web, and applications not name Visual Studio.&#160; Stop being so damn lazy… please.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=150&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/30/the-var-keyword-is-for-anonymous-types-and-the-lazy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Studio 2010, JavaScript, Anonymous Code, and Eval Code</title>
		<link>http://mlindegarde.wordpress.com/2010/09/23/visual-studio-2010-javascript-anonymous-code-and-eval-code/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/23/visual-studio-2010-javascript-anonymous-code-and-eval-code/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 14:09:00 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[IE9]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Reminder]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/23/visual-studio-2010-javascript-anonymous-code-and-eval-code/</guid>
		<description><![CDATA[After upgrading to IE9 I noticed that I was once again having a problem that I first saw after upgrading to Visual Studio 2010:&#160; whenever I debug a project that involved a lot of JavaScript it would take forever for the page to load as the Visual Studio IDE generated what seemed like thousands of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=148&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After upgrading to IE9 I noticed that I was once again having a problem that I first saw after upgrading to Visual Studio 2010:&#160; whenever I debug a project that involved a lot of JavaScript it would take forever for the page to load as the Visual Studio IDE generated what seemed like thousands of temporary JavaScript files.&#160; In IE6 and IE7 you could easily resolve this problem by disabling the debug features from within the settings in the browser (<em>IE –&gt; Tools –&gt; Internet Options –&gt; Advanced –&gt; Browsing –&gt; Disable Script Debugging (Internet Explorer)</em>).&#160; While this option still exists in IE8 and IE9, it no longer actually does anything when you launch your site from within Visual Studio 2008 or Visual Studio 2010.</p>
<p>The developers at Microsoft thought it would be a great idea to automatically enable JavaScript debugging for you when you launch your site from Visual Studio regardless of what settings you have in Internet Explorer.&#160; While this may be handy for some, it’s a real pain in the ass for those of use that have a lot of scripting in our projects.&#160; Unfortunately there is no simple setting in Visual Studio to get around this; however, there are at least two workarounds that I have found.</p>
<div class="home-title">Enable Silverlight Debugging</div>
<p>The first method is to enable Silverlight debugging for your project.&#160; The script debugger and Silverlight debugger are mutually exclusive and only one debugger can attach to a process at a time.&#160; This means that in order for the Silverlight debugger to attach to the IE process, the script debugger must be enabled.&#160; You can turn on Silverlight debugger as follows:</p>
<ul>
<li>For Web Applications:&#160; <em>Project –&gt; Properties –&gt; Web</em> – scroll to the bottom and check the Silverlight box</li>
<li>For Websites:&#160; <em>Web Site –&gt; Properties –&gt; Start Options</em> – again, scroll to the bottom and check the Silverlight box</li>
</ul>
<div class="home-title">Edit the Registry</div>
<p>The second method (which was actually the first method I found) is to actually modify the Visual Studio settings in the registry.&#160; I’ve found that this seems to work for both Visual Studio 2008 and Visual Studio 2010.&#160; You can find the <a href="http://blogs.msdn.com/b/greggm/archive/2009/04/06/disabling-script-debugging-in-vs-2008-ie8.aspx">original source of this information on MSDN website</a>.&#160; Given that this problem has existed since IE8 and Visual Studio 2008, I don’t know why they haven’t implemented a more elegant solution in Visual Studio 2010 and IE9 (i.e. go back to the way it was in IE7 where the setting in the browser was actually honored).</p>
<p>To disable all script debugging via the registry use a 32-bit command prompt (if you’re running a 64 bit flavor of Windows:&#160; <em>start –&gt; run, c:\windows\syswow64\cmd.exe</em>) to execute the following command:</p>
<blockquote><p>reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f</p>
</blockquote>
<p>If you’re using Visual Studio 2010 instead of 2008, replace the “9.0” with “10.0”.&#160; If you’re using Visual Web Developer Express then you’ll need to replace “Visual Studio” with “VWDExpress”.&#160; To undo what you’ve just done, use the following command:</p>
<blockquote><p>reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {170EC3FC-4E80-40AB-A85A-55900C7C70DE} /f</p>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=148&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/23/visual-studio-2010-javascript-anonymous-code-and-eval-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>TcpClient, MemoryStream, and Some Lessons Learned</title>
		<link>http://mlindegarde.wordpress.com/2010/09/16/tcpclient-memorystream-and-some-lessons-learned/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/16/tcpclient-memorystream-and-some-lessons-learned/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 15:44:50 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General .NET]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[MemoryStream]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TCP / IP]]></category>
		<category><![CDATA[TcpClient]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/16/tcpclient-memorystream-and-some-lessons-learned/</guid>
		<description><![CDATA[Using TcpClient Asynchronously Can Result in Bundled Messages… The last time I did socket programming it was in C using the Win32 API.&#160; Learning to do the same thing with the .Net framework has presented some unexpected challenges.&#160; Given the number of users the system I developing might have I decided to take the Asynchronous [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=146&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="home-title">Using TcpClient Asynchronously Can Result in Bundled Messages…</div>
<p>The last time I did socket programming it was in C using the Win32 API.&#160; Learning to do the same thing with the .Net framework has presented some unexpected challenges.&#160; Given the number of users the system I developing might have I decided to take the Asynchronous approach using the BeginXXX and EndXXX methods with callbacks.&#160; As long as you’re familiar with how .Net handles asynchronous callbacks, using the event driven approach really isn’t that hard to get going.</p>
<p>However, I was surprised to find that your reads and writes won’t always match up 1 to 1.&#160; If your system sends several messages quickly, then those multiple calls to BeginWrite might result in just a single ReadDataComplete event on the other side with your single buffer containing several messages.&#160; Although this is pretty obvious now, I didn’t see anything mentioning that this would happen in the examples I reviewed.&#160; For the longest time I was wondering what on Earth was happening to my missing messages:&#160; they were sitting in the buffer waiting to be read, I just didn’t know they were there.</p>
<div class="home-title">MemoryStream and it’s Actual Size…</div>
<p>Another lesson learned here was that MemoryStream grows in 256 byte increments (or at least it does on my machine).&#160; If you write 24 bytes to a MemoryStream and then use MemoryStream.Length or MemoryStream.GetBuffer().Length you’ll most likely end up with something that is a multiple of 256 which is not the actual number of bytes you’ve written to the buffer.&#160; To get the actual number of bytes you’ve written to the buffer I’ve found you can use MemoryStream.Position.&#160; This method will give you the cursor position in the stream in bytes which should give you the number you’re most likely after.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=146&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/16/tcpclient-memorystream-and-some-lessons-learned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Passing Parameters into Silverlight from HTML</title>
		<link>http://mlindegarde.wordpress.com/2010/09/08/passing-parameters-into-silverlight-from-html/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/08/passing-parameters-into-silverlight-from-html/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 18:53:06 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[initParams]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/08/passing-parameters-into-silverlight-from-html/</guid>
		<description><![CDATA[Passing values from the server-side into a Silverlight application on the client-side is a pretty common task.&#160; You might need to set the root URI for some resources, pass in a username, etc..&#160; Fortunately passing parameters from HTML to Silverlight is a fairly trivial task: [html] &#60;object data=&#34;data:application/x-silverlight-2,&#34; type=&#34;application/x-silverlight-2&#34; width=&#34;100%&#34; height=&#34;100%&#34;&#62; &#60;param name=&#34;source&#34; value=&#34;ClientBin/DeepZoomViewer.xap&#34; /&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=139&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Passing values from the server-side into a Silverlight application on the client-side is a pretty common task.&#160; You might need to set the root URI for some resources, pass in a username, etc..&#160; Fortunately passing parameters from HTML to Silverlight is a fairly trivial task:</p>
<p>
[html]<br />
&lt;object data=&quot;data:application/x-silverlight-2,&quot; type=&quot;application/x-silverlight-2&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />
 	&lt;param name=&quot;source&quot; value=&quot;ClientBin/DeepZoomViewer.xap&quot; /&gt;<br />
 	&lt;param name=&quot;background&quot; value=&quot;white&quot; /&gt;<br />
 	&lt;param name=&quot;minRuntimeVersion&quot; value=&quot;3.0.40818.0&quot; /&gt;<br />
 	&lt;param name=&quot;autoUpgrade&quot; value=&quot;true&quot; /&gt;<br />
 	&lt;param name=&quot;initParams&quot; value=&quot;DeepZoomImageUri=/GeneratedImages/dzc_output.xml,value2=some-value&quot; /&gt;<br />
 	&lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40818.0&quot; style=&quot;text-decoration:none&quot;&gt;<br />
  		&lt;img src=&quot;http://go.microsoft.com/fwlink/?LinkId=161376&quot; alt=&quot;Get Microsoft Silverlight&quot; style=&quot;border-style:none&quot; /&gt;<br />
 	&lt;/a&gt;<br />
&lt;/object&gt;<br />
[/html]
</p>
<p>As you can see, the initParams parameter is used to pass values into Silverlight.&#160; Multiple values are separated by camas.&#160; You can then access these values from within your Silverlight application as follows (note:  The values will come in as strings.  You will need to convert the data type according to your needs):</p>
<p>
[csharp]<br />
private void Application_Startup(object sender, StartupEventArgs e)<br />
{<br />
 	this.RootVisual = new DeepZoomViewer();</p>
<p>  	if (e.InitParams != null)<br />
	{<br />
 		string param_1 = e.InitParams[&quot;DeepZoomImageUri&quot;];<br />
 		string param_2 = e.InitParams[&quot;value2&quot;];<br />
 	}<br />
}<br />
[/csharp]
</p>
<p>If you are using the asp:Silverlight control you can just use the InitParams attribute of that control as follows:</p>
<p> [xml] &lt;asp:Silverlight ID=&quot;slControl1&quot; InitParameters=&quot;param1=value1,param2=value2&quot; runat=&quot;server&quot; /&gt; [/xml] </p>
<p>However, if you poke around the Silverlight 3.0 and 4.0 SDKs you’ll notice that the System.Web.Silverlight assembly is missing.&#160; According to <a href="http://10rem.net/blog/2009/07/10/what-happened-to-the-aspsilverlight-control">Pete Brown</a> (and other resources), this control is no longer part of the core SDK and you should switch from using the server side control to using the object tag approach or a JavaScript based approach.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=139&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/08/passing-parameters-into-silverlight-from-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Binding to User Control Properties in WCF</title>
		<link>http://mlindegarde.wordpress.com/2010/09/08/binding-to-control-properties-in-wcf/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/08/binding-to-control-properties-in-wcf/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:28:17 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Binding to Properties]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[MVP]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/08/binding-to-control-properties-in-wcf/</guid>
		<description><![CDATA[If you’re anything like me then one of the first challenges you’re going to face when starting out with WCF is figuring out how to bind to a proper in your control’s code behind.  Figuring this out isn’t as obvious as it should be. It turns out there are at least two ways to accomplish [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=125&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you’re anything like me then one of the first challenges you’re going to face when starting out with WCF is figuring out how to bind to a proper in your control’s code behind.  Figuring this out isn’t as obvious as it should be.</p>
<p>It turns out there are at least two ways to accomplish this goal: one is to name your root element and the other is to set the data context of your control.  I’ll show you both ways…</p>
<div class="home-title">Naming Your Root Element</div>
<p>[xml]<br />
&lt;UserControl<br />
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;<br />
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;<br />
    xmlns:vsm=&quot;clr-namespace:System.Windows;assembly=System.Windows&quot;<br />
    xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;<br />
    xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;<br />
    mc:Ignorable=&quot;d&quot;<br />
    x:Name=&quot;myControl&quot;&gt;<br />
[/xml]</p>
<p>You then access the property in your code behind like so:</p>
<p>[xml]<br />
&lt;TextBox Text=&quot;{Binding MyLocalProperty, ElementName=myRoot }&quot; /&gt;<br />
[/xml]</p>
<p>While this method is pretty easy to implement it isn’t without it’s shortcomings.  I believe that if you name your root element in your UserControl and then attempt to next multiple instances of your control in another control you’ll start to run into naming conflicts that will either keep your project from building or result in some odd runtime issues.  While this method works, I prefer the next method.</p>
<div class="home-title">Set the Data Context for Your Control</div>
<p>[xml]<br />
&lt;UserControl<br />
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;<br />
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;<br />
    xmlns:vsm=&quot;clr-namespace:System.Windows;assembly=System.Windows&quot;<br />
    xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;<br />
    xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;<br />
    mc:Ignorable=&quot;d&quot;<br />
    xmlns:i=&quot;clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity&quot;<br />
    xmlns:ic=&quot;clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions&quot;<br />
    xmlns:local=&quot;clr-namespace:DeepZoomProject&quot;<br />
    x:Class=&quot;DeepZoomViewer.Silverlight.DeepZoomViewer&quot;</p>
<p>    DataContext=&quot;{Binding RelativeSource={RelativeSource Self}}&quot;</p>
<p>    d:DesignHeight=&quot;433&quot;<br />
    d:DesignWidth=&quot;579&quot;&gt;<br />
[/xml]</p>
<p>You then access the property in your code behind like so:</p>
<p>[xml]<br />
&lt;TextBox x:Name=&quot;txtExample1&quot; Text=&quot;{Binding MyLocalProperty}&quot; &gt;<br />
[/xml]</p>
<p>The initial line of code to setup the DataContext property in your root element may look a bit daunting at first, but it makes binding to the actual property even easier than the previous method.  This approach has the benefit of not requiring you to explicitly name your control.</p>
<p>Binding to properties in your code behind is a pretty important functionality to have if you’re using an architecture that implements a controller or presenter pattern and yet it isn’t as clear how to properly do this as it should be.  I hope this helps you move on to more important challenges.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=125&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/08/binding-to-control-properties-in-wcf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Android Game Develop&#8230; Let the Games Begin</title>
		<link>http://mlindegarde.wordpress.com/2010/09/06/android-game-develop-let-the-games-begin/</link>
		<comments>http://mlindegarde.wordpress.com/2010/09/06/android-game-develop-let-the-games-begin/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 07:07:48 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Slideshow]]></category>
		<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile Development]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/09/06/android-game-develop-let-the-games-begin/</guid>
		<description><![CDATA[The very first programming I ever did was really just modifying the game Nibbles using the QBasic editor while I should have been learning to type in 7th grade computer class.  A few years later I moved to C / C++ and again learned the language while making my first real game using DirectX 3. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=118&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The very first programming I ever did was really just modifying the game Nibbles using the QBasic editor while I should have been learning to type in 7th grade computer class.  A few years later I moved to C / C++ and again learned the language while making my first real game using DirectX 3.</p>
<p>With the current job marked focused on web development, its been a little while since I last dabbled in game programming (I did some 3D engine development in OpenGL while in college).  With the growing interest in mobile applications I again have the opportunity to learn a new platform through game development.</p>
<p>Over the next few months I’ll be bringing the game I first made in C / C++ 12 years ago to the Android platform.  Although the game will be 2D, I’m still planning to use OpenGL (orthogonal projection).  While not using OpenGL would probably allow me to learn more skills that would be more applicable in the business world… screw it… I want to make a game.</p>
<p>I first learned C / C++ using noting but tutorials I found on the web and support from forums such as <a href="http://www.gamedev.net">GameDev.Net</a> (it was actually called something else at the time but I can’t recall what exactly).  I’m planning to tackle this project much the same way.  I haven’t visited <a href="http://ww.gamedev.et">GameDev.Net</a> much since I registered back in ‘99; however, I suspect that’ll change soon.</p>
<p>As I learn more about developing games on the Android platform you can be sure that I’ll share bits and pieces of what I learn along the way (I’m considering release the game to the Android Market so I won’t be releasing full code).  It’s my turn to help other developers just as others helped me.</p>
<p>With all that said, the first useful thing I learned:  setting your window to be full screen can be done two ways.  You can set it in code or you can set it in the AndroidManifest.xml file.  According to <a href="http://developer.android.com/guide/appendix/faq/commontasks.html">Google</a>, setting up your window in the manifest file is actually the preferred method.  Here is an example of setting up the manifest to get a full screen window that will hide the notification bar (notice the addition / modification of the android:theme attribute in the application element):</p>
<p>[java]<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;<br />
   package=&quot;ph.testgame1&quot;<br />
   android:versionCode=&quot;1&quot;<br />
   android:versionName=&quot;1.0&quot;&gt;<br />
   &lt;application android:icon=&quot;@drawable/icon&quot;<br />
      android:label=&quot;@string/app_name&quot;<br />
      android:theme=&quot;@android:style/Theme.NoTitleBar.Fullscreen&quot;&gt;<br />
      &lt;activity android:name=&quot;.defaultActivity&quot;<br />
         android:label=&quot;@string/app_name&quot;&gt;<br />
         &lt;intent-filter&gt;<br />
            &lt;action android:name=&quot;android.intent.action.MAIN&quot; /&gt;<br />
            &lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&gt;<br />
         &lt;/intent-filter&gt;<br />
      &lt;/activity&gt;<br />
   &lt;/application&gt;<br />
&lt;/manifest&gt;<br />
[/java]</p>
<p>If you really want to set it in code instead of the manifest you can use the following code in the onCreate method of your start up activity:</p>
<p>[java]<br />
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,<br />
   WindowManager.LayoutParams.FLAG_FULLSCREEN );<br />
[/java]</p>
<p>Expect the next Android game programming article to be more how-to and a lot less story.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=118&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/09/06/android-game-develop-let-the-games-begin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
		<item>
		<title>Origami:  An Introduction to a Hobby</title>
		<link>http://mlindegarde.wordpress.com/2010/08/31/origami-an-introduction-to-a-hobby/</link>
		<comments>http://mlindegarde.wordpress.com/2010/08/31/origami-an-introduction-to-a-hobby/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 18:12:19 +0000</pubDate>
		<dc:creator>mlindegarde</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Origami]]></category>
		<category><![CDATA[Slideshow]]></category>

		<guid isPermaLink="false">http://blog.mikelindegarde.com/2010/08/31/origami-an-introduction-to-a-hobby/</guid>
		<description><![CDATA[While programming is both my source of income and a hobby of mine, it is not my only hobby nor was it my first hobby.&#160; My mother first introduced me to origami when I was very young.&#160; Although I don’t think my mother was really “into” origami (or if she even really knew much about [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=84&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While programming is both my source of income and a hobby of mine, it is not my only hobby nor was it my first hobby.&#160; My mother first introduced me to origami when I was very young.&#160; Although I don’t think my mother was really “into” origami (or if she even really knew much about origami), I do recall her making the classic cube shaped balloon out of square candy wrappers.&#160; That was most likely the first thing I ever folded.&#160; A few years later I met Rouhollah Rahmani in Mrs. Blair’s second grade class at Loncoy Elementary.&#160; Rouhollah is actually the one that gave me my first full introduction into the art of origami.&#160; I’m pretty sure we covered all of the basic models that year:&#160; leaping frog, crane, seal, and a whole lot of paper airplanes (paper airplane battles over the vents from the heater… good times).</p>
<p>Throughout school (all the way through college) I continued to fold various models I had memorized from books barrowed from the Kent Free Library (primarily <a href="http://www.amazon.com/Origami-Enthusiast-John-Montroll/dp/0486237990/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1283277907&amp;sr=1-1">Origami for the Enthusiast</a> and <a href="http://www.amazon.com/Animal-Origami-Enthusiast-Step---Step/dp/0486247929/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1283277907&amp;sr=1-2">Animal Origami for the Enthusiast</a> both by Montroll).&#160; If it weren’t for those trips to the library with my grandmother I’m not sure my interest in Origami would have ever gone beyond what Rouhollah had shown me.&#160; For some reason I can’t remember where I put my wallet but I have no trouble memorizing the 50 or so steps required to fold an origami spider:&#160; I’d prefer to be able to remember where I put my wallet.</p>
<p>For me origami is a hobby and a way to work through difficult problems or to pass the time.&#160; For others origami is an art form and when you see their work there is no denying that origami is indeed an art.&#160; I’m sure that as time goes there will be more posts featuring both models I fold and the work of others that are sure to amaze (or at least inspire).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mlindegarde.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mlindegarde.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mlindegarde.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mlindegarde.wordpress.com&amp;blog=10863030&amp;post=84&amp;subd=mlindegarde&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mlindegarde.wordpress.com/2010/08/31/origami-an-introduction-to-a-hobby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c399b1b4ef6b2bc6ec4da808ea1e69?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mlindegarde</media:title>
		</media:content>
	</item>
	</channel>
</rss>
