<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>A Web Developers Blog</title>
	
	<link>http://jamesowers.co.uk</link>
	<description>The blog of James Owers, a Newcastle based web developer.</description>
	<lastBuildDate>Fri, 12 Aug 2011 09:38:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JamesOwers" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jamesowers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>New site almost ready!</title>
		<link>http://jamesowers.co.uk/general/598/new-site-almost-ready/</link>
		<comments>http://jamesowers.co.uk/general/598/new-site-almost-ready/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 09:36:42 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=598</guid>
		<description><![CDATA[Over the past few months I&#8217;ve been working on a new little app. Yes a few months is a long time to spend on a &#8216;little&#8217; app but I&#8217;ve been working on it by myself and only in my spare time, also my designing skills definitely aren&#8217;t on par with my development skills so designing stuff takes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bindrr.com"><img class="alignnone size-full wp-image-599" style="border-style: initial; border-color: initial;" title="Manage your recipes with bindrr" src="http://jamesowers.co.uk/wp-content/uploads/bindrr.jpg" alt="Manage your recipes with bindrr" width="784" height="455" /></a></p>
<p>Over the past few months I&#8217;ve been working on a new little app. Yes a few months is a long time to spend on a &#8216;little&#8217; app but I&#8217;ve been working on it by myself and only in my spare time, also my designing skills definitely aren&#8217;t on par with my development skills so designing stuff takes me ages.</p>
<p><span id="more-598"></span></p>
<p>Anyway, the main reason I created this app was because it is an app I really would like to use myself. In fact I&#8217;ve actually been using it as I&#8217;ve been developing it!</p>
<p>The new app is called <a title="Manage your recipes online" href="http://bindrr.com">bindrr</a>. It lets you log in and store all of your favourite recipes in one place whether the recipe is from a website, book or anywhere else. All of the recipes you add are easily searchable and you can access them from any computer or mobile device with an internet connection (native, offline mobile applications will hopefully follow soon).</p>
<p>I&#8217;m looking for a few beta testers who enjoy cooking and would like to try out the app before anybody else. If you like the sound of <a title="Manage your recipes online" href="http://bindrr.com">bindrr</a>, head over to the site and fill out the form! I&#8217;ll be sending out the beta invitations pretty soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/598/new-site-almost-ready/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New theme is live!</title>
		<link>http://jamesowers.co.uk/general/590/new-theme-is-live/</link>
		<comments>http://jamesowers.co.uk/general/590/new-theme-is-live/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 11:19:40 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=590</guid>
		<description><![CDATA[If you&#8217;ve been on this site before you might have noticed that it looks quite different now as I&#8217;ve just finished adding a new theme for the blog. I was half way though a new theme that looked totally different to this one but then decided to go for a really clean, minimal look to [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been on this site before you might have noticed that it looks quite different now as I&#8217;ve just finished adding a new theme for the blog.</p>
<p>I was half way though a new theme that looked totally different to this one but then decided to go for a really clean, minimal look to the site so that it&#8217;s easier to browse and read content which I hope is what most people come here for anyway.</p>
<p>The new theme uses the Thematic WordPress Framework as it&#8217;s base which meant I could get the site ready in super quick time!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/590/new-theme-is-live/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My favorite iPhone applications</title>
		<link>http://jamesowers.co.uk/general/581/my-favorite-iphone-applications/</link>
		<comments>http://jamesowers.co.uk/general/581/my-favorite-iphone-applications/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 22:22:11 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=581</guid>
		<description><![CDATA[For my first post of this year (a bit late, I know) I thought I would go over some of my favorite iPhone applications. Maybe I&#8217;ll mention one you haven&#8217;t heard of that could turn out to be useful. Feel free to add your own ideas in the comments if you think there is an [...]]]></description>
			<content:encoded><![CDATA[<p>For my first post of this year (a bit late, I know) I thought I would go over some of my favorite iPhone applications. Maybe I&#8217;ll mention one you haven&#8217;t heard of that could turn out to be useful. Feel free to add your own ideas in the comments if you think there is an app I&#8217;ve missed. These are just listed in the order I have on my phone, I normally try to put the ones I use most first but you might find you would have them in a completely different order!</p>
<p><span id="more-581"></span></p>
<h2><a href="https://www.dropbox.com/iphoneapp">Dropbox</a> &#8211; Free</h2>
<p>Not only is this (in my view) an essential iPhone app but it is an essential app to use on OSX, Windows, Linux, iPhone, Android and probably more. Dropbox allows you to sync a folder with the web so that you can access the files on any computer you have Dropbox installed on. It also does a load of other things such as allowing you to retrieve deleted files. Head over to the <a href="https://www.dropbox.com/">Dropbox</a> site to see a full description of what the application does.</p>
<p>The Dropbox iPhone app lets you access all of the files in your Dropbox from anywhere. It&#8217;s also a great way of getting PDF files onto your iPhone which can sometimes be a pain.</p>
<h2><a href="http://www.instapaper.com/">Instapaper</a> &#8211; Free / $4.99</h2>
<p>I&#8217;m sure I&#8217;m not the only developer (and probably other professions) that has an RSS reader full of really interesting articles just waiting to be read that I never seem to get around to reading. This is where Instapaper gets useful. Once you have signed up you can add a &#8216;Read Later&#8217; button to your browser, simply go to an article you want to keep for later and click this button. Instapaper will add the articles you choose and next time you open up the app whilst you have a wifi connection it will save nice easy to read versions of the article onto your phone that you can open and read whenever you get a free minute no matter where you are!</p>
<h2><a href="http://reederapp.com/">Reeder</a> &#8211; $2.99</h2>
<p>Pretty simple this one. Reeder is the best looking, easy to use, feature packed RSS reader I have found for the iPhone. It works in unison with my Google Reader account (which I use on my desktop). Plus you can save straight to Instapaper from it!</p>
<p>They are also working on a version for the Mac.</p>
<h2><a href="http://www.6wunderkinder.com/wunderlist/">Wunderlist</a> &#8211; Free</h2>
<p>Wunderlist is a very good to do list application that has versions for Windows, Mac and iPhone. All of your items are synced via the web so you can have multiple instances running in unison. </p>
<p>They have been adding a lot of new features lately which worries me a bit because I hope they don&#8217;t go the way of a lot of other to do list apps by trying to do so much that it becomes a bit of a pain to use. So far though everything works very well and looks great so maybe I&#8217;m being a tad harsh there.</p>
<h2><a href="http://instagr.am/">Instagram</a> &#8211; Free</h2>
<p>Instagram is a nifty little app that lets you take photo&#8217;s, add a cool filter to them and then share them with your friends on Twitter, Facebook and some other places.</p>
<p>Whilst not really helping with productivity like the other apps I&#8217;ve mentioned, I think Instagram deserves a mention for being so much fun.</p>
<p>Hopefully those apps will give you something new to try out and like I said before feel free to add your own in the comments, I&#8217;m sure there are hundreds of great apps that I&#8217;ve missed!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/581/my-favorite-iphone-applications/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New portfolio site online</title>
		<link>http://jamesowers.co.uk/general/577/new-portfolio-site-online/</link>
		<comments>http://jamesowers.co.uk/general/577/new-portfolio-site-online/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 09:30:13 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=577</guid>
		<description><![CDATA[My new portfolio site is finally finished and online, you can see the new site here: GotWebsites. I spent quite a lot of time working on speeding the site up and I&#8217;m pleased that the site now ranks 96/100 for the homepage and 99/100 for subpages in YSlow. When I get some free time I [...]]]></description>
			<content:encoded><![CDATA[<p>My new portfolio site is finally finished and online, you can see the new site here: <a href="http://www.gotwebsites.co.uk">GotWebsites</a>. I spent quite a lot of time working on speeding the site up and I&#8217;m pleased that the site now ranks 96/100 for the homepage and 99/100 for subpages in <a href="http://developer.yahoo.com/yslow/">YSlow</a>. When I get some free time I intend to write an article on using the information YSlow gives you to make your site faster. If you&#8217;re new to YSlow there is a good introduction to it on <a href="http://net.tutsplus.com/tutorials/other/speeding-up-websites-with-yslow/">Nettuts</a>.</p>
<p>Now that my portfolio is out of the way I&#8217;m working on the new version of this site, unfortunately me being predominantly a developer means it takes me ages to design something that even resembles something good so you might have to make do with this theme for a little bit longer.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/577/new-portfolio-site-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Forrst invite and an update</title>
		<link>http://jamesowers.co.uk/general/571/forrst-invite-and-an-update/</link>
		<comments>http://jamesowers.co.uk/general/571/forrst-invite-and-an-update/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 15:54:18 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=571</guid>
		<description><![CDATA[If you&#8217;ve been wondering where I&#8217;ve been all this time, I&#8217;ve been working on my new portfolio website which I&#8217;m hoping to get online this weekend. Once I&#8217;ve done that I&#8217;ll be focusing on redoing this site aswell. That coupled with client work has meant not much time for anything else (like writing new posts [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been wondering where I&#8217;ve been all this time, I&#8217;ve been working on my new portfolio website which I&#8217;m hoping to get online this weekend. Once I&#8217;ve done that I&#8217;ll be focusing on redoing this site aswell. That coupled with client work has meant not much time for anything else (like writing new posts for this site!).</p>
<p>Any free time I&#8217;ve had has been spent either on my xbox or on <a href="http://forrst.com">Forrst</a>. <a href="http://forrst.com">Forrst</a> is a pretty awesome, invite only site for designers and developers to connect, show their work and get help. Anyway, I&#8217;ve got a spare invite so if someone thinks <a href="http://forrst.com">Forrst</a> is something they&#8217;d like (and would use) leave a comment with a link to some of your work and I&#8217;ll send it over.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/571/forrst-invite-and-an-update/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Setting up Postmark with NameCheap</title>
		<link>http://jamesowers.co.uk/development/551/setting-up-postmark-with-namecheap/</link>
		<comments>http://jamesowers.co.uk/development/551/setting-up-postmark-with-namecheap/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 08:00:58 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=551</guid>
		<description><![CDATA[If you run any sort of web app, the chances are you&#8217;ll be sending out some sort of transactional email. Whether it&#8217;s account verification, password reminders or something else most web based applications do it these days. You may have come across the problem where your perfectly nice emails get marked as spam so the [...]]]></description>
			<content:encoded><![CDATA[<p>If you run any sort of web app, the chances are you&#8217;ll be sending out some sort of transactional email. Whether it&#8217;s account verification, password reminders or something else most web based applications do it these days. You may have come across the problem where your perfectly nice emails get marked as spam so the end user never sees them making your application look, well, a bit unprofessional.</p>
<p>This is where <a href="http://postmarkapp.com/">Postmark</a> comes in, they say that sending your transactional emails through their API can make them look better to the recieving server so they&#8217;re less likely to be marked as spam. What&#8217;s more, they even allow you to track how many emails you&#8217;ve sent and how many went into the intended recipients spam box. This promise plus the offer of 1000 free emails on registration and at only $1.5 for 1000 emails I decided to test Postmark out on a new application I was working on.</p>
<p><span id="more-551"></span></p>
<p>Setting up Postmark is as easy as whoever you manage your DNS through makes it! First off I signed up for a free Google apps account for my domain, this part it really straight forward. Next I signed up for Postmark account, again nice and easy. The next step was to set up the sender signatures, this is where it got tricky.</p>
<p>My main server is with 1&#038;1 and so the DNS was pointed at the 1&#038;1 name servers. I discovered that 1&#038;1 will not let you add the required settings to the DNS, it&#8217;s a no-go. Luckily, I had registered my domains with NameCheap who do let you add TXT information to the DNS, it just takes a bit of digging to find out how so I thought I&#8217;d share it as it might help somebody.</p>
<p>First of all you need to make sure the DNS is with NameCheap. When you are looking at your domain in the &#8216;Modify Domain&#8217; section there will be a button that says &#8216;Transfer DNS Back to Us&#8217; (see below).</p>
<p><img src="http://jamesowers.co.uk/wp-content/uploads/1.png" alt="" title="1" width="207" height="203" class="alignnone size-full wp-image-552" /></p>
<p>I saw a lot of people trying to do the next step before this one and get stuck. You won&#8217;t be able to see the button in the next step until you have done this!</p>
<p>Once I&#8217;d transferred the DNS back to NameCheap I needed to point the domain at my hosting so that my site still worked. You should see a new button that says &#8216;All Host Records&#8217; (see below). This is the button you couldn&#8217;t see without transferring the DNS to NameCheap.</p>
<p><img src="http://jamesowers.co.uk/wp-content/uploads/2.png" alt="" title="2" width="207" height="203" class="alignnone size-full wp-image-554" /></p>
<p>Pointing the domain at your hosting is simple. Copy the settings below but use your own IP (I&#8217;ve blurred mine out to stop people getting confused).</p>
<p><img src="http://jamesowers.co.uk/wp-content/uploads/3.png" alt="" title="3" width="581" height="218" class="alignnone size-full wp-image-555" /></p>
<p>The top two make sure that http://yourdomain.com and http://www.yourdomain.com both point to your site. The third one points any subdomains at your site. As far as the server is concerned http://something.yourdomain.com is a different domain to http://yourdomain.com. This just points them all to the same place (this one is optional really). The fourth one just lets you use FTP on your site by going to ftp.yoursite.com.</p>
<p>Next we need to do the last bit, adding the SPF and DKIM values given to us in the Postmark application. As far as I know, each signature has its own values given to it by the app. You will have to log in to your account, select the correct server (you will only have one if you&#8217;re setting your first site up) and then click the &#8216;Sender Signatures&#8217; link. Anyway, the codes will be something along the lines of:</p>
<pre class="brush: plain; title: ; notranslate">
v=spf1 a mx include:spf.mtasv.net ~all

k=rsa; p=MHwwDQYJKoZIhvcNAQEBBQADawAwaAJhALZllb8wNEhCMSNSdMXG3eL...
</pre>
<p>The top code is the SPF one and the bottom code is the DKIM one. You should still be in the &#8216;All host records&#8217; section of namecheap. We&#8217;ll do the DKIM one first as that one took me longest to get right.</p>
<p>Under the * and &#8216;ftp&#8217; subdomains add another entry. In the first box you want to type:</p>
<pre class="brush: plain; title: ; notranslate">
pm._domainkey
</pre>
<p>In the second box copy and paste the whole second line of code that Postmark gave to you (starting with k=rsa; p=MHww&#8230;). In the third box select &#8216;TXT Record&#8217; and put 1800 in the TTL box.</p>
<p>That should do it for the DKIM. For the SPF. I put an @ symbol in the first box because it says in the legend at the bottom of the page that @ = none. Just leaving the first box blank might work for this one but I haven&#8217;t tested it, the @ worked for me.</p>
<p>Again in the second box paste the text from the first line of the code the app gave you. Choose &#8216;TXT Record&#8217; and 1800 again and save it. That should do it, you might have to wait a little while before the app can see the changes you have made.</p>
<p>Here&#8217;s an image of how my finished entries look:</p>
<p><img src="http://jamesowers.co.uk/wp-content/uploads/4.png" alt="" title="4" width="582" height="79" class="alignnone size-full wp-image-562" /></p>
<p>Also, if you have any problems head over to the <a href="http://help.postmarkapp.com/">Postmark support section</a> where I found Chris to be very helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/development/551/setting-up-postmark-with-namecheap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re-branding imminent and other stuff I’ve been up to</title>
		<link>http://jamesowers.co.uk/general/541/re-branding-imminent-and-other-stuff-ive-been-up-to/</link>
		<comments>http://jamesowers.co.uk/general/541/re-branding-imminent-and-other-stuff-ive-been-up-to/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 13:55:13 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=541</guid>
		<description><![CDATA[So anyway, no updates in quite a while now. I&#8217;ve been working on a few other projects lately so once again, this blog has got a bit neglected. For now I&#8217;ve put the stuff I&#8217;ve been working on to one side while I sort my current sites out. First for a re-haul is my portfolio [...]]]></description>
			<content:encoded><![CDATA[<p>So anyway, no updates in quite a while now. I&#8217;ve been working on a few other projects lately so once again, this blog has got a bit neglected. For now I&#8217;ve put the stuff I&#8217;ve been working on to one side while I sort my current sites out. </p>
<p><span id="more-541"></span></p>
<p>First for a re-haul is my portfolio site, because I wasn&#8217;t doing a totally new design, just a pretty major upgrade/re-design sort of job I decided to start with that one. The design for that is about 80% &#8211; 90% done so I&#8217;ll be starting to code it in the next few days, I&#8217;ll get some links up to that when there is something to see.</p>
<p>Second in line for a facelift is this site. I&#8217;ve decided I should really do a custom design for this site rather than use one from <a href="http://themeforest.net?ref=jmz">ThemeForest</a> (aff link). I did toy with the idea of switching to Tumblr so that I could have a go at making a skin for Tumblr but I decided against it since it could pretty much destroy the traffic I get from search engines if I started moving links and pages around. In the end I decided I&#8217;m just going to go for a nice simple WordPress theme (made by me this time!).</p>
<p>After that I&#8217;m going to finish the project I&#8217;ve been working on for the last month so that I can launch it. I&#8217;d also like to make an Android / iPhone app and an API for it if I get the time.</p>
<h2>Some other suff you might like</h2>
<p>First off, <a href="http://forrst.com/">Forrst</a>. I got invited to Forrst by Kyle the creator and it&#8217;s one of the first social things that I&#8217;ve really got hooked on. I might look on Twitter or Facebook from time to time but I seem to be on Forrst multiple times every day. It&#8217;s invite only at the minute so if you&#8217;re a developer / designer get your name down and you&#8217;ll get an invite eventually!</p>
<p>Next up, I&#8217;ve been a CodeIgniter addict for a while now (in fact, that new project I was talking about is written in it!) but I only found out about the <a href="http://codeigniterpodcast.com/">CodeIgniter Podcast</a> recently. So far I&#8217;ve only listened to the first episode but I found it really informative and I&#8217;ll definitely be listening to the rest.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/541/re-branding-imminent-and-other-stuff-ive-been-up-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easily get javascript libraries using Script SRC</title>
		<link>http://jamesowers.co.uk/general/526/script-src/</link>
		<comments>http://jamesowers.co.uk/general/526/script-src/#comments</comments>
		<pubDate>Tue, 25 May 2010 09:17:40 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=526</guid>
		<description><![CDATA[When developing a new site I always like to make sure I use the latest release of my javascript library hosted by Google. Then I just update it to a local version before the site goes live. Today I came across a great little site that lets you get the links to the latest versions [...]]]></description>
			<content:encoded><![CDATA[<p>When developing a new site I always like to make sure I use the latest release of my javascript library hosted by Google. Then I just update it to a local version before the site goes live.</p>
<p>Today I came across a great little site that lets you get the links to the latest versions of the most popular javascript libraries quickly and easily.</p>
<p><span id="more-526"></span></p>
<p><a href="http://scriptsrc.net/"><img src="http://jamesowers.co.uk/wp-content/uploads/scriptsrc.png" alt="scriptsrc" title="scriptsrc" width="520" height="129" class="alignnone size-full wp-image-527" /></a></p>
<p>You find your library on the page and click the &#8216;Copy&#8217; button. Then all the code you need to include the library in your page is copied to your clipboard. </p>
<p>I really like simple, easy to use sites like this that do one thing and do it well rather than trying to do too much.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/526/script-src/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Font API</title>
		<link>http://jamesowers.co.uk/general/520/google-font-api/</link>
		<comments>http://jamesowers.co.uk/general/520/google-font-api/#comments</comments>
		<pubDate>Thu, 20 May 2010 10:40:29 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=520</guid>
		<description><![CDATA[I wrote an article a while back on font replacement techniques, this is a quick update about Google&#8217;s version of this which is seriously easy to use. The Google Font API allows you to use any font from their font directory or you can use the font loader to load other fonts which they co-developed [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote an article a while back on <a href="http://jamesowers.co.uk/typography/320/font-replacement-techniques/">font replacement techniques</a>, this is a quick update about Google&#8217;s version of this which is seriously easy to use.</p>
<p>The <a href="http://code.google.com/apis/webfonts/">Google Font API</a> allows you to use any font from their font directory or you can use the font loader to load other fonts which they co-developed with TypeKit.</p>
<p><span id="more-520"></span><br />
<img src="http://www.jamesowers.co.uk/wp-content/uploads/font/font.png" alt="" /></p>
<h2>Using the Google Font API</h2>
<p>There&#8217;s no point in re-inventing the wheel so I&#8217;ll just link to a great article and video guide by Jeffrey Way over at Nettuts. You can have a <a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-google-fonts-api-youre-going-to-love-this/">look at his article here</a>.</p>
<h2>Other Info</h2>
<p>The great thing about the Google Fonts API is the fact that you can still use CSS3 effects on your text if you want to. As for page performance, obviously the initial download may slow your page down slightly but they do try to cache everything to minimise and extra loading times, just make sure you don&#8217;t try and load too many fonts!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/general/520/google-font-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling and disabling a text input with a checkbox using jQuery</title>
		<link>http://jamesowers.co.uk/javascript/506/enabling-and-disabling-a-text-input-with-a-checkbox-using-jquery/</link>
		<comments>http://jamesowers.co.uk/javascript/506/enabling-and-disabling-a-text-input-with-a-checkbox-using-jquery/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 07:00:22 +0000</pubDate>
		<dc:creator>jmz</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://jamesowers.co.uk/?p=506</guid>
		<description><![CDATA[I wanted to make a quick bit of javascript that would enable or disable a text input based on whether a checkbox was checked or not. I thought this might come in handy so I made it into a tutorial and posted it here. This script will work for any amount of checkboxes and text [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jamesowers.co.uk/wp-content/uploads/roi/input_img.gif" alt="Enabling and disabling a text input with a checkbox using jQuery" /></p>
<p>I wanted to make a quick bit of javascript that would enable or disable a text input based on whether a checkbox was checked or not. I thought this might come in handy so I made it into a tutorial and posted it here. This script will work for any amount of checkboxes and text inputs on a page. You can see a <a href="http://jamesowers.co.uk/wp-content/uploads/roi/demo.html">working demo of it here</a>.</p>
<p><span id="more-506"></span></p>
<p>First we start off with our blank HTML page.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Enabling and disabling a text input with a checkbox using jQuery&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Next include the jQuery js file from Google.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Next we add our text inputs and check boxes. I have also added some labels so that you can see which check box goes with which input. I have added 3 inputs so to show that you can use this technique with multiple boxes.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Readonly Input Box&lt;/h1&gt;

&lt;label&gt;My Test Label 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test1&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test2&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 3&lt;/label&gt;
&lt;input type=&quot;checkbox&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test3&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Now I add a class to each check box so that I know which check boxes I want jQuery to watch for clicks on. You don&#8217;t have to do this but you might get some strange results if you didn&#8217;t and you had other check boxes on your page.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Readonly Input Box&lt;/h1&gt;

&lt;label&gt;My Test Label 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test1&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test2&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 3&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test3&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I&#8217;ll also add a value to each check box, this will match the name of the input I want it to control.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Readonly Input Box&lt;/h1&gt;

&lt;label&gt;My Test Label 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test1&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test1&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test2&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test2&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 3&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test3&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test3&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Next, the jQuery. First of all we need the javascript tags, this normally goes at the end of the document so that the HTML &#038; CSS are loaded before any javascript, giving the user the impression that the page is loading faster.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;h1&gt;Readonly Input Box&lt;/h1&gt;

&lt;label&gt;My Test Label 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test1&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test1&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test2&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test2&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 3&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test3&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test3&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
//Our code will go in here
	});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>This tutorial will only deal with inputs that are all enabled when the page first loads (I might write another one in the future that covers having some disabled when the page loads) so we need to make sure that all the checkboxes are checked when the page loads. I did this with javascript, this might not be the right way to do it if you want it to degrade gracefully. To check all of my checkboxes when the page loads I use the code.</p>
<pre class="brush: jscript; title: ; notranslate">
	$(document).ready(function(){
		$('.input_control').attr('checked', true);
	});
</pre>
<p>Next I write some jQuery code that tells jQuery to do something whenever someone clicks one of the checkboxes with the class of &#8216;input_control&#8217;.</p>
<pre class="brush: jscript; title: ; notranslate">
	$(document).ready(function(){
		$('.input_control').attr('checked', true);
		$('.input_control').click(function(){
//Do this when someone clicks something with the class input_control
		});
	});
</pre>
<p>Now we do a simple if statement that says &#8216;if the check box was checked then set the disabled attribute to false, if the check box was unchecked then set the disabled attribute to true.</p>
<pre class="brush: jscript; title: ; notranslate">
	$(document).ready(function(){
		$('.input_control').attr('checked', true);
		$('.input_control').click(function(){
			if($('input[name='+ $(this).attr('value')+']').attr('disabled') == false){
				$('input[name='+ $(this).attr('value')+']').attr('disabled', true);
			}else{
				$('input[name='+ $(this).attr('value')+']').attr('disabled', false);
			}
		});
	});
</pre>
<p>And that&#8217;s it! I&#8217;ve added the code of the completed page below and you can <a href="http://jamesowers.co.uk/wp-content/uploads/roi/demo.html">see a demo here</a>. There are probably other ways of doing this, but this is the simplest way that I came up with. I did try doing this with toggle rather than using an if statement but although the disable/enable checkbox worked, the checkbox didn&#8217;t check/uncheck.</p>
<h2>Completed Page</h2>
<pre class="brush: xml; title: ; notranslate">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Readonly Input Box&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;h1&gt;Readonly Input Box&lt;/h1&gt;

&lt;label&gt;My Test Label 1&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test1&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test1&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 2&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test2&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test2&quot; /&gt;

&lt;br /&gt;

&lt;label&gt;My Test Label 3&lt;/label&gt;
&lt;input type=&quot;checkbox&quot; class=&quot;input_control&quot; value=&quot;test3&quot;/&gt;
&lt;input type=&quot;text&quot; name=&quot;test3&quot; /&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
	$(document).ready(function(){
		$('.input_control').attr('checked', true);
		$('.input_control').click(function(){
			if($('input[name='+ $(this).attr('value')+']').attr('disabled') == false){
				$('input[name='+ $(this).attr('value')+']').attr('disabled', true);
			}else{
				$('input[name='+ $(this).attr('value')+']').attr('disabled', false);
			}
		});
	});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jamesowers.co.uk/javascript/506/enabling-and-disabling-a-text-input-with-a-checkbox-using-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

