<?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>iPhone Development 365</title>
	<atom:link href="http://id365.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://id365.wordpress.com</link>
	<description>A Year Long Project To Create An iPhone Application</description>
	<lastBuildDate>Wed, 24 Feb 2010 05:48:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='id365.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>iPhone Development 365</title>
		<link>http://id365.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://id365.wordpress.com/osd.xml" title="iPhone Development 365" />
	<atom:link rel='hub' href='http://id365.wordpress.com/?pushpress=hub'/>
		<item>
		<title>iPhone News Update</title>
		<link>http://id365.wordpress.com/2010/02/23/iphone-news-update/</link>
		<comments>http://id365.wordpress.com/2010/02/23/iphone-news-update/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 04:48:25 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=111</guid>
		<description><![CDATA[I was not able to spend much time on development today. So instead of burying myself in coding like the last couple of weeks, I decided to read up a little on what is new in the iPhone world. The biggest news is that Apple has banned sexually offensive apps from the store. They have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=111&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was not able to spend much time on development today. So instead of burying myself in coding like the last couple of weeks, I decided to read up a little on what is new in the iPhone world.</p>
<p>The biggest news is that Apple has banned sexually offensive apps from the store. They have identified some 5000 such apps. A large number, but only 3.5% of the 140,000 apps in the store. I certainly welcome such a move, since I am buying a iPodTouch for my son&#8217;s birthday next month.</p>
<p>Other big news seems to be all revolving around the upcoming iPad. I am deliberately ignoring any news related to the iPad for now. Got to concentrate on one thing at a time&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=111&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/23/iphone-news-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Working with XPath in libxml</title>
		<link>http://id365.wordpress.com/2010/02/22/working-with-xpath-in-libxml/</link>
		<comments>http://id365.wordpress.com/2010/02/22/working-with-xpath-in-libxml/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 04:23:34 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[libxml]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=108</guid>
		<description><![CDATA[Getting XPath to work in general is not too difficult. There is a example file on the libxml website that does exactly this. Basically, I need to create a XPath Context using the DOM document tree, and then call xmlXPathEvalExpression() on it. At first, I am struggling a bit to come up with the right [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=108&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Getting XPath to work in general is not too difficult. There is a <a href="http://xmlsoft.org/examples/index.html#xpath1.c" target="_blank">example file on the libxml website</a> that does exactly this. Basically, I need to create a XPath Context using the DOM document tree, and then call xmlXPathEvalExpression() on it.</p>
<p>At first, I am struggling a bit to come up with the right XPath expression. I have not used XPath for some time and have to refresh my memory. So I started using simple expressions and gradually build more complicated ones. If I were to have some XPath/XSLT development tools for the Mac, I will be well off but I don&#8217;t have and don&#8217;t know of any. And I decided not to spend time looking for one.</p>
<p>I did find a couple new things about using XPath in libxml. One is that in order to return text from any node, you have to navigate to the node and then call the text() function. Otherwise you get back a element node with no content, and have to manually navigate to its child text node to get the text. This throws me off a bit since I was not getting anything back before figuring this out.</p>
<p>Another thing is that it seems the library does not return any node that is not currently in the tree. One of text content has two pieces of information in it separated with a &#8220;:&#8221;. But calling any function to parse the text never return any result. I have tried a few different functions with the same result. If you use an invalid function name, or pass an invalid parameter, you get an error. So the system is definitely understands the function, but can&#8217;t return the result. XPath 2.0 spec indicates expressions like &#8220;/element/substring(., 1, 3)&#8221; should work, but in this case it does not. I guess string functions can only be used inside predicate clauses then.</p>
<p>Now that I get XPath working and getting reasonable results back, next thing to worry about is code organization. Right now, the code is a bit messy because I was trying various things out. I think it will be better to wrap all the C Language based HTML parsing and XPath evaluation code in a Objective-C class, so the code won&#8217;t be as messy. I also saw there is a feature in XPath context to assign a current node, so that relative XPath expression can be used. This is useful since many things to be extracted are close together under the same parent node, and navigating to the parent once and use relative paths to get the children will be clean and efficient.</p>
<p>Coming up: The first non trivial Objective-C class I will design with a custom API.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=108&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/22/working-with-xpath-in-libxml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Parsing HTML</title>
		<link>http://id365.wordpress.com/2010/02/21/parsing-html/</link>
		<comments>http://id365.wordpress.com/2010/02/21/parsing-html/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 04:10:51 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[C Library]]></category>
		<category><![CDATA[HTML Parsing]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[libxml]]></category>
		<category><![CDATA[NSXMLParser]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=103</guid>
		<description><![CDATA[If there is something easy, there got to be something else difficult to make up for it. Well parsing HTML was much more difficult than retrieving the HTML data from a web site. Good thing is that today is a weekend day, so I was able to spend extra time getting this to work. First [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=103&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If there is something easy, there got to be something else difficult to make up for it. Well parsing HTML was much more difficult than retrieving the HTML data from a web site. Good thing is that today is a weekend day, so I was able to spend extra time getting this to work.</p>
<p>First thing to try is the built-in Objective-C class NSXMLParser. This should work on XHTML document, but unfortunately, the web page I got back was a standard HTML document, not conforming to XML standard. The delegate &#8220;parser:parseErrorOccurred:&#8221; got called immediately without anything else.</p>
<p>Besides NSXMLParser on the iPhone, there is also &#8220;libxml2&#8243;, which is a lower level C language API for XML parsing. Well, I did not even think about trying that, expecting similar error to occur. What good is an XML parser if what I want to parse is HTML?</p>
<p>One thing I know I don&#8217;t want to do is to write the parsing code myself, or use a &#8220;regular expression&#8221; like some other programs do. I got my reward after I spent some time searching. There turned out to be a HTML parsing option in the libxml2 library. I was very excited and getting ready to try it out.</p>
<p>Up to this point, I have been working with iPhone&#8217;s built-in frameworks and Objective-C exclusively. Since libxml is a C library, getting it to work with my project requires some extra configuration. Again, searches on the web answered all my questions. After I added &#8220;/usr/include/libxml2/**&#8221; to the &#8220;Header Search Paths&#8221; in my project settings, and included &#8220;-lxml2&#8243; in &#8220;Other Linker Flags&#8221;, I was able to build my project successfully.</p>
<p>There is no example code provided for HTML parsing on the <a href="http://xmlsoft.org/" target="_blank">libxml2 web site</a>. But after going through the XML sample code and reviewing &#8220;HTMLParser.h&#8221; header file, it is easy to write the HTML parsing code. Thanks to some high level API in the library, I don&#8217;t not need to understand the details of how everything works here. All it takes is a single call to &#8220;htmlReadMemory&#8221; to get the parsed DOM tree back. Better yet, &#8220;xmlSaveFormatFile&#8221; can be used to save everything back out to a conforming xml file. (This certainly reminded me of the old days when I used nTidy to do the same thing in .Net environment)</p>
<p>Getting the html node tree is only half of the story. I need some way to extract the data I am looking for. In my research today, I found that libxml2 also supports evaluating XPath expressions. That will certainly complete the puzzle, and it will be the project for tomorrow&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=103&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/21/parsing-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Requesting Data from Internet</title>
		<link>http://id365.wordpress.com/2010/02/20/requesting-data-from-internet/</link>
		<comments>http://id365.wordpress.com/2010/02/20/requesting-data-from-internet/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 17:44:24 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Asynchronous]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSURLConnection]]></category>
		<category><![CDATA[NSURLRequest]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=100</guid>
		<description><![CDATA[Requesting data from the internet is easier than I thought. Well, I expected a synchronous request to to easy to do, but async requests are usually harder to implement. But not in this case. No need to create additional threads. I have decided to do async request from the very beginning, so this is what [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=100&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Requesting data from the internet is easier than I thought. Well, I expected a synchronous request to to easy to do, but async requests are usually harder to implement. But not in this case. No need to create additional threads.</p>
<p>I have decided to do async request from the very beginning, so this is what I dived into right away. Sending the request requires a chain of objects to be created. First is composing a NSString with the http address and request parameters. With that, an NSURL object can be created. Using NSURL, a NSURLRequest can be made to represent the request. And finally, a NSURLConnection is initialized with the request, which automatically sends it out.</p>
<p>Receiving the response really need 3 delegate calls to be implemented: &#8220;connection:didReceiveData:&#8221; is used to accumulate the data received, (Since my responses are small, I am not trying process each chunk of data separately).  &#8220;connectionDidFinishLoading:&#8221; signals the complete response is received. (Here is where I will process the data. I am saving the response to disk, for now anyways).<br />
To handle errors that may occur, &#8220;connection:didFailWithError:&#8221; is implemented to notify user and clean up house. (According to the documentation, either FinishLoading or FailWithError will get called, so I am not even keeping a list of outstanding requests, and simply release them when these are called.)</p>
<p>Moving on to processing the data received tomorrow.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=100&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/20/requesting-data-from-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Editing in UITableView</title>
		<link>http://id365.wordpress.com/2010/02/19/editing-in-uitableview/</link>
		<comments>http://id365.wordpress.com/2010/02/19/editing-in-uitableview/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 04:34:12 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[UIAlertView]]></category>
		<category><![CDATA[UIBarButtonSystemItem]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[UITableView]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=90</guid>
		<description><![CDATA[I got editing working in my Table View today. Overall not too difficult to do, only two things I had to figure out. First, there is a built in editButtonItem in UIView that is can be used with TableView. Once added to the navigation bar, it automatically puts the Table View into edit mode when [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=90&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I got editing working in my Table View today. Overall not too difficult to do, only two things I had to figure out.</p>
<p>First, there is a built in editButtonItem in UIView that is can be used with TableView. Once added to the navigation bar, it automatically puts the Table View into edit mode when clicked, and also changed its text to &#8220;Done&#8221; with a different background color. It handle&#8217;s internationalization too (although I won&#8217;t need this since US Chess Federation is a US entity, and I don&#8217;t expect any foreigner who does not speak English to use this app) Anyhow, I did not know about this earlier, and spent time trying to do it my self (and get pretty close).</p>
<p>The second item is not really Table View related. I want to show a transparent dialog with a text field for the user to enter a USCF ID to be added. Somehow, this is not standard feature and no built-in object does this automatically. Searching the web reveals that lots of people have the same problem, and the solution is to add a UITextField to a UIAlertView, and then move it up the screen to make room for the keyboard. I did implemented something similar to the <a href="http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html" target="_blank">code here</a>, and it worked nicely.</p>
<p>So here is how it works. When the &#8220;Edit&#8221; button is hit, it enters the standard editing mode of the Table View automatically without any code to write. I also override the &#8220;setEditing:animated:&#8221; call so that I get notified about the mode change, and replace the right button of my Navigation Bar to the standard UIBarButtonSystemItemAdd for adding new ID&#8217;s. This add button brings up the UIAlertView mentioned above to let the user add a new ID. Once the user accepts the new ID, it is added to the data model and the UITableView&#8217;s &#8220;insertRowsAtIndexPaths:withRowAnimation:&#8221; is called to animate the new row in. Delete function is all standard built-in.</p>
<p><a href="http://id365.files.wordpress.com/2010/02/editinsert.png"><img class="alignleft size-medium wp-image-89" title="EditInsert" src="http://id365.files.wordpress.com/2010/02/editinsert.png?w=145&#038;h=270" alt="" width="145" height="270" /></a><a href="http://id365.files.wordpress.com/2010/02/editdelete.png"><img class="alignleft size-medium wp-image-87" title="EditDelete" src="http://id365.files.wordpress.com/2010/02/editdelete.png?w=145&#038;h=270" alt="" width="145" height="270" /></a><a href="http://id365.files.wordpress.com/2010/02/editdone.png"><img class="alignleft size-medium wp-image-88" title="EditDone" src="http://id365.files.wordpress.com/2010/02/editdone.png?w=145&#038;h=270" alt="" width="145" height="270" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=90&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/19/editing-in-uitableview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/editinsert.png?w=145" medium="image">
			<media:title type="html">EditInsert</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/editdelete.png?w=145" medium="image">
			<media:title type="html">EditDelete</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/editdone.png?w=145" medium="image">
			<media:title type="html">EditDone</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting UINavigationController and UITabBarController to Play Together</title>
		<link>http://id365.wordpress.com/2010/02/18/getting-uinavigationcontroller-and-uitabbarcontroller-to-play-together/</link>
		<comments>http://id365.wordpress.com/2010/02/18/getting-uinavigationcontroller-and-uitabbarcontroller-to-play-together/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 04:19:16 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Interface Builder]]></category>
		<category><![CDATA[UINavigationController]]></category>
		<category><![CDATA[UITabBarController]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=79</guid>
		<description><![CDATA[I am setting up a NavigationController for my MemberView, so that I can drill down to details. As I structure the app a few days ago, the MemberView itself is actually a view inside of a TabBarController. So the struggle today is to get these two working together using objects created inside Interface Builder. I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=79&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am setting up a NavigationController for my MemberView, so that I can drill down to details. As I structure the app a few days ago, the MemberView itself is actually a view inside of a TabBarController. So the struggle today is to get these two working together using objects created inside Interface Builder.</p>
<p>I have found sample codes where things get created programmatically instead of using Interface Builder, but I have already setup stuff in IB and kind of like the current setup where things can be changed visually.</p>
<p>I have no trouble creating both controllers in IB, I even tested the objects by linking the root controller to either one, they they both work. But I can&#8217;t figure out how to link them together inside of IB. I tried many combinations and none seems to work.</p>
<p>And finally, I concluded that it is not possible (at least without some additional coding). The problem is not so much about linking them, as the TabBarController can create a NavigationController no problem. The questions is how to get the first view &#8220;pushed&#8221; into the NavigationController. If you drag a NavigationController to the nib, you can do this, but when it is automatically created by TabBarController, this can&#8217;t be done.</p>
<p>So the solution I came up with is to declare an IBOutlet for the NavigationController, and push the first view onto it programmatically. Here is the code I used in my application delegate to do this. memberNavController and rootController are the two IBOutlets that links to TabBarController and NavigationController in the nib. This did the trick for me.</p>
<pre>- (void)applicationDidFinishLaunching:(UIApplication *)application
{
	[memberNavController pushViewController:
		[[[MemberViewController alloc] init] autorelease] animated:NO];

	[window addSubview:rootController.view];
	[window makeKeyAndVisible];
}</pre>
<p><a href="http://id365.files.wordpress.com/2010/02/mainnibfile.png"><img class="alignright size-full wp-image-80" title="MainNibFile" src="http://id365.files.wordpress.com/2010/02/mainnibfile.png?w=497&#038;h=271" alt="" width="497" height="271" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=79&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/18/getting-uinavigationcontroller-and-uitabbarcontroller-to-play-together/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/mainnibfile.png" medium="image">
			<media:title type="html">MainNibFile</media:title>
		</media:content>
	</item>
		<item>
		<title>Data Persistence</title>
		<link>http://id365.wordpress.com/2010/02/17/data-persistence/</link>
		<comments>http://id365.wordpress.com/2010/02/17/data-persistence/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 01:16:33 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Archiving]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[Persistence]]></category>
		<category><![CDATA[Settings]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=77</guid>
		<description><![CDATA[Decided to tackle data persistence today. I found a few approaches that can be taken, and have chosen the one I am going use. Here are the reasons why the other choices were rejected: Core Data &#8211; This can be the best approach, but the learning curve seems to be steep. I don&#8217;t have the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=77&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Decided to tackle data persistence today. I found a few approaches that can be taken, and have chosen the one I am going use. Here are the reasons why the other choices were rejected:</p>
<ul>
<li>Core Data &#8211; This can be the best approach, but the learning curve seems to be steep. I don&#8217;t have the time to spend on this, and frankly this may be overkill for the simple data I am trying to persist. Someday I will definitely get into this.</li>
<li>NSUserDefault &#8211; This will probably work also, but I already plan to use this to integrate with System Settings and not sure how I can mix private data with System Settings. Did not find any sample for this, so decided to stay away when saving member data</li>
<li>Sqlite &#8211; This seems to be the traditional way of saving data. But now with the availability of Core Data, the reason to learn this lower level interface is diminishing.</li>
</ul>
<p>So anyhow, I decided to create my own data file under the application&#8217;s &#8220;Documents&#8221; directory. Once I dig deeper into this, it seems there are a few ways I can do this:</p>
<ul>
<li>Use PropertyList Serialization &#8211; This seems to create very readable/editable xml plist files. But the data model may need to be NSArray, NSDictionary, NSString, and primitive types. (I am not really sure about this, but don&#8217;t have time to find out exactly what is supported) I already have my data model class working, so don&#8217;t want to redo all the work again. If I knew about this earlier&#8230;</li>
<li>Support &lt;NSCoding&gt; in my data model object, and use NSKeyedArchiver/NSKeyedUnarchiver &#8211; This is the approach I took. Worked well but the generated data file is a little bigger and not very readable (although it is xml and plist based)</li>
<li>Implement my own binary or xml file format &#8211; Not really looking to do all the low level code for this</li>
</ul>
<p>Once I decided what to do, implementation was not too difficult. I also found some code on the web to get user&#8217;s &#8220;Document&#8221; directory, and if there is no data file there, initial data can be initialized from a default file in the application bundle.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=77&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/17/data-persistence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Data Model and Basic Table View</title>
		<link>http://id365.wordpress.com/2010/02/16/data-model-and-basic-table-view/</link>
		<comments>http://id365.wordpress.com/2010/02/16/data-model-and-basic-table-view/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 03:34:42 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Data Model]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Table View]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=74</guid>
		<description><![CDATA[Creating the data model class (I called it MemberInfoModel) was not very difficult. Just a bit tedious adding 14 different instance variables, declaring 14 properties, and synthesizing 14 getter/setters. Wish there is a way to save all the typing (and the typos here and there). In addition to the MemberInfoModel, I also created a MemberListModel [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=74&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://id365.files.wordpress.com/2010/02/member-view.png"><img class="alignleft size-medium wp-image-70" title="Member View" src="http://id365.files.wordpress.com/2010/02/member-view.png?w=300&#038;h=264" alt="" width="300" height="264" /></a>Creating the data model class (I called it MemberInfoModel) was not very difficult. Just a bit tedious adding 14 different instance variables, declaring 14 properties, and synthesizing 14 getter/setters. Wish there is a way to save all the typing (and the typos here and there). In addition to the MemberInfoModel, I also created a MemberListModel that encapsulates the an array of MemberInfoModel plus a last update time. I envision these model classes can be used for both the Member View, as well as the results for the Search View.</p>
<p>Next comes setting up the basic Table View. I have learned a bit about Table View a few days ago, and happy to put all that knowledge to use. In the same spirit of trying to share the code with the Search Results, I have created a separate view controller for handling the all the common Table View related functions (such as being the Table View&#8217;s DataSouce and Delegate). I experimented a little, and found the winning combination: Basically, I added the new controller to the nib at top level in Interface Builder, hook up the &#8220;view&#8221; property to the Table View a couple levels down in the main view hierarchy, and link the DataSource and Delegate from the Table View back to this controller (instead of &#8220;File&#8217;s Owner&#8221;, which is really the main View Controller). I was quite proud that I get this working&#8230;</p>
<p>I also programmatically created two sample members to make sure everything is working well. Not very exciting from a user interface perspective, but quite a bit was happening in the background trying to setup for future sharing of code.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=74&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/16/data-model-and-basic-table-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/member-view.png?w=300" medium="image">
			<media:title type="html">Member View</media:title>
		</media:content>
	</item>
		<item>
		<title>Member View</title>
		<link>http://id365.wordpress.com/2010/02/15/member-view/</link>
		<comments>http://id365.wordpress.com/2010/02/15/member-view/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 20:21:58 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[iPhone SDK]]></category>
		<category><![CDATA[Project Idea]]></category>
		<category><![CDATA[Table View]]></category>
		<category><![CDATA[UIKit]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=71</guid>
		<description><![CDATA[Now that I have the top level structure of the application, I am starting to work on each of the individual tabs. Going from left to right seems to a natural order, so Member View will what I will focus on next. This is probably the most complicated among the four, so I am giving [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=71&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Now that I have the top level structure of the application, I am starting to work on each of the individual tabs. Going from left to right seems to a natural order, so Member View will what I will focus on next. This is probably the most complicated among the four, so I am giving myself 2 weeks to finish it.</p>
<p>Thinking through what needs to be done to fully implement this view, I made a list of to do items:</p>
<ul>
<li>Creating data model to store all the required data</li>
<li>Saving/loading the data to persistent storage</li>
<li>Making basic Table View to get things going</li>
<li>Customizing Table View Cell layout to show more information</li>
<li>Editing Table View so that members can be removed (maybe add by ID too)</li>
<li>Drilling down from the Table View to show details (Navigation View Controller)</li>
<li>Sorting Table View base on different criteria (name, rating, etc.)</li>
<li>Implementing user settings for preferences (sorting criteria, etc.)</li>
<li>Internet request to retrieve the web pages containing the data</li>
<li>Parsing the HTML data to extract required information</li>
<li>Updating info for all saved members (possibly async in the background)</li>
</ul>
<p>If I spend 1 day on each of the above, that will leave me 3 extra days for additional learning and/or solving problems that I am sure I will run into.</p>
<p>Let&#8217;s see how well this plan can be executed&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=71&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/15/member-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>
	</item>
		<item>
		<title>Tab Bar Icons</title>
		<link>http://id365.wordpress.com/2010/02/14/tab-bar-icons/</link>
		<comments>http://id365.wordpress.com/2010/02/14/tab-bar-icons/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 20:41:26 +0000</pubDate>
		<dc:creator>id365</dc:creator>
				<category><![CDATA[Chess Rating Lookup]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Icon]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Tab Bar]]></category>

		<guid isPermaLink="false">http://id365.wordpress.com/?p=67</guid>
		<description><![CDATA[I did not like the default question mark icon for my TabBar, so I started looking for something better. Luckily, I found the GLYPHISH site where they have over 100 free tab bar icons. Given the limited choice, here are the four icons that I think best fit the tabs I have. Not the best [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=67&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_62" class="wp-caption alignright" style="width: 319px"><a href="http://id365.files.wordpress.com/2010/02/tabbar.png"><img class="size-full wp-image-62 " title="TabBar" src="http://id365.files.wordpress.com/2010/02/tabbar.png?w=309&#038;h=147" alt="" width="309" height="147" /></a><p class="wp-caption-text">The Four Tabs With Icons</p></div>
<p>I did not like the default question mark icon for my TabBar, so I started looking for something better. Luckily, I found the <a href="http://glyphish.com" target="_blank">GLYPHISH</a> site where they have over 100 free tab bar icons.</p>
<p>Given the limited choice, here are the four icons that I think best fit the tabs I have. Not the best (especially for the Recent searches), but they will do for now.</p>
<p>I am keeping it a fairly light day today in observation of Chinese New Year and Valentine&#8217;s Day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/id365.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/id365.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/id365.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=id365.wordpress.com&amp;blog=11754845&amp;post=67&amp;subd=id365&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://id365.wordpress.com/2010/02/14/tab-bar-icons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8781796e89499e0a76d0a4f2ec15fbb0?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">id365</media:title>
		</media:content>

		<media:content url="http://id365.files.wordpress.com/2010/02/tabbar.png" medium="image">
			<media:title type="html">TabBar</media:title>
		</media:content>
	</item>
	</channel>
</rss>
