<?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; Tips and Tricks</title>
	<atom:link href="http://blog.websightdesign.com/category/tips-and-tricks/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>Three Tips To A Successful Web Site Design</title>
		<link>http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/</link>
		<comments>http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 15:17:10 +0000</pubDate>
		<dc:creator>steph</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[WebSight Design]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=680</guid>
		<description><![CDATA[When deadlines call and you need to squeeze out some more creative juices, these <a href="http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/"><b><u>three tips to a successful web site design</u></b></a> will have you back on track in no time. <a href="http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/"><b><u>Read on</u></b></a> to find out how these three simple things can help you create something that looks fantastic, delivers your client's message, and keeps things fresh and creative.<p><a href="http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/">Three Tips To A Successful Web Site Design</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="text-align: center;"><strong><a href="http://blog.websightdesign.com/wp-content/uploads/2010/03/ruleofthirds.jpg"><img class="size-medium wp-image-702 aligncenter" title="ruleofthirds" src="http://blog.websightdesign.com/wp-content/uploads/2010/03/ruleofthirds-300x231.jpg" alt="The ever-handy Rule of Thirds" width="300" height="231" /></a></strong></p>
<p style="text-align: center;"><strong>1. Remember the Rule of Thirds.</strong></p>
<p>Ever wonder why <span style="text-decoration: underline;"><a href="http://www.thegridsystem.org/">TheGridSystem.org</a></span> is a 12-grid layout? It’s no accident that 12 is a multiple of three.</p>
<p>For a couple of thousand years, the <span style="text-decoration: underline;"><a href="http://en.wikipedia.org/wiki/Rule_of_thirds">Rule of Thirds</a></span>, or the <span style="text-decoration: underline;"><a href="http://milan.milanovic.org/math/english/golden/golden1.html">Golden Ratio</a></span> for you mathematically-inclined folks, has worked an aesthetic guideline which states that a given visual space (your web site layout) should be divided horizontally and vertically into thirds, and that important design elements should be placed along the dividing lines, or at their intersections. This, the rule says, provides the most visually appealing layout. Both left- and right-brained figures throughout history, from Euclid to Rothko, have utilized this rule to create ingenious observations and works of art.</p>
<p>The Rule of Thirds is often tagged as the lazy man’s way to lay things out, but that’s really because of its simplicity and universality. <strong>In short, the rule works.</strong></p>
<p>Web layouts are a bit trickier since the monitor size and screen resolution on everyone’s individual computers is a variable that the designer cannot control; however, if you stick with non-fluid layouts to constrain the horizontal space of your design, or use percentages in your CSS (a bit trickier, especially if non-scalable images are involved), the Rule of Thirds can provide you with focal points and design layouts that web users find easy to visually digest. Another popular method of utilizing the Rule is to design an “impact area” (often dominated by a “hero graphic”) that is divided in thirds aesthetically and is designed to be the primary focal point for the page. As the user scrolls down, simple 1/3 ratio columns for the text or remaining content can be used. Columns work well in vertically variable workspaces.</p>
<p><strong>2. KISS all those pretty fonts goodbye.</strong></p>
<p>Remember that annoying acronym we all learned in school? Just in case you’ve been living on a deserted island for the last decade or so, KISS stands for “Keep It Simple, Stupid.” And that’s precisely the best way to use type fonts.</p>
<p>I’m not saying you can’t indulge in <span style="text-decoration: underline;"><a href="http://www.youtube.com/watch?v=KD_Vu_YzEPI">unique, hand-created typography</a></span>, or that you can’t <span style="text-decoration: underline;"><a href="http://www.davidcarsondesign.com/?dcdc=top/t0a">mix typefaces</a></span>, ever. But it must be done with care and artistry. Adding in that really cool font you downloaded for free from the link your nephew in HTML class sent you may not be your best bet for communicating your client’s message.</p>
<p>In fact, communicating your client’s message is the goal of the web site you’re designing. If that message isn’t already contained in the design of the typeface you want to use, skip the typeface and go neutral. Something like <span style="text-decoration: underline;"><a href="http://www.blokdesign.com/">Helvetica Bold</a></span> works incredibly well to get messages across (which is why we’ve seen such a resurgence of it in the self-publishing &amp; blogging trends). The type font does not interfere with the actual words. You have something like 1/gazillionth of a second to get your message across to the web user, <strong>so do it the fastest, clearest possible way.</strong> If that isn’t with a fancy font that says it all for you, then say it with words, and make the words concise and easy to absorb.</p>
<p>I like to use no more than three fonts (excluding any fancy or unduplicatable logo fonts) in my designs: one main graphic font, one secondary graphic font, and one web-safe HTML font. Save the pretty stuff for non-text graphics.</p>
<p><strong>3. Don’t give up.</strong></p>
<p>Sounds like touchy-feely pandering, right? Well, it’s true.</p>
<p>These days, Photoshop, CSS, and your own artistic talents can pretty much do anything with a layout. Anything you want. If you have an idea in your head that’s just not translating onto a sketch pad or a monitor, keep at it.</p>
<p>Sometimes we all get a little bit too reliant on filters and effects, and when the desired outcome isn’t met with a drop-shadow or a gradient, it’s tempting to settle for “good enough.” Don’t do it. Nobody ever won a design award by settling. No client was ever thrilled to pay for a design that was settled on. <strong>And no web user has ever been wowed by “good enough.”</strong> If that brush stroke isn’t working for you like it should, go old school: get out your ink, brushes, and watercolor paper and draw precisely the stroke you need. If that typeface just isn’t quite right, pull it into Illustrator and tweak the anchor points until it is. If you think the paper effect you’ve made isn&#8217;t convincing, grab a real piece of paper and tear the edges, fold the corners, crumple the middle until it is.</p>
<p>There are also plentiful tutorials and resources on the web for just about any specific effect you’re trying to achieve. Do a Google search and see what you come up with. At worst, you’ll slightly expand your knowledge. At best, you’ll learn skills and tricks that will make your web layouts really shine.</p>
<p>And if all else fails, get up, and take a walk around your neighborhood. Fresh air is a great re-motivator, and inspiration is all around us, all the time.</p>
<p>—</p>
<p><em>Stephanie Long is an artist and designer with over a decade of <span style="text-decoration: underline;"><a href="http://www.websightdesign.com/services/web-site-design" target="_blank">web-specific experience</a></span> currently lending her talents as <span style="text-decoration: underline;"><a href="http://www.websightdesign.com/about" target="_blank">Creative Director</a></span> at WebSight Design. She believes that listening to the client is the key to a successful project, and that listening to yourself is the key to a happy life. And she actually likes deadlines — go figure. Stephanie recently got a <span style="text-decoration: underline;"><a href="http://www.twitter.com/imstephcreative" target="_blank">Twitter</a></span> account and now feels much younger.</em></p>
<p><strong>Like this post?</strong> You might like this one, too: <span style="text-decoration: underline;"><a href="http://blog.websightdesign.com/2010/02/19/design-is-not-a-pretty-picture/" target="_self">Design Is Not A Pretty Picture</a></span><em><br />
</em></p>
<p><a href="http://blog.websightdesign.com/2010/03/23/three-tips-to-a-successful-web-site-design/">Three Tips To A Successful Web Site Design</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/23/three-tips-to-a-successful-web-site-design/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>WebSight Design SEO Success Story &#8211; Storage Seeker</title>
		<link>http://blog.websightdesign.com/2009/08/06/site-maps-and-internal-links-10000-page-test/</link>
		<comments>http://blog.websightdesign.com/2009/08/06/site-maps-and-internal-links-10000-page-test/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 23:25:30 +0000</pubDate>
		<dc:creator>Vanessa</dc:creator>
				<category><![CDATA[Clients]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Storageseekers.com]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=163</guid>
		<description><![CDATA[WebSight Design understands how important search engine optimization (SEO) is to your site. Having bad SEO is like opening your shop in the middle of the desert, and forbidding people from having your phone number and address.  Not much business is going to happen that way!  But buyer beware, there are many different SEO scams [...]<p><a href="http://blog.websightdesign.com/2009/08/06/site-maps-and-internal-links-10000-page-test/">WebSight Design SEO Success Story &#8211; Storage Seeker</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>WebSight Design understands how important <a href="http://www.websightdesign.com/services/search-engine-optimization">search engine optimization</a> (SEO) is to your site. Having bad SEO is like opening your shop in the middle of the desert, and forbidding people from having your phone number and address.  Not much business is going to happen that way!  But buyer beware, there are many different SEO scams out there, some of which could even get your site banned from Google.  When it comes to SEO, you want experts who have years of industry experience and understand best practices.</p>
<p style="text-align: center;"><a href="http://storageseeker.com"><img class="size-medium wp-image-171 aligncenter" title="StorageSeeker.com" src="http://blog.websightdesign.com/wp-content/uploads/2009/08/sitesnapshot.jpg" alt="" width="220" height="201" /></a></p>
<p>Recently one of our SEO experts, <a href="http://searchmarketingwisdom.com/">Alan Bleiweiss</a>, published a case study for <a href="http://StorageSeekers.com">StorageSeeker.com</a> on <a href="http://www.searchenginejournal.com/">Search Engine Journal</a>, one of the premier SEO blogs online.  In it he shares the methodology he used to get our client to the top of the first page of Google.  Alan and the SEO team at WebSight Design are masters at best-practice SEO techniques and achieving awesome <a href="http://en.wikipedia.org/wiki/Organic_search">organic search results</a>.</p>
<p>Read the article: <a href="http://www.searchenginejournal.com/sitemaps-and-internal-links-the-10000-page-test/12336/">Sitemaps and Internal Links &#8211; 10000 Page Test</a></p>
<p><a href="http://blog.websightdesign.com/2009/08/06/site-maps-and-internal-links-10000-page-test/">WebSight Design SEO Success Story &#8211; Storage Seeker</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/06/site-maps-and-internal-links-10000-page-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash vs jQuery &#8211; Is it in the budget?</title>
		<link>http://blog.websightdesign.com/2009/07/09/flash-vs-jquery-is-it-in-the-budget/</link>
		<comments>http://blog.websightdesign.com/2009/07/09/flash-vs-jquery-is-it-in-the-budget/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 00:11:01 +0000</pubDate>
		<dc:creator>Vanessa</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[budget]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/?p=78</guid>
		<description><![CDATA[In the beginnings of the internet there was only two options for animation on a webpage. The first was animated gifs, an animated gif is essentially a web-based stack a flip cards, stringing together static images to create the illusion of movement.  Unfortunately animated gifs can end up being large files, pixilated and don’t look [...]<p><a href="http://blog.websightdesign.com/2009/07/09/flash-vs-jquery-is-it-in-the-budget/">Flash vs jQuery &#8211; Is it in the budget?</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>In the beginnings of the internet there was only two options for animation on a webpage. The first was animated gifs, an animated gif is essentially a web-based stack a flip cards, stringing together static images to create the illusion of movement.  Unfortunately animated gifs can end up being large files, pixilated and don’t look very sharp.</p>
<p>In 1996, Macromedia released a product named Macromedia Flash.  This was a vector based animation platform that allowed web designers to create animations using tools provided by Macromedia.  This resulted in smaller files with cleaner animations.  The major drawback to this was it required a browser plugin to view and most of the internet wasn’t on board with this yet.</p>
<p>Now days, there are better options then animated gifs when it comes to adding features to your site.  With the new advances in HTML and JavaScript, major browsers vendors are investing huge efforts in improving JavaScript engines in their browsers.  With all of this new attention to JavaScript dozens of frameworks, have popped up as tools for web developers to use.  Common frameworks include jQuery and jQuery UI, YUI, Prototype and Scriptaculous, and the Dojo toolkit.</p>
<p>When it comes to deciding between JavaScript based features and Flash based features in your site there are many different advantages and disadvantages you need to weigh.  JavaScript has several distinct advantages over Flash, first it no plugin is needed because it uses open Web technologies like <a href="http://en.wikipedia.org/wiki/Document_Object_Model">Document Object Model</a>, HTML and CSS.  Secondly, it is much easier to make animations that are accessible and <a href="http://en.wikipedia.org/wiki/Section_508_Amendment_to_the_Rehabilitation_Act_of_1973">508 compliant</a> and JavaScript is also viewable on many mobile devices, unlike Flash applications.</p>
<p>Although, jQuery/ JavaScript cannot be used for all animations, when it comes to certain types there are things that jQuery just can’t do.  It cannot handle 3D animation, audio/video players or fine user controlled animation.  When using JQuery you are also at the mercy of user end controls such as disabling JavaScript in a browser and resized text.</p>
<p><strong>Is it in the budget?</strong></p>
<p>When considering whether to use a jQuery or Flash based solution you are also going to want to look at the development and maintenance hours versus what the features are that you are looking for in your project.</p>
<p>JQuery can be used for almost all modules for a standard website, including scrolling images for the banner and photo galleries, interactive menus, form validation, and pop-ups and tool tips.  Because most of these tools are available as JavaScript frameworks this can end up keeping the development costs of your site down.  All of these features can be integrated with the CMS and dynamically updateable. Changes to the design of jQuery features most front end designers can handle and this will lower any maintenance costs you may incur.</p>
<p>A Flash application encapsulates all the code in the application itself.  First, this means creating the application require the use a specialized Flash developer, but this can be to your advantage if you are looking for features to your site such as audio/video player or 3D animation.  If you are looking to have complex multi-media in your project, you are going to have a higher development cost.  Changes and updates to Flash content can be executed via updateable XML files, but if you want to change the design of the application you will need to use a Flash developer with can cost more in maintenance hours.</p>
<p>What this decision really comes down to is asking yourself what are the features that you need.  Much of the “flash” in Flash can be mimicked at a lower cost with jQuery, but if your site is multi-media heavy; your best option would be to go with the Flash application for the ease of the end user and yourself.</p>
<p><a href="http://blog.websightdesign.com/2009/07/09/flash-vs-jquery-is-it-in-the-budget/">Flash vs jQuery &#8211; Is it in the budget?</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/07/09/flash-vs-jquery-is-it-in-the-budget/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>
		<item>
		<title>One way to fix Apache serving up the wrong SSL certificate</title>
		<link>http://blog.websightdesign.com/2008/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/</link>
		<comments>http://blog.websightdesign.com/2008/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 18:41:48 +0000</pubDate>
		<dc:creator>noah</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/</guid>
		<description><![CDATA[I ran into an issue today on an Ubuntu server running Apache 2 where the server already had an SSL certificate for &#8216;www.domain.com&#8217; and the client wanted to add a second one for &#8216;sub.domain.com&#8217;.  I added a new IP to the server, set up the virtual site, and generated the CSR and ordered and installed the cert [...]<p><a href="http://blog.websightdesign.com/2008/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/">One way to fix Apache serving up the wrong SSL certificate</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>I ran into an issue today on an Ubuntu server running Apache 2 where the server already had an SSL certificate for &#8216;www.domain.com&#8217; and the client wanted to add a second one for &#8216;sub.domain.com&#8217;.  I added a new IP to the server, set up the virtual site, and generated the CSR and ordered and installed the cert normally, but when I tried to view the new virtual site, it gave me the new site directory but with the old &#8216;www&#8217; cert, causing a cert name mis-match error.</p>
<p>The old virtual site&#8217;s apache config file had the site bound to *:443, so when I added the new site I changed the old one to [Old IP Address]:443, so it wouldn&#8217;t conflict with the new one which was bound to [New IP Address]:443. While logically it seemed like that should have worked, it didn&#8217;t, and was serving up the old cert for the new site.</p>
<p>I fixed the issue by changing the binding for the old virtual site back to *:443, while leaving the new one on [new IP address]:443. To me, it seems like this shouldn&#8217;t work, and that the *:443 would catch all the requests, but apparently that&#8217;s how it is supposed to be, and the binding with the IP address overrides the wildcard binding. Who knew?</p>
<p><a href="http://blog.websightdesign.com/2008/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/">One way to fix Apache serving up the wrong SSL certificate</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/06/02/one-way-to-fix-apache-serving-up-the-wrong-ssl-certificate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuring MySQL-Python on OSX Leopard</title>
		<link>http://blog.websightdesign.com/2008/04/27/configuring-mysql-python-on-osx-leopard/</link>
		<comments>http://blog.websightdesign.com/2008/04/27/configuring-mysql-python-on-osx-leopard/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 18:38:30 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql-python]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/04/27/configuring-mysql-python-on-osx-leopard/</guid>
		<description><![CDATA[At WebSight Design we try to remain technology-agnostic. (The right tool or language for the job.) Having said that, we are primarily a PHP shop. However, with the launch of the Google App Engine, we&#8217;ve been looking seriously at Python. In recent years, I have become a big fan of development frameworks so to aide [...]<p><a href="http://blog.websightdesign.com/2008/04/27/configuring-mysql-python-on-osx-leopard/">Configuring MySQL-Python on OSX Leopard</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>At <a title="WebSight Design, Inc." href="http://www.websightdesign.com" target="_blank">WebSight Design</a> we try to remain technology-agnostic. (The right tool or language for the job.) Having said that, we are primarily a PHP shop. However, with the launch of the <a title="Google App Engine" href="http://code.google.com/appengine/" target="_blank">Google App Engine</a>, we&#8217;ve been looking seriously at Python. In recent years, I have become a big fan of development frameworks so to aide me in learning the ways of the snake, I have been using the <a title="Django" href="http://www.djangoproject.com" target="_blank">Django</a> framework.</p>
<p>Getting it all setup wasn&#8217;t difficult. The Django installation is very easy. I started to get errors when I was trying to get my models working when I ran</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">manage.py syncdb</div></div>
<p>. Come to find out that I needed the MySQL-Python library installed to work correctly on my OSX Leopard machine. Most everything that I illustrate below is to be executed from the command-line. So if you are not familiar with working in the Terminal app, this post is gonna suck for you. So here is what I did to get it working:</p>
<p>First, download MySQL for Python<br />
<a title="Sourceforge" href="http://sourceforge.net/projects/mysql-python" target="_blank"> http://sourceforge.net/projects/mysql-python</a><br />
for me it was MySQL-python-1.2.2.tar</p>
<p>Unpack it:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar -xzf MySQL-python-1.2.2.tar</div></div>
<p>Change to the directory that is created:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd MySQL-python-1.2.2</div></div>
<p>Next, locate your &#8220;mysql_conf&#8221; file.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">locate mysql_conf</div></div>
<p>Copy the location of this file so you can use it in the next few steps.</p>
<p>Next, you need to edit the &#8220;site.cfg&#8221; file and add the path to your &#8220;mysql_conf&#8221; file.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mysql_config = &quot;YOUR_PATH_GOES_HERE&quot;</div></div>
<p>Also, (very important), change the line that reads:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">threadsafe = True</div></div>
<p>TO</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">threadsafe = False</div></div>
<p>Save and exit the file.</p>
<p>Now, compile and install the library:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">python setup.py build<br />
sudo python setup.py install</div></div>
<p>NOTE: You may need to run &#8220;python setup.py clean&#8221; if you previously tried to build and install the library.</p>
<p>Next is the *really* important part. After I kept getting errors trying to run the Python server I found the missing piece on the <a href="http://projectmouse.org/2013/InstallingDjangoforLeopardwithMySQLSupport">ProjectMouse.org</a> site.</p>
<p>The key is, you need to create a symbolic link in the location that Python is expecting to find MySQL. This should be a link to the MySQL library that your computer is setup to use.<br />
See here:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo mkdir /usr/local/mysql/lib/mysql/<br />
sudo ln -s /usr/local/mysql-5.0.41-osx10.4-i686/lib/libmysqlclient_r.15.dylib /usr/local/mysql/lib/mysql/libmysqlclient_r.15.dylib</div></div>
<p>NOTE: &#8220;mysql-5.0.41-osx10.4-i686&#8243; is where MySQL is installed on my machine. Change this to the location specific to your computer.</p>
<p>Finally, import MySQLdb into Python and test your configuration:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">python<br />
import MySQLdb</div></div>
<p>NOTE: You should not see any errors or warnings. Hit &#8220;Ctrl+d&#8221; to exit the interepter.</p>
<p>Now go back and run</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">manage.py syncdb</div></div>
<p>again and you should not get any errors.</p>
<p><a href="http://blog.websightdesign.com/2008/04/27/configuring-mysql-python-on-osx-leopard/">Configuring MySQL-Python on OSX Leopard</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/04/27/configuring-mysql-python-on-osx-leopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability: Know Your Target Audience</title>
		<link>http://blog.websightdesign.com/2008/04/11/usability-know-your-target-audience/</link>
		<comments>http://blog.websightdesign.com/2008/04/11/usability-know-your-target-audience/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 22:33:07 +0000</pubDate>
		<dc:creator>steph</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[graphic design]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web site]]></category>
		<category><![CDATA[web usability]]></category>
		<category><![CDATA[websight]]></category>
		<category><![CDATA[WebSight Design]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/04/11/usability-know-your-target-audience/</guid>
		<description><![CDATA[When it comes to design, the web has another dimension that design for print doesn’t: usability. Visitors to a web site need to know where to click, and how to find what they want, all while being actively engaged in the visual experience that represents the company, person, or people the web site is for. [...]<p><a href="http://blog.websightdesign.com/2008/04/11/usability-know-your-target-audience/">Usability: Know Your Target Audience</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>When it comes to design, the web has another dimension that design for print doesn’t: usability. Visitors to a web site need to know where to click, and how to find what they want, all while being actively engaged in the visual experience that represents the company, person, or people the web site is for. Instead of just opening a brochure and seeing the words on the paper, web site users interact with a site, enlarging photos, expanding menus, highlighting links, and leading animations. Because of this, designing for the web requires a continual focus on usability.</p>
<p>The best indicator of successful usability is a clear understanding of the web site’s target audience. For example, the audience of our rock musician clients want multimedia. They want to download audio tracks, play videos, see large photos, and actively participate in the web experience on a fan level. A fan will most likely have multimedia plugins on his or her computer, and if not, will eagerly download them to be able to access enhanced content.</p>
<p>The audience of our real estate clients, however, want to find information, and find it quickly. They aren’t interested in lingering through a Flash animation that stands as a hurdle to the information they’re after. And while photos of properties are necessary, waiting for them to load, having to navigate a sea of thumbnails, or having too-small images will turn a potential homebuyer into a frustrated web user. The real estate agent or company won’t get that user’s phone call.</p>
<p>The tough part is finding the balance between easily giving base-line visitors what they want, and not boring (therefore, alienating) more sophisticated web users. Luckily, that just happens to be our specialty. With design that’s focused on both visual impact and usability, WebSight Design creates a custom-tailored user experience, based on <em>your</em> target audience.</p>
<p><a href="http://blog.websightdesign.com/2008/04/11/usability-know-your-target-audience/">Usability: Know Your Target Audience</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/04/11/usability-know-your-target-audience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allowing PHP to write files in a Plesk server environment</title>
		<link>http://blog.websightdesign.com/2008/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/</link>
		<comments>http://blog.websightdesign.com/2008/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 15:36:20 +0000</pubDate>
		<dc:creator>rmudgett</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[files]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[Plesk tips]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/</guid>
		<description><![CDATA[As you may have found out, a web server that houses a bunch of web sites can cause some issues with file permissions when it comes to allowing PHP to write files that a web site needs, whether it is a data file, a document or an image. This is usually not an issue if [...]<p><a href="http://blog.websightdesign.com/2008/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/">Allowing PHP to write files in a Plesk server environment</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>As you may have found out, a web server that houses a bunch of web sites can cause some issues with file permissions when it comes to allowing PHP to write files that a web site needs, whether it is a data file, a document or an image.  This is usually not an issue if PHP is installed as a cgi module because cgi programs are usually setup to run as the user that owns them, but Plesk uses PHP installed as an Apache module, and thus it runs as the same user that Apache runs as, which is usually not the same user that owns the website files.</p>
<p>How to solve this?  It is really easy actually.  There are 2 possible solutions, the first is the easiest, but really shouldn&#8217;t be considered and that is to make the folders that PHP needs to write to 0777, which opens a possible security hole and that is why you shouldn&#8217;t really consider it.</p>
<p>The second is to simply add the user apache uses, which under Plesk is usually &#8220;apache&#8221; to the group &#8220;psacln&#8221;.  You can edit the /etc/group and /etc/group- files if you know what you are doing, or use usermod.</p>
<p>If you want to edit the files directly, locate the line that looks like this:</p>
<p>psacln:x:2524:</p>
<p>and just tack on &#8220;apache&#8221; to the end of it like so&#8230;</p>
<p>psacln:x:2524:apache</p>
<p>Do this for both files and restart apache and you are done.</p>
<p>Or, simpler</p>
<p>/usr/sbin/usermod -a -G psacln apache</p>
<p>Then simply make the folders and/or files that php needs access to 0775, which makes it more secure.</p>
<p>You can do similar with any server enviroment, we just happen to use Plesk here.</p>
<p>Rob</p>
<p><a href="http://blog.websightdesign.com/2008/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/">Allowing PHP to write files in a Plesk server environment</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/03/27/allowing-php-to-write-files-in-a-plesk-server-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compile / Configure Subversion w/SSL Enabled</title>
		<link>http://blog.websightdesign.com/2008/02/15/compile-configure-subversion-wssl-enabled/</link>
		<comments>http://blog.websightdesign.com/2008/02/15/compile-configure-subversion-wssl-enabled/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 01:49:40 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[hosted subversion]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[neon]]></category>
		<category><![CDATA[springloops]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.websightdesign.com/2008/03/27/compile-configure-subversion-wssl-enabled/</guid>
		<description><![CDATA[My company: WebSight Design, uses Subversion for source and version control for all of our web development projects. We also use the amazing hosted Subversion service: Springloops. (If you ever need a Subversion deployment tool, Springloops is it!) Springloops repositories are *only* accessible via HTTPS. In order to gain access to a repository from the [...]<p><a href="http://blog.websightdesign.com/2008/02/15/compile-configure-subversion-wssl-enabled/">Compile / Configure Subversion w/SSL Enabled</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>My company: <a href="http://www.websightdesign.com" target="_blank">WebSight Design</a>, uses <a title="Subversion" href="http://subversion.tigris.org/" target="_blank">Subversion</a> for source and version control for all of our web development projects. We also use the amazing hosted Subversion service: <a title="Springloops" href="http://www.springloops.com" target="_blank">Springloops</a>. (If you ever need a Subversion deployment tool, Springloops is it!) Springloops repositories are *only* accessible via  HTTPS. In order to gain access to a repository from the command line, I had to re-configure Subversion on our servers to enable access to ssl urls. Seems simple enough and actually it is. However, as with all things Linux, the devil is in the details. I spent hours-upon-hours trying to get it to work. It simply comes down to the sequence of steps you take. What I&#8217;ve done here is list out all of the steps done to get it working to save you from the same pain I went through.</p>
<p>So, I am assuming that you are trying to access a Subversion repository via an https url and you are getting the message &#8220;ssl not supported&#8221; or something similar to this. I know, it sucks and it&#8217;s pretty frustrating. I promise you however, if you do *exactly* what I spell out below, in the sequence I list&#8230; you will be up and working in about 15-20mins. The only other assumption here is that you are using Ubuntu or some other Debian-based Linux  distro that supports the APT package manager.</p>
<p>It&#8217;s important to know that Subversion uses a module called Neon to provide ssl connectivity. The key here is to use the version of Neon <em>for your specific release of Subversion</em>. This is <strong><span style="text-decoration: underline;">key</span></strong> to everything else that follows. Don&#8217;t just grab the latest versions of Subversion and Neon and assume they will work correctly together. So with that&#8230; let&#8217;s get to work.</p>
<p>First, make sure the following packages are installed on your server:<br />
GCC</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo apt-get install build-essential</div></div>
<p>Expat</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo apt-get install expat</div></div>
<p>Libxml-dev</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sudo apt-get install libxml2-dev</div></div>
<p>Next, download latest Subversion files:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">wget http://subversion.tigris.org/downloads/subversion-1.4.X.tar.bz2<br />
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.X.tar.bz2</div></div>
<p>NOTE: &#8220;X&#8221; above is a placeholder for your version no.</p>
<p>Untar em&#8217; in this order:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar xjvf subversion-1.4.X.tar.bz2<br />
tar xjvf subversion-deps-1.4.X.tar.bz2</div></div>
<p>Once you have extracted the files, open the file &#8221;</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">subversion-1.4.X/INSTALL</div></div>
<p>&#8220;. Locate the section on Neon. It will state which version you need to download and compile with this version of Subversion.</p>
<p>Make sure you are *not* in the Subversion directory you just created. Then go ahead and download Neon:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">wget http://www.webdav.org/neon/neon-0.2X.0.tar.gz</div></div>
<p>NOTE: The &#8220;X&#8221; above is placeholder for the version of Neon you need.</p>
<p>Next, extract the archive:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tar zxvf neon-1.X.X.tar.gz<br />
cd neon-1.X.X</div></div>
<p>Now is where the fun begins. You need to compile and install Neon. Do the following from *within* the Neon directory you created:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./configure --with-ssl<br />
make<br />
sudo make install</div></div>
<p>It&#8217;s important to note that Neon gets installed to /usr/local by default. You need to note that as you will now need it when compiling and installing Subversion.</p>
<p>Change back to the Subversion folder:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd ../subversion-1.4.X</div></div>
<p>Compile and install Subversion:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">./configure --enable-ssl --with-neon=/usr/local/<br />
make<br />
sudo make install</div></div>
<p>Now, realize that the Subversion compilation and installation process takes a long time to complete. So just be patient. You can ignore any warning messages that scroll by. You only need to be concerned with error messages or if the installation stops for any reason.</p>
<p>Once compilation and installation are complete you need to confirm that you are running the version of Subversion you just tried to install:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">svn --version --quiet</div></div>
<p>If you get *anything* other than the version number you thought you installed, something went horribly wrong. Go back to the very beginning of this and try again. Most time folks get errors it is because that don&#8217;t have the prerequisite tools and utilities installed. If you see the version you wanted&#8230; you&#8217;re all good!</p>
<p><a href="http://blog.websightdesign.com/2008/02/15/compile-configure-subversion-wssl-enabled/">Compile / Configure Subversion w/SSL Enabled</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/02/15/compile-configure-subversion-wssl-enabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
