<?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>Grab A Life</title>
	<atom:link href="http://grabalife.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://grabalife.com</link>
	<description>Technobabble code updates, and random thoughts of goodness.</description>
	<lastBuildDate>Mon, 09 Jan 2012 21:47:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='grabalife.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Grab A Life</title>
		<link>http://grabalife.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://grabalife.com/osd.xml" title="Grab A Life" />
	<atom:link rel='hub' href='http://grabalife.com/?pushpress=hub'/>
		<item>
		<title>Krisco Designs produces Cambrian Mobile for Cambrian Credit Union</title>
		<link>http://grabalife.com/2012/01/09/krisco-designs-produces-cambrian-mobile-for-cambrian-credit-union/</link>
		<comments>http://grabalife.com/2012/01/09/krisco-designs-produces-cambrian-mobile-for-cambrian-credit-union/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 21:47:41 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=152</guid>
		<description><![CDATA[Together with Cambrian Credit Union, Krisco Designs has created an iPhone app to better serve Cambrian’s clients by allowing users to have important info about their bank at their fingertips. With the new app, Cambrian clients can locate branches, receive directions to branches, and call to speak with a representative at each branch.  The clean, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=152&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Together with Cambrian Credit Union, Krisco Designs has created an iPhone app to better serve Cambrian’s clients by allowing users to have important info about their bank at their fingertips.<strong></p>
<p></strong>With the new app, Cambrian clients can locate branches, receive directions to branches, and call to speak with a representative at each branch.  The clean, easy-to-use interface also provides info on wheelchair accessibility, location info for ATM’s, as well as business hours for each branch.   <strong></p>
<p></strong>The app also comes equipped with a mortgage calculator, to provide users with estimates regarding mortgages with their bank, and a currency calculator.  Both features were designed to include the bank’s interest rates.  Furthermore, the app includes a QR scanner that allows users to look up further details on additional services.  Cambrian’s decision to place a QR code on marketing &amp; promotional materials encourages clients to download the app.  <strong></p>
<p></strong>All banking info is kept current by Cambrian House via their in-house designed back-end system.  Krisco Designs integrated this previously established back-end with the user-friendly mobile app and provided Cambrian with a choice of several professionally designed iPhone app icons.  <strong></p>
<p></strong>After the release of this app, Krisco Designs continues to uphold its 100% Apple Approval Rate.  Krisco Designs is proud to have been a part of the creation of a useful app like this one.  It was a pleasure to work with Cambrian.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=152&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2012/01/09/krisco-designs-produces-cambrian-mobile-for-cambrian-credit-union/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Using MailChimp and background images in your table cells</title>
		<link>http://grabalife.com/2011/05/19/using-mailchimp-and-background-images-in-your-table-cells/</link>
		<comments>http://grabalife.com/2011/05/19/using-mailchimp-and-background-images-in-your-table-cells/#comments</comments>
		<pubDate>Thu, 19 May 2011 00:14:28 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=140</guid>
		<description><![CDATA[So we designed a fantastic looking Email newsletter template which had very nice background images, and show up very nice on the web, and not at all in outlook 2007+ woops. We are all pretty familiar with the Microsoft blunder that replaced the rendering engine in Outlook from IE to &#8230; Word?! Thanks Microsoft, that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=140&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So we designed a fantastic looking Email newsletter template which had very nice background images, and show up very nice on the web, and not at all in outlook 2007+ woops. We are all pretty familiar with the Microsoft blunder that replaced the rendering engine in Outlook from IE to &#8230; Word?! Thanks Microsoft, that was awesome. Of course we all use Word to view HTML&#8230;</p>
<p>Anyhoo MailChimp and many others simply outright deny that this is possible or simply state that &#8220;We don&#8217;t support or recommend this because it doesnt really work in Outlook&#8221;</p>
<p>Guess what?  Some smarty pants figured out a really elegant way to make background images show up in Outlook. While this is technically a hack its the best I have seen and it will probably not get any better then this until Microsoft figures out that HTML should be rendered by HTML software not Word Processors.</p>
<p>Credit goes to this forum post I stumbled upon from <a title="Background Images in Table Cells in Outlook!" href="http://www.campaignmonitor.com/forums/viewtopic.php?pid=14197">Brian Thies</a>.</p>
<p>Ok so while that example works great getting this working with MailChimp takes a few more steps.</p>
<p>Step 1. Export your beautifully created template that doesnt work in outlook from MailChimp to your Desktop</p>
<p>Step 2. Modify this template using your favorite HTML Code editor (notepad)</p>
<p>Step 3. Change the head tag and doctype</p>
<blockquote>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns:v="urn:schemas-microsoft-com:vml"&gt;</pre>
</blockquote>
<p>Step 4. Comment out the following tag. Settign a background color or image on the table or cell breaks the vml background and your image will not show unless this is commented out.</p>
<blockquote><p><span style="color:#808080;">@tab Body</span><br />
<span style="color:#808080;"> @section body style</span><br />
<span style="color:#808080;"> @tip Set the background color for your email&#8217;s body area.</span><br />
<span style="color:#808080;"> *//*</span><br />
<span style="color:#808080;"> #templateContainer,.bodyContent{</span><br />
<span style="color:#808080;"> /*@editable*//*background-color:#FFFFFF;</span><br />
<span style="color:#808080;"> }</span><br />
<span style="color:#808080;"> /*</span></p></blockquote>
<p>Step 5. Insert your background code using this amazing cool method, this an example cell</p>
<blockquote>
<pre>&lt;td colspan="3" style="background-image:url(http://gallery.mailchimp.com
/1xxxx3wfwf3c/images/1.jpg);width:643px;height:172px;" valign
="top"&gt;
&lt;!--[if gte mso 9]&gt;
    &lt;v:image xmlns:v="urn:schemas-microsoft-com:vml" style='behavior: 
url(#default#VML); display:inline-block;width:643px;height:172px;
position:absolute;top:0;left:0;border:0;z-index:-1;' src="
http://gallery.mailchimp.com/1xxxx3wfwf3c/images/1.jpg" /&gt;
&lt;![endif]--&gt;
&lt;/td&gt;</pre>
</blockquote>
<p>Step 6. Import your template back into MailChimp from Dashboard &gt; My Templates</p>
<p>Step 7. Go back to your campaign and change your template to your newly fixed imported Template of Master D00m awesome.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=140&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2011/05/19/using-mailchimp-and-background-images-in-your-table-cells/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>NETDataset project now on github!</title>
		<link>http://grabalife.com/2010/11/17/netdataset-project-now-on-github/</link>
		<comments>http://grabalife.com/2010/11/17/netdataset-project-now-on-github/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:58:56 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=134</guid>
		<description><![CDATA[To make things a bit easier for updating I have added NETDataset to github so I can easily post updates. you can find the project here https://github.com/joepensource/NETDataset-for-iPhone<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=134&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To make things a bit easier for updating I have added NETDataset to github so I can easily post updates. you can find the project here</p>
<p><a href="https://github.com/joepensource/NETDataset-for-iPhone">https://github.com/joepensource/NETDataset-for-iPhone</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=134&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2010/11/17/netdataset-project-now-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Using .NET Web Services And Datasets with iPhone Revision 2!</title>
		<link>http://grabalife.com/2010/05/28/using-net-web-services-and-datasets-with-iphone-revision-2/</link>
		<comments>http://grabalife.com/2010/05/28/using-net-web-services-and-datasets-with-iphone-revision-2/#comments</comments>
		<pubDate>Fri, 28 May 2010 17:45:11 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=108</guid>
		<description><![CDATA[***Updated to work with iPhone iOS4.0.1 There seems to be a problem with the old code on version 4.0+ where the last record crashes the app in the XMLDataSetParser.m class Thanks to Douwe Querty for submitting a fix! Well I must apologize for the amount of time it has taken me to post this, I have been [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=108&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>***Updated to work with iPhone iOS4.0.1 There seems to be a problem with the old code on version 4.0+ where the last record crashes the app in the XMLDataSetParser.m class Thanks to </strong><span style="font-family:arial, sans-serif;line-height:normal;white-space:nowrap;"><strong>Douwe Querty for submitting a fix!</strong></span></p>
<p>Well I must apologize for the amount of time it has taken me to post this, I have been finished this version for quite a while however our company has been extremely busy and I have not had time to post this! But fret no more for here it is! the second version of the iPhone Dataset Parser! I will now call this project the NETDataset Project.</p>
<p>Let me re-iterate before we begin that I am a self taught developer coming from .NET to iphone development, and while I am pretty well versed in objective C now, I am by no means an expert. If you see something that needs to be fixed such as memory leaks proper usage of functions etc, please <a href="mailto:o0JoeCool0o@gmail.com" target="_blank">contact me</a> and tell me how to fix those problems instead of just spamming in the comments about how its full of memory leaks or how I am not coding this properly.</p>
<p><strong>(by the way I discovered analyzer and its tantalizingness since the last version so this version is now memory leak free!)</strong></p>
<h3><strong>Whats New in this version?</strong></h3>
<ul>
<li>A Sample project has been provided to make things easier to understand and implement</li>
<li>Using Asynchronous calls now shown in sample project</li>
<li>Connecting Data to your UITableView in sample project</li>
<li>Better table structure, can now reference data by using column names as the key.</li>
<li>Sorting Data Alphabetically</li>
<li>Performance increases</li>
<li>Memory Leak fixes</li>
</ul>
<p>If you are updating from the old code you will find that almost everything relating to the querying/dataset functions no longer work the same so be aware if this is an upgrade you will need to make some changes to the way you handle the data. (Which is far far easier now by the way)</p>
<p>The biggest difference is the way the data is now returned from the parser. We now have a structure that looks like this</p>
<p><strong>Dataset</strong><br />
<code><br />
NSDictionary(Tables) key=tablename value=arrayofTables<br />
----------NSDictionary (Table) key=rowid value=arrayofrows<br />
------------------------------------NSDictionary(Rows)key=columnName value=columnvalue<br />
</code></p>
<p>this allows us to ask for a column value using the column name!!! so much nicer!<br />
for example to get a column value all we do is call<br />
<code> [row objectForKey:@"Column1"]</code></p>
<p>Lets start again with the essential files</p>
<h2>Download the new version and sample project from github <a title="iPhone .NET Framework" href="https://github.com/joepensource/NETDataset-for-iPhone" target="_blank">here</a></h2>
<p>add these files to your project including the example cacheDBCommands files</p>
<p>Simply drag the NETDataset folder from the sample project to your own project the folder should contain the same 6 files</p>
<p>To follow along this example you should ALSO copy the CacheDBCommands.h and .m files you should now have all these files in your project</p>
<p>DataSet.h<br />
DataSet.m<br />
XMLDataSetParser.h<br />
XMLDataSetParser.m<br />
WebServiceHelper.h<br />
WebServiceHelper.m<br />
CacheDBCommands.h<br />
CacheDBCommands.m</p>
<p><strong>1. First go to your view controller and include the CacheDBCommands.h file to your viewController.h file</strong><br />
<code><br />
#import "CacheDBCommands.h"<br />
</code><br />
<strong> 2. Add the CacheDBDelegate to your view controllers header file</strong><br />
<code><br />
@interface DatasetParserViewController : UITableViewController &lt;CacheDBDelegate&gt; {<br />
</code><br />
<strong> 3. Create a property/Variable in your view controller for the cachedb clas</strong>s<br />
<code><br />
CacheDBCommands *cacheDB;<br />
@property(nonatomic, retain)CacheDBCommands *cacheDB;<br />
</code><br />
<strong> 4.Initialize cachedb and set delegate in your view controllers viewDidLoad event</strong><br />
<code><br />
cacheDB = [[CacheDBCommands alloc] init];<br />
cacheDB.delegate = self;<br />
</code><br />
<strong> 5.Call your download function from the view controller</strong><br />
<code><br />
[cacheDB initDownloadMyDataset:@"param1Value" Param2:@"pram2Value"];<br />
</code></p>
<p><strong>6. Modify the CacheDBCommands class to  suit your needs</strong></p>
<p><strong> </strong>The initDownloadMyDataset function is simply a handler method that creates a new Asynchronous operation for your actual method call. This way your app doesnt hang waiting for a response. It creates an NSInvocationOperation which contains your actual working method and adds it to the NSOperationQueue.  We pass any parameters along with the operation, since the NSOperation only accepts a single object for parameters, we need to create an array of parameters and pass the single array object along if we have more than one parameter for our worker method.</p>
<p>In the example the working operation method is called getMyDataset and it accepts the single array parameter that we passed to the NSInvocationOperation.</p>
<p>This method is where the actual connection to the server is made and the data passed to the web service.<br />
Lets break it down! o/&lt;  o|&lt;  o\&lt;<br />
ok all dancing aside&#8230;<br />
first we get our parameters out of the array<br />
<code><br />
NSString *param1 = [params objectAtIndex:0];<br />
NSString *param2 = [params objectAtIndex:1];<br />
</code><br />
Next we create a WebServiceHelper to make our connection to the server<br />
<code><br />
// Create an object to the class above which is the connection to the WCF Service<br />
WebServiceHelper *DataCon = [[WebServiceHelper alloc] init];<br />
</code><br />
Now we set the connection info which includes the XMLNamespace (which must match EXACTLY to what you have set in your web service)<br />
<code><br />
//set up service method and urls<br />
DataCon.XMLNameSpace = self.XMLNamespace;<br />
DataCon.XMLURLAddress = self.ServerURL;<br />
</code><br />
Next we need to specify which method in the web service we want to invoke. Now the most important thing to remember is the method name and its parameters must<br />
also match EXACTLY to what you have in your web service.<br />
<code><br />
//set up method and parameters<br />
DataCon.MethodName = @"getMyDataset";</code></p>
<p><code> </code></p>
<p><code> DataCon.MethodParameters = [[NSMutableDictionary alloc] init];<br />
[DataCon.MethodParameters setObject:param1 forKey:@"param1"];<br />
[DataCon.MethodParameters setObject:param2 forKey:@"param2"];<br />
</code><br />
This next part simply initiates the call and downloads the response as raw data into the NSMutableData object<br />
<code><br />
NSMutableData *retData;<br />
retData = [DataCon initiateConnection];<br />
</code><br />
Now that we have our data we want to make it into something useful, like a dataset! This is where the Dataset and XMLDatasetParser classes do their magic!<br />
If you wanted to instead retrieve something else like a string or a boolean or an integer from your service method, you would need to write your own NSXMLParser class to handle those. I have not had a need for this yet as I am fine with just passing back datasets. If you do end up writing one email it to me and I will add it to the NETDataset project <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
If you uncomment the doDebug line you will get the XML returned from the soap service NSLogged to the console. This becomes very useful when debugging.<br />
once parseXMLWithData is called the dataset object will now contain the tables and rows from your dataset.<br />
<code><br />
//self.myDataset.doDebug = YES; //uncomment to print all data to NSLog<br />
[self.myDataset parseXMLWithData:retData];</code></p>
<p><code> </code></p>
<p><code> [DataCon release];<br />
</code><br />
The last step in the cacheDbCommands class is to call our delegate function which lets the View Controller know we are done downloading the dataset and we have our data!<br />
<code><br />
//call delegate to let view know we have finished downloading this<br />
[delegate performSelectorOnMainThread:@selector(didFinishDownloading:)<br />
withObject:self<br />
waitUntilDone:NO];<br />
</code><br />
<strong>7.Handle the delegate callback events</strong><br />
<code><br />
#pragma mark -<br />
#pragma mark CacheDBCommands Delegate</code></p>
<p><code>- (void)willStartDownloading:(CacheDBCommands *)cacheDB<br />
{<br />
//NSLog(@"Delegate called start downloading", nil);<br />
[self.act startAnimating];<br />
self.act.hidden = NO;<br />
}<br />
-(void)didFinishDownloading:(CacheDBCommands *)acacheDB<br />
{<br />
//NSLog(@"Delegate called finish downloading", nil);</code></p>
<p><code>NSMutableDictionary *rows = [[NSMutableDictionary alloc] initWithDictionary:[cacheDB.myDataset getRowsForTable:@"Table1"]];<br />
//each object in the rows dictionary contains a Key which is the rowid number and the value is a corresponding array of columns and values<br />
NSArray *rowValues =  [[NSMutableArray alloc] initWithArray:[rows allValues]];<br />
//each object in the rowValues array is a dictionary object containing all of the columns and values<br />
NSMutableArray *data = [[NSMutableArray alloc] initWithArray:rowValues];</code></p>
<p><code> </code></p>
<p><code> [rows release];<br />
[self.tableView reloadData];<br />
[self.act stopAnimating];<br />
}<br />
</code><br />
<strong>8. Do what you want! Your Done!</strong><br />
You can also query the dataset for a value using the function getRowsForTableWhereColumnEquals I often use this to join two tables together or use the first table as a section header in the tableview and the second table as the data</p>
<p>This accepts 3 parameters TableName ColumnName and Searchstring<br />
<code><br />
NSMutableArray *filteredData= [[NSMutableArray alloc] initWithArray:[cacheDB.myDataset getRowsForTableWhereColumnEquals:@"Table1" Column:@"Column1" Where:@"happyfish"]]];</code></p>
<h2>Sorting Your Data</h2>
<p>The NSXMLParser runs Asynchronously as it parses through the document, this is why even though a dataset is ordered sometimes your data is still not in the right order  when you add the cells to your UITableview. Here is a utility function that I use to resort the order of an array of rows by column name.</p>
<p>*** updated now supports numerical ordering and duplicate entries since caseInsensitiveSearch does not order numbers properly in a string.</p>
<p><code> </code></p>
<p><code></p>
<div id="_mcePaste">
<div id="_mcePaste">-(void)sortArrayContainingDictionaryItemsByKey:(NSString *)keyName ArrayToSort:(id)arrayToSort Ascending:(BOOL)asc isNumeric:(BOOL)isNumeric</div>
<div id="_mcePaste">{</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSMutableArray *unsortedValues = [[NSMutableArray alloc] init];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSMutableArray *sortedArray = [[NSMutableArray alloc] init];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSUInteger i,e;</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>for (i=0; i&lt;[arrayToSort count]; i++) {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[unsortedValues addObject:[[arrayToSort objectAtIndex:i] objectForKey:keyName]];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//NSArray *sortedValues = [unsortedValues sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSSortDescriptor *sortDesc;</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>if(isNumeric == YES){</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>sortDesc = [[NSSortDescriptor alloc] initWithKey:nil ascending:asc selector:@selector(numericCompare:)];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>else {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>sortDesc = [[NSSortDescriptor alloc] initWithKey:nil ascending:asc selector:@selector(caseInsensitiveCompare:)];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSArray *sortedValues = [unsortedValues sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDesc]];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSMutableDictionary *dupCount = [[NSMutableDictionary alloc] init];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>for (i=0; i&lt;[sortedValues count]; i++) {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//loop through each sorted item</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSInteger newcnt = 0;//reset newcnt for duplicates</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>for (e=0; e&lt;[arrayToSort count]; e++) {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//set duplicate counter</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//find the matching StyleName</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSString *avalue = [[NSString alloc] initWithString:[[arrayToSort objectAtIndex:e] objectForKey:keyName]];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>if ([avalue isEqualToString:(NSString *)[sortedValues objectAtIndex:i]])</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>{</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>NSInteger cnt = (NSInteger)[dupCount objectForKey:avalue];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//this has been found previously we need to skip this index if we are not at the matchign duplciate position</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>if (newcnt == cnt || cnt == 0) {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//this is the right record to add</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>cnt++;</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[dupCount setObject:[NSString stringWithFormat:@"%d", cnt, nil] forKey:avalue];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[sortedArray addObject:[arrayToSort objectAtIndex:e]];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[avalue release];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>break;//break out in case there are duplicate matches</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}else {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>//this is the wrong record skip over this one</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>newcnt++;</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}<span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[avalue release];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span></div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[dupCount release];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>for (i=0; i&lt;[sortedArray count]; i++) {</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[arrayToSort replaceObjectAtIndex:i withObject:[sortedArray objectAtIndex:i]];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>}</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[sortDesc release];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[unsortedValues release];</div>
<div id="_mcePaste"><span style="white-space:pre;"> </span>[sortedArray release];</div>
<div id="_mcePaste">}</div>
</div>
<p></code><br />
Now lets say I have a dataset containing multiple vehicles but I only want the cars and I want them sorted alphabetically.<br />
<code><br />
NSMutableArray *myData= [[NSMutableArray alloc] initWithArray:[acacheDB.myDataset getRowsForTableWhereColumnEquals:@"Table1" Column:@"VehicleType" Where:@"Car"]];</code></p>
<p><code> </code></p>
<p><code>[self sortArrayContainingDictionaryItemsByKey:@"VehicleType" ArrayToSort:myData isNumeric:NO];<br />
</code></p>
<p>Thats it! mydata should now be an array of rows sorted by the column!</p>
<p>*****EDIT Please note If you are using [rows allValues] and you want to sort on that Array you will not be able to since the array is Immutable, you will get a selector does not recognize instance error. You must convert to a mutable array with myMutableArray = [NSMutableArray arrayWithArray:[rows allValues]];<br />
then to get the first row you just call<br />
<code><br />
NSDictionary *firstRow = [myData objectAtIndex:0];<br />
</code><br />
to get say the vehicle model I would add on<br />
<code><br />
NSString *model = [firstRow objectForKey:@"VehicleModel"];</code></p>
<p>I hope this framework helps you along your way to creating some amazing apps! Please send me the links to your apps on the app store! I will post them here! As always if you have questions please ask in the comments I do my best to answer everyone!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=108&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2010/05/28/using-net-web-services-and-datasets-with-iphone-revision-2/feed/</wfw:commentRss>
		<slash:comments>102</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Using .NET web services and dataset objects in your iphone app</title>
		<link>http://grabalife.com/2009/10/19/using-net-web-services-and-dataset-objects-in-your-iphone-app/</link>
		<comments>http://grabalife.com/2009/10/19/using-net-web-services-and-dataset-objects-in-your-iphone-app/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 18:42:51 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=83</guid>
		<description><![CDATA[iPhone XML SOAP or .NET Web Services can seem overwhelming at first but its actually not too hard to do, you can even download a .NET dataset and query it on the iPhone! Being a complete n00b to iphone&#8217;s cocoa touch api / objective C and then jumping in feet first to iphone programming is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=83&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1><strong>iPhone XML SOAP or .NET Web Services</strong></h1>
<p>can seem overwhelming at first but its actually not too hard to do, you can even download a .NET dataset and query it on the iPhone!</p>
<p>Being a complete n00b to iphone&#8217;s cocoa touch api / objective C and then jumping in feet first to iphone programming is like being swallowed by an enormous whale. Its very dark, you can see the blow hole, but you know the only way of reaching it is to be blown out by a mucous-infused geisure of  hot and sticky whale snot. (if you have ever tried to obtain help on irc or various forums you know what I am talking about) not to mention the endless sea of apple docs that may or may not contain any information that you actually need depending on your luck.</p>
<p>That being said after much hair pulling reading docs forums and some examples from everywhere I have put together a simple solution to connect to a .NET web service over https and return a dataset object back to the iphone that can be queried and used accordingly.</p>
<h1><a href="http://tinyurl.com/353kbht">Please Note this article is now deprecated you should use the new framework here<br />
I Can not support this version any more if you ask for help with this version you will not be answered. </a></h1>
<p>Download This: iPhone .NET Dataset Framework.zip</p>
<p>In the attached file you will find 6 documents:</p>
<p>DataSet.h<br />
DataSet.m<br />
XMLDataSetParser.h<br />
XMLDataSetParser.m<br />
WebServiceHelper.h<br />
WebServiceHelper.m</p>
<p>These files are pretty much self explanatory. DataSet.h/.m contain code for creating your DataSet Object and contain methods for querying the dataset.</p>
<p>WebServiceHelper contains the code to connect to the appropriate web service with the appropriate methods and parameters</p>
<p>XMLDataSetParser will take the data received from the webservice and pipe it into your DataSet Object.</p>
<p>To use an XML .NET Web service all you need to do is include these files in your project and then call the following procedures.<br />
<code><br />
<strong>//First import the relevant files to your viewcontroller class (XMLDataSetParser is<br />
//included by the DataSet class so there is no need to import it here)</strong></code><br />
<code>#import "WebServiceHelper.h"<br />
#import "DataSet.h"</code></p>
<p><code><strong>// Create a connection to the web service</strong><br />
WebServiceHelper *DataCon = [[WebServiceHelper alloc] init];<br />
<strong>//set up service method and urls please visit the webservice address in a browser to<br />
//get the exact strings the service expects</strong></code></p>
<p><code>DataCon.XMLNameSpace = @"https://myurl.com/WebService";<br />
DataCon.XMLURLAddress = @"https://myurl.com/WebService/service.asmx";<br />
DataCon.MethodName = @"getDataSetFromServer";</code></p>
<p><code><strong>//add parameters **PARAMETERS ARE CASE SENSITIVE MAKE SURE THEY ARE TYPED CORRECTLY<br />
//AS THE SERVICE EXPECTS THEM**</strong><br />
DataCon.MethodParameters = [[NSMutableDictionary alloc] init];<br />
[DataCon.MethodParameters setObject:@"Parameter1" forKey:@"P1"];<br />
[DataCon.MethodParameters setObject:@"Parameter2" forKey:@"P2"];</code></p>
<p><code><strong>//Connect to the service and retrieve the xml raw data into a NSMutableDataObject<br />
//be sure to include a NSMutableData object called "data" or whatever you wish in<br />
//your viewcontroller</strong><br />
self.data = [DataCon initiateConnection];</code></p>
<p><code><strong>//Create a dataset object using the new raw data we received from the service</strong><br />
DataSet *dsMyDataSet = [[DataSet alloc] initWithXMLData:self.data];</code></p>
<p><code><strong>//Now we have a dataset filled with data from the initWithXMLData command lets<br />
//query some data from it!<br />
//Set up a dictionary object to hold our query data from the dataset</strong><br />
NSMutableDictionary *mydata= [[NSMutableDictionary alloc] init];</code></p>
<p><code><strong>//retrieve all rows from the selected table and column</strong><br />
mydata = [dsMyDataSet getRowsForTableAndColumn:@"Table1" col:@"Username" ];<br />
<strong>//mydata should contain all rows from column "Username"</strong></code></p>
<p><strong><code>//retrieve all rows from the selected table and column where the CURRENT column<br />
//matches a string</code></strong><code><br />
mydata = [dsMyDataSet<br />
getRowsForTableAndColumnWhereEqualsString:@"Table1" col:@"username" where:@"bob"];<br />
<strong>//mydata should contain all rows from column username containing the exact match "bob"</strong></code></p>
<p><code><strong>//retrieve all rows from the selected table and column where a DIFFERENT column<br />
//matches a string</strong><br />
mydata = [dsMyDataSet<br />
getRowsForTableAndColumnWhereColumnEqualsString:@"Table1"<br />
col:@"username" whereColumn:@"email" whereValue:@"bob@microsoft.com"];<br />
<strong>//mydata should contain all rows from column "username" where the column "email"<br />
//contains the exact match "bob@microsoft.com"</strong></code></p>
<p><code><strong>//you can do what you want with the data at this point like a simple iteration</strong><br />
NSEnumerator *userIterator= [mydata objectEnumerator];</code></p>
<p><code>NSString *username;</code></p>
<p><code>while(username =  [userIterator nextObject])<br />
{<br />
NSLog(@"Username: %@", username);<br />
}<br />
[mydata release];</code></p>
<p>Thats it!!! Hope this helps someone else save as much time as it is now saving me!</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:57px;width:1px;height:1px;"><a href="/Imperium/Open%20Source/.NET%20Dataset%20Framework.zip">file:///W:/Imperium/Open%20Source/.NET%20Dataset%20Framework.zip</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=83&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2009/10/19/using-net-web-services-and-dataset-objects-in-your-iphone-app/feed/</wfw:commentRss>
		<slash:comments>114</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamic Iframe height using javascript</title>
		<link>http://grabalife.com/2009/04/16/dynamic-iframe-height-using-javascript/</link>
		<comments>http://grabalife.com/2009/04/16/dynamic-iframe-height-using-javascript/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 18:25:25 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=76</guid>
		<description><![CDATA[Welp another challenge another day. My good pal Scott (also  at Imperium.ca) gets the credit for this one. We found while using a dotnetnuke back end it was far easier and far less limited to create our custom applications separately and include them in iframes and simply inherit the permissions from the dotnetnuke namespace in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=76&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Welp another challenge another day. My good pal Scott (also  at<a title="Imperium" href="http://www.imperium.ca" target="_blank"> Imperium.ca</a>) gets the credit for this one. We found while using a dotnetnuke back end it was far easier and far less limited to create our custom applications separately and include them in iframes and simply inherit the permissions from the dotnetnuke namespace in .NET. So while this worked great we had a huge draw back, the iframes were static height and although there was an &#8220;auto&#8221; setting in dotnetnuke, it did not appear to be functional in any of the browsers we tested.</p>
<p>Enter the dynamic iframe height.</p>
<p>We scoured much code for working examples but were hard pressed to find any that were cross browser compatible. We found some code at <a href="http://www.dynamicdrive.com/dynamicindex17/iframessi2.htm">dynamicdrive.com</a> while it did work resizing the iframes it was still missing a few things. One problem is we were not writing the &#8220;&lt;iframe&gt;&#8221; tag manually so we could not follow part two of the instructions, also part 3 instructs to place the resize call in an &lt;a href&gt; tag. Again we needed the script to automatically resize any and all iframes on the page once the child page was loaded. Scott tinkered until&#8230; in firefox IE7 and safari browsers we could add iframes and when the page fully loaded it would automatically adjust the iframe height by including one javascript file in the parent page and one javascript file in the child page.</p>
<p>I hope this helps someone else as much as it has helped us.</p>
<p>There are 2 js files that we will use the first js file goes in the parent page head block and loads the script for the parent page.</p>
<p><em>&lt;!&#8211; BEGIN CODE &#8211;&gt;</em></p>
<p><strong>&lt;script type=&#8221;text/javascript&#8221;&gt;</strong></p>
<p><strong><em>/***********************************************<br />
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)<br />
* Visit DynamicDrive.com for hundreds of original DHTML scripts<br />
* This notice must stay intact for legal use<br />
***********************************************/</p>
<p>//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:<br />
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:<br />
var iframeids=[];</p>
<p>//Should script hide iframe from browsers that don&#8217;t support this script (non IE5+/NS6+ browsers. Recommended):<br />
var iframehide=&#8221;yes&#8221;</p>
<p>var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf(&#8220;Firefox&#8221;)).split(&#8220;/&#8221;)[1]<br />
var FFextraHeight=parseFloat(getFFVersion)&gt;=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers</p>
<p>function resizeCaller() {<br />
var dyniframe=new Array()<br />
for (i=0; i&lt;iframeids.length; i++){<br />
if (document.getElementById)<br />
resizeIframe(iframeids[i])</p>
<p>//reveal iframe for lower end browsers? (see var above):<br />
if ((document.all || document.getElementById) &amp;&amp; iframehide==&#8221;no&#8221;){<br />
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])<br />
tempobj.style.display=&#8221;block&#8221;<br />
tempobj.style.overflow=&#8221;visible&#8221;<br />
}<br />
}<br />
}</p>
<p>function resizeIframe(frameid){<br />
var buffer = 10;<br />
var currentfr=document.getElementById(frameid)<br />
currentfr.style.overflow=&#8221;hidden&#8221;<br />
currentfr.scrolling=&#8221;no&#8221;</p>
<p>if (currentfr &amp;&amp; !window.opera){<br />
currentfr.style.display=&#8221;block&#8221;<br />
if (currentfr.contentDocument &amp;&amp; currentfr.contentDocument.body.offsetHeight) //ns6 syntax<br />
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight + buffer;<br />
else if (currentfr.Document &amp;&amp; currentfr.Document.body.scrollHeight) //ie5+ syntax<br />
currentfr.height = currentfr.Document.body.scrollHeight + buffer;<br />
if (currentfr.addEventListener)<br />
currentfr.addEventListener(&#8220;load&#8221;, readjustIframe, false)<br />
else if (currentfr.attachEvent){<br />
currentfr.detachEvent(&#8220;onload&#8221;, readjustIframe) // Bug fix line<br />
currentfr.attachEvent(&#8220;onload&#8221;, readjustIframe)<br />
}<br />
}<br />
}</p>
<p>function readjustIframe(loadevt) {<br />
var crossevt=(window.event)? event : loadevt<br />
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement<br />
if (iframeroot)<br />
resizeIframe(iframeroot.id);<br />
}</p>
<p>function loadintoIframe(iframeid, url){<br />
if (document.getElementById)<br />
document.getElementById(iframeid).src=url<br />
}</p>
<p>function stretchAllIframes() {<br />
var objs = document.getElementsByTagName(&#8220;iframe&#8221;);<br />
for(var i=0; i &lt; objs.length; i++) {<br />
iframeids[iframeids.length] = objs[i].id;<br />
}</p>
<p>resizeCaller();<br />
}</em></strong></p>
<p><strong>&lt;/script&gt;</strong></p>
<p><em>&lt;!&#8211; END CODE &#8211;&gt;</em></p>
<p>The second code is for the page that will be loaded into an iframe</p>
<p><em>&lt;!&#8211; BEGIN CODE &#8211;&gt;</em></p>
<p><strong>&lt;script type=&#8221;text/javascript&#8221;&gt;</strong></p>
<p><strong>function addOnloadEvent(fnc){<br />
if ( typeof window.addEventListener != &#8220;undefined&#8221; )<br />
window.addEventListener( &#8220;load&#8221;, fnc, false );<br />
else if ( typeof window.attachEvent != &#8220;undefined&#8221; ) {<br />
window.attachEvent( &#8220;onload&#8221;, fnc );<br />
}<br />
else {<br />
if ( window.onload != null ) {<br />
var oldOnload = window.onload;<br />
window.onload = function ( e ) {<br />
oldOnload( e );<br />
window[fnc]();<br />
};<br />
}<br />
else<br />
window.onload = fnc;<br />
}<br />
}</p>
<p>addOnloadEvent(parent.stretchAllIframes);<br />
&lt;/script&gt;<br />
</strong></p>
<p><em>&lt;!&#8211; END CODE&#8211;&gt;</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=76&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2009/04/16/dynamic-iframe-height-using-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Centering the scrollbar horizontally using javascript</title>
		<link>http://grabalife.com/2009/04/01/centering-the-scrollbar-horizontally-using-javascript/</link>
		<comments>http://grabalife.com/2009/04/01/centering-the-scrollbar-horizontally-using-javascript/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 19:16:35 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=71</guid>
		<description><![CDATA[So normally when we develop a website template we make it liquid layout to fit in most browsers however in some cases we want the minimum width to be set with an optional overflow image. Kind of hard to picture&#8230; at any rate we wanted the browser to scroll horizontally but be centered on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=71&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So normally when we develop a website template we make it liquid layout to fit in most browsers however in some cases we want the minimum width to be set with an optional overflow image. Kind of hard to picture&#8230; at any rate we wanted the browser to scroll horizontally but be centered on the page in lower resolutions without having to mess with the template.</p>
<p>I did a lot of searching and even found some people saying it was not possible. Well I tell you it is. Here is a script that will work for you. Just copy to your own autoscroll.js file and include it, or you can copy paste this into a script block.</p>
<p><em><strong>function setScroll()<br />
{<br />
var docWidth;<br />
var docMinWidth = 1182;  //min width in pixels any browser size smaller then this will cause the scrollbar to appear and center</strong></em></p>
<p><em><strong>docWidth = getDocWidth();</strong></em></p>
<p><em><strong><br />
if( typeof( window.pageYOffset ) == &#8216;number&#8217; ) {<br />
//Netscape compliant<br />
scrOfY = window.pageYOffset;<br />
scrOfX = window.pageXOffset;<br />
if (docWidth &lt; </strong></em><em><strong>docMinWidth </strong></em><em><strong>) { window.scroll((</strong></em><em><strong>docMinWidth </strong></em><em><strong>- docWidth) / 2, scrOfY);}<br />
} else if( document.body &amp;&amp; ( document.body.scrollLeft != &#8216;undefined&#8217; || document.body.scrollTop != &#8216;undefined&#8217; ) ) {<br />
//DOM compliant<br />
scrOfY = document.body.scrollTop;<br />
scrOfX = document.body.scrollLeft;<br />
if (docWidth &lt; </strong></em><em><strong>docMinWidth </strong></em><em><strong>) { window.scroll((</strong></em><em><strong>docMinWidth </strong></em><em><strong>- docWidth) / 2, scrOfY);}<br />
} else if( document.documentElement &amp;&amp; ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {<br />
//IE6 standards compliant mode<br />
scrOfY = document.documentElement.scrollTop;<br />
scrOfX = document.documentElement.scrollLeft;<br />
if (docWidth &lt; </strong></em><em><strong>docMinWidth </strong></em><em><strong>) { window.scroll((</strong></em><em><strong>docMinWidth </strong></em><em><strong>- docWidth) / 2, scrOfY);}<br />
}</strong></em></p>
<p><em><strong>}</strong></em></p>
<p><em><strong>function getDocWidth()<br />
{<br />
if (document.body.scrollWidth)<br />
return document.body.scrollWidth;<br />
var w = document.documentElement.offsetWidth;<br />
if (window.scrollMaxX)<br />
w += window.scrollMaxX;<br />
return w;<br />
}</strong></em></p>
<p><em><strong>function addOnloadEvent(fnc){<br />
if ( typeof window.addEventListener != &#8220;undefined&#8221; )<br />
window.addEventListener( &#8220;load&#8221;, fnc, false );<br />
else if ( typeof window.attachEvent != &#8220;undefined&#8221; ) {<br />
window.attachEvent( &#8220;onload&#8221;, fnc );<br />
}<br />
else {<br />
if ( window.onload != null ) {<br />
var oldOnload = window.onload;<br />
window.onload = function ( e ) {<br />
oldOnload( e );<br />
window[fnc]();<br />
};<br />
}<br />
else<br />
window.onload = fnc;<br />
}<br />
}</strong></em></p>
<p><em><strong>addOnloadEvent(setScroll);</strong></em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=71&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2009/04/01/centering-the-scrollbar-horizontally-using-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Exporting Contacts from Outlook to Windows Live Messenger</title>
		<link>http://grabalife.com/2009/03/25/exporting-contacts-from-outlook-to-windows-live-messenger/</link>
		<comments>http://grabalife.com/2009/03/25/exporting-contacts-from-outlook-to-windows-live-messenger/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 07:41:38 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[outlook to messenger]]></category>
		<category><![CDATA[outlook to windows live]]></category>

		<guid isPermaLink="false">http://grabalife.com/?p=65</guid>
		<description><![CDATA[Well it seems I had a little issue crop up this week and I thought I would share it with you. I began getting messages from some friends on Windows Live Messenger stating that I had been asking them to purchase diet pills! I thought &#8220;how can I have a virus? I don&#8217;t click on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=65&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well it seems I had a little issue crop up this week and I thought I would share it with you. I began getting messages from some friends on Windows Live Messenger stating that I had been asking them to purchase diet pills! I thought &#8220;how can I have a virus? I don&#8217;t click on anything strange&#8221; Well turns out somehow they had gotten my password for live messenger/hotmail. I still have no idea how they were able to do it, I do not browse shady sites or use the same password of anything that is &#8220;risky&#8221; my password was also 12 digits containing numbers and letters and capital letters. I really am not sure if it was brute force or what.</p>
<p>At any rate&#8230; I changed my password the messages stopped everything was ok again. (although i did start receiving 5 spam messages a day from other bots thereafter). I signed off msn and when i tried signing back in my new password didn&#8217;t work. now whether this is because the account was again hijacked using the forgot password or I just couldn&#8217;t remember my new password in its entirety I couldn&#8217;t and can no longer use my account.</p>
<p>So I signed up a brand new account and realized ugh all my contacts are of course gone. Luckily I had previously been using the hotmail outlook add in that lets you sync outlook with hotmail, all my contacts were still in outlook with all the IM addresses. &#8220;Hooray!&#8221; I said to myself.</p>
<p>I quickly began looking for a way to get these contacts out of outlook and into messenger again. I tried various things like dragging from outlook to messenger. Windows Live Messengers import options only allowed one file type &#8220;CTT&#8221;. Oddly enough Microsoft has not included a CTT export option for Outlook. So after sobbing for a few minutes about how long it was going to take me to get these contacts into live messenger one by one, I decided to write a small application to search outlook folders and export a CTT file. (A CTT file is simply an XML file under the hood in case you were wondering)</p>
<p>Anyway here is a link at Imperium Inc. to the export application should you need to export your contacts from outlook into windows live messenger! Enjoy! you will need the Microsoft .NET 2.0 Framework installed first. (I think most people have this already)</p>
<p><a href="http://www.imperium.ca/stuff/OutlookToCTT.zip" target="_blank">Download OutlookToCTT</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=65&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2009/03/25/exporting-contacts-from-outlook-to-windows-live-messenger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>Nirf.NET 1.0.3 Released</title>
		<link>http://grabalife.com/2008/08/25/nirfnet-103-released/</link>
		<comments>http://grabalife.com/2008/08/25/nirfnet-103-released/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 06:09:03 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[nirf]]></category>

		<guid isPermaLink="false">http://o0joecool0o.wordpress.com/?p=48</guid>
		<description><![CDATA[Well I am happy to release NiRF.NET 1.0.3 Currently tested in IE7 Safari and Firefox 3, NiRF now supports css background images. This means you can pick a custom font and give the class a background-image. This will overlay your custom font over top of the background-image. Nirf actually reads the background image and creates [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=48&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well I am happy to release NiRF.NET 1.0.3 Currently tested in IE7 Safari and Firefox 3, NiRF now supports css background images.</p>
<p>This means you can pick a custom font and give the class a background-image. This will overlay your custom font over top of the background-image.</p>
<p>Nirf actually reads the background image and creates a new image using that as the background. To position the text on the background image you simply use top and left padding (in px) in the css class, this will push the text where you want it to go on the background.</p>
<p>Now there are many uses for this feature one is simply having images with Captions on them, Another might be Dynamic tabs on a web page with custom fonts on those tabs.</p>
<p>To see a demo of the new custom font background-image and hover options check out <a href="http://nirfserv.getnirf.com">http://nirfserv.getnirf.com</a> or head over to the <a href="http://getnirf.com/Download/tabid/55/Default.aspx" target="_blank">downloads page</a> then download the hosted or the NiRF.NET version. Remember to use the hosted version you need a free account and you need to generate a user key.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/o0joecool0o.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/o0joecool0o.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/48/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=48&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2008/08/25/nirfnet-103-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
		<item>
		<title>remove files from visual studio source safe</title>
		<link>http://grabalife.com/2008/08/11/remove-files-from-visual-studio-source-safe/</link>
		<comments>http://grabalife.com/2008/08/11/remove-files-from-visual-studio-source-safe/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 04:39:18 +0000</pubDate>
		<dc:creator>o0joecool0o</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[visual studio source safe hide files]]></category>

		<guid isPermaLink="false">http://o0joecool0o.wordpress.com/?p=44</guid>
		<description><![CDATA[so for a long time I had been wondering if there was a way to remove files from visual studio 2005 so they would not show up in the project and be added to source safe. For example I have a fonts folder with 2000+ fonts that I just don&#8217;t want added to source safe. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=44&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>so for a long time I had been wondering if there was a way to remove files from visual studio 2005 so they would not show up in the project and be added to source safe. For example I have a fonts folder with 2000+ fonts that I just don&#8217;t want added to source safe. Well all the posts I found said this was not possible in visual studio 2005 and that you were pretty much stuck. Well I stumbled upon a solution, if you make any file or folder Hidden (right click properties) then the file will not show up in visual studio solution explorer. Then you can check in your project without worrying about source safe grabbing all those unwanted files. Hope this saves someone lots of time as it did me!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/o0joecool0o.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/o0joecool0o.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/o0joecool0o.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/o0joecool0o.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/o0joecool0o.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grabalife.com&amp;blog=1591205&amp;post=44&amp;subd=o0joecool0o&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grabalife.com/2008/08/11/remove-files-from-visual-studio-source-safe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/039caf48994ceaf65c41569c80823f71?s=96&#38;d=identicon&#38;r=PG" medium="image">
			<media:title type="html">joepensource</media:title>
		</media:content>
	</item>
	</channel>
</rss>
