<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WebSight Design Blog &#187; Code</title>
	<atom:link href="http://blog.websightdesign.com/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.websightdesign.com</link>
	<description>The Official Blog of WebSight Design, Inc.</description>
	<lastBuildDate>Tue, 27 Jul 2010 23:03:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Meet the WebSight Design Team: Alex Paine</title>
		<link>http://blog.websightdesign.com/2010/04/27/meet-the-websight-design-team-alex-paine/</link>
		<comments>http://blog.websightdesign.com/2010/04/27/meet-the-websight-design-team-alex-paine/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 18:44:47 +0000</pubDate>
		<dc:creator>bennet</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[alex paine]]></category>
		<category><![CDATA[WebSight Design]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=865</guid>
		<description><![CDATA[For the second installment of our Meet the Team blog posts, we wanted to give you the opportunity to get to know our CEO, Alex Paine, who co-founded WebSight Design in 1995 with his childhood friend, Joe Conte.<p><a href="http://blog.websightdesign.com/2010/04/27/meet-the-websight-design-team-alex-paine/">Meet the WebSight Design Team: Alex Paine</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.websightdesign.com/wp-content/uploads/2010/04/MarisaAlex.jpg"><img class="alignleft size-medium wp-image-887" style="margin-left: 8px;margin-right: 8px" src="http://blog.websightdesign.com/wp-content/uploads/2010/04/MarisaAlex-300x225.jpg" alt="" width="270" height="203" /></a>For the second installment of our Meet the Team blog posts, we wanted to give you the opportunity to get to know our CEO, Alex Paine, who co-founded <a href="http://www.websightdesign.com" target="_blank">WebSight Design</a> in 1995 with his childhood friend, Joe Conte.</p>
<p style="text-align: center">
<p>These days, during the few moments when he&#8217;s not working, Alex can be found at home with his wife Marisa and new baby Maya or, if possible, out on a skiing or fly fishing adventure.</p>
<p><strong>What is the best part about working at WSD?</strong></p>
<p>Interacting with a group of extremely bright colleagues.</p>
<p><strong>What is your most challenging daily task?</strong></p>
<p>Remaining calm, patient, and rational while clients do the inverse.</p>
<p><strong>What is your favorite daily task?</strong></p>
<p>Looking at the accounts receivable report.</p>
<p><strong>What do you consider the best possible working environment?</strong></p>
<p>35,000 feet, first class seat, wireless access and no phone!</p>
<p><strong>If WSD hadn&#8217;t been started, what other kind of work would you be doing? </strong></p>
<p>Fly fishing guide in the summer, ski patrol in the winter.</p>
<p><strong>What is your greatest accomplishment outside of work?</strong></p>
<p>Convincing my wife, Marisa Rodriguez, that she should marry me.</p>
<p><strong>Mac or PC?</strong></p>
<p>Mac all the way!!!</p>
<p><strong>What is your biggest pet peeve?</strong></p>
<p>Getting my colleagues to enter their hours accurately and in a timely manner.</p>
<p><strong>What website do you visit most often?</strong></p>
<p>It&#8217;s a tie between our intranet and Basecamp.</p>
<p><strong>Do you have a favorite quotation? </strong></p>
<p>&#8220;Energy and persistence conquer all things.&#8221; -Benjamin Franklin</p>
<p style="text-align: center"><a href="http://blog.websightdesign.com/wp-content/uploads/2010/04/Maya.jpg"><img class="size-medium wp-image-876  aligncenter" src="http://blog.websightdesign.com/wp-content/uploads/2010/04/Maya-300x226.jpg" alt="" width="300" height="226" /></a></p>
<p><a href="http://blog.websightdesign.com/2010/04/27/meet-the-websight-design-team-alex-paine/">Meet the WebSight Design Team: Alex Paine</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2010/04/27/meet-the-websight-design-team-alex-paine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebSight Design in Development</title>
		<link>http://blog.websightdesign.com/2010/03/11/websight-design-in-development/</link>
		<comments>http://blog.websightdesign.com/2010/03/11/websight-design-in-development/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:45:46 +0000</pubDate>
		<dc:creator>Vanessa</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WebSight Design]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[Domain Driven Design]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Model-View-Controller]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[springloops]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[web usability]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=639</guid>
		<description><![CDATA[The beauty of WebSight Design lies in our full range of web services.  From design to development, SEO, hosting, and IT support, we have an excellent 15-year track record of providing our clients with the best possible products and services. Over the years, we have built our own PHP development environment, based on the open-source [...]<p><a href="http://blog.websightdesign.com/2010/03/11/websight-design-in-development/">WebSight Design in Development</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p>The beauty of WebSight Design lies in our full range of <a href="http://www.websightdesign.com/services">web services</a>.  From design to development, SEO, hosting, and IT support, we have an excellent 15-year track record of providing our clients with the best possible products and services.</p>
<p>Over the years, we have built our own PHP development environment, based on the open-source <a href="http://www.zend.com/en/" target="_blank">Zend</a> framework. We have a strong belief in the <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" target="_blank">Model-View-Controller</a> (MVC) architecture, and strict version control with <a href="http://subversion.apache.org/" target="_blank">Subversion</a> (SVN), because the results are cleaner, more efficient code. Utilizing the Zend framework also gives us access to the large and expanding library for <a href="http://www.cs.bgsu.edu/maner/domains/RAD.htm" target="_blank">Rapid Application Development</a> (RAD), while still having the flexibility to customize the framework and make it our own.</p>
<p style="text-align: center;"><a href="http://blog.websightdesign.com/wp-content/uploads/2010/03/samplesite1.jpg"><img class="size-medium wp-image-666 aligncenter" title="samplesite" src="http://blog.websightdesign.com/wp-content/uploads/2010/03/samplesite1-300x257.jpg" alt="" width="300" height="257" /></a></p>
<p>Using the MVC design pattern allows us to have a clear separation of business logic and presentation logic.  This presents a distinct advantage when building web applications because it separates what the user sees from what goes on in the background.  This moves away from mixing data-layer code, such as database queries, in with your display code and allows us to create <a href="http://www.websightdesign.com/services/programming-examples">reusable modules</a>, such as photo galleries and shopping carts, for significantly faster builds in large applications.</p>
<p>The MVC architecture also offers ease of maintenance, since each component (model, view and controller) is self contained, performing upgrades and changes, such as switching databases from Access to MySQL, become much less painful and cumbersome then in the past.</p>
<p>We make it a priority to stay on the frontline of the ever changing technology in the Web and Internet industry; currently, we are working on a 2.0 version of our framework that will use portions of <a href="http://domaindrivendesign.org/ ">Domain Driven Design</a> (DDD) to create clean structure and more efficient code patterns.  One of the biggest changes on the way is a central code base with customizable modules.  With this 2.0 framework we will be able to increase our build time on large projects, and push upgrades to a central code base rather then individual applications.</p>
<p>But don’t think that since we developed our own PHP framework we are averse to working with other languages.  Just send your application our way and we are happy to roll up our sleeves, jump into your Ruby/Flash/ASP project and get our hands dirty.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Founded in 1995, WebSight Design offers business clients a range of website design and development services, including <a href="http://www.websightdesign.com/services/web-site-development">website programming</a>, website hosting, website marketing, and colocation management.</p>
<p><a href="http://blog.websightdesign.com/2010/03/11/websight-design-in-development/">WebSight Design in Development</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2010/03/11/websight-design-in-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Design Is Not A Pretty Picture.</title>
		<link>http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/</link>
		<comments>http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:41:33 +0000</pubDate>
		<dc:creator>steph</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=571</guid>
		<description><![CDATA[Or rather, design is not <b>just</b> a pretty picture.

It’s direction. It’s credibility establishment. It’s communication. And it initializes all functionality on the site by getting users to take action. — to click, to scroll, to fill out a form, or purchase a product. Without a well-thought-out design, it doesn’t matter how robust and bullet-proof the back-end functionality is; users will never make it far enough to experience any of the programming features. This, coupled with the fact that your site’s design is your business’ first impression, makes design one of the most important features of your online presence.

<a href="http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/"><b>Read on to find out how good design initiates user action.</b></a><p><a href="http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/">Design Is Not A Pretty Picture.</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Or rather, design is not <strong><em>just</em></strong> a pretty picture.</p>
<p>It’s direction. It’s credibility establishment. It’s communication. And it initializes all functionality on the site by getting users to take action. — to click, to scroll, to fill out a form, or purchase a product.</p>
<p>I like to think of design as “left-brained art.” It’s visual interest that serves a specific purpose, namely to get users to interact with the site. As opposed to “right-brained art,” design doesn’t just hang on your mantle, looking lovely and drumming up nostalgia. It’s dynamic. Without a well-thought-out design, it doesn’t matter how robust and bullet-proof the back-end functionality is; users will never make it far enough to experience any of the programming features. This, coupled with the fact that your site’s design is your business’ first impression, makes design one of the most important features of your online presence.</p>
<p><img class="aligncenter size-full wp-image-574" title="magpass_300" src="http://blog.websightdesign.com/wp-content/uploads/2010/02/magpass_300.jpg" alt="magpass_300" width="300" height="284" /></p>
<p><strong>Here’s how good design initiates user action:</strong></p>
<p><strong>First, the design must communicate a message.</strong> But not just any message. It must communicate your business’ brand identity, product or service, corporate values, and what sets your offering apart from everyone else’s. When your site communicates this stuff instantly and clearly, you’ve captured the attention of your target customer.</p>
<p><strong>Second, the design must establish trust</strong>. In other words, the site has to look legit. Users want to be assured that yours is the kind of web site where they can enter their email address and not immediately receive a truckload of unrelated spam. They want to know that their credit card number is safe. They want to see that you care enough about your customers, and have enough pride in your business, to make your visual presentation one that is current, is impressive, and is inviting. When your site looks legit, your target customer will stay for a longer visit, and be more likely to visit the site again.</p>
<p><strong>Third, the design must tell the user what to do.</strong> Okay, the user has landed on this beautiful home page. Now what? Without a call to action, the user is likely to become confused or bored, and will leave. If your Google Analytics stats show a high bounce rate from your home page, you might want to take a look and see if there’s a clear call to action, telling the user where to go from here in a clear and compelling way. When the action steps are clear on your site, your target customer will take them.</p>
<p>To this end, it’s important that the design department and the development department work closely together, to establish from the beginning the site’s goals, the business’ niche, values, and strategy, and the number one action that users should take. A good design will communicate these things clearly; a great design will be reflected in your web site stats.</p>
<p>For a case study illustrating how design improves conversion, <a href="mailto:sales@websightdesign.com">contact us</a>, and ask us how we helped a Bay Area attorney&#8217;s office gain a 300% increase in online form submissions, just by improving page graphics.</p>
<p><a href="http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/">Design Is Not A Pretty Picture.</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Santana iPhone App Updated</title>
		<link>http://blog.websightdesign.com/2009/11/23/santana-iphone-app-updated/</link>
		<comments>http://blog.websightdesign.com/2009/11/23/santana-iphone-app-updated/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 20:13:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=288</guid>
		<description><![CDATA[The latest updates to the Official Santana iPhone Application have been submitted to Apple, so if you haven&#8217;t downloaded this killer app to your iPhone or iPod Touch yet, now&#8217;s your chance! The app features videos and exclusive content that you can&#8217;t get on the Santana.com web site. It&#8217;s free and it&#8217;s a must-have for [...]<p><a href="http://blog.websightdesign.com/2009/11/23/santana-iphone-app-updated/">Santana iPhone App Updated</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p>The latest updates to the Official Santana iPhone Application have been submitted to Apple, so if you haven&#8217;t <a href="http://itunes.com/app/Santana">downloaded this killer app</a> to your iPhone or iPod Touch yet, now&#8217;s your chance! The app features videos and exclusive content that you can&#8217;t get on the Santana.com web site. It&#8217;s <b>free</b> and it&#8217;s a must-have for any fan.</p>
<div align="center"><img src="http://www.websightdesign.com/views/images/design/santana_ipa1.jpg" alt="Official Santana iPhone App" style="border:2px #fff solid; margin:10px 0px;" /></div>
<p><a href="http://blog.websightdesign.com/2009/11/23/santana-iphone-app-updated/">Santana iPhone App Updated</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2009/11/23/santana-iphone-app-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Clothing Deserves A Custom Site</title>
		<link>http://blog.websightdesign.com/2009/11/23/custom-clothing-deserves-a-custom-site/</link>
		<comments>http://blog.websightdesign.com/2009/11/23/custom-clothing-deserves-a-custom-site/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 17:23:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=283</guid>
		<description><![CDATA[Franklin + Gower, a Los Angeles-based clothier, came to us looking for solutions, both design and e-commerce. The client already had a logo — as well as design sensibility and a sense of the look &#38; feel they were going for. The rest, as they say, is GUI history. Implementing lots of slick AJAX and [...]<p><a href="http://blog.websightdesign.com/2009/11/23/custom-clothing-deserves-a-custom-site/">Custom Clothing Deserves A Custom Site</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.websightdesign.com/wp-content/themes/nourish/images/fandg_ss.jpg" alt="" style="float:left; margin:0px 10px 10px 0px;" />Franklin + Gower, a Los Angeles-based clothier, came to us looking for solutions, both design and e-commerce. The client already had a logo — as well as design sensibility and a sense of the look &amp; feel they were going for. The rest, as they say, is GUI history. Implementing lots of slick AJAX and JQuery, we made the screen transitions as clean-lined and fresh as the custom F+G pants. And with robust e-commerce capabilities, the site enables the fashion-forward to design, size, and purchase their custom pants or shorts in real time.</p>
<p><a href="http://www.franklinandgower.com" target="_blank">Check out the site!</a> Play around with the swatch picker, and see our coding in action. The smart folks at Franklin + Gower update new brilliant swatches frequently, so your new pants are sure to be unique and trendsetting.</p>
<p><a href="http://blog.websightdesign.com/2009/11/23/custom-clothing-deserves-a-custom-site/">Custom Clothing Deserves A Custom Site</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2009/11/23/custom-clothing-deserves-a-custom-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the UIImagePickerController in an iPhone OS v2.2.1 app &amp; On A OS v3.0 Device</title>
		<link>http://blog.websightdesign.com/2009/08/31/using-the-uiimagepickercontroller-in-an-iphone-os-v2-2-1-app-on-a-os-v3-0-device/</link>
		<comments>http://blog.websightdesign.com/2009/08/31/using-the-uiimagepickercontroller-in-an-iphone-os-v2-2-1-app-on-a-os-v3-0-device/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 18:50:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[cocoa touch]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=225</guid>
		<description><![CDATA[So I wrote an iPhone application for a client using v2.2.1 of the iPhone SDK. (The client did not want to go OS v3.0 yet.) I needed to give a user the capability of taking and uploading a picture with the built-in camera or uploading a picture from the photo library on the phone. Seems [...]<p><a href="http://blog.websightdesign.com/2009/08/31/using-the-uiimagepickercontroller-in-an-iphone-os-v2-2-1-app-on-a-os-v3-0-device/">Using the UIImagePickerController in an iPhone OS v2.2.1 app &#038; On A OS v3.0 Device</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p>So I wrote an <a href="http://www.websightdesign.com/services/iphone">iPhone application</a> for a client using v2.2.1 of the iPhone SDK. (The client did not want to go OS v3.0 yet.) I needed to give a user the capability of taking and uploading a picture with the built-in camera or uploading a picture from the photo library on the phone. Seems pretty straightforward so far. Yes? I thought so. It turned out to be pretty tricky but the solution was very simple and was staring me in the face.</p>
<p><strong>The Problem</strong><br />
I had a UIViewController with an UIImageView setup to be used as a container for the selected image. I also had several UIButtons on the page. (One button for calling up the camera. Another button for calling up the photo library, etc&#8230;) So what should have happened is that the Camera or photo library UI would display a Modal View window the user instructing them to either take a picture or select a photo from their library. Once they did that, they would be returned to the main view and whatever photo they took or selected would appear in UIImageView as a preview. However, when I was selecting the photo the &#8220;editingInfo&#8221; NSDictionary object that was supposed to be returned would be there only about 50% of the time. The other 50% it would be returned empty. I double and triple checked my code and it was all correct. Something was zapping my dictionary object and I couldn&#8217;t, for the life of me, figure out what it was.</p>
<p>The second part to this problem was that the preview image never appeared whenever the user was grabbing their image from the camera. It worked if the photo library was the source but not if it was the camera. Very, very frustrating.</p>
<p>Here is my original code:</p>
<p>My .h file -</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a61390;">@interface</span> AddPhotoController <span style="color: #002200;">:</span> UIViewController &nbsp;<span style="color: #002200;">&#123;</span><br />
IBOutlet UIImageView <span style="color: #002200;">*</span>imageView;<br />
IBOutlet UIButton <span style="color: #002200;">*</span>snapNewPictureButton;<br />
IBOutlet UIButton <span style="color: #002200;">*</span>selectFromPhotoLibraryButton;<br />
<span style="color: #002200;">&#125;</span><br />
<span style="color: #a61390;">@property</span> <span style="color: #002200;">&#40;</span>nonatomic, retain<span style="color: #002200;">&#41;</span> UIImageView <span style="color: #002200;">*</span>imageView;<br />
<span style="color: #a61390;">@property</span> <span style="color: #002200;">&#40;</span>nonatomic, retain<span style="color: #002200;">&#41;</span> UIButton <span style="color: #002200;">*</span>snapNewPictureButton;<br />
<span style="color: #a61390;">@property</span> <span style="color: #002200;">&#40;</span>nonatomic, retain<span style="color: #002200;">&#41;</span> UIButton <span style="color: #002200;">*</span> selectFromPhotoLibraryButton;</div></div>
<p>My .m file -</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a61390;">@implementation</span> AddPhotoController<br />
<span style="color: #a61390;">@synthesize</span> imageView, snapNewPictureButton, selectFromPhotoLibraryButton;</div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>IBAction<span style="color: #002200;">&#41;</span>getCameraPicture<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>sender<br />
<span style="color: #002200;">&#123;</span><br />
UIImagePickerController <span style="color: #002200;">*</span>picker <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIImagePickerController alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;<br />
picker.delegate <span style="color: #002200;">=</span> self;<br />
picker.sourceType <span style="color: #002200;">=</span> UIImagePickerControllerSourceTypeCamera;<br />
picker.allowsImageEditing <span style="color: #002200;">=</span> <span style="color: #a61390;">YES</span>;</div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">&#91;</span>self presentModalViewController<span style="color: #002200;">:</span>picker animated<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#91;</span>picker release<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span></div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>imagePickerController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIImagePickerController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>picker didFinishPickingImage<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIImage <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>image editingInfo<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>editingInfo<br />
<span style="color: #002200;">&#123;</span><br />
NSLog<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;Image Meta Info.: %@&quot;</span>,editingInfo<span style="color: #002200;">&#41;</span>;</div></div>
<p>UIImage *selectedImage = image;<br />
imageView.image = selectedImage;<br />
self._havePictureData = YES;<br />
[self.useThisPhotoButton setEnabled:YES];</p>
<p>[picker dismissModalViewControllerAnimated:YES];<br />
}</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>imagePickerControllerDidCancel<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIImagePickerController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>picker<br />
<span style="color: #002200;">&#123;</span><br />
<span style="color: #002200;">&#91;</span>picker dismissModalViewControllerAnimated<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span></div></div>
<p>Like I said before, it all seems pretty straightforward. However, there were two things wrong with the above code.<br />
#1. Deprecated Method<br />
The UIImagePickerController method, <strong>– imagePickerController:didFinishPickingImage:editingInfo:</strong>, is deprecated in v3.0 of the iPhone OS. So even though I built the app using SDK v2.2.1, because the app will be running on 3.0 devices, I needed to use the new and improved method, <strong>- imagePickerController:didFinishPickingMediaWithInfo:editingInfo</strong>, which contains FIVE pieces of really important information:</p>
<ol>
<li> UIImagePickerControllerMediaType &#8211; Which specifies the type of media that this dictionary contains.</li>
<li> UIImagePickerControllerOriginalImage &#8211; Contains the original non-cropped image.</li>
<li> UIImagePickerControllerEditedImage &#8211; Contains the user-edited cropped image.</li>
<li> UIImagePickerControllerCropRect &#8211; Contains the CGRect that was applied to the original image.</li>
<li> UIImagePickerControllerMediaURL &#8211; If the object is a movie, this object contains the URL to be used by the media player.</li>
</ol>
<p>I simply accessed the &#8220;UIImagePickerControllerEditedImage&#8221; object from the dictionary and was off to the races.</p>
<p>#2. Dismissing the Modal View<br />
This one was really painful as it was so simple to solve. In order for the UIImageView to be updated correctly, you must dismiss the ImagePicker modal window BEFORE you attempt to update your UIImageView.</p>
<p>As a result of this, here is my updated method call:</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span> imagePickerController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIImagePickerController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>thePicker didFinishPickingMediaWithInfo<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/"><span style="color: #400080;">NSDictionary</span></a> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>imageInfo<br />
<span style="color: #002200;">&#123;</span><br />
<span style="color: #002200;">&#91;</span>thePicker dismissModalViewControllerAnimated<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;<br />
UIImage <span style="color: #002200;">*</span>img <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>imageInfo objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImagePickerControllerEditedImage&quot;</span><span style="color: #002200;">&#93;</span>;<br />
previewImage.image <span style="color: #002200;">=</span> <span style="color: #a61390;">nil</span>;<br />
self.previewImage.image <span style="color: #002200;">=</span> img;</div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/"><span style="color: #400080;">NSData</span></a> <span style="color: #002200;">*</span>imageData <span style="color: #002200;">=</span> UIImagePNGRepresentation<span style="color: #002200;">&#40;</span>img<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>imageData length<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&amp;</span>gt; <span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span></div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">&#91;</span>self archivePictureData<span style="color: #002200;">:</span>imageData<span style="color: #002200;">&#93;</span>;<br />
self._havePictureData <span style="color: #002200;">=</span> <span style="color: #a61390;">YES</span>;</div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">&#91;</span>self.useThisPhotoButton setEnabled<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span></div></div>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">&#125;</span></div></div>
<p>That was it. Hope that was helpful.</p>
<p><a href="http://blog.websightdesign.com/2009/08/31/using-the-uiimagepickercontroller-in-an-iphone-os-v2-2-1-app-on-a-os-v3-0-device/">Using the UIImagePickerController in an iPhone OS v2.2.1 app &#038; On A OS v3.0 Device</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2009/08/31/using-the-uiimagepickercontroller-in-an-iphone-os-v2-2-1-app-on-a-os-v3-0-device/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Case Study: Carlos Santana iPhone App</title>
		<link>http://blog.websightdesign.com/2009/03/31/case-study-carlos-santana-iphone-app/</link>
		<comments>http://blog.websightdesign.com/2009/03/31/case-study-carlos-santana-iphone-app/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 02:33:12 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Clients]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[Santana]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=25</guid>
		<description><![CDATA[About a month ago, WebSight Design released our first iPhone application, (http://itunes.com/app/Santana), for the musician Carlos Santana. I thought it might be interesting and maybe even helpful for others iPhone developers if I listed some of my experiences with building this application. I figure I would describe the application (features, etc&#8230;), and illustrate some of [...]<p><a href="http://blog.websightdesign.com/2009/03/31/case-study-carlos-santana-iphone-app/">Case Study: Carlos Santana iPhone App</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p style="clear: both"><a class="image-link" href="http://itunes.com/app/Santana"><img style=" display: inline; float: left; margin: 0 10px 10px 0;" src="http://blog.websightdesign.com/wp-content/uploads/2009/03/icon-copy-thumb.gif" alt="" width="57" height="57" align="left" /></a>About a month ago, <a title="WebSight Design, Inc." href="http://www.websightdesign.com" target="_blank">WebSight Design</a> released our first iPhone application, (<a title="Link to Santana app in iTunes" href="http://itunes.com/app/Santana" target="_blank">http://itunes.com/app/Santana</a>), for the musician <a title="Carlos Santana" href="http://www.santana.com" target="_blank">Carlos Santana</a>. I thought it might be interesting and maybe even helpful for others iPhone developers if I listed some of my experiences with building this application. I figure I would describe the application (features, etc&#8230;), and illustrate some of the pitfalls I encountered throughout the development process and how they were dealt with.</p>
<p style="clear: both"><a class="image-link" href="http://blog.websightdesign.com/wp-content/uploads/2009/03/screenshot-2.jpg"><img class="linked-to-original" style=" display: inline; float: left; margin: 0 10px 10px 0;" src="http://blog.websightdesign.com/wp-content/uploads/2009/03/screenshot-2-thumb.jpg" alt="" width="185" height="172" align="left" /></a><strong>Application Features</strong><br />
Right off the bat, having such a distinctive and dynamic client such as Carlos Santana means that nothing can be done in a simply pedestrian manner. (The man is an icon for crying out loud.) We wanted to incorporate custom artwork to try to create an immersive as an experience as possible. (Without blowing the bank of course.) We wanted the focus to be on his music. So we started there. Our Creative Director has been working with Santana for years now so she knew exactly what needed to be done. She came up with the icons for the navigation and the photo-scroller watermark image.</p>
<p>Seeing how we wanted it to be focused on Carlos&#8217; music, we incorporated several of his most popular music videos and song tracks. We optimized all of the videos for delivery specifically for the iPhone. We included his entire album discography and even included links to purchase songs and entire albums, (How old am I that I actually refer to them as &#8220;albums&#8221;.), via iTunes. but we also wanted to take advantage of the intimate nature of the iPhone by bringing back a feature that Carlos had intended for his website called: Musician&#8217;s Corner.</p>
<p style="clear: both"><a class="image-link" href="http://blog.websightdesign.com/wp-content/uploads/2009/03/screenshot-5.jpg"><img class="linked-to-original" style=" display: inline; float: left; margin: 0 10px 10px 0;" src="http://blog.websightdesign.com/wp-content/uploads/2009/03/screenshot-5-thumb.jpg" alt="" width="228" height="191" align="left" /></a>I really wanted to take advantage of the personal or intimate nature of the iPhone. On Santana.com, there is a section buried way, way down on the site called “The Musician’s Corner”. The original intent was to establish an area online where fellow musicians and fans could see and hear directly from Carlos and the musicians in his band, and learn how they work. Gain a better understanding and appreciation of some of his most popular songs. A few videos had been recorded and posted to the Santana website. Unfortunately, it never really took off. (I think, because it was so buried on the site.) However, I felt that the iPhone was the PERFECT platform for this type of content. With the tacit agreement from Santana Management, we added two videos for a couple of Carlos’ most popular songs: Black Magic Woman and Oye Como Va. We added them to the “More” section of the application under the heading “Lessons”.</p>
<p style="clear: both">So all told, we had about 12 videos and 25 music tracks. Plus, the discography, bio information, News and Tour Dates, made for a pretty hefty app. (Both in size and overall experience.)</p>
<p style="clear: both"><strong>Ad-hoc Distribution</strong><br />
Once we had the foundation laid out, I wanted to get the application installed on Carlos&#8217; and/or an iPhone for Santana Management. Apple provides two methods for deploying an app on to an iPhone: 1.) Via the App Store. 2.) Via Ad-hoc Distribution. Ad-hoc is the method given to developers to test their app or to get client approvals and such. Apple is very clear about it&#8217;s instructions on what you need to do in order to make Ad-hoc distribution work. I was so focused on building the app that I didn&#8217;t test as throughly as I could have, the steps to make the ad-hoc method work. The day came that Santana Management wanted me to install the application so they could play with it and review it. Sat there for several hours and could not for the life of me get it to work. That could have killed the deal right then and there. Thankfully, the folks over at Santana Management were very cool and understanding. They saw it running on my phone so they knew I wasn&#8217;t trying to pull a fast one. Still, that could have spelled the end-game right there.</p>
<p style="clear: both"><strong>Certificates and App Store Submission</strong><br />
Actually, writing the app code was the easy part compared to submitting the app to Apple and getting through their review process. First off, you have no idea how long it will take. You aren&#8217;t given a ballpark or even just a rough estimate. Nada. You just have to wait. We waited for one month before we were finally approved. (I have spoken with folks at Apple and they have since told me that the amount of time we spent &#8220;In Review&#8221; was about normal.)</p>
<p style="clear: both">My second error in this whole thing was that I failed to put in the appropriate alerts for when there is no available Internet connection. (Either WiFi, 3G or Edge.) I know, I know&#8230; a really silly, academic and time-wasting error. Well, Apple caught it immediately and rejected the app. doh! However, corrected the error and resubmitted the app within 24 hours of said rejection. One month later, I received notice that we were approved and inserted into the <a title="Santana in the App Store" href="http://itunes.com/app/Santana" target="_blank">App Store</a>.</p>
<p style="clear: both"><strong>Lessons Learned</strong><br />
There are several lessons I took away from the whole experience of developing for the iPhone platform for the first time. Here are a few of them:</p>
<ol style="clear: both">
<li><strong>Read the </strong><a title="iPhone Human Interface Guidelines" href="http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html" target="_blank"><strong>Apple Human Interface Guidelines (HIG)</strong></a>: Apple is *very* serious about developers following their guidelines. Plus, it&#8217;s actually a really good read with lots of extremely helpful information. Don&#8217;t skip this&#8230; you have been warned.</li>
<li><strong>Work With A Designer</strong>: I recently attended an <a title="Apple Tech Talk" href="http://developer.apple.com/events/iphone/techtalks/" target="_blank">iPhone Tech Talk</a> where I sat in on the UI Design workshop. Several iPhone apps were compared to one another. Time-and-time again, the most popular apps in their category were the ones with original artwork and a unique UI. Let&#8217;s face it. A table view is what it is. The trick is to come up with a unique approach to solving common problems. I was lucky enough to have access to a great designer. Take the time to work on the UI.</li>
<li><strong>Check for Leaks</strong>: Leaks will crash your app. Apple provides an AWESOME app called <a title="Shark" href="http://developer.apple.com/tools/sharkoptimize.html" target="_blank">Shark</a> to help with tracking down memory leaks and helping optimize your code.</li>
<li><strong>Code to Avoid Leaks</strong>: There are many best practices you should follow to avoid writing &#8220;leaky&#8221; code to begin with. Remember, there is no garbage collecting on the iPhone yet, (we&#8217;ll see in v3.0), so be sure to watch your retain-and-release counts. (It sounds much more daunting than it actually is.)</li>
<li><strong>Use the Simulator But Don&#8217;t Rely On It</strong>: The iPhone simulator that comes with the iPhone SDK is very nice but you have to be careful when using it. Sometimes code that works correctly in the simulator DOES NOT work once you compile and deploy onto the phone. This is true inversely as well. For example, I couldn&#8217;t figure out why I kept getting an error when compiling code for the simulator that included the Media framework. As soon as I just recompiled and deployed to the phone, the error went away.</li>
<li><strong>Test Ad-Hoc Deployment</strong>: There is gonna come a time when you need to deploy your app on a phone other than the one you use for your development. Perhaps your client would like to see the application running on their phone. You don&#8217;t want to be caught off guard like that. I know already&#8230; it&#8217;s not a fun position to be in!<strong><br />
</strong></li>
<li><strong>Submit and Be Patient</strong>: There is no rhyme-or-reason to the Apple app review process. (At least no reason they&#8217;ve made public anyway.) You just have to submit your app and then walk away. Go walk the dog. Go work on another app. Go be with your family that you have been neglecting for the past few weeks. <img src='http://blog.websightdesign.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Some application categories have a longer review queue than others. Regardless, it&#8217;s a fact that you&#8217;re gonna have some time on your hands. Don&#8217;t fight it. Embrace it.</li>
</ol>
<p style="clear: both">The only other takeaway from this whole experience I found is that people LOVE <a title="Carlos Santana - Santana.com" href="http://www.santana.com" target="_blank">Carlos Santana</a>. In the first week alone that the application was available in the Apple App Store, it was downloaded and installed by over one thousand iPhone and iPod Touch users. I&#8217;ve received comments from users that they really love the original artwork and in particular, they really like the music lessons. (I&#8217;m a musician too. I know what I&#8217;m talking about.)</p>
<p style="clear: both">I would love to hear if anyone has downloaded the app and would like to get your thoughts on it. Drop me a line and let me know.</p>
<p><br class="final-break" style="clear: both" /></p>
<p><a href="http://blog.websightdesign.com/2009/03/31/case-study-carlos-santana-iphone-app/">Case Study: Carlos Santana iPhone App</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2009/03/31/case-study-carlos-santana-iphone-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone OS v3.0 &#8211; Lotta New Goodies</title>
		<link>http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/</link>
		<comments>http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:51:04 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile development]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/</guid>
		<description><![CDATA[I was really excited by the news of the new iPhone OS v3.0 announced last week. Copy-and-Paste aside, there are a lot of less-talked-about features that I find pretty cool and crucial to the advancement of the platform: Peer-to-Peer Connectivity over Bluetooth This is a feature that I thought seemed so obvious to have baked [...]<p><a href="http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/">iPhone OS v3.0 &#8211; Lotta New Goodies</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p style="clear: both">I was really excited by the news of the new iPhone OS v3.0 announced last week. Copy-and-Paste aside, there are a lot of less-talked-about features that I find pretty cool and crucial to the advancement of the platform:</p>
<p style="clear: both"><strong>Peer-to-Peer Connectivity over Bluetooth</strong></p>
<p style="clear: both">This is a feature that I thought seemed so obvious to have baked in. With Peer-to-Peer connectivity, you are now given the ability to communicate with other local phones WITHOUT having to pair with them in order to do it. (Like you have to when you use a Bluetooth mouse or headset.) This is great for applications that would need to share pieces of data for short periods of time. Or games that share proximity for a short period of time. I&#8217;m just starting to mess with this now so I am really anxious to see what the full line of functionality that is provided for is.</p>
<p style="clear: both"><strong>In App Purchase</strong><br />
With this feature, in my mind, the iPhone grows up. Now is when e-commerce will really begin to take off with the device. I also feel that now we will *really* begin to see some money being made in the mobile arena. In App Purchasing means that you can have fully-functional mobile e-commerce without having an entire website and all of the complexities that it involves. (Yes, I realize I am a developer of web-based e-commerce solutions. We plan to make some of that money.)</p>
<p style="clear: both"><strong>iPhone Core Data</strong><br />
Of all the new functionality and features presented&#8230; none were more significant, (for me), then Core Data now being available on the iPhone. For those of you less geek-inclined&#8230; Core Data is a method for managing the data model for MacOSX applications. Up until now you had to write your own methods for handling things like data relationships, the adding, updating and deletion of records.</p>
<p style="clear: both">As anyone who has had to build an application with persistent data will tell you, while it&#8217;s awesome to be able to develop using SQLite and plists on the iPhone, it does not compare with being able to code against an abstraction layer that just works! So I&#8217;ll take the added complexity associated with Core Data any day of the week.</p>
<p style="clear: both"><strong>In Summary</strong><br />
I love developing for the iPhone and the Macintosh. The iPhone OS v3.0, even in BETA, is such a huge leap forward. Not just for the platform, but those who write software for the iPhone and have been waiting for Apple to enable developers to really take their applications to a level above &#8220;cute&#8221; or &#8220;neato&#8221; or niche.</p>
<p style="clear: both">The only outstanding issue I see before Apple is it&#8217;s whole approval/review/rejection process for iPhone applications. As a developer, it is really frustrating. Their methods just seem so arbitrary. (One app gets rejected. Similar app, different developer and it get approved.) I would be will to forego new features and frameworks in the short-term in order to give Apple more time to create a more thoughtful and predictable review process with metrics and benchmarks to boot.</p>
<p><br class="final-break" style="clear: both" /></p>
<p><a href="http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/">iPhone OS v3.0 &#8211; Lotta New Goodies</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2009/03/23/iphone-os-v30-lotta-new-goodies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve Fallen In Love&#8230; Her Name is Cocoa!</title>
		<link>http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/</link>
		<comments>http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 03:54:30 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[cocoa touch]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/</guid>
		<description><![CDATA[I’ve recently *really* been getting into Cocoa development for both the MacOSX and the iPhone. Can I just say that Cocoa, (especially Cocoa Touch), ROCKS!!! I am in the middle of building a soon-to-be-published app for the Apple App Store. I forgot how much I loved writing C code. Objective-C is really a nice, simple [...]<p><a href="http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/">I&#8217;ve Fallen In Love&#8230; Her Name is Cocoa!</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p style="clear: both">I’ve recently *really* been getting into Cocoa development for both the MacOSX and the iPhone. Can I just say that Cocoa, (especially Cocoa Touch), ROCKS!!! I am in the middle of building a soon-to-be-published app for the Apple App Store. I forgot how much I loved writing C code. Objective-C is really a nice, simple and clean language. I’ll be posting some tutorials on it soon.</p>
<p><br class="final-break" style="clear: both" /></p>
<p><a href="http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/">I&#8217;ve Fallen In Love&#8230; Her Name is Cocoa!</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2008/08/23/ive-fallen-in-love-her-name-is-cocoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add a chrooted FTP account for access to a specific dir on a Linux Plesk server</title>
		<link>http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/</link>
		<comments>http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 20:15:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[Plesk tips]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/</guid>
		<description><![CDATA[To add a chrooted FTP user outside of Plesk properly, you need to: Create the user with the home directory as the root of what they can access Give the user a password Make their primary group psacln Add them to the psaserv group as well # useradd username -d /var/www/html/website/slideshow/ # passwd username Enter [...]<p><a href="http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/">How to add a chrooted FTP account for access to a specific dir on a Linux Plesk server</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></description>
			<content:encoded><![CDATA[<p>To add a chrooted FTP user outside of Plesk properly, you need to:</p>
<p>Create the user with the home directory as the root of what they can access<br />
Give the user a password<br />
Make their primary group psacln<br />
Add them to the psaserv group as well<br />
# useradd username -d /var/www/html/website/slideshow/<br />
# passwd username<br />
Enter new password for username<br />
# usermod -g psacln username<br />
# usermod -G psaserv username<br />
You also need to chmod the directory in question to 775</p>
<p>That&#8217;s it.</p>
<p><a href="http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/">How to add a chrooted FTP account for access to a specific dir on a Linux Plesk server</a> is a post from: WebSight Design, Inc. company blog. With headquarters in the San Francisco bay area, WebSight Design, Inc. has been providing world class web engineering, creative design and hosting solutions since 1995. <a href="http://Websightdesign.com">WebSight Design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.websightdesign.com/2008/07/21/how-to-add-a-chrooted-ftp-account-for-access-to-a-specific-dir-on-plesk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
