<?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/"
	>

<channel>
	<title>Cory Pratt&#039;s Blog &#187; Technology</title>
	<atom:link href="http://www.corypratt.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.corypratt.com</link>
	<description>Work, Projects, and Life</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:49:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>iPhone wallpaper</title>
		<link>http://www.corypratt.com/personal/iphone-wallpaper/</link>
		<comments>http://www.corypratt.com/personal/iphone-wallpaper/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 18:27:12 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=621</guid>
		<description><![CDATA[Just messing around with some stuff at work and thought I&#8217;d try and be creative with creating a Red Vines® inspired iPhone background.]]></description>
			<content:encoded><![CDATA[<p>Just messing around with some stuff at work and thought I&#8217;d try and be creative with creating a Red Vines® inspired iPhone background.<span id="more-621"></span></p>
<p><img class="aligncenter size-medium wp-image-622" title="jar_640x960" src="http://www.corypratt.com/wp-content/uploads/2011/12/jar_640x960-200x300.png" alt="" width="200" height="300" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/personal/iphone-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding HP NC365T drivers to VMware ESXi</title>
		<link>http://www.corypratt.com/technology/vmware/adding-hp-nc365t-drivers-to-vmware-esxi/</link>
		<comments>http://www.corypratt.com/technology/vmware/adding-hp-nc365t-drivers-to-vmware-esxi/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 16:36:34 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[HP NC365T]]></category>
		<category><![CDATA[vmware esxi]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=584</guid>
		<description><![CDATA[I recently received two new HP DL385 servers for a VMware install.  The servers came with an additional NIC we use for redundant virtual switch ports.  With the previous VMware install at another site, the NIC&#8217;s we ordered worked out of the box, but something was different enough about these HP NC365T cards that VMware [...]]]></description>
			<content:encoded><![CDATA[<p>I recently received two new HP DL385 servers for a VMware install.  The servers came with an additional NIC we use for redundant virtual switch ports.  With the previous VMware install at another site, the NIC&#8217;s we ordered worked out of the box, but something was different enough about these <a href="http://h18000.www1.hp.com/products/servers/networking/nc365t/index.html" target="_blank">HP NC365T</a> cards that VMware did not recognize them.</p>
<p>After some research I found that I had to find and install the right drivers.  According to the <a href="http://www.vmware.com/resources/compatibility/search.php?action=search&amp;deviceCategory=io&amp;productId=1&amp;advancedORbasic=advanced&amp;maxDisplayRows=50&amp;key=nc365t+&amp;release[]=34&amp;datePosted=-1&amp;partnerId[]=-1&amp;ioTypeId[]=-1&amp;manufacturer[]=-1&amp;vid=&amp;did=&amp;svid=&amp;ssid=&amp;rorre=0" target="_blank">VMware Compatibility Guide</a> the &#8220;igb version 2.1.10.2&#8243; driver would work with these card.  It would be cool if VMware provided a link directly to the download, but instead I had to go to the <a href="http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vsphere_4/4#drivers_tools" target="_blank">driver download page</a> and find the right driver.  I searched the page for 2.1.10.2 and found the drivers for <a href="http://downloads.vmware.com/d/details/esx40_intel_82580_v4002198_dt/ZHcqYmRwakBiZCVodw==" target="_blank">Intel 82576 and 82580</a> <strong>NOTE: It appears there is an even new driver <a href="http://downloads.vmware.com/d/details/esx40_intel_825766_82580_dt/ZHcqYnRldCViZCVodw==" target="_blank">2.4.10</a></strong>.</p>
<p><span id="more-584"></span></p>
<p>After downloading the ISO, I burnt it to a CD and left it in my computer (you can also mount the ISO if you have the correct software).  The <a href="http://www.vmguru.nl/wordpress/2010/03/add-additional-drivers-to-esxi/" target="_blank">VMGuru blog</a> gave some good instructions on installing the drivers from the command line:</p>
<ul>
<li>Download and install <a href="http://www.vmware.com/support/developer/vcli/" target="_blank">vSphere CLI</a> on your workstation</li>
<li>Connect to the VMware host and put the host into maintenance mode</li>
<li>Using the CLI, install the drivers off the CD with the following command:</li>
</ul>
<p><code>vihostupdate.pl -–server [IP address] –-username root –-install –-bundle [CD/DVD]:\offline-bundle\DRIVER-NAME.zip</code></p>
<ul>
<li>Reboot the host and you should all the NIC&#8217;s</li>
</ul>
<p>Many thanks to both <a href="http://www.vmguru.nl/wordpress/2010/03/add-additional-drivers-to-esxi/" target="_blank">VMGuru.nl</a> and <a href="http://www.bauer-power.net/2011/01/how-to-install-additional-drivers-in.html" target="_blank">Bauer-Power.net</a> for aiding me in getting the drivers installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/technology/vmware/adding-hp-nc365t-drivers-to-vmware-esxi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Provisioning Windows Mobile phones</title>
		<link>http://www.corypratt.com/technology/windows/provisioning-windows-mobile-phones/</link>
		<comments>http://www.corypratt.com/technology/windows/provisioning-windows-mobile-phones/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 15:02:57 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[provisioning]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=466</guid>
		<description><![CDATA[Similar to the previous post regarding provisioning iPhones for Exchange servers, the same can be done with Windows Mobile (though I don&#8217;t yet know how this will changes with Windows 7 Mobile).  I haven&#8217;t found a nice utility to do this, so your relegated to hand coding a .xml file, but it&#8217;s no biggie. If [...]]]></description>
			<content:encoded><![CDATA[<p>Similar to the previous post regarding <a href="http://www.corypratt.com/technology/iphone-technology/creating-an-ios-mobileprofile-for-corporate-exchange/" target="_blank">provisioning iPhones for Exchange servers</a>, the same can be done with Windows Mobile (though I don&#8217;t yet know how this will changes with Windows 7 Mobile).  I haven&#8217;t found a nice utility to do this, so your relegated to hand coding a .xml file, but it&#8217;s no biggie.</p>
<p>If your situation is similar to mine, you have many remote users with mobile phones.  There are times when they need to replace the phone while traveling or something else happens that requires resetting up the phone to connect to your mail server.  We require our self-signed certificate to be installed on the phone, coupled with needing to know all the settings it can be frustrating to help setup a phone, over a phone.</p>
<p><span id="more-466"></span></p>
<p>To create a provisioning file, open up your favorite text editor, I like <a href="http://notepad-plus-plus.org/">NotePad++</a>.  I started the document out with providing information to provision the certificate:</p>
<pre>&lt;wap-provisioningdoc&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="CertificateStore"&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="ROOT"&gt;</pre>
<pre style="padding-left: 90px;">&lt;characteristic type="&lt;certhash&gt;"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="EncodedCertificate" value="&lt;base64encodedcert&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre>&lt;/wap-provisioningdoc&gt;</pre>
<p>There are a few steps that need to be performed in order to get the certificate into the right form:</p>
<ol>
<li>In Windows, open the root certificate</li>
<li>Choose the Details tab</li>
<li>Find Thumbprint in the Field column and select the text in the box</li>
<li>Replace &lt;certhash&gt; with the copied thumbprint in the .xml document, delete the white spaces</li>
<li>Close the certificate dialog boxes and open the certificate in a text editor.</li>
<li>Remove the BEGIN CERTIFICATE and END CERTIFICATE lines as well as the line breaks so it is one big string</li>
<li>Copy the text and replace the &lt;base64encodedcert&gt; with the text.</li>
</ol>
<p>Next is to setup the Exchange server settings.  You will add the following above the &lt;/wap-provisioningdoc&gt; but after the last &lt;/characteristic&gt; from the certificate settings.</p>
<pre>&lt;characteristic type="Sync"&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="Connection"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Domain" value="&lt;domain goes here&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Password" value="1234"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="SavePassword" value="1"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Server" value="&lt;mail server goes here&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="User" value="USERNAME"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="URI" value="Microsoft-Server-ActiveSync"/&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="Mail"&gt;</pre>
<pre style="padding-left: 60px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="Calendar"&gt;</pre>
<pre style="padding-left: 60px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="Contacts"&gt;</pre>
<pre style="padding-left: 60px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre>&lt;/characteristic&gt;</pre>
<p>You can simply fill in the blanks at this point.  I found that Password and User are required but you can put bogus info in there.  When the user installs the file, it will ask for their name and password, so don&#8217;t worry about that right now.  When all is said and done you should have a file similar to this (with your own values of course):</p>
<pre>&lt;wap-provisioningdoc&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="CertificateStore"&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="ROOT"&gt;</pre>
<pre style="padding-left: 90px;">&lt;characteristic type="&lt;certhash&gt;"&gt;</pre>
<pre style="padding-left: 120px;">&lt;parm name="EncodedCertificate" value="&lt;base64encodedcert&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;characteristic type="Sync"&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="Connection"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Domain" value="&lt;domain goes here&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Password" value="1234"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="SavePassword" value="1"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Server" value="&lt;mail server goes here&gt;"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="User" value="USERNAME"/&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="URI" value="Microsoft-Server-ActiveSync"/&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="Mail"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="Calendar"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 60px;">&lt;characteristic type="Contacts"&gt;</pre>
<pre style="padding-left: 90px;">&lt;parm name="Enabled" value="1"/&gt;</pre>
<pre style="padding-left: 60px;">&lt;/characteristic&gt;</pre>
<pre style="padding-left: 30px;">&lt;/characteristic&gt;</pre>
<pre>&lt;/wap-provisioningdoc&gt;</pre>
<p>Save the file as &#8220;_setup.xml&#8221; and your one step away from being able to deploy all of this!  The last step is to turn _setup.xml into a .cab file that can be installed on phones.  Open a command prompt and cd to the location of the _setup.xml file.  Type the following command to create a .cab file name mail.cab (name it whatever you want):</p>
<p><code>makecab /D COMPRESS=OFF _setup.xml mail.cab</code></p>
<p>The choice is yours as to how you want to deploy it.  You can put a link to it on a website, sync it with activesync and install it, etc.</p>
<p>When the user installs the .cab file they will be warned that the file is not signed, which is ok for the purposes of this document.  After the installation and the user click&#8217;s &#8220;OK&#8221; to close the window, ActiveSync should open on the phone prompting them for their name and password.  All the other settings are prepopulated including the certificate.</p>
<p>Keep in mind, there is a lot you can do with these provisioning files.  Lots of information is available on the web, Microsoft maintains a list of references that can be used in one of these files at <a href="http://msdn.microsoft.com/en-us/library/bb737536.aspx">http://msdn.microsoft.com/en-us/library/bb737536.aspx</a> and also provides a strong overview of provisioning at <a href="http://msdn.microsoft.com/en-us/library/bb737289.aspx">http://msdn.microsoft.com/en-us/library/bb737289.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/technology/windows/provisioning-windows-mobile-phones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating an iOS .mobileprofile for Corporate Exchange</title>
		<link>http://www.corypratt.com/technology/iphone-technology/creating-an-ios-mobileprofile-for-corporate-exchange/</link>
		<comments>http://www.corypratt.com/technology/iphone-technology/creating-an-ios-mobileprofile-for-corporate-exchange/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 00:25:08 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[.mobileconfig]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=431</guid>
		<description><![CDATA[If your company is anything like the one I work with, iPhone and iPad usage is picking up steam.  Users are purchasing them and wanting them to sync with their Exchange mailboxes.  Rather than trying to walk all the sales folks who are 1500 miles away through the setup, building a .mobileprofile can save a [...]]]></description>
			<content:encoded><![CDATA[<p>If your company is anything like the one I work with, iPhone and iPad usage is picking up steam.  Users are purchasing them and wanting them to sync with their Exchange mailboxes.  Rather than trying to walk all the sales folks who are 1500 miles away through the setup, building a .mobileprofile can save a great deal of time, while creating a standardized setup.  It is especially useful you use self-signed certificates as they can be included in the .mobileprofile file that is created.</p>
<p>First things first, you need to download Apple&#8217;s &#8220;iPhone Configuration Utility&#8221;.  The latest version for Mac or Windows can be found at <a href="http://www.apple.com/support/iphone/enterprise/">http://www.apple.com/support/iphone/enterprise/</a>.  I guess if you&#8217;re a real man you can just create the file by hand, but their application makes it pretty easy.</p>
<p><span id="more-431"></span></p>
<p>Once the utility is downloaded and installed creating your config is fairly intuitive and uses a wizard like approach allowing you to configure any of the supported categories.  For the sake of this post, setting up a config for Exchange only requires configuring three sections.</p>
<p>Open the iPhone Configuration Utility and select &#8220;Configuration Profiles&#8221; from the list on the left<br />
Click the &#8220;New&#8221; button to create a new configuration profile.</p>
<p style="text-align: center;"><a href="http://www.corypratt.com/wp-content/uploads/2010/10/newprofile.png" rel="lightbox[431]" title="newprofile"><img class="size-full wp-image-434   aligncenter" title="newprofile" src="http://www.corypratt.com/wp-content/uploads/2010/10/newprofile.png" alt="" width="291" height="219" /></a></p>
<p>After creating a new profile, the right side of the window should populate with all the categories that are configurable.  We&#8217;ll start with the &#8220;General&#8221; section as it&#8217;s mandatory.  Selecting the &#8220;General&#8221; category gives five options, of which only two are required; <em>Nam</em>e and <em>Identifier</em>.</p>
<ul>
<li><strong>Name: </strong>You can name the profile whatever you want,</li>
<li><strong>Identifier: </strong>The important part is using a proper identifier and it needs to be in the format of <em>com.company.profile</em></li>
</ul>
<p style="text-align: center;"><em><a href="http://www.corypratt.com/wp-content/uploads/2010/10/general.png" rel="lightbox[431]" title="general"><img class="size-medium wp-image-435  aligncenter" title="general" src="http://www.corypratt.com/wp-content/uploads/2010/10/general-300x174.png" alt="" width="300" height="174" /></a></em></p>
<p style="text-align: left;">Next we&#8217;ll move down to the category titled &#8220;Exchange ActiveSync&#8221;.  Click the configure button to reveal all the options.</p>
<ul>
<li><strong>Account Name: </strong>Provide a name for the account, this name is what will show up in the mailboxes list, so make it meaningful.</li>
<li><strong>Exchange ActiveSync Host:</strong> You&#8217;ll want to enter the url to your OWA server</li>
<li><strong>Domain:</strong> Enter your domain name</li>
<li>User, Email Address and Password can all be left blank.  By leaving them blank this will allow the phone to prompt the user for their name and password</li>
<li>The rest of the configuration options are optional, I just leave them as default, unless of course your business has different requirements</li>
</ul>
<p style="text-align: center;"><a href="http://www.corypratt.com/wp-content/uploads/2010/10/exchange.png" rel="lightbox[431]" title="exchange"><img class="size-medium wp-image-448  aligncenter" title="exchange" src="http://www.corypratt.com/wp-content/uploads/2010/10/exchange-300x195.png" alt="" width="300" height="195" /></a></p>
<p style="text-align: left;">The last category that you may need to configure is &#8220;Credentials&#8221;.  This allows you to inject your company&#8217;s certificate in the profile.  This is useful should you use a self signed certificate.</p>
<ul>
<li>Simply choose Credentials, click Configure and select the certificate you would like to include.</li>
</ul>
<p>Once you&#8217;ve completed the steps and the configurations you&#8217;d like to change, highlight the profile and click the Export button.  This will write out the configuration to a .mobileconfig file.  You can choose to sign the file if you like, the choice is yours.</p>
<p>Now that you have your .mobileconfig file, it is time to deploy it to your users.  The choice is your as to how you want to deploy it, whether you send it to a personal email address already setup on their device, you can email it to them where they can use iTunes to sync/install the profile, or you can post it on a web page where the user can visit the page and install the profile on their phone.</p>
<p>If you choose to deploy the file via a web page, you will need to add a new MIME type.</p>
<p><strong>IIS: </strong>create a MIME type with extension as <em>mobileconfig</em> and <em>application/x-apple-aspen-config</em><br />
<strong>Apache:</strong></p>
<pre>&lt;IfModule mod_mime.c&gt;
	AddType application/x-apple-aspen-config .mobileconfig
&lt;/IfModule&gt;</pre>
<p>In the end, you&#8217;ve created an easily deployable configuration file for iOS devices.  It can save a lot of time and let users easily setup their devices from a remote location without much of any help from you.</p>
<p>There is a lot more info in Apple&#8217;s <a href="http://manuals.info.apple.com/en_US/Enterprise_Deployment_Guide.pdf" target="_blank">Enterprise Deployment Guide</a> that is worth the read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/technology/iphone-technology/creating-an-ios-mobileprofile-for-corporate-exchange/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Changing snort signatures with Oinkmaster</title>
		<link>http://www.corypratt.com/projects/changing-snort-signatures-with-oinkmaster/</link>
		<comments>http://www.corypratt.com/projects/changing-snort-signatures-with-oinkmaster/#comments</comments>
		<pubDate>Mon, 10 May 2010 23:30:08 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Snort]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[oinkmaster]]></category>
		<category><![CDATA[snort]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=415</guid>
		<description><![CDATA[Unless I&#8217;m just not seeing it, there isn&#8217;t a way to differentiate alerts from drops with BASE for snort.  They all appear the same, and unless you know the the sid or the .rules file, all the information looks the same.  To help alleviate this, and give users the abillity to see rules that are [...]]]></description>
			<content:encoded><![CDATA[<p>Unless I&#8217;m just not seeing it, there isn&#8217;t a way to differentiate alerts from drops with BASE for snort.  They all appear the same, and unless you know the the sid or the .rules file, all the information looks the same.  To help alleviate this, and give users the abillity to see rules that are dropping packets at a glance, I decided to task Oinkmaster.pl with this job.  Adding the phrase &#8220;DROPPED&#8221; to the end of the &#8220;msg:&#8221; section of the signature will make it appear that way in BASE and Aanval can now send an email whenever one of these rules are kicked off.<br />
To do so simply add the following to your <em>oinkmaster.conf</em> file:</p>
<blockquote><p>modifysid <em>sid or rule</em> &#8220;(.*msg:\s*&#8221;.+?)&#8221;(\s*;.+;)&#8221; | &#8220;${1}, DROPPED&#8221;${2}&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/projects/changing-snort-signatures-with-oinkmaster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing Windows XP from a Windows 7 dual boot system</title>
		<link>http://www.corypratt.com/technology/windows/removing-windows-xp-from-a-windows-7-dual-boot-system/</link>
		<comments>http://www.corypratt.com/technology/windows/removing-windows-xp-from-a-windows-7-dual-boot-system/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 23:15:50 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=401</guid>
		<description><![CDATA[I&#8217;ve made the switch to Windows 7 on one of my machines.  It&#8217;s time to wrap my head around this new beast.  I installed Win7 x64 on a second hard drive and was dual booting the system for some of the tools I needed. Now that Windows XP mode is up and running and documents [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made the switch to Windows 7 on one of my machines.  It&#8217;s time to wrap my head around this new beast.  I installed Win7 x64 on a second hard drive and was dual booting the system for some of the tools I needed.</p>
<p>Now that Windows XP mode is up and running and documents were transferred, I decided it was time for XP to go, cutting the cord.  Unfortunately it&#8217;s not as easy as just removing the hard drive and calling it good, though the process isn&#8217;t all that hard. <strong>NOTE:</strong> <strong>Do at your own risk; I&#8217;m not responsible for damage.</strong></p>
<ol>
<li>Start the machine in Windows XP</li>
<li>Show hidden files and folders if they aren&#8217;t already and copy the &#8220;boot&#8221; folder and the bootmgr file to the Win7 drive.</li>
<li>Shut the machine down, remove the XP drive and boot off the Win7 DVD</li>
<li>Enter the System Recovery mode after the machine boots and click &#8220;Next&#8221; to enter the Recovery Toolbox</li>
<li>Click &#8220;Command Prompt&#8221; and type:
<ol>
<pre>"bootrec /fixmbr"</pre>
<pre>"bootrec /fixboot"</pre>
</ol>
</li>
<li>Reboot into Windows 7 and open a command prompt.  Run the following command to remove the other second boot option:
<ol>
<pre><span style="font-size: small;">"BCDEdit /delete {ntldr} /f"</span></pre>
</ol>
</li>
</ol>
<p>More information if you installed on a second partition can be found at: <a href="http://blogs.techrepublic.com.com/window-on-windows/?p=1751&amp;tag=leftCol;post-1306">http://blogs.techrepublic.com.com/window-on-windows/?p=1751&amp;tag=leftCol;post-1306</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/technology/windows/removing-windows-xp-from-a-windows-7-dual-boot-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snort and &#8220;&#8211;enable-reload&#8221;</title>
		<link>http://www.corypratt.com/projects/snort-and-enable-reload/</link>
		<comments>http://www.corypratt.com/projects/snort-and-enable-reload/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 02:37:48 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Snort]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[snort]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=397</guid>
		<description><![CDATA[One of my biggest peeves about Snort and running it inline is having to restart the Snort process to load new rules.  This had me worried with putting snort into production as it would make it awfully hard to tweak it while live. Today I was browsing the Snort manual and found two short paragraph&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>One of my biggest peeves about Snort and running it inline is having to restart the Snort process to load new rules.  This had me worried with putting snort into production as it would make it awfully hard to tweak it while live.</p>
<p>Today I was browsing the <a href="http://www.snort.org/assets/125/snort_manual-2_8_5_1.pdf">Snort manual</a> and found two short paragraph&#8217;s relating to the &#8220;&#8211;enable-reload&#8221; option.  Wha?  Why didn&#8217;t I find this earlier?  After a quick recompile with the &#8220;&#8211;enable-reload&#8221; command.  What a life saver this will be when we go live!</p>
<p>After using that option, you can simply issue a &#8220;kill -SIGHUP <em>pid</em>&#8221; to have it reload without restarting!</p>
<p>Check out the pg 107 of the <a href="http://www.snort.org/assets/125/snort_manual-2_8_5_1.pdf">Snort manual</a> though, as some changes require a restart, so your not going to get off completely scott free.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/projects/snort-and-enable-reload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snort 2.8.5.2 Inline + BASE on Ubuntu</title>
		<link>http://www.corypratt.com/projects/snort-2-8-5-2-inline-base-on-ubuntu/</link>
		<comments>http://www.corypratt.com/projects/snort-2-8-5-2-inline-base-on-ubuntu/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 21:48:16 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Snort]]></category>
		<category><![CDATA[ids]]></category>
		<category><![CDATA[ips]]></category>
		<category><![CDATA[network monitoring]]></category>
		<category><![CDATA[snort]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=379</guid>
		<description><![CDATA[Boy, when I started down the process of trying to get an IPS system setup, I had no idea what I was getting myself into.  I&#8217;m not much of a security guy or a linux guy, but I thought I&#8217;d give it a go.  I followed many different guides that all worked great for me, [...]]]></description>
			<content:encoded><![CDATA[<p>Boy, when I started down the process of trying to get an IPS system setup, I had no idea what I was getting myself into.  I&#8217;m not much of a security guy or a linux guy, but I thought I&#8217;d give it a go.  I followed many different guides that all worked great for me, and thank you to those who put the following guides together: <a href="http://ubuntuforums.org/showthread.php?t=919472">http://ubuntuforums.org/showthread.php?t=919472</a>,  <a href="http://www.openmaniak.com/inline.php">http://www.openmaniak.com/inline.php</a>,  <a href="http://forum.learnit.vn/showthread.php?p=7007">http://forum.learnit.vn/showthread.php?p=7007</a></p>
<p><span id="more-379"></span></p>
<p>Since I had an Ubuntu server disc, an Acer desktop with a Pentium D, 1GB of RAM an 3 nics (1 onboard and 2 100mb 3com&#8217;s) I thought I&#8217;d give it a go.  After a clean basic install of ubuntu 9.04 server, I ran the following to get it up to 9.10:</p>
<blockquote>
<pre>
<div id="_mcePaste">sudo apt-get install update-manager-core</div>
<div id="_mcePaste">sudo do-release-upgrade</div>
</pre>
</blockquote>
<p><strong>The next step was installing all the dependencies:</strong></p>
<blockquote>
<pre>
<div id="_mcePaste">sudo -i</div>
<div id="_mcePaste">apt-get -y install build-essential libpcap0.8-dev libmysqlclient15-dev /</div>
<div id="_mcePaste">mysql-client-5.0 mysql-server-5.0 bison flex apache2 libapache2-mod-php5 /</div>
<div id="_mcePaste">php5-gd php5-mysql libphp-adodb php-pear libc6-dev g++ gcc pcregrep /</div>
<div id="_mcePaste">libpcre3-dev iptables-dev bridge-utils</div>
</pre>
</blockquote>
<div id="_mcePaste">One requirement for Snort to be compiled with <strong>&#8211;enable-inline </strong>libnet0-dev.  libnet0 is no longer available via apt and libnet1 doesn&#8217;t work with Snort yet, so you need to <a href="http://www.filewatcher.com/m/libnet-1.0.2a.tar.gz.140191.0.0.html">download</a> and compile it!</div>
<p><strong>Next it was time to download and compile Snort and the rules:</strong></p>
<blockquote>
<pre>cd /usr/src
wget http://dl.snort.org/snort-current/snort-2.8.5.2.tar.gz
tar zxvf snort-2.8.5.2.tar.gz
wget http://dl.snort.org/reg-rules/snortrules-snapshot-CURRENT.tar.gz
wget http://www.emergingthreats.net/rules/emerging.rules.tar.gz
cd snort-2.8.5.2
tar zxvf ../snortrules*
tar zxvf ../emerging*</pre>
<pre>./configure -enable-dynamicplugin --with-mysql --enabled-inline</pre>
<pre>make</pre>
<pre>make install</pre>
</blockquote>
<p>It should compile and make without any problems, if it does check out <a href="http://openmaniak.com/inline_pre.php">http://openmaniak.com/inline_pre.php</a> for a good list of requirements.</p>
<p>It&#8217;s now time to get mysql ready:</p>
<blockquote>
<pre>mysql -u root -p</pre>
<pre>mysql&gt; create database <em>databasename</em>;</pre>
<pre>mysql&gt; grant all privileges on <em>databasename</em>.* to '<em>username</em>'@'localhost' identified by '<em>password'</em>;</pre>
<pre>mysql&gt; exit</pre>
</blockquote>
<p>Import the schema:</p>
<blockquote>
<pre>mysql -D <em>databasename</em> -u <em>username</em> -p &lt; /usr/src/snort-2.8.5.2/schemas/create_mysql</pre>
</blockquote>
<p><strong>Setup Snort:</strong></p>
<blockquote>
<pre><strong>cd /usr/src/snort-2.8.5.2</strong></pre>
<pre><strong>mkdir -p /etc/snort/rules /var/log/snort</strong></pre>
<pre><strong>cp etc/* /etc/snort/</strong></pre>
<pre><strong>cp rules/* /etc/snort/rules</strong></pre>
</blockquote>
<p>Next up, editing the /etc/snort/snort.conf file:</p>
<ol>
<li>Find <strong>var HOME_NET any</strong> and edit it to match your network(s) (<strong>var HOME_NET 192.168.0.0/16</strong>)</li>
<li>Find <strong>var EXTERNAL_NET any</strong> and change it to <strong>var EXTERNAL_NET !$HOME_NET</strong></li>
<li>Find <strong>var RULE_PATH ../rules</strong> to <strong>var RULE_PATH /etc/snort/rules</strong></li>
<li>I also added <strong>include $RULE_PATH/emerging.conf</strong> to read the emerging.conf rules file</li>
<li>Last, find the <strong># output database: log, mysql, &#8230; </strong>and uncomment the line and change it to match your setup</li>
</ol>
<p><strong>Installing BASE:</strong></p>
<p>First I upgraded and installed the required Pear modules:</p>
<blockquote>
<pre>pear upgrade-all</pre>
<pre>pear install Image_Color Image_Canvas-alpha Image_Graph-alpha</pre>
<pre>pear install Mail Mail_mime</pre>
</blockquote>
<p>Edit your <strong>/etc/php5/apache2/php.ini</strong> file and add under Dynamic Extensions:</p>
<blockquote>
<pre>extension=mysql.so</pre>
</blockquote>
<blockquote>
<pre>extension=gd.so</pre>
</blockquote>
<p>Restart Apache2:</p>
<blockquote>
<pre>/etc/init.d/apache2 restart</pre>
</blockquote>
<p>Download and setup BASE:</p>
<blockquote>
<pre>cd</pre>
<pre>wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.4/base-1.4.4.tar.gz/download</pre>
<pre>cd /var/www</pre>
<pre>tar zxvf ~/base-1.4.4.tar.gz</pre>
<pre>mv base-1.4.4 base</pre>
<pre>cd base</pre>
<pre>cp -R /usr/src/snort-2.8.5.2/doc/signatures .</pre>
<pre>cd ..</pre>
<pre>chown -R www-data.www-data base</pre>
</blockquote>
<p>Go ahead and visit your site at http://<em>yoursite</em>/base and click continue:</p>
<ul>
<li>Step 1: enter <strong>/usr/share/php/adodb</strong></li>
<li><strong><span style="font-weight: normal;">Step 2:  Database type = mysql; Database name = <em>database name</em>; Database host = localhost; Database username = <em>username; </em>Database Password = <em>password</em></span></strong></li>
<li><strong><span style="font-weight: normal;">Step 3: enter the name and password you&#8217;d like to use</span></strong></li>
<li>Step 4: click the Create BASE AG button</li>
<li>Step 5: click Continue to go to the login screen</li>
</ul>
<p><strong>Bridging the Interfaces:</strong></p>
<p>Load the bridge module:</p>
<blockquote>
<pre>modprobe bridge</pre>
</blockquote>
<p>Edit <strong>/etc/network/interfaces</strong></p>
<blockquote>
<pre><strong>
<span style="font-weight: normal;"># The loopback network interface</span>

<span style="font-weight: normal;">auto lo</span>

<span style="font-weight: normal;">iface lo inet loopback</span>

<span style="font-weight: normal;"><strong>
<span style="font-weight: normal;"># The primary network interface</span>
</strong></span>

<span style="font-weight: normal;">auto eth2</span>

<span style="font-weight: normal;">iface eth2 inet static</span>

<span style="font-weight: normal;">        address 10.x.x.x</span>

<span style="font-weight: normal;">        netmask 255.x.x.x</span>

<span style="font-weight: normal;">        network 10.x.x.x</span>

<span style="font-weight: normal;">        broadcast 10.x.x.x</span>

<span style="font-weight: normal;">        gateway 10.x.x.x</span>

<span style="font-weight: normal;">        # dns-* options are implemented by the resolvconf package, if installed</span>

<span style="font-weight: normal;">        dns-nameservers 10.x.x.x</span>

<span style="font-weight: normal;">        dns-search <em>searchbase</em></span>

<span style="font-weight: normal;"><strong>
<span style="font-weight: normal;"># The Bridge</span>
</strong></span>

<span style="font-weight: normal;">auto br0</span>

<span style="font-weight: normal;">iface br0 inet manual</span>

<span style="font-weight: normal;">bridge_ports eth0 eth1</span>

<span style="font-weight: normal;"># Time to wait before loading bridge</span>

<span style="font-weight: normal;">bridge_maxwait 0</span>
</strong></pre>
</blockquote>
<div>And&#8230;.restart networking:</div>
<blockquote>
<pre>/etc/init.d/networking restart</pre>
</blockquote>
<p>Then setup the box to load the bridge kernel at startup:</p>
<blockquote>
<pre>crontab -e</pre>
<pre>@reboot root lsmod | grep bridge &gt; /dev/null || /sbin/modprobe bridge;</pre>
</blockquote>
<p>The following is a startup script from <a href="http://openmaniak.com/inline_final.php">http://openmaniak.com/inline_final.php</a> that I used and modified for my setup.  I saved it in <strong>/etc/init.d/snortd</strong>:</p>
<pre>
<blockquote>

#!/bin/bash

#

# snort_inline

start(){

# Start daemons.

echo "Starting ip_queue module:"

lsmod | grep ip_queue &gt;/dev/null || /sbin/modprobe ip_queue;

#

echo "Starting iptables rules:"

# iptables traffic sent to the QUEUE:

# accept internal localhost connections

iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# send all the incoming, outgoing and forwarding traffic to the QUEUE

iptables -A INPUT -j QUEUE

iptables -A FORWARD -j QUEUE

iptables -A OUTPUT -j QUEUE

# Start Snort_inline

echo "Starting snort_inline: "

/usr/local/bin/snort_inline -c /etc/snort_inline/snort_inline.conf -Q -D -v \

-l /var/log/snort_inline

# -Q -&gt; process the queued traffic

# -D -&gt; run as a daemon

# -v -&gt; verbose

# -l -&gt; log path

# -c -&gt; config path

}

stop() {

# Stop daemons.

# Stop Snort_Inline

# echo "Shutting down snort_inline: "

killall snort_inline

# Remove all the iptables rules and

# set the default Netfilter policies to accept

echo "Removing iptables rules:"

iptables -F

# -F -&gt; flush iptables

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

# -P -&gt; default policy

}

restart(){

stop

start

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

*)

echo $"Usage: $0 {start|stop|restart|}"

exit 1

esac</blockquote>
</pre>
<p>You can start snort with :</p>
<blockquote>
<pre>/etc/init.d/snortd start</pre>
</blockquote>
<p>And configure the server to run the snortd script at boot:</p>
<blockquote>
<pre>update-rc.d snortd defaults 95</pre>
</blockquote>
<p>And there we have it, what should be a functional Snort box compiled with inline support!  Wrapping my head around this has been a chore, I&#8217;m pleased that it&#8217;s at least running!  I haven&#8217;t put it in the middle of everything yet, so far I&#8217;ve just put it between my system and the network to play with rules.  One downside I found deals with restarting the snort process to load new rules; doing so will interrupt traffic until snort starts up again which can be around a minute or so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/projects/snort-2-8-5-2-inline-base-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>You can submit hatch info..</title>
		<link>http://www.corypratt.com/projects/the-hatch-projects/you-can-submit-hatch-info/</link>
		<comments>http://www.corypratt.com/projects/the-hatch-projects/you-can-submit-hatch-info/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 23:38:19 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Fishing]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[The Hatch]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone app]]></category>
		<category><![CDATA[The Hatch Lite]]></category>
		<category><![CDATA[thehatchapp.com]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=376</guid>
		<description><![CDATA[If you have information you&#8217;d like to share and include in The Hatch, please feel free to use the link at the top of the page titled &#8220;Submit Hatch Information&#8221;.  You will be presented with a form asking for the state, river name, bug, and month&#8217;s you&#8217;ll find the bug hatching. These updates will be [...]]]></description>
			<content:encoded><![CDATA[<p>If you have information you&#8217;d like to share and include in The Hatch, please feel free to use the <a href="http://www.corypratt.com/?page_id=372" target="_blank">link</a> at the top of the page titled &#8220;Submit Hatch Information&#8221;.  You will be presented with a form asking for the state, river name, bug, and month&#8217;s you&#8217;ll find the bug hatching.  These updates will be included in periodic updates to the app.</p>
<p>Thanks everyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/projects/the-hatch-projects/you-can-submit-hatch-info/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Lesson&#8217;s Learned In iPhone App Development</title>
		<link>http://www.corypratt.com/personal/lessons-learned-in-iphone-app-development/</link>
		<comments>http://www.corypratt.com/personal/lessons-learned-in-iphone-app-development/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 04:24:00 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[The Hatch]]></category>

		<guid isPermaLink="false">http://www.corypratt.com/?p=367</guid>
		<description><![CDATA[After the purchase of a new MacBook Pro about a year ago, I thought you know what?  I&#8217;m going to try and develop an app.  I hadn&#8217;t seen anything related to fly fishing and thought maybe I could create an app that provides a hatch chart for rivers across the US! Going into this, I [...]]]></description>
			<content:encoded><![CDATA[<p>After the purchase of a new MacBook Pro about a year ago, I thought you know what?  I&#8217;m going to try and develop an app.  I hadn&#8217;t seen anything related to fly fishing and thought maybe I could create an app that provides a hatch chart for rivers across the US!</p>
<p><span id="more-367"></span></p>
<p>Going into this, I had NO experience with developing anything for the iPhone or Mac OS for that matter.  Sure I&#8217;d written some scripts, and about 7 years ago I wrote an app to import users into Active Directory, but I was a clean slate and ready to learn.  Initially, and some may remember, the app started out working like the Weather app, super simple, but it got the job done.  I gleaned a lot off forums, friends, and screw-ups to get it working and it did!  Apple even published the darn thing for me.  After some requests and a complete redesign by <a href="http://www.briskstudios.com" target="_blank">Brisk Studios</a>, a much improved version 2 was out with almost 30 states and 300+ rivers, entomology photos and a great new interface.  Entomology photo&#8217;s were slow coming, but Lucas Carroll (<a href="http://www.flickr.com/photos/luke_c_photography/">http://www.flickr.com/photos/luke_c_photography/</a>) was kind to provide some of his amazing photography and with the help of Jason Neuswanger (<a href="http://www.troutnut.com" target="_blank">http://www.troutnut.com</a>) a huge portion of the photography was hammered out.</p>
<p>With the new version I also tried to push the app to a lot of blogs and a few magazines looking for reviews and was very pleased with what came out (I have a pretty good list <a href="http://www.corypratt.com/?p=248" target="_blank">here</a>).  Most recently <a href="http://www.americanangler.com" target="_blank">American Angler</a> even wrote a quick blurb about it in their Jan/Feb 2010 issue!</p>
<p>In all, it&#8217;s been a fun and extremely time consuming process.  There are currently over 46k rows of data in one of the SQLite tables that were hand entered.  The process has been rewarding in the fact that it&#8217;s something that I&#8217;ve created, but equally as frustrating.  One of the downsides to the app store is the commenting/review system, though it&#8217;s inherit in any retail scenario.  Anyone who&#8217;s going to take the time to comment, will most likely be a complainer.</p>
<p>Most recently, &#8220;Andyfisher&#8221; left a comment stating:</p>
<blockquote><p>The data on my favorite river is plainly incorrect and the number of rivers it covers is too limited!  This app still needs a lot of work because it&#8217;s substandard.  Don&#8217;t buy it before it&#8217;s radically updated!</p></blockquote>
<p>Wow, Andyfisher, please let me know which river(s) needs more work and I&#8217;ll see what else I can find.</p>
<p>A man named Robert emailed me:</p>
<blockquote><p>Your site is a joke, at least this time of year.  The same 4 flies<br />
cannot be appropriate for every river in the US</p></blockquote>
<p>One of the hard things about creating an app like this is you have to generalize some information.  I fully understand that a stonefly pattern that kills in Montana may not work as well on the Deschutes; but in no way is this app meant to replace a good old local fly shop.  In fact, I would encourage users to visit fly shops for indepth knowledge of the local regions!</p>
<p>On that note, the latest version that I&#8217;ve submitted for approval is coming with photo&#8217;s of patterns by <a href="http://montanafly.com/" target="_blank">Montana Fly Company</a>.  They have a great list of <a href="http://www.montanafly.com/retailer_locations/map.html" target="_blank">fly shops</a> that sell their product and maybe in a future version I&#8217;ll figure out a way to provide a list of shop for states.</p>
<p>This whole process has really made me sit back and take criticism lightly and understand that I can&#8217;t please everyone.  Sure I&#8217;d love to have exact information for every river, stream, lake, and body of water in the US, but then I know I&#8217;d get bashed for giving away &#8216;secrets&#8217;.</p>
<p>I&#8217;ve got in touch with some great folks like Lucas Carroll as mentioned above, Cameron Mortenson and the folks behind <a href="http://www.fishykid.org/">http://www.fishykid.org/</a>, David Gross at <a href="http://www.flyfishingsherpa.com" target="_blank">http://www.flyfishingsherpa.com</a>, the great guys at <a href="http://www.korkers.com/" target="_blank">Korkers</a>, <a href="http://paflyfish.com/" target="_blank">http://paflyfish.com/</a>, <a href="http://eastcoastangler.blogspot.com/" target="_blank">http://eastcoastangler.blogspot.com/</a>, and <a href="http://www.midcurrent.com" target="_blank">http://www.midcurrent.com</a>.  I&#8217;m sure I&#8217;ve missed someone, but thanks everyone for the support and helping spread the word.</p>
<p>Should I have the chance to do it over or anyone thinking of creating an app I&#8217;d do the following:</p>
<ul>
<li> Wait to release a more complete app rather than slowly adding rivers as time permits</li>
<li>Realize that it can&#8217;t be created for free</li>
<li>Realize it is rewarding, but don&#8217;t count on it to be a gold mine</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.corypratt.com/personal/lessons-learned-in-iphone-app-development/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

