<?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>WGO &#187; Personal</title>
	<atom:link href="http://www.wiseguysonly.com/category/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wiseguysonly.com</link>
	<description>Tim Roberts CakePHP, MySQL and jQuery Developer</description>
	<lastBuildDate>Thu, 02 Feb 2012 19:22:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>CakePHP 2 &#8211; Hashing passwords before saving.</title>
		<link>http://www.wiseguysonly.com/2012/02/02/cakephp-2-hashing-passwords-before-saving/</link>
		<comments>http://www.wiseguysonly.com/2012/02/02/cakephp-2-hashing-passwords-before-saving/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 17:41:59 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=510</guid>
		<description><![CDATA[A quick gotcha here that leverages CakePHP&#8217;s inbuilt utilities to hash data before you commit it to the database. The beauty of this method is that you can still run all your validation checks and then hash the data between validation and saving. Why is that important? Consider you have a rule that says a [...]]]></description>
			<content:encoded><![CDATA[<p>A quick gotcha here that leverages CakePHP&#8217;s inbuilt utilities to hash data before you commit it to the database.</p>
<p>The beauty of this method is that you can still run all your validation checks and then hash the data between validation and saving. Why is that important? Consider you have a rule that says a password should be no more than 15 characters. When you hash it, it would break the rule and your record would never save. </p>
<p>All you have to do is hash your fields in the beforeSave function of your model like this example from a User Model:</p>
<p><code><br />
        public function beforeSave() {<br />
                App::uses('Utitlity','Security');<br />
                if(!empty($this->data['User']['password'])) {<br />
                        $this->data['User']['password'] = Security::hash($this->data['User']['password']);<br />
                }<br />
                return true;<br />
        }<br />
</code></p>
<p>One import aspect of this is to always return true. If you don&#8217;t your record will NEVER save.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2012/02/02/cakephp-2-hashing-passwords-before-saving/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing mongoDB on Debian Squeeze (and Ubuntu).</title>
		<link>http://www.wiseguysonly.com/2011/09/04/installing-mongodb-on-debian-squeeze-and-ubuntu/</link>
		<comments>http://www.wiseguysonly.com/2011/09/04/installing-mongodb-on-debian-squeeze-and-ubuntu/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 18:07:22 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=506</guid>
		<description><![CDATA[There&#8217;s no point in me trying to sell mongoDB to you, just go over to the mongoDB site and read up on its excellence. This is how I got mongoDB working on Debian Squeeze. It should work for other Deb based flavours &#8211; I&#8217;m thinking Ubuntu. I also have a PHP5x setup so you may [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no point in me trying to sell mongoDB to you, just go over to <a href="http://www.mongodb.org/">the mongoDB site</a> and read up on its excellence. </p>
<p>This is how I got mongoDB working on Debian Squeeze. It should work for other Deb based flavours &#8211; I&#8217;m thinking Ubuntu. I also have a PHP5x setup so you may need to adapt if you are running earlier versions. I&#8217;m also assuming you have git installed to fetch the drivers.</p>
<p><strong>All you have to do follows:</strong></p>
<p>First install the necessary mongo stuff (you need php5-dev also as we need the phpize functionality):</p>
<p><code>sudo apt-get install mongodb mongo-clients php5-dev</code></p>
<p>Now fetch the official mongoDB php driver from github:</p>
<p><code>git clone https://github.com/mongodb/mongo-php-driver.git</code></p>
<p>Change into the driver directory and run the following commands:</p>
<p><code>cd mongo-php-driver<br />
phpize<br />
./configure<br />
sudo make install</code></p>
<p>Copy the driver to php extension dir. To find your extension dir run:</p>
<p><code>php -i | grep  extension_dir</code></p>
<p>Armed with the location of your extension dir copy the file:</p>
<p><code>sudo cp modules/mongo.so  /path/to/php/extension_dir/ </code></p>
<p>Now create a file to load the driver into php at start up:</p>
<p><code>sudo vi /etc/php5/conf.d/mongo.ini</code></p>
<p>with the line:</p>
<p><code>extension=mongo.so</code></p>
<p>Now restart apache:</p>
<p><code>sudo /etc/init.d/apache2 restart</code></p>
<p>Then start an instance of the mongo server and PHP should be mongo friendly.</p>
<p>If you want to test this go grab a copy of the excellent <a href="http://www.phpmoadmin.com/">phpMoAdmin</a> and drop the file anywhere you load it through a browser. It should connect off the bat to mongoDB and you can start creating collections and objects in less time than it takes you to type &#8220;CREATE TABLE &#8230;&#8221;.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2011/09/04/installing-mongodb-on-debian-squeeze-and-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Behaviour Driven Development for web developers and their clients.</title>
		<link>http://www.wiseguysonly.com/2011/08/28/behaviour-driven-development-for-web-developers-and-their-clients/</link>
		<comments>http://www.wiseguysonly.com/2011/08/28/behaviour-driven-development-for-web-developers-and-their-clients/#comments</comments>
		<pubDate>Sun, 28 Aug 2011 19:53:38 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=500</guid>
		<description><![CDATA[It sells itself: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 Feature: Tutor [...]]]></description>
			<content:encoded><![CDATA[<p>It sells itself:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
</pre></td><td class="code"><pre class="gherkin" style="font-family:monospace;">Feature: Tutor forums
	As a Tutor
	I want to be able to use the forums
	In order to communicate with other tutors
&nbsp;
Scenario: View forums
	Given that I am logged in as a Tutor
	And I click on &quot;Tutor Forums&quot;
	Then I should see a paginated list of &quot;Tutor Forums&quot;
&nbsp;
Scenario: Create forum
	Given that I am logged in as a Tutor
	And I am on the page &quot;Tutor Forums&quot;
	And I click on the link Create forum
	And I enter a Forum title
	And I click &quot;create forum&quot;
	Then I should be able to create a new forum.
&nbsp;
Scenario: Edit forum
	Given that I am logged in as a Tutor
	And I am viewing a forum that I created
	And The forum was created within the past 15 minutes
	Then I should be able to edit the forum
&nbsp;
Scenario: View threads
	Given that I am logged in as a Tutor
	And I am on the page &quot;Tutor Forums&quot;
	And I click on the title of a Forum
	I should see a paginated list of threads for that forum.
&nbsp;
Scenario: Read thread
	Given that I am logged in as a Tutor
	And I am viewing a list of forum threads
	And I click the title of a thread
	Then I should see a list of message for that thread.
&nbsp;
Scenario: Reply to thread
	Given that I am logged in as a Tutor
	And I am viewing a thread
	And I click &quot;post reply&quot;
	And I enter a reply
	And I click &quot;post reply&quot; button
	Then I should be abÃ±le to reply to a thread
&nbsp;
Scenario: Edit reply
	Given that I am logged in as a Tutor
	And I am viewing replies to a thread
	And a reply was posted by me
	And the reply was posted within the last 15 minutes
	Then I should be able to edit the reply.</pre></td></tr></table></div>

<p>It&#8217;s so easy you and your clients can learn it in minutes, and it saves everyone time and clarifies expectations.</p>
<p>PHP users should check out <a href="http://behat.org/">Behat</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2011/08/28/behaviour-driven-development-for-web-developers-and-their-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing tracked files from git without deleting them</title>
		<link>http://www.wiseguysonly.com/2011/06/13/removing-tracked-files-from-git-without-deleting-them/</link>
		<comments>http://www.wiseguysonly.com/2011/06/13/removing-tracked-files-from-git-without-deleting-them/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 09:01:50 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Agile Programming]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=426</guid>
		<description><![CDATA[&#8212; DISCLAIMER: someone may tell me where I went wrong shortly after publication &#8212; When I develop CakePHP apps, my local database configiration file is very different from the live one. Therefore, when I am using Git to push my changes to a live environment I want to be sure this file is not pushed. [...]]]></description>
			<content:encoded><![CDATA[<p><em>&#8212; DISCLAIMER: someone may tell me where I went wrong shortly after publication &#8212;</em></p>
<p>When I develop CakePHP apps, my local database configiration file is very different from the live one. Therefore, when I am using Git to push my changes to a live environment I want to be sure this file is not pushed. Fortunately Git  has the ability to let me do this with the .gitignore file. I can specify the following:</p>
<p><code>app/config/database.php</code></p>
<p>One path to file on each line will ignore those files.</p>
<p>However, I recently found myself in the situation where I had already added files I wanted to ignore to my repository. After reading the docs and several forums, the answer seemed to be using the following command:</p>
<p><code>git rm --cached filename</code></p>
<p>I did this, commited my changes, then pushed them live. Horror. The database.php had been removed on my local repo and this was subsequently pushed to the live site which duly collapsed. Fortunately I used Git to quickly revert my changes. I&#8217;ve no idea why the command above didn&#8217;t work for me, but I did find a failsafe way of removing a tracked file without deleting it.</p>
<ol>
<li>make sure the path to file is listed in your .gitignore</li>
<li>copy the file outside of your repo.</li>
<li>do a <code>git rm -rf path/to/file.ext</code></li>
<li>do a git commit to remove the file from the repo</li>
<li>copy the file back from where you placed it in step 2</li>
</ol>
<p>You should be able to change the file now and when running git status it should not show up.</p>
<p>It may seem long winded and a more-than-likely unorthodox to do it this way, but it makes me feel safer.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2011/06/13/removing-tracked-files-from-git-without-deleting-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP Full Text Search</title>
		<link>http://www.wiseguysonly.com/2010/06/20/cakephp-full-text-search/</link>
		<comments>http://www.wiseguysonly.com/2010/06/20/cakephp-full-text-search/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 17:12:02 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=346</guid>
		<description><![CDATA[CakePHP&#8217;s database abstraction is just one of the reasons to use this powerful framework for agile web development. However, it is not always obvious how to build complex queries. I recently had to implement a MySQL full text search against a music database that searched on titles, descriptions and tags. Full text search is a [...]]]></description>
			<content:encoded><![CDATA[<p>CakePHP&#8217;s database abstraction is just one of the reasons to use this powerful framework for agile web development. However, it is not always obvious how to build complex queries. I recently had to implement a MySQL full text search against a music database that searched on titles, descriptions and tags. Full text search is a quick, and not too dirty way to make a pretty decent search, although it does come with a caveat, as described in the MySQL documentation:</p>
<blockquote><p>Full-text indexes can be used only with <code style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; color: #026789; font-weight: bold; font-family: courier, 'courier new', fixed, monospace; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">MyISAM</code> tables, and can be created only for <a style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; text-decoration: underline; color: #00759f; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;" title="10.4.1. The CHAR and         VARCHAR Types" href="http://dev.mysql.com/doc/refman/4.1/en/char.html"><code style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; color: #026789; font-weight: bold; font-family: courier, 'courier new', fixed, monospace; text-decoration: underline; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">CHAR</code></a>, <a style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; text-decoration: underline; color: #00759f; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;" title="10.4.1. The CHAR and         VARCHAR Types" href="http://dev.mysql.com/doc/refman/4.1/en/char.html"><code style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; color: #026789; font-weight: bold; font-family: courier, 'courier new', fixed, monospace; text-decoration: underline; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">VARCHAR</code></a>, or <a style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; text-decoration: underline; color: #00759f; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;" title="10.4.3. The BLOB and         TEXT Types" href="http://dev.mysql.com/doc/refman/4.1/en/blob.html"><code style="outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white; color: #026789; font-weight: bold; font-family: courier, 'courier new', fixed, monospace; text-decoration: underline; background-position: initial initial; background-repeat: initial initial; padding: 0px; margin: 0px; border: 0px initial initial;">TEXT</code></a>columns.</p></blockquote>
<p><span id="more-346"></span>It did take a little bit of experimentation to get the syntax for the query correct in CakePHP as the query is a little different from the regular &#8220;<em>SELECT field FROM table WHERE somevalue = somevalue</em>&#8220;.</p>
<p>So, for this example I will use a MyISAM table called pages and search against the title, content and tags fields for the term&#8221; jquery web development&#8221;. You should substitute that term with your dynamically passed value in the code below.</p>
<p>Firstly I built the conditions for my query into a &#8220;params&#8221; array.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$params['conditions'] = array(</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> &#8216;MATCH(Track.title,Track.description,Track.tags)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> AGAINST(&#8220;&#8216; . $kw_list . &#8216;&#8221; IN BOOLEAN MODE)&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"><span style="white-space: pre;"> </span> );</div>
<blockquote><p>$params= array(&#8216;conditions&#8217; =&gt; array(<br />
&#8216;MATCH(Page.title,Page.description,Page.tags)<br />
AGAINST(&#8220;jquery web development&#8221; )&#8217; ));</p></blockquote>
<p>Finally a call to CakePHP&#8217;s native find method will perform the search:</p>
<blockquote><p>$this-&gt;Page-&gt;find(&#8216;all&#8217;,$params);</p></blockquote>
<p>One last note: MySQL full text search can be powerful when used correctly and a potential bottleneck when poorly implemented. I suggest reading <a href="http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html">the documentation</a> for further information and more advanced usage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2010/06/20/cakephp-full-text-search/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to fix the OSX Leopard Set up Assistant Loop Bug.</title>
		<link>http://www.wiseguysonly.com/2010/01/19/how-to-fix-the-osx-leopard-set-up-assistant-loop-bug/</link>
		<comments>http://www.wiseguysonly.com/2010/01/19/how-to-fix-the-osx-leopard-set-up-assistant-loop-bug/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 17:04:30 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=322</guid>
		<description><![CDATA[Today, my G5 (Leopard) started displaying the Set Up Assistant everytime it booted. Even after completing setup it was impossible to access the GUI. It was held in a continuous. If you get caught in the Leopard Setup Assistant Loop Bug, here is the way to get your Mac booting again with no loss of [...]]]></description>
			<content:encoded><![CDATA[<p>Today, my G5 (Leopard) started displaying the Set Up Assistant everytime it booted. Even after completing setup it was impossible to access the GUI. It was held in a continuous.</p>
<p>If you get caught in the Leopard Setup Assistant Loop Bug, here is the way to get your Mac booting again with no loss of data.</p>
<ol>
<li>Boot into Safe Mode by holding down the shift key just after you hear the first boot sound. This takes an eternity so be patient.</li>
<li><strong>Don&#8217;t log in to any account. Instead press the back arrow key once </strong>(this will highlight an account)<strong>.</strong></li>
<li>Then click the restart button.</li>
<li>Now just wait while your Mac performs some updates and then reboots as normal again.</li>
</ol>
<p>Even Macs break occasionally / rarely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2010/01/19/how-to-fix-the-osx-leopard-set-up-assistant-loop-bug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Select and Unselect All Checkboxes with jQuery</title>
		<link>http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/</link>
		<comments>http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 19:01:06 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=308</guid>
		<description><![CDATA[I&#8217;ve been working with jQuery to spice up my interfaces for over 12 months now and figured it&#8217;s time to share some of the little techniques I&#8217;ve developed on the way. The first is something I use quite alot when I am giving users the ability to administer lists of items in bulk. That including [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with jQuery to spice up my interfaces for over 12 months now and figured it&#8217;s time to share some of the little techniques I&#8217;ve developed on the way.</p>
<p>The first is something I use quite alot when I am giving users the ability to administer lists of items in bulk. That including a checkbox that when checked sets the state of all the checkboxes beside a list of items to &#8220;checked&#8221;. Naturally unchecking it will uncheck all checkboxes. I&#8217;m sure you get the picture here&#8217;s the code based on two scenarios depending on your preference. But firstly you need to include the jQuery library in the head of your document (I grab mine straight from Google&#8217;s repository to save my bandwidth):</p>
<p><span id="more-308"></span></p>
<p><code>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;</code></p>
<p>and then somewhere in your document a controller checkbox that toggles all the others (note the call to toggleChecked when the state of the checkbox changes):</p>
<p><code>&lt;input type="checkbox" onclick="toggleChecked(this.checked)"&gt; Select / Deselect All</code></p>
<p>Now here are  two versions of the toggleChecked function dependent on the semantics of your document. The only real difference is the jQuery selector for your list checkboxes:</p>
<p><strong>1: All checkboxes have a class of  &#8220;checkbox&#8221; (&lt;input type=&#8221;checkbox&#8221; class=&#8221;checkbox&#8221; /&gt;)</strong><br />
<code>function toggleChecked(status) {<br />
$(".checkbox").each( function() {<br />
$(this).attr("checked",status);<br />
})<br />
}</code></p>
<p><strong>2: All the checkboxes are contained within a div with an arbitary id:</strong></p>
<p><code>&lt;div id="checkboxes"&gt;<br />
&lt;input type="checkbox" /&gt;<br />
&lt;input type="checkbox" /&gt;<br />
&lt;input type="checkbox" /&gt;<br />
&lt;/div&gt;</code></p>
<p>In this case the function would look like this:</p>
<p><code>function toggleChecked(status) {<br />
$("#checkboxes input").each( function() {<br />
$(this).attr("checked",status);<br />
})<br />
</code></p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Keep linux scripts running after you have closed a remote shell.</title>
		<link>http://www.wiseguysonly.com/2009/10/14/keep-linux-scripts-running-after-you-have-closed-a-remote-shell/</link>
		<comments>http://www.wiseguysonly.com/2009/10/14/keep-linux-scripts-running-after-you-have-closed-a-remote-shell/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 12:56:11 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=267</guid>
		<description><![CDATA[I stumbled across this whilst importing 1.1TB of data from a server to Amazon S3 (more on that another day). What I wanted to achieve was to be able to ssh into my remote server, issue a command to push over 200,000 mp3&#8242;s up to Amazon and to be able to exit the shell and [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled across this whilst importing 1.1TB of data from a server to <a href="http://aws.amazon.com/s3">Amazon S3</a> (more on that another day). What I wanted to achieve was to be able to ssh into my remote server, issue a command to push over 200,000 mp3&#8242;s up to Amazon and to be able to exit the shell and keep the process running.</p>
<p>The answer lies in a command line tool called <code>screen</code>.</p>
<p>Screen allows you to start a process on a virtual screen, then detach that screen and do something else (including log out). You can also reattach your screen after logging out and logging in again.</p>
<p>If you dont have the screen command on your remote linux box, first install it either from source or using your favourite package manager. Then login into your remote box and run your desired command prefixed with &#8220;screen&#8221;. For example:</p>
<p><code>screen top</code></p>
<p>Now to detach the screen use CTRL+a followed by d. This will detach your screen and you can go about any other business, including quitting your remote session.</p>
<p>Reattaching you screen at any time is as simple as running the command:</p>
<p><code>screen -r</code></p>
<p>You can detach and reatach your screen as much as you want until your running process is finished or you kill it, at which point your virtual screen is killed too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2009/10/14/keep-linux-scripts-running-after-you-have-closed-a-remote-shell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>British Sign Language Support &#8211; New Zumo Internet Launch</title>
		<link>http://www.wiseguysonly.com/2009/09/22/british-sign-language-support-new-zumo-internet-launch/</link>
		<comments>http://www.wiseguysonly.com/2009/09/22/british-sign-language-support-new-zumo-internet-launch/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 14:20:59 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/?p=261</guid>
		<description><![CDATA[Over at my Web Development Agency in Spain we&#8217;ve been busy again and we are pretty chuffed with the results. Once again working with TMax Media we have built and just launched BSL Homework Support a website that offers resources, and assessments for anyone interested in learning sign language. We cut the XHTML, wrote the [...]]]></description>
			<content:encoded><![CDATA[<p>Over at my <a href="http://www.zumointernet.com">Web Development Agency in Spain</a> we&#8217;ve been busy again and we are pretty chuffed with the results. Once again working with TMax Media we have built and just launched <a href="http://www.bslsupport.org.uk/">BSL Homework Support</a> a website that offers resources, and assessments for anyone interested in learning sign language.</p>
<p>We cut the XHTML, wrote the CSS and used PHP and MySQL to power the online purchasing and content retrieval system. The site features thousands of video clips that we deliver using jQuery and some elegant third party applications such as Shadowbox and JWPlayer.</p>
<p>If you are looking for something special for your next web project, or you&#8217;re a media agency looking for a reliable and talented web development service, please email <a href="mailto:nfo@zumointernet.com">info@zumointernet.com</a> and we&#8217;ll let you know what we can do to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2009/09/22/british-sign-language-support-new-zumo-internet-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CEIP Mariana Pineda, Benalmadena, Arroyo de La Miel</title>
		<link>http://www.wiseguysonly.com/2009/09/10/ceip-mariana-pineda-benalmadena-arroyo-de-la-miel/</link>
		<comments>http://www.wiseguysonly.com/2009/09/10/ceip-mariana-pineda-benalmadena-arroyo-de-la-miel/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 13:04:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Life in Spain]]></category>

		<guid isPermaLink="false">http://www.wiseguysonly.com/2009/09/10/ceip-mariana-pineda-benalmadena-arroyo-de-la-miel/</guid>
		<description><![CDATA[Hopefully this may help someone else find the contact number for this school which is not correctly listed on either the Yellow Pages in Spain or the Junta de Andalucia&#8217;s website. The telephone number is 951 293 997 In case you are wondering why it is so hard to find: the school is fairly new [...]]]></description>
			<content:encoded><![CDATA[<p>Hopefully this may help someone else find the contact number for this school which is not correctly listed on either the Yellow Pages in Spain or the Junta de Andalucia&#8217;s website.</p>
<p>The telephone number is <strong>951 293 997</strong></p>
<p>In case you are wondering why it is so hard to find: the school is fairly new and is listed as a plot of land still on the Junta&#8217;s site. I&#8217;m guessing the amount of paper work needed to get a website change actioned is far greater than the parent&#8217;s need to contact a school.</p>
<p><a href="http://www.juntadeandalucia.es/averroes/impe/web/centro?codigo=29005801&amp;idMenu=mC5">The official listing is here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wiseguysonly.com/2009/09/10/ceip-mariana-pineda-benalmadena-arroyo-de-la-miel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

