<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://murfitt.net"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Dan Murfitt&#039;s blog</title>
 <link>http://murfitt.net/blog/dan</link>
 <description></description>
 <language>en</language>
<item>
 <title>CodeIgniter vs. Laravel</title>
 <link>http://murfitt.net/blog/codeigniter-vs-laravel</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;It&#039;s not always easy to give a definite winner with these sorts of comparisons, as depends what your requirements and preferences are. So, here are a few areas worth thinking about when weighing up CodeIgniter against Laravel.&lt;/p&gt;

&lt;h2&gt;Speed to learn&lt;/h2&gt;

&lt;p&gt;CodeIgniter is incredibly quick to learn; mainly because it&#039;s so easy to set up. You can just download the CodeIgniter package, unzip it to your WAMP or MAMP web root, and you&#039;re good to go. I think one of the main reasons CodeIgniter grew in popularity so quickly was because of how easy it was to install and learn. You also don&#039;t need to use the command line to develop with CodeIgniter.&lt;/p&gt;

&lt;p&gt;Laravel takes a little more time to get to know. If you&#039;re only used to writing small php websites - processing forms, etc. - there&#039;s a lot to learn in terms of development workflow. You can&#039;t really download and install Laravel like you can with CodeIgniter. You need Composer, and the layout of the web root is a little different. As it happens, there&#039;s a pre-built development environment - Laravel Homestead - which makes all of this easy to set up, but that in itself will take a bit of time to learn. Not much time, but when comparing the speed to learn with CodeIgniter, I&#039;m afraid I have to give this one to CodeIgniter as pretty much anyone that&#039;s ever written a PHP &#039;&#039;Hello World&#039; should be able to set it up in no time at all. Also, one of the advantages of using Laravel is that is has some excellent features which speed up your development time. They speed it up, because you don&#039;t have to write so much code to add functionality. The down side of this is that you really need to learn how it works, so you can remain in control while you&#039;re building your app. You&#039;re almost having to learn another language (for example, Eloquent ORM). This is a good thing, and you should do it, but it does take a little longer to learn as a result.&lt;/p&gt;

&lt;h2&gt;Speed to deploy&lt;/h2&gt;

&lt;p&gt;Laravel has a really powerful migrations system, which makes deployment super quick and easy. Since I started using Laravel (with Laravel Forge), I&#039;ve been deploying via git (push to deploy). This means you can make changes to your app - including database changes, in the form of migrations - and &#039;git push&#039; to deploy to your production server. I&#039;m sure you could set up something similar with CodeIgniter (it does have some basic migrations functionality, too) but it doesn&#039;t feel quite so streamlined as Laravel. Because of this, I&#039;m going to hand this one to Laravel - as it&#039;s really built for streamlining deployment.&lt;/p&gt;

&lt;p&gt;Side note: in addition to Laravel Forge - which makes setting up PHP/Laravel servers super easy - you can also deploy via Envoyer, which can automatically test and roll back deployments so that you don&#039;t suffer any downtime. Forge and Envoyer are both created by the creator of Laravel, so they work really well together and make deployments so quick and easy (disclaimer: I have no affiliation with these services - I just think they&#039;re great).&lt;/p&gt;

&lt;h2&gt;Hosting requirements&lt;/h2&gt;

&lt;p&gt;Due to Laravel having slightly more requirements in terms of hosting (mainly Composer) it may be slightly more tricky to set up on shared hosting. Therefore, I&#039;m going to give this one to CodeIgniter, as it&#039;s a bit lighter on the hosting requirements. I&#039;ve seen a few tutorials on setting up Laravel for shared hosting, so I&#039;m assuming (and I haven&#039;t personally had to do it) that this is a bit more difficult to set up.&lt;/p&gt;

&lt;h2&gt;Features&lt;/h2&gt;

&lt;p&gt;When I first started using Laravel I was amazed at how much time I saved by using Eloquent ORM. Your models basically inherit common functionality and can interact with each other without having to write much code at all. This is a big plus for Laravel. You also have a very comprehensive database migrations, system, queues (tasks which run in the background), authentication and authorisation, and a super slick command line interface for tinkering with your app. There&#039;s also the upcoming Laravel &#039;Spark&#039;, which is an out-of-the-box SaaS package, allowing you to add subscriptions, plans, payments, and team logic to your app. CodeIgniter has a brilliant active record package, form generation and validation, and a wide range of php helper functions. In comparison though, CodeIgniter&#039;s functionality seems pretty basic. For me, Laravel wins on features.&lt;/p&gt;

&lt;h2&gt;Frequency of updates&lt;/h2&gt;

&lt;p&gt;From my experience of working with the two frameworks, Laravel has been moving a lot faster in terms of updates. This is either a good or bad thing, depending on what you want from your framework. Laravel is more cutting edge, has more features and tends to move faster and have more updates. As a developer, you need to keep up. CodeIgniter hasn&#039;t really changed a lot since I first started using it - around 7 (cough!) years ago. It&#039;s been pretty safe, stable, and easy to stay up to date with. There have been a number of security updates, but it doesn&#039;t feel like the functionality has moved on a lot.&lt;/p&gt;

&lt;h2&gt;Security&lt;/h2&gt;

&lt;p&gt;Both frameworks have an excellent set of security features, such as preventing SQL injection (through active record) and cross site request forgery (CSRF) protection. The biggest issue with security is most likely going to be the developer, as it&#039;s how you choose to use the features available, and what you then choose to write yourself. Since Laravel has more features - such as out-of-the-box user authentication - you&#039;re a little more protected, as you&#039;re less likely to write this functionality yourself. That being said, there are a couple of very solid user authentication packages for CodeIgniter. As they don&#039;t come officially with the package, you&#039;ll have to download and manage them separately. I&#039;d say both packages have very good set of security features, but Laravel has you covered a little more as it offers pre-built functionality for areas which may leave you open if you don&#039;t do it properly yourself (such as user authentication).&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Both are great frameworks with an excellent set of security features. CodeIgniter is quicker to learn, easier to set up, and more likely to run on shared hosting. Larvavel takes longer to learn, is a little more tricky to set up, but has more features. Once you&#039;re up and running, Laravel is probably quicker to build and deploy changes, due to the comprehensive Eloquent ORM and migrations functionality. CodeIgniter&#039;s updates have been much more conservative and easier to keep up with, where as Laravel seems to push new features more often, and has a much quicker release cycle.&lt;/p&gt;

&lt;p&gt;I hope this helps. If you&#039;ve got any other points to add, please mention them in the comments below :)&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 08 Mar 2016 22:06:54 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">179 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/codeigniter-vs-laravel#comments</comments>
</item>
<item>
 <title>Outlook for Mac 2011 not working on OS X El Capitan (10.11)</title>
 <link>http://murfitt.net/blog/outlook-mac-2011-not-working-os-x-el-capitan-1011</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/apple&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Apple&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/os-x&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;OS X&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/el-capitan&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;El Capitan&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-3&quot;&gt;&lt;a href=&quot;/tags/microsoft&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Microsoft&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-4&quot;&gt;&lt;a href=&quot;/tags/outlook&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Outlook&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;strong&gt;tl;dr - If you use Outlook for Mac and you&#039;re thinking of upgrading to OS X El Capitain, don&#039;t...yet!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit (Fix): There is an update available now that fixes this problem. You can install it by opening Word, clicking &#039;Help&#039; in the menu bar then clicking &#039;Check for updates&#039;. You should see the critical update available. Download, install it, and enjoy Outlook 2011 on your El Capitan Mac :) For more information, visit: &lt;a href=&quot;https://support.microsoft.com/en-us/kb/3098229&quot;&gt;https://support.microsoft.com/en-us/kb/3098229&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It&#039;s been an eventful day, for all the wrong reasons. Usually my Apple updates go well, but today I discovered that if you try and sync Outlook (running on El Capitan) with an Exchange server, you get a (nice,  redesigned) beachball. This is a known bug (&lt;a href=&quot;https://support.microsoft.com/en-us/kb/3098396&quot;&gt;https://support.microsoft.com/en-us/kb/3098396&lt;/a&gt;), and the official workaround at the moment is to stick to using Yosemite.&lt;/p&gt;

&lt;p&gt;The crash seems to kick in when Outlook tries to sync with Exchange, so if you just want to load Outlook and not receive any new email, you can probably do it by opening it and quickly setting it to offline mode. I&#039;ve seen a few people mention this on the forums, but I&#039;ve not personally tried it, as it&#039;s pretty useless to me in offline mode (obviously - it&#039;s email!).&lt;/p&gt;

&lt;p&gt;There are a couple of workarounds if you have already upgraded:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Use Outlook web access.&lt;/strong&gt; We use Office 365 and this comes with a very nice Outlook web client, which is actually pretty powerful. You might miss that native app feeling, but you&#039;ll be able to carry on working, at least until there&#039;s an official fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Use the Mac Mail app.&lt;/strong&gt; You can configure the Mac Mail app to connect to Exchange, and it works as well as Mail on iOS. It&#039;s a lot more stripped down than Outlook, and if you use contacts and calendar you&#039;ll have to set those up separately on your Mac too, but again, you can carry on working in the meantime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Revert to Yosemite.&lt;/strong&gt; I&#039;ve put this last as it&#039;s probably a last resort, but if you absolutely, positively have to use Outlook for Mac, and you&#039;ve already upgraded, you can consider reverting to a previous Time Machine backup. Apple have some steps to do this (&lt;a href=&quot;https://support.apple.com/kb/PH18846?locale=en_US&quot;&gt;https://support.apple.com/kb/PH18846?locale=en_US&lt;/a&gt;) - just make sure you have backed up any data you have created since the last good Yosemite backup.&lt;/p&gt;

&lt;p&gt;If anyone has a fix for this in the meantime, please post it in the comments below. I&#039;ll update this post as soon as I hear of an official fix or more permanent workaround.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Thu, 01 Oct 2015 19:35:27 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">178 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/outlook-mac-2011-not-working-os-x-el-capitan-1011#comments</comments>
</item>
<item>
 <title>Getting Laravel Homestead to work with larger file uploads</title>
 <link>http://murfitt.net/blog/getting-laravel-homestead-work-larger-file-uploads</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/laravel&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Laravel&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/homestead&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Homestead&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/vagrant&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Vagrant&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-3&quot;&gt;&lt;a href=&quot;/tags/php&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;PHP&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-4&quot;&gt;&lt;a href=&quot;/tags/nginx&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Nginx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://murfitt.net/sites/default/publicfiles/laravel-four-icon_0.png&quot; style=&quot;width:200px; float:right;margin-left:20px; margin-bottom:20px;&quot; alt=&quot;Laravel&quot;/&gt; I&#039;ve been working on a Laravel project which uses relatively large file uploads (about 30MB - 120MB). My development environment is &lt;a href=&quot;http://laravel.com/docs/4.2/homestead&quot;&gt;Laravel Homestead&lt;/a&gt; - a great, pre-packaged Vagrant box for Laravel development. If you haven&#039;t heard of this I highly recommend you check it out - it&#039;s a great way to get up and running with Laravel, but it doesn&#039;t seem to play well for larger file uploads through forms (over about 5MB). My forms were either hanging or returning an nginx &#039;too large&#039; error. Here are some of the settings which I&#039;ve had to tweak to get Homestead working nicely with larger uploads.&lt;/p&gt;

&lt;p&gt;Make a backup of your Homestead settings and files before making any tweaks so that if anything goes wrong you can revert to a working copy. First, increase the limits in your &lt;strong&gt;php.ini&lt;/strong&gt;. This can be found in &lt;code&gt;/etc/php5/fpm/php.ini&lt;/code&gt;. Here are the settings I&#039;ve overridden (note: these are spread throughout the php.ini file - I&#039;ve just put them all together for convenience):&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-text&quot;&gt;max_execution_time = 500
upload_max_filesize = 128M
post_max_size = 128M&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The main two settings here are the &lt;code&gt;upload_max_filesize&lt;/code&gt; and &lt;code&gt;post_max_size&lt;/code&gt;, but I&#039;ve also increased the &lt;code&gt;max_execution_time&lt;/code&gt; to allow for the longer time to process the file and upload. You can set all these accordingly.&lt;/p&gt;

&lt;p&gt;Once you&#039;ve updated your &lt;strong&gt;php.ini&lt;/strong&gt; you&#039;ll need to reload it by running the following command in your terminal:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-text&quot;&gt;service php5-fpm restart&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The next set of changes are in the &lt;strong&gt;nginx.conf&lt;/strong&gt; file, which you can find at &lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Within the &lt;strong&gt;http section&lt;/strong&gt;, set &lt;strong&gt;sendfile&lt;/strong&gt; to &lt;strong&gt;off&lt;/strong&gt;:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-text&quot;&gt;sendfile off;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Just below this line, add another line to specify the &lt;code&gt;client_max_body_size&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-text&quot;&gt;client_max_body_size 128M;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Once you&#039;ve done this, save the file and run the following command in terminal to reload the config:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-text&quot;&gt;nginx -s reload&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That should be it - you can now use your Laravel Homestead environment to upload much larger files. I hope this helps. If anyone has any tips related to this issue, please feel free to share them in the comments below :)&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blog.elenakolevska.com/debugging-laravel-on-homestead/&quot;&gt;http://blog.elenakolevska.com/debugging-laravel-on-homestead/&lt;/a&gt;
&lt;a href=&quot;https://laracasts.com/discuss/channels/general-discussion/homestead-uploading-large-files-l42&quot;&gt;https://laracasts.com/discuss/channels/general-discussion/homestead-uplo...&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Mon, 12 Jan 2015 22:11:19 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">177 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/getting-laravel-homestead-work-larger-file-uploads#comments</comments>
</item>
<item>
 <title>Hello 2015! Hopes, resolutions and things to look forward to for the new year</title>
 <link>http://murfitt.net/blog/hello-2015-hopes-resolutions-and-things-look-forward-new-year</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/new-year&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;New Year&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;For those of you that know me, you&#039;ll know that I&#039;d have a lot to say about 2014. It&#039;s been a strange year. I won&#039;t go into it in this blog post, but instead I&#039;m going to look forward and welcome 2015 with wide eyes and big open arms. Come in and make yourself at home, 2015! So, here are a few things I&#039;d like to look forward to in the new year.&lt;/p&gt;

&lt;h2&gt;Get out more&lt;/h2&gt;

&lt;p&gt;I always feel better when I get out, meet new people, learn new things. And I need to do more of it. Specifically, I&#039;d like to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;go to more meet-ups&lt;/li&gt;
&lt;li&gt;go to more conferences&lt;/li&gt;
&lt;li&gt;generally meet more people&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Record more. Reflect more.&lt;/h2&gt;

&lt;p&gt;I saw a video blog recently (sorry, I can&#039;t remember the link, hence this point really...) about how keeping a diary or journal can help with learning and general memory retention. It seems it&#039;s good for your memory if you reflect upon things after (as well as keeping a written record, of course). I&#039;ve read some great books, and seen some great films, but they kind of get &#039;put in the pile&#039; in my mind. I&#039;d actually like more of a record, and I&#039;d like to be able to look back at the end of next year and know exactly what I&#039;ve done to help me reflect upon the smaller good points, the ones that &lt;strike&gt;sometimes&lt;/strike&gt; always get forgotten. So here&#039;s what I propose to my 2015 self:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep a journal every day. Even if it&#039;s short. Even if it seems pointless at the time. Write it down.&lt;/li&gt;
&lt;li&gt;Blog more. I actually enjoy writing so why don&#039;t I do it more? Write a blog post at least once a week. Either on here or somewhere else (Medium, LinkedIn Pulse, etc,)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Build my first Raspberry Pi project&lt;/h2&gt;

&lt;p&gt;I was very kindly bought a Raspberry Pi for Christmas by my father in law. I love how there are so many possibilities packed into something so small. I&#039;ve wanted to have a play with one for a while, so now I&#039;ve got one I&#039;d like to use it properly and build it into something useful in a project.&lt;/p&gt;

&lt;h2&gt;Launch Skilful.co&lt;/h2&gt;

&lt;p&gt;I&#039;ve been working on a new business for online management training - teaching skills like how to run meetings, interview, build great teams, etc. We&#039;re planning on launching early 2015, and there&#039;s still a lot to do, but we&#039;re all really looking forward to getting it online.&lt;/p&gt;

&lt;h2&gt;Make more videos and take more pictures&lt;/h2&gt;

&lt;p&gt;I&#039;ve been on Instagram since, well, I can&#039;t remember but it was before it was popular (hipster achievement unlocked), but I&#039;ve only recently started getting into it. Daniel Kahneman said that many people are &quot;experiencing the present as an anticipated memory&quot;. This still fascinates me, and I love taking pictures with it - making something simple look artistic and reflective.&lt;/p&gt;

&lt;p&gt;I&#039;ve also toyed with the idea of keeping a video blog. The hardest thing about starting this isn&#039;t getting the kit, or even finding the time, it&#039;s finding something interesting to talk about. I&#039;m sure we all have interesting things to talk about, right? So then it&#039;s about &lt;em&gt;recognising&lt;/em&gt; something interesting to talk about. So:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Try and take a picture once a day. Even if it seems pointless.&lt;/li&gt;
&lt;li&gt;Publish an online video review of something&lt;/li&gt;
&lt;li&gt;Publish an online video tutorial. Teach something on YouTube.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So there you have it. Now I&#039;m going to head out, see some friends, and welcome in the new year with a couple of glasses of wine. :) Thanks for dropping by and hope you have a great 2015!&lt;/p&gt;

&lt;p&gt;Dan&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Wed, 31 Dec 2014 16:26:54 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">176 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/hello-2015-hopes-resolutions-and-things-look-forward-new-year#comments</comments>
</item>
<item>
 <title>DrupalCon 2013: Summary of Dries Buytaert&#039;s Keynote</title>
 <link>http://murfitt.net/blog/drupalcon-2013-summary-dries-buytaerts-keynote</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/drupal&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Drupal&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;DrupalCon 2013 is well underway now with Dries giving his keynote earlier today. There are lots of exciting things coming up with Drupal 8, and it’s a big change both technically and conceptually from the previous releases. I’ll attach the full keynote below, but here’s a quick summary for you speedy readers.&lt;/p&gt;

&lt;p&gt;There are six key initiatives in Drupal 8 which Dries quickly covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configuration management&lt;/li&gt;
&lt;li&gt;Mobile&lt;/li&gt;
&lt;li&gt;Blocks&lt;/li&gt;
&lt;li&gt;Multilingual&lt;/li&gt;
&lt;li&gt;Views in core&lt;/li&gt;
&lt;li&gt;Web services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are all designed to modernise Drupal, help people get up and running quickly and make Drupal better integrated with both third party services and the whole ‘graph’ of the web. Mobile is a big part of the new direction of Drupal so it has been rebuilt with HTML5 and will be responsive  right from install. There are some “massive improvements” to the multilingual support for Drupal and Views will also be included in core. The web services initiative aims to make Drupal into more of a platform through which you can build native apps by bringing in contextual data and a REST server.&lt;/p&gt;

&lt;p&gt;There are hundreds of new features included with Drupal 8; here are a few which Dries walked through:&lt;/p&gt;

&lt;h2&gt;Accessibility&lt;/h2&gt;

&lt;p&gt;Screen readers will be able to better understand the structure of the web pages and menu system. Dries showed a very impressive demo for this, and while a screen reader isn’t something we all use, it’s good to know it’s an important part of the CMS so that everyone can get the best experience.&lt;/p&gt;

&lt;h2&gt;Schema.org&lt;/h2&gt;

&lt;p&gt;Schema.org support has been available through a third party module for some time, but with Drupal 8 it’s now included in core. You’ve probably noticed Google returning search results for pages that include more context, such as star ratings and video length etc. - this is exactly what the Schema.org specification does. Dries says this plays a big part in where the web is heading, turning search engines into “answer engines”. There are some obvious SEO benefits from this too, but it’s really exciting that this is now going to be included in core.&lt;/p&gt;

&lt;h2&gt;New theme system&lt;/h2&gt;

&lt;p&gt;Drupal 8’s theming engine is now going to use Twig. This means that themes can now be free from somewhat random and confusing PHP code.&lt;/p&gt;

&lt;h2&gt;Update to fields in core&lt;/h2&gt;

&lt;p&gt;The fields in core are going to be more contextual. For example, you can now add a date field which will use HTML5’s date/datetime input field. This means that users can use the native UI for entering data, so on mobile devices the nice date/time selector can be used. There will also be support for other field types, such as email and telephone.&lt;/p&gt;

&lt;h2&gt;New admin pages&lt;/h2&gt;

&lt;p&gt;The admin interface has had a large overhaul, and will be much easier to use with better contextual help.&lt;/p&gt;

&lt;p&gt;For the way the web is transforming, these seem like sensible steps and will keep Drupal ahead of the game. In terms of what users wanted, a lot of people asked for Drupal to be quicker to learn and to be able to get up and running faster. A WYSIWYG editor is now included as standard, there is an improved menu system so users can quickly discover all of the features and theming has been better separated from development with the use of the template engine Twig.&lt;/p&gt;

&lt;p&gt;As for now, work is still being carried out on the new APIs and critical bugs. Early next year, module contributors will be invited to start upgrading their modules, although Dries warned that if you start upgrading now there still might be some changes to the APIs, so it’s probably best to wait until the next phase. When will Drupal 8 be ready? “It’s ready when it’s ready”. There are still critical bugs to fix, and there is still time for people to take part and help bring Drupal 8 closer to launch.&lt;/p&gt;

&lt;p&gt;If you’d like to see the full keynote, here it is - it’s about an hour long, but if you use or are interested in Drupal you don’t want to miss what’s coming up.&lt;/p&gt;

&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;//www.youtube-nocookie.com/embed/8uhNFoOnz_g&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 24 Sep 2013 20:14:04 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">175 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/drupalcon-2013-summary-dries-buytaerts-keynote#comments</comments>
</item>
<item>
 <title>Book Review - Instant E-commerce with OpenCart: Build a Shop [Instant] by Murat Yilmaz (Packt Publishing)</title>
 <link>http://murfitt.net/blog/book-review-instant-e-commerce-opencart-build-shop-instant-murat-yilmaz-packt-publishing</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/book-reviews&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Book Reviews&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/opencart&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;OpenCart&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://murfitt.net/sites/default/publicfiles/9680_Cov_0.jpg&quot; alt=&quot;Book cover&quot; style=&quot;float:right; margin-left:20px;&quot;/&gt; I’ve just been going through my first ‘Instant’ book from Packt Publishing - Instant E-Commerce with OpenCart: Build a Shop [Instant] by Murat Yilmaz. They kindly sent me a copy to review, so here’s a quick summary of what to expect and what’s included:&lt;/p&gt;

&lt;p&gt;This book is for web developers and designers looking at setting up an online store. You don’t need any previous experience of OpenCart to follow the walkthroughs in the book, but you will need to be reasonably confident (or at least willing to have a bash) at downloading and setting up a web application on a server or a local development environment (such as WAMP for MS Windows or MAMP for Mac).&lt;/p&gt;

&lt;p&gt;The book covers a range of simple and intermediate tasks, from installing and setting up OpenCart on your server to managing customers and orders. The author takes you through setting up, running and managing an online musical instrument store. It’s presented very much in a structured tutorial way, with easy to follow steps and plenty of screenshots (on pretty much every page) showing what to expect, so even if you’re not sitting in front of your screen you can still experience the process. Some of the areas covered include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installation and setup&lt;/li&gt;
&lt;li&gt;Adding categories, products and product attributes&lt;/li&gt;
&lt;li&gt;Adding tax information&lt;/li&gt;
&lt;li&gt;General shop configuration&lt;/li&gt;
&lt;li&gt;Payment models and PayPal integration&lt;/li&gt;
&lt;li&gt;Adding shipping methods&lt;/li&gt;
&lt;li&gt;Changing layouts and templates&lt;/li&gt;
&lt;li&gt;Backing up and restoring your shop data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, it’s a neat introduction to OpenCart and should give you enough confidence to have a go at setting up an online shop. If you’re not sure which online shop software to use, it will give you a good flavour of the capabilities of OpenCart so you can decide if it’s right for your project. It’s only 70 pages long, so don’t expect every detail to be covered, but if you’re looking for an introduction or would just like to have an overview of what you can do with OpenCart it should have you covered.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.packtpub.com/ecommerce-with-opencart/book&quot;&gt;&#039;Instant E-commerce with OpenCart: Build a Shop [Instant]&#039; on Packt Publishing&#039;s website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Disclaimer: I was asked by Packt Publishing to review this book, but all opinions are my own and I’ve tried to be as objective as possible. I hope you find it helpful if you’re looking for a book on OpenCart.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 02 Jul 2013 20:07:05 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">174 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/book-review-instant-e-commerce-opencart-build-shop-instant-murat-yilmaz-packt-publishing#comments</comments>
</item>
<item>
 <title>Upcoming book review: Instant E-commerce with OpenCart: Build a Shop [Instant]</title>
 <link>http://murfitt.net/blog/upcoming-book-review-instant-e-commerce-opencart-build-shop-instant</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/opencart&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;OpenCart&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/book-reviews&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Book Reviews&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;Packt Publishing were kind enough to ask me if I&#039;d like to review one of their latest OpenCart books: &#039;&lt;a href=&quot;http://www.packtpub.com/ecommerce-with-opencart/book&quot;&gt;Instant E-commerce with OpenCart: Build a Shop [Instant]&lt;/a&gt;&#039; by Murat Yilmaz. It&#039;ll be the first time I&#039;ve read a book in their &#039;Instant&#039; series, as I&#039;ve reviewed a couple of their regular books before, so I&#039;ll be interested to see how it compares. Check back soon for my full review.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Fri, 28 Jun 2013 19:32:44 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">173 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/upcoming-book-review-instant-e-commerce-opencart-build-shop-instant#comments</comments>
</item>
<item>
 <title>MAMP: &quot;#2006 - MySQL server has gone away&quot; while importing database</title>
 <link>http://murfitt.net/blog/mamp-2006-mysql-server-has-gone-away-while-importing-database</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/mysql&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;MySQL&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/mamp&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;MAMP&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/drupal&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Drupal&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;I was importing a relatively large Drupal database today into MAMP (via phpmyadmin) and MySQL rudely walked off, with the following error:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#2006 - MySQL server has gone away
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ah, a nice vague error message! It seems that the import statement (from the &lt;code&gt;cache_menu&lt;/code&gt; table) in the database dump contains packets which are too large to import using the default MAMP settings. To fix this, I created a &lt;code&gt;my.cnf&lt;/code&gt; file in my &lt;code&gt;/Applications/MAMP/conf/&lt;/code&gt; folder with the following contents:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[mysqld]
max_allowed_packet = 100M
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then I restarted MAMP and imported my database without any trouble. I hope this helps if you&#039;ve stumbled across the same issue.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Fri, 21 Jun 2013 20:32:31 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">172 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/mamp-2006-mysql-server-has-gone-away-while-importing-database#comments</comments>
</item>
<item>
 <title>New vlog</title>
 <link>http://murfitt.net/blog/new-vlog</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/vlog&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Vlog&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/youtube&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;YouTube&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/videos&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Videos&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;I&#039;ve just started a YouTube vlog covering news, tips, reviews etc. Check it out, and if you like it, subscribe :)&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube-nocookie.com/embed/FWj0zlnJ-Qg&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 24 Mar 2013 15:28:33 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">171 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/new-vlog#comments</comments>
</item>
<item>
 <title>Getting to know Google+ better and more blogging</title>
 <link>http://murfitt.net/blog/getting-know-google-better-and-more-blogging</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/google-0&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Google+&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/blogging&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Blogging&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;h2&gt;Google+&lt;/h2&gt;

&lt;p&gt;The experience of any social network is only as good as the activity of the people on it, right? Quite a few of my friends have joined Google+ and experimented with a couple of posts, but it doesn&#039;t really feel for me that it&#039;s taken off as a social graph tool. It works pretty well within the interest graph, though, and maybe that&#039;s because the API is currently read-only. There are a ton of tools that help you market on Twitter, LinkedIn and Facebook by managing accounts and automatically posting, but because these aren&#039;t currently available for Google+, the posts and shares seem a little more genuine because people have to actually post directly. It&#039;s a subtle issue, but it means that G+ captures a little more energy, as the posts feel more like they come from people rather than social media management applications. I guess it all depends on who you follow, though. Anyway, I&#039;ll be trying to spend a little more time on Google+ in the coming months and getting involved in the communities that I&#039;ve joined.&lt;/p&gt;

&lt;h2&gt;Blogging&lt;/h2&gt;

&lt;p&gt;On a &#039;getting more involved&#039; note, I&#039;m going to start blogging more, starting here! Blogging has been a sparse hobby of mine for the last six years, posting mostly tips and small tutorials, but I&#039;m going to start documenting more along the way. It&#039;s a good way for an introvert to reflect on the world once in a while :)&lt;/p&gt;

&lt;p&gt;Once again, thanks for dropping by and reading. If you&#039;re on Google+, add me up and get involved: &lt;a href=&quot;https://plus.google.com/116816977726468734659/posts&quot;&gt;https://plus.google.com/116816977726468734659/posts&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 17 Feb 2013 20:14:42 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">169 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/getting-know-google-better-and-more-blogging#comments</comments>
</item>
<item>
 <title>The feedback process is still part of the whole customer experience</title>
 <link>http://murfitt.net/blog/feedback-process-still-part-whole-customer-experience</link>
 <description>&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3531/4555108439_c3aba7565b_m.jpg&quot; width=&quot;240&quot; height=&quot;142&quot; alt=&quot;questions&quot; style=&quot;float:right; margin:15px;&quot;&gt;It seems every interaction I have with a company these days is followed by a &quot;how did we do?&quot; survey. It&#039;s not like we step aside and forget the company when we&#039;re going through the questionnaire - it&#039;s still part of the experience. Imagine if this was true for high street shopping, and after every purchase, no matter how large or small, we were being chased out of the shop by someone begging for feedback.&lt;/p&gt;

&lt;p&gt;Metrics are valuable and many companies make big decisions based on what they know people like and dislike (and somewhat like and somewhat dislike...), but please don&#039;t forget that you are asking someone for their time and effort, so use it sparingly. The way &lt;a href=&quot;http://www.vocalabs.com/blog/too-many-surveys&quot;&gt;Vocalabs put this&lt;/a&gt; is &quot;is it possible to ask someone for too many favors?&quot;. Sadly, it probably is.&lt;/p&gt;

&lt;p&gt;Photo: &lt;a href=&quot;http://www.flickr.com/photos/rlodan01/4555108439/&quot;&gt;Roland O&#039;Daniel via Flickr&lt;/a&gt;
&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 18 Nov 2012 09:29:35 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">168 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/feedback-process-still-part-whole-customer-experience#comments</comments>
</item>
<item>
 <title>A new web design trend: Windows 8 &#039;Metro&#039; UI style</title>
 <link>http://murfitt.net/blog/new-webdesign-trend-windows-8-metro-ui-style</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/web-design&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Design&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/windows-8&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Windows 8&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/design-trends&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Design Trends&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;It&#039;s strange how influential an operating system UI can be on web design. I remember back in 2006 everyone was using &lt;a href=&quot;http://wickedowl.blogspot.co.uk/2006/07/creating-apples-shiny-table-effect.html&quot;&gt;Apple&#039;s shiny table effect&lt;/a&gt; and it seems we may be about to see a wave of websites designed using &lt;a href=&quot;http://www.webresourcesdepot.com/everything-you-need-to-create-windows-8-metro-ui-styled-websites/&quot;&gt;Microsoft&#039;s Windows 8 &#039;Metro&#039; UI style&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/65839047@N07/6176933305/&quot; title=&quot;Windows 8 Preview Menu by Ceo1O17, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.staticflickr.com/6176/6176933305_a7dba89b72.jpg&quot; width=&quot;500&quot; height=&quot;313&quot; alt=&quot;Windows 8 Preview Menu&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do these large companies that make our most popular devices&#039; operating systems set the trend, or are they one step ahead? The interesting thing this time round is that the Windows 8 style we see here is designed primarily for touch. The buttons aren&#039;t just part of the UI, they are also delivering content. This means almost the entire screen real estate can be UI. It also works well on various screen sizes - not just desktop and mobile, but desktop to mobile with everything between. This is addressing the same problem many web developers have been solving by using responsive web design. If web design is inspired by operating systems it&#039;ll be interesting to see what affect Windows 8 will have in the coming months.&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 04 Nov 2012 09:53:50 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">166 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/new-webdesign-trend-windows-8-metro-ui-style#comments</comments>
</item>
<item>
 <title>Where to find the spam controls (Forefront) in Office 365</title>
 <link>http://murfitt.net/blog/where-find-spam-controls-forefront-office-365</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/microsoft&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Microsoft&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/office-365&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Office 365&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;Things have been ticking over nicely since Microsoft updated its Exchange Online services to Office 365. The other day I needed to find the spam controls (Forefront) and they weren&#039;t where I was expecting them to be so I thought I&#039;d post the details here in case anyone else is having trouble finding them. You&#039;ll need to be logged in as an Office 365 admin:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Login to the Office 365 Portal&lt;/li&gt;
&lt;li&gt;Click &#039;Admin overview&#039; on the left&lt;/li&gt;
&lt;li&gt;Click &#039;manage&#039; under &#039;Exchange&#039;&lt;/li&gt;
&lt;li&gt;Click &#039;mail control&#039; on the left&lt;/li&gt;
&lt;li&gt;Click the &#039;configure&#039; link on the right under &#039;Forefront Online Protection for Exchange&#039;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That&#039;s it. Hope this helps :)
&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 07 Oct 2012 08:21:50 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">165 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/where-find-spam-controls-forefront-office-365#comments</comments>
</item>
<item>
 <title>The use of version control systems outside of software development</title>
 <link>http://murfitt.net/blog/use-version-control-systems-outside-software-development</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/version-control-systems&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Version Control Systems&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/politics&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Politics&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/collaboration&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Collaboration&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;I&#039;ve been a big fan of Clay Shirky since I read &#039;Here Comes Everybody&#039;, and he&#039;s recently been featured on TED talking about how the open source model of organising, or self organising, groups of hundreds of people can be an incredibly powerful way of producing software, not just technically but democratically. Specifically, he references Git, which unlike many other Version Control Systems (VCS), operates in a distributed way, that is there isn&#039;t one central place or repository - everyone who is participating has access to all the source code and all the source code history. As he explains, this is a remarkably powerful way to foster distributed collaboration, but so far this has mainly been harnessed by the open source software community. This video really gets you thinking about the possibilities of version control for other purposes, such as politics, law, business, etc. The video is just under 20 minutes and I highly recommend watching it.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/CEN4XNth61o&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;

&lt;!--break--&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Tue, 25 Sep 2012 19:32:12 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">164 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/use-version-control-systems-outside-software-development#comments</comments>
</item>
<item>
 <title>Getting the browser spell-checker to work with CKEditor in Drupal</title>
 <link>http://murfitt.net/blog/getting-browser-spell-checker-work-ckeditor-drupal</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/drupal&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Drupal&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://murfitt.net/sites/default/publicfiles/druplicon.small_.png&quot; alt=&quot;Drupal logo&quot; style=&quot;float:right;margin:20px;&quot;/&gt;Most modern browsers, such as Firefox 15, Chrome 21 and Internet Explorer 9, have a nifty spell-checker built in to help us &#039;auto-correct&#039; generation write, but when you install the CKEditor some of this functionality is hijacked by the default javascript used by the text editor. Fortunately, if you&#039;re using CKEditor for Drupal, it&#039;s a quick fix to get the browser default spell-checker working again. If you&#039;re not using Drupal you may still be able to apply the fix by noting the configuration settings and using them in your setup.&lt;/p&gt;

&lt;p&gt;First, go to: &lt;strong&gt;Administer &gt; site configuration &gt; CKEditor &gt; [the profile you are using] &gt; Advanged options tab &gt; Custom JavaScript configuration text area&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add the following configuration options:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-javascript&quot;&gt;config.&lt;span style=&quot;color: #006600;&quot;&gt;disableNativeSpellChecker&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
config.&lt;span style=&quot;color: #006600;&quot;&gt;removePlugins&lt;/span&gt; = &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;scayt,menubutton,contextmenu&#039;&lt;/span&gt;;
config.&lt;span style=&quot;color: #006600;&quot;&gt;browserContextMenuOnCtrl&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Save the profile and you&#039;re done. Naturally, you may need to refresh your browser and clear any caches for the changes to take effect.
&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 16 Sep 2012 12:36:08 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">163 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/getting-browser-spell-checker-work-ckeditor-drupal#comments</comments>
</item>
<item>
 <title>CodeIgniter Math CAPTCHA library, with multi-language plain text questions</title>
 <link>http://murfitt.net/blog/codeigniter-math-captcha-library-multi-language-plain-text-questions</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/codeigniter&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;CodeIgniter&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/php&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;PHP&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/security&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/96khz/3127953038/&quot; title=&quot;Robot by Sebastianlund, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.staticflickr.com/3085/3127953038_e8484f17b8_m.jpg&quot; style=&quot;height:240px; width:172px; float:right; margin:5px 20px;&quot; alt=&quot;Robot&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&#039;ve just released a new Math CAPTCHA Library for CodeIgniter, which can use plain text English words for numbers and random question phrases. It&#039;s also supports multiple languages (as it uses the core language library) and both addition and multiplication. It&#039;s still in the early stages so it needs to be put through its paces, but hopefully the CodeIgniter community will find this a nice alternative to the regular image CAPTCHA or simple math CAPTCHA.&lt;/p&gt;

&lt;p&gt;The library comes with 5 English language phrases and English numerals, but can easily be set up to use any other language by replicating and translating the language file. Users are also encouraged to enter their own phrases (as many as you like) in order to make the CAPTCHA more random. The phrases are randomly selected.&lt;/p&gt;

&lt;!--break--&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;What do you get if you add eight to five?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or if you&#039;d prefer to have numbers in the phrase:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;What is 7 plus 6?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or mix it up:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Add 10 to ten, what do you get?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Answers can be enforced to either number only, word only, or either.&lt;/p&gt;

&lt;h2&gt;Where can I find it?&lt;/h2&gt;

&lt;p&gt;Head over to GitHub to view/download the latest development version and start testing:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/danmurf/CI-MathCaptcha&quot;&gt;https://github.com/danmurf/CI-MathCaptcha&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any comments and suggestions welcome :)&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;

&lt;p&gt;The folder structure should match the CodeIgniter folder structure.&lt;/p&gt;

&lt;h3&gt;Quick setup&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Copy the &lt;code&gt;application/libraries/mathcaptcha_library.php&lt;/code&gt; file to &lt;code&gt;application/libraries/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy the &lt;code&gt;application/language/english/mathcaptcha_lang.php&lt;/code&gt; to &lt;code&gt;application/language/english/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If you would like to use another language other than English you will need to duplicate the language file and translate the numbers and phrases respectively&lt;/li&gt;
&lt;li&gt;Initialise the math CAPTCHA library and include it in your controller. Example below:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; myform&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;load&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;library&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;mathcaptcha&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;mathcaptcha&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;init&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;math_captcha_question&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;mathcaptcha&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_question&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;form_validation&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set_rules&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;math_captcha&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Math CAPTCHA&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;required|callback__check_math_captcha&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;form_validation&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;run&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; == &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;load&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;view&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;myform&#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;load&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;view&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;myform&#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$data&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Add a callback for the math CAPTCHA form validation if you are using CodeIgniter Form Validation library. Example below:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; _check_math_captcha&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$str&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;mathcaptcha&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;check_answer&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$str&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;TRUE&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;form_validation&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set_message&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;_check_math_captcha&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Enter a valid math captcha response.&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Print the &lt;code&gt;$mathcaptcha_question&lt;/code&gt; on your form somewhere. Example below:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; validation_errors&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; form_open&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$math_captcha_question&lt;/span&gt;;?&amp;gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; form_input&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;math_captcha&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;?&amp;gt;
&amp;nbsp;
    &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; form_submit&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;submit&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Submit&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; form_close&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;?&amp;gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;And that&#039;s it!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Configuration options&lt;/h2&gt;

&lt;p&gt;There are some configuration options which you can pass to the library in an associative array when you &lt;code&gt;$this-&amp;gt;mathcaptcha-&amp;gt;init($config)&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;language&lt;/strong&gt;: This should be set to the language that you want to use. It will default to the language set in the Codeigniter &lt;code&gt;config.php&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;operation&lt;/strong&gt;: The type of math question to use; &lt;code&gt;addition&lt;/code&gt; or &lt;code&gt;multiplication&lt;/code&gt;. This will default to &lt;code&gt;addition&lt;/code&gt; if not specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;question_format&lt;/strong&gt;: The type of number to include in the question; &lt;code&gt;numeric&lt;/code&gt;, &lt;code&gt;word&lt;/code&gt;, or &lt;code&gt;random&lt;/code&gt;. This will default to &lt;code&gt;word&lt;/code&gt; if not specified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;question_max_number_size&lt;/strong&gt;: The maximum number size to use in the question. The default is &lt;code&gt;10&lt;/code&gt;, which is also the maximum allowed given the limitations of the language file.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;answer_format&lt;/strong&gt;: The type of answer that is allowed; &lt;code&gt;word&lt;/code&gt; means the user must answer in a word, &lt;code&gt;numeric&lt;/code&gt; means the user must enter the number or &lt;code&gt;either&lt;/code&gt; for, well, either.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In order to make your installation of math CAPTCHA more unique you can try changing/adding more phrases to the language file. If you add more than 5, adjust the &lt;code&gt;MATHCAPTCHA_NUM_ADDITION_PHRASES&lt;/code&gt; and &lt;code&gt;MATHCAPTCHA_NUM_MULTIPLICATION_PHRASES&lt;/code&gt; constants in the library file appropriately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Photo credit&lt;/strong&gt;: Robot by Sebastian Lund on Flickr: &lt;a href=&quot;http://www.flickr.com/photos/96khz/3127953038/&quot;&gt;http://www.flickr.com/photos/96khz/3127953038/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 09 Sep 2012 13:02:33 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">162 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/codeigniter-math-captcha-library-multi-language-plain-text-questions#comments</comments>
</item>
<item>
 <title>How to get your Google+ profile picture to appear in search results</title>
 <link>http://murfitt.net/blog/how-get-your-google-profile-picture-appear-search-results</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/seo&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;SEO&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/google&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Google&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/google-0&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Google+&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-3&quot;&gt;&lt;a href=&quot;/tags/blogging&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Blogging&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-4&quot;&gt;&lt;a href=&quot;/tags/web-design&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Design&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-5&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;You may have recently noticed that lots of Google search results now show profile pictures of authors alongside the result for the page. I think this adds a nice element of trust to the link, as you can see the person who wrote the page and you can be pretty sure the content comes from a person as opposed to a content aggregator or such like. As always, there’s no exact formula to controlling the search result information, but &lt;a href=&quot;http://support.google.com/webmasters/bin/answer.py?hl=en&amp;amp;answer=1306778&quot;&gt;Google has published some advice&lt;/a&gt; for setting this up for your blog or website.&lt;/p&gt;

&lt;p&gt;Here are a few quick tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have a good, clear Google+ profile picture&lt;/li&gt;
&lt;li&gt;Make sure you have your website added to the ‘Contributor to’ links on your Google+ profile&lt;/li&gt;
&lt;li&gt;Add and verify an email address at the same domain as your website&lt;/li&gt;
&lt;li&gt;Make sure there is a clear byline on your website articles which attribute you as the author (with the same name as shown on your Google+ profile)&lt;/li&gt;
&lt;li&gt;Add a link to your Google+ profile from your content with the &lt;code&gt;rel=”author”&lt;/code&gt; attribute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have followed these steps, check a page from your website using the ‘&lt;a href=&quot;http://www.google.com/webmasters/tools/richsnippets&quot;&gt;Rich Snippits&lt;/a&gt;’ tool, which parses your webpage and shows you how it’s likely to appear in search results. It may take a while (up to a couple of months) for your pages to finally appear in Google search results with your Google+ profile image alongside the link, so don&#039;t expect it to happen overnight, but in the meantime you can make sure you are giving Google all the information it needs to parse and display your website properly and accurately.&lt;/p&gt;

&lt;p&gt;If you have any thoughts or comments on getting profile pictures to display next to search results please add them to the comments section below - I&#039;d love to hear your views.&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Thu, 12 Jul 2012 20:00:07 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">161 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/how-get-your-google-profile-picture-appear-search-results#comments</comments>
</item>
<item>
 <title>jQuery UI touch support for iPad and other tablets and smartphones</title>
 <link>http://murfitt.net/blog/jquery-ui-touch-support-ipad-and-other-tablets-and-smartphones</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/web-design&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Design&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/jquery&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;jQuery&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/jquery-ui&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;jQuery UI&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-3&quot;&gt;&lt;a href=&quot;/tags/user-interfaces&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;User Interfaces&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;img src=&quot;http://murfitt.net/sites/default/publicfiles/JQuery_UI_logo_color_onwhite-300x72.png&quot; alt=&quot;jQuery UI Logo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The jQuery UI library doesn’t support touch features by default, so trying to use the slider or drag and drop on the iPad won’t work. Fortunately, all that’s required to get this working is a small hack - enter &lt;a href=&quot;http://touchpunch.furf.com&quot;&gt;jQuery UI Touch Punch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Just include jQuery and the jQuery UI scripts on your page as per normal:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-html4strict&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;script&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;http://code.jquery.com/jquery.min.js&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;script&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;http://code.jquery.com/ui/1.8.17/jquery-ui.min.js&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Then include the jQuery UI Touch Punch library:&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-html4strict&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;script&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #000066;&quot;&gt;src&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;jquery.ui.touch-punch.min.js&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That’s it. The existing jQuery UI elements on your page should now work on the iPad, iPhone or any touch screen tablet or smartphone.&lt;/p&gt;

&lt;p&gt;There are examples on the jQuery UI Touch Punch website so you can test some of the jQuery UI elements out on your device first.&lt;/p&gt;

&lt;p&gt;For more information, or to download the plugin, visit: &lt;a href=&quot;http://touchpunch.furf.com&quot;&gt;http://touchpunch.furf.com&lt;/a&gt;
&lt;!--break--&gt;
&lt;!-- Images --&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 08 Jul 2012 13:22:45 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">160 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/jquery-ui-touch-support-ipad-and-other-tablets-and-smartphones#comments</comments>
</item>
<item>
 <title>Check and clear cache in CodeIgniter with this Output extension</title>
 <link>http://murfitt.net/blog/check-and-clear-cache-codeigniter</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/codeigniter&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;CodeIgniter&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/php&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;PHP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;I decided to write an extension to the CodeIgniter core Output library as it&#039;s great for working with cache but doesn&#039;t contain any mechanisms for clearing or managing the cache.&lt;/p&gt;

&lt;h2&gt;Installation&lt;/h2&gt;

&lt;p&gt;Download the extension (details below) and extract the &lt;code&gt;MY_Output.php&lt;/code&gt; file to your &lt;code&gt;application/core&lt;/code&gt; folder. The core output library is loaded automatically so the extension should load automatically too. If you have changed the extension prefix to something other than &lt;code&gt;MY_&lt;/code&gt; in your &lt;code&gt;config.php&lt;/code&gt; file you will need to update the extension file appropriately.&lt;/p&gt;

&lt;h2&gt;Clearing a cached path&lt;/h2&gt;

&lt;p&gt;You can clear any specified path of its cache by calling &lt;code&gt;$this-&amp;gt;output-&amp;gt;clear_path_cache(&#039;path/to/clear&#039;);&lt;/code&gt;. This method will return &lt;code&gt;boolean&lt;/code&gt; &lt;code&gt;TRUE&lt;/code&gt; if successful, &lt;code&gt;FALSE&lt;/code&gt; if not.&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;output&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;clear_path_cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;path/to/clear&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//Cache has been cleared for &#039;path/to/clear&#039;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//Cache not cleared - check file exists / permissions&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Clearing all cache&lt;/h2&gt;

&lt;p&gt;You can clear the entire cache directory by calling &lt;code&gt;$this-&amp;gt;output-&amp;gt;clear_all_cache();&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: this will &lt;strong&gt;not&lt;/strong&gt; remove the &lt;code&gt;.htaccess&lt;/code&gt; and &lt;code&gt;index.html&lt;/code&gt; files in the &lt;code&gt;applications/cache&lt;/code&gt; folder.&lt;/em&gt;&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;output&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;clear_all_cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//This method returns NULL&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Checking to see if a path is cached&lt;/h2&gt;

&lt;p&gt;You can check to see if a specified path has been cached by calling &lt;code&gt;$this-&amp;gt;output-&amp;gt;path_cached(&#039;path/to/check&#039;)&lt;/code&gt;, which will return &lt;code&gt;BOOLEAN&lt;/code&gt; &lt;code&gt;TRUE&lt;/code&gt; if cache does exist for the path or &lt;code&gt;FALSE&lt;/code&gt; if it doesn&#039;t.&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;output&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;path_cached&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;path/to/check&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//The path &#039;path/to/check&#039; is cached&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//There is no cache doe &#039;path/to/check&#039;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Checking the expiration time of a cached path&lt;/h2&gt;

&lt;p&gt;You can check to see when a specified path&#039;s cache will expire by calling &lt;code&gt;$this-&amp;gt;output-&amp;gt;get_path_cache_expiration(&#039;path/to/check/)&lt;/code&gt;. This will return the an &lt;code&gt;INTEGER&lt;/code&gt; of the timestamp when the cache is due to expire or &lt;code&gt;BOOLEAN&lt;/code&gt; &lt;code&gt;FALSE&lt;/code&gt; if there is no cache for the path.&lt;/p&gt;

&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;geshifilter-php&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$cache_expires&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;output&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_path_cache_expiration&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;path/to/check/&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$cache_expires&lt;/span&gt; &amp;gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//The cache for &#039;path/to/check&#039; will expire on the unix timestanp $cache_expires&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;//There is no cache for &#039;path/to/check&#039;&lt;/span&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Download&lt;/h2&gt;

&lt;p&gt;The project is hosted on github, so you can always download the latest version from there.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Direct download:&lt;/strong&gt; &lt;a href=&quot;https://github.com/danmurf/CI-MY_Output/zipball/master&quot;&gt;https://github.com/danmurf/CI-MY_Output/zipball/master&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project page:&lt;/strong&gt; &lt;a href=&quot;https://github.com/danmurf/CI-MY_Output&quot;&gt;https://github.com/danmurf/CI-MY_Output&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;License&lt;/h2&gt;

&lt;p&gt;I added the GNU Public License (GPLv3) to this extension. Read &lt;a href=&quot;http://opensource.org/licenses/gpl-license.php&quot;&gt;http://opensource.org/licenses/gpl-license.php&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h2&gt;Comments, questions and suggestions&lt;/h2&gt;

&lt;p&gt;I hope you find this extension useful. If you have any comments or suggestions please leave them in the comments section below. Thanks!
&lt;!--break--&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 22 Apr 2012 18:06:44 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">159 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/check-and-clear-cache-codeigniter#comments</comments>
</item>
<item>
 <title>Book review: OpenCart 1.4 Template Design Cookbook by Tahsin Hasan</title>
 <link>http://murfitt.net/blog/2011/07/02/book-review-opencart-14-template-design-cookbook-tahsin-hasan</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/web-design&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Design&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/opencart&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;OpenCart&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-3&quot;&gt;&lt;a href=&quot;/tags/book-reviews&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Book Reviews&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://link.packtpub.com/Cm452D&quot;&gt;&lt;img alt=&quot;OpenCart 1.4 Template Design Cookbook thumbnail&quot; src=&quot;http://murfitt.net/sites/default/publicfiles/OpenCart1.4TemplateDesignCookbook_thumb_0.jpg&quot; style=&quot;width: 145px; height: 180px; margin-left: 10px; margin-right: 10px; margin-top: 10px; margin-bottom: 10px; float: right; &quot; /&gt;&lt;/a&gt;OpenCart isn’t a system I’ve used before but Packt Publishing asked me to review OpenCart 1.4 Template Design Cookbook by Tahsin Hasan for them so I thought it’d be a good opportunity to learn more about an ecommerce shopping cart system. I spend a lot of time working on PHP/MySQL applications, including Drupal and CodeIgniter, but I haven’t used OpenCart before, so I’m coming to this book and application completely new.&lt;/p&gt;
&lt;p&gt;OpenCart is a complete ecommerce shopping cart solution, with features including multi-currency support, product ratings and reviews, downloadable products and a discount coupon system, and it is of course customisable and templatable. OpenCart 1.4 Template Design Cookbook promises to help you get to grips with the basics of template design, as well as styling search results and customising the design of the administration panel to match either yours or your clients’ brand.&lt;/p&gt;
&lt;!--break--&gt;&lt;p&gt;The book starts by walking you through the installation of OpenCart and some of the general configuration changes you may need to make in the process. OpenCart has an automatic installation script so this should be fairly straightforward for anyone who has installed a PHP/MySQL application before. The graphics tutorials in the book use GIMP - an open source graphics editing package - which is great if you’re learning as you can follow the tutorials and practice without having to buy any commercial software upfront.&lt;/p&gt;
&lt;p&gt;The first major design chapter is ‘Chapter 3 - Layout Structure’. Here you will be guided through creating a new theme, modifying its styles using CSS and some basic banner placement. The book explains that OpenCart uses a Model-View-Controller (MVC) layout, and it’s important to understand this as it’s a very common application design pattern. Naturally, the focus is on the ‘View’ part, which manages the presentation of the application.&lt;/p&gt;
&lt;p&gt;The book is very clearly laid out, with essential keywords highlighted, lots of code examples and screenshots showing how, for example, CSS changes affect the presentation of the store. The book is intended to be read while you’re setting up your store or building your theme, as the examples walk you through the process and the approach is very didactic.&lt;/p&gt;
&lt;p&gt;The book expects you to have some HTML and CSS knowledge, but there are also areas which include PHP code, such as traversing arrays and printing variable values, so some basic PHP knowledge would be helpful. There is also some light JavaScript use in the form of including jQuery libraries. You can probably get by with little or no JavaScript knowledge, just by following the walkthroughs, but again, some prior knowledge of JavaScript would also be of help.&lt;/p&gt;
&lt;p&gt;If you’re new to OpenCart, or have some knowledge and want to create your own theme, this book will guide you through the process with lots of examples, as well as ideas and best practices.&lt;/p&gt;
&lt;p&gt;Thanks for reading my review, I hope you found it helpful and if you have any comments on OpenCart, this book or this review, please leave them in the comments section below - as always I’d love to hear your views.&lt;/p&gt;
&lt;h3&gt;
	Links&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;
		&lt;a href=&quot;http://link.packtpub.com/Cm452D&quot;&gt;OpenCart 1.4 Template Design Cookbook on Packt Publishing website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href=&quot;http://www.packtpub.com/sites/default/files/4309OS-Chapter-3-Layout-Structure.pdf?utm_source=packtpub&amp;amp;utm_medium=free&amp;amp;utm_campaign=pdf&quot;&gt;Sample chapter: Chapter 3 - Layout Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href=&quot;http://www.opencart.com/&quot;&gt;OpenCart website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sat, 02 Jul 2011 12:03:29 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">153 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/2011/07/02/book-review-opencart-14-template-design-cookbook-tahsin-hasan#comments</comments>
</item>
<item>
 <title>&#039;Close Account&#039; options for web applications</title>
 <link>http://murfitt.net/blog/2011/06/05/close-account-options-web-applications</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/22741426@N05/2373060918/&quot; title=&quot;Exit by lansakit, on Flickr&quot;&gt;&lt;img alt=&quot;Exit&quot; src=&quot;http://farm4.static.flickr.com/3032/2373060918_235f41ab78_m.jpg&quot; style=&quot;width: 240px; height: 111px; float: right; margin: 10px;&quot; /&gt;&lt;/a&gt; It&#039;s very rare that I come across a web app which allows me to close my account. Granted, it&#039;s not a feature you want to encourage people to use but if people want to stop using your app then they&#039;ll probably just abandon the account anyway. From a user&#039;s perspective I like to feel in control so being able to close an account, even if I don&#039;t chose to do so, can be quite reassuring. However, I think there are also some advantages for developers and stakeholders to benefit from by implementing a &#039;close account&#039; feature.&lt;/p&gt;
&lt;p&gt;
	First of all, you probably don&#039;t want to lose users - you want them to keep using your app and tell all of their friends. But sometimes things don&#039;t always work out this way, and although you may be getting lots of people sign up to your app, are they coming back to use it weeks or months down the line? Knowing how many new accounts doesn&#039;t really help unless you also know how many are leaving. Adding a &#039;close account&#039; feature will give you an insight into how long people decide to keep using your app before they walk (and they&#039;ll probably do that whether you allow them to close their account or not).&lt;/p&gt;
&lt;p&gt;
	You might also be able to get some feedback by adding a small form or comment box asking why they are leaving. If they are leaving because something isn&#039;t working as expected, they will probably tell you and you&#039;ll have a chance to put it right. By doing this it may also be possible to convince people to stay by making the process interactive, learning why they want to leave, and hopefully giving them the information they need to change their minds.&lt;/p&gt;
&lt;p&gt;
	Finally, going back to my first point from a user&#039;s perspective - people like to feel in control. They may have created an account and misspelled a username or just don&#039;t require it anymore, and in an age where so much of our information is online, it reassures people that &lt;em&gt;they&lt;/em&gt; can remain in control of their data.&lt;/p&gt;
&lt;p&gt;
	I&#039;d love to hear what your experiences are with building account closure features into your web apps and why you have or haven&#039;t chosen to do so. I don&#039;t think every app or site should (or shouldn&#039;t) have this feature, but these are just some possible advantages from a developer and user perspective. Please feel free to leave comments using the link below.&lt;/p&gt;
&lt;!--break--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 05 Jun 2011 15:22:36 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">152 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/2011/06/05/close-account-options-web-applications#comments</comments>
</item>
<item>
 <title>Blog from the iPhone to your Drupal blog with BlogPress</title>
 <link>http://murfitt.net/blog/2011/04/29/blog-iphone-your-drupal-blog-blogpress</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/drupal&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Drupal&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/blogging&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Blogging&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;There are a couple of apps which can post to Drupal as well as the majority of other popular blogging platforms straight from your iPhone: iBlogger and BlogPress. I&#039;m writing this from BlogPress on my iPhone, but the app also supports the iPad for all you lucky folks out there. With BlogPress you can view previous posts, save drafts, upload images to Flickr or Picasa and upload movies to YouTube, all of which can then be embedded straight into the post. Drafts can be saved to the app and are stored on the iPhone or can be stored on your Drupal site. No more excuses for not having enough time to blog!&lt;/p&gt;
&lt;p&gt;If you know of any other apps for  blogging from the iPhone, especially to Drupal, please add them in the comments below. Happy remote blogging :)&lt;/p&gt;
&lt;!--break--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Fri, 29 Apr 2011 19:39:37 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">148 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/2011/04/29/blog-iphone-your-drupal-blog-blogpress#comments</comments>
</item>
<item>
 <title>Upcoming book review: OpenCart 1.4 Template Design Cookbook by Tahsin Hasan</title>
 <link>http://murfitt.net/blog/2011/04/29/upcoming-book-review-opencart-14-template-design-cookbook-tahsin-hasan</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/opencart&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;OpenCart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	&lt;a href=&quot;http://link.packtpub.com/Cm452D&quot;&gt;&lt;img alt=&quot;OpenCart 1.5 Template Design Cookbook front cover&quot; src=&quot;http://murfitt.net/sites/default/publicfiles/OpenCart1.4TemplateDesignCookbook_thumb_0.jpg&quot; style=&quot;width: 145px; height: 180px; border-width: 0px; border-style: solid; margin-left: 10px; margin-right: 10px; float: right;&quot; /&gt;&lt;/a&gt;Packt Publishing kindly asked me to write another review for an upcoming book: OpenCart 1.4 Template Design Cookbook. The book covers a range of techniques for customising the header, footer, store navigation, creating dynamic content, custom error pages and sitemaps. The author, Tahsin Hasan, is a fellow CodeIgniter developer and has worked with other PHP frameworks such as Zend, Symfony and CakePHP.&lt;/p&gt;
&lt;p&gt;
	I’ll be posting the review in the next few weeks. In the meantime, here is a link to a sample chapter: &lt;a href=&quot;http://www.packtpub.com/sites/default/files/4309OS-Chapter-3-Layout-Structure.pdf?utm_source=packtpub&amp;amp;utm_medium=free&amp;amp;utm_campaign=pdf&quot;&gt;Chapter 3 - Layout Structure&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
	Other links&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;
		&lt;a href=&quot;http://link.packtpub.com/Cm452D&quot;&gt;OpenCart 1.4 Template Design Cookbook on Packt Publishing website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href=&quot;http://www.opencart.com/&quot;&gt;OpenCart website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;!--break--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Fri, 29 Apr 2011 14:35:31 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">147 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/2011/04/29/upcoming-book-review-opencart-14-template-design-cookbook-tahsin-hasan#comments</comments>
</item>
<item>
 <title>Create amazing explorable panoramas on the iPhone with Photosynth</title>
 <link>http://murfitt.net/blog/2011/04/25/create-amazing-explorable-panoramas-iphone-photosynth</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/photography&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Photography&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/iphone-apps&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;iPhone Apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	I&#039;ve just been playing with Photosynth for the iPhone. It allows you to take multiple pictures from different angles then stitch them together to make a 3D, explorable panoramic. So what&#039;s so different about Photosynth? Well, you can also create &#039;Synths&#039; which are 3D spaces made up of images from not only different angles but different locations. This means you can take a picture of a building from different sides and Photosynth will work its magic and make it into a 3D model which you can explore.&lt;/p&gt;
&lt;!--break--&gt;&lt;p&gt;
	Here&#039;s a panoramic I created while standing in the same place:&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;300&quot; src=&quot;http://photosynth.net/embed.aspx?cid=9a5a0135-0f9d-4d50-a019-4c9fc6d362d7&amp;amp;delayLoad=true&amp;amp;slideShowPlaying=false&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;
	Here&#039;s a synth which someone has created from different angles and locations.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;300&quot; src=&quot;http://photosynth.net/embed.aspx?cid=50cf7db9-d497-457d-8206-9ff88f2c2800&amp;amp;delayLoad=true&amp;amp;slideShowPlaying=false&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;
	Photosynth is a free app available for the iPhone 3G4, iPhone 4, iPad 2 and 4th gen iPod Touch. Enjoy!&lt;/p&gt;
&lt;h3&gt;
	Links&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;
		&lt;a href=&quot;http://itunes.apple.com/us/app/photosynth/id430065256?mt=8#&quot;&gt;Photosynth on iTunes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
		&lt;a href=&quot;http://photosynth.net/&quot;&gt;Photosynth homepage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Mon, 25 Apr 2011 15:57:52 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">146 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/2011/04/25/create-amazing-explorable-panoramas-iphone-photosynth#comments</comments>
</item>
<item>
 <title>Optimising Drupal performance</title>
 <link>http://murfitt.net/blog/dan-murfitt/2011/03/13/optimising-drupal-performance</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/web-development&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Web Development&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/drupal&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Drupal&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/hosting&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Hosting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	There are a few great out of the box performance tweaks which Drupal offers to speed up page loading times and minimise server load. First of all, these tweaks wouldn&#039;t suit every site. You need to first think about how much traffic you currently get and how often our content changes. You don&#039;t necessarily have to add or amend a page for content to change; people can post comments and interact with your site in ways which change the content displayed. This will make a difference to how you chose to optimise your Drupal site performance.&lt;/p&gt;
&lt;!--break--&gt;&lt;p&gt;
	When caching is enabled in Drupal (Administer &amp;gt; Site Configuration &amp;gt; Performance) your pages will be dynamically generated the first time they are hit and then subsequent visits to that page will be loaded from the stored cache. This will speed up page loading times because Drupal doesn&#039;t have to pull all of the content together from the database each time. However, new content won&#039;t be shown until the cache has expired and is regenerated. It&#039;s worth noting that cached pages are only displayed to anonymous users, so if you are testing this out and logged in to your site, you probably won&#039;t see any performance differences. In this case you will need to logout, then you will see you site&#039;s cached content.&lt;/p&gt;
&lt;h3&gt;
	What is &#039;minimum cache lifetime&#039;?&lt;/h3&gt;
&lt;p&gt;
	This determines how much time should pass before cached content is regenerated from the database. If you set this to 1 day, and you change one of your pages, the cached version of your page will remain the same and the changes won&#039;t be visible to anonymous visitors for at least 1 day. If you don&#039;t change your content that often or you don&#039;t get many comments this may be a good idea, as it makes, in many cases, a noticeable difference to page loading times. If you get lots of comments or you are updating on a daily basis or more, you may wish to decrease this limit to something more reasonable. The trick is to get the time as close as possible to how often your content changes.&lt;/p&gt;
&lt;h3&gt;
	Page caching and the CAPTCHA module&lt;/h3&gt;
&lt;p&gt;
	If you are using the CAPTCHA module it&#039;s also worth noting that this will disable caching for any pages where a CAPTCHA challenge is present. In this case it would be a good idea to put your comment forms on a separate page from your content (Administer &amp;gt; Content Management &amp;gt; Content Types [Content type] &amp;gt; Comment Settings &amp;gt; Location of comment submission form &amp;gt; Set to display on separate page).&lt;/p&gt;
&lt;h3&gt;
	Bandwidth Optimization&lt;/h3&gt;
&lt;p&gt;
	These settings will aggregate CSS and JS files to reduce the number of hits required to load a page. This can make significant difference on high traffic sites because it reduces the number of HTTP requests. Many themes and modules include CSS files and if you look at your page source (with these options disabled) will see the number of linked CSS and JS files required for each page load. With both of these optimization options enabled you will see just one CSS and one JS file linked to in your page source. These linked files, with optimization enabled, will include all CSS and JS code previously loaded but in one file rather than (say) 10.&lt;/p&gt;
&lt;p&gt;
	If anyone knows of any good Drupal performance modules or any other tweaks please feel free to post them in the comments below.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 13 Mar 2011 10:02:34 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">144 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan-murfitt/2011/03/13/optimising-drupal-performance#comments</comments>
</item>
<item>
 <title>Fighting blog comment spam</title>
 <link>http://murfitt.net/blog/dan/2011/02/14/fighting-blog-spam</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/security&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/blogging&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Blogging&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	I&#039;ve noticed a recent influx of blog spam which seem, to some degree, relevant to the content it&#039;s posted on. I think spammers are composing comments targeted to specific subject areas and then searching the web for content on that subject so that when they post the comment it appears at first glance to be genuine. Of course the most telling part is the totally unrelated link to men&#039;s watches or postal degrees which seem somewhat out of place in a comment on a php web development framework. Nevertheless, if you&#039;re not careful the comments can slip through the net and appear on your blog. The other issue which has become more of a problem lately is the spammer&#039;s ability to evade CAPTCHA challenges. I&#039;ve increased the level of noise and distortion for the CAPTCHA challenge on this blog but some still get through. It&#039;s as if there is a person actually typing in a response to the challenge, in which it won&#039;t be of much help. There are a few ways in which you can help fight, reduce and manage blog spam, because let&#039;s face it - it&#039;s not going to stop entirely. So let&#039;s have a look at some quick first pointers.&lt;/p&gt;
&lt;!--break--&gt;&lt;h3&gt;
	Filter out HTML &#039;a&#039; tags&lt;/h3&gt;
&lt;p&gt;
	HTML &#039;a&#039; tags can be used to mask the location of links and there&#039;s really no need for people in comments to use them. Instead, use an automatic filter which converts http:// strings into clickable links. This way people can see exactly where they are going to go if they click a link, and spammers can&#039;t hide links behind text relevant to the subject of the comment. Also publish the fact you are doing this as it may act as a small deterrent.&lt;/p&gt;
&lt;h3&gt;
	Moderate comments&lt;/h3&gt;
&lt;p&gt;
	If you really want to feel in control of what content is allowed to be posted to your blog, moderate the comments. Many content management systems will allow this function and as long as you don&#039;t get too many comments it shouldn&#039;t be too difficult to keep up with.&lt;/p&gt;
&lt;h3&gt;
	Use a comment spam protection service&lt;/h3&gt;
&lt;p&gt;
	There are services available which will screen your comments for you in a similar way to email spam filters and determine, based on a spam scoring system, whether the comment is spam or not. One which I&#039;ve found is quite effective is Mollom (&lt;a href=&quot;http://mollom.com&quot;&gt;http://mollom.com&lt;/a&gt;). This has both free and enterprise services for use on blogs and more.&lt;/p&gt;
&lt;h3&gt;
	Add a CAPTCHA challenge&lt;/h3&gt;
&lt;p&gt;
	You can&#039;t always rely on CAPTCHA, but it will most definitely reduce the amount of spam which gets through so it&#039;s always a good idea to protect your comment forms with CAPTCHA as a first line of defence.&lt;/p&gt;
&lt;p&gt;
	Spam is never going to go away - in fact, it&#039;s probably going to get more sophisticated, so it&#039;s a good idea to keep an eye on the spam which doesn&#039;t get through on your blog by accessing your logs, look for trends (especially in the search engine referrals) and try to stay ahead of the game by figuring out why the spammers ended up on your site and what they tried to do to evade your anti-spam mechanisms. Please feel free to leave a comment if you have any tips or techniques which you use to help reduce or manage spam.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Mon, 14 Feb 2011 20:21:43 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">143 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan/2011/02/14/fighting-blog-spam#comments</comments>
</item>
<item>
 <title>New &#039;Mix Radio&#039; on Last.fm</title>
 <link>http://murfitt.net/blog/dan/2011/01/03/new-mix-radio-lastfm</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/music&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Music&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/lastfm&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Last.FM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	Since Spotify I&#039;ve slightly neglected my Last.fm radio favouring playlisted music over radio style chosen tracks, but I may start using the Last.fm radio again since they&#039;ve introduced the new &#039;Mix Radio&#039; station. It&#039;s a great way to discover new music without being overwhelmed by too many unfamiliar tracks.&lt;/p&gt;
&lt;h3&gt;
	What is &#039;Mix Radio&#039;?&lt;/h3&gt;
&lt;p&gt;
	Mix Radio combines:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
		New recommendations (similar to the &#039;Recommendations&#039; station)&lt;/li&gt;
&lt;li&gt;
		Tracks by artists in your library that you haven&#039;t scrobbled before and&lt;/li&gt;
&lt;li&gt;
		Tracks in your library that you already know.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
	Last.fm is great for listening to music when you don&#039;t know what you want to listen to or you want to hear something you haven&#039;t heard before but you might like. The new &#039;Mix Radio&#039; station does the job nicely, and if you hear something you really don&#039;t like just skip it or, if Last.fm completely misjudged your taste, ban it and Last.fm will learn what you don&#039;t like. Last.fm is great for all music fans so if you haven&#039;t used it before I&#039;d definitely recommend &lt;a href=&quot;http://www.last.fm/&quot;&gt;giving it a try&lt;/a&gt; – it&#039;s free and can be accessed from the website, through the free downloadable player, through Android and iPhone mobiles and even through many new DAB/Wi-Fi radios.&lt;/p&gt;
&lt;p&gt;
	For more information on the new &#039;Mix Radio&#039; station from the official Last.fm blog, visit:&lt;br /&gt;&lt;a href=&quot;http://blog.last.fm/2010/10/29/mix-radio-a-new-radio-station&quot;&gt;http://blog.last.fm/2010/10/29/mix-radio-a-new-radio-station&lt;/a&gt;&lt;/p&gt;
&lt;!--break--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Mon, 03 Jan 2011 10:05:01 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">141 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan/2011/01/03/new-mix-radio-lastfm#comments</comments>
</item>
<item>
 <title>Qwiki: Information Experience</title>
 <link>http://murfitt.net/blog/dan/2010/10/23/qwiki-information-experience</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/qwiki&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Qwiki&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/information-delivery&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Information Delivery&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	The recent TechCrunch disrupt award &lt;a href=&quot;http://techcrunch.com/2010/09/29/qwiki-techcrunch-disrupt-winner/&quot;&gt;saw startup Qwiki win&lt;/a&gt; disruptive product for their information experience website which seeks to change the way we consume information. This is the kind of thing which we&#039;ve seen in movies for years but Qwiki is making this experience a reality by pulling together information from various sources and presenting it in a much more experiential way. This sort of delivery is probably well suited to that kind of research where you hear a term you haven&#039;t heard before and you want to know more. You&#039;ll probably start by typing the term into Google then sift through the (usually first result) Wikipedia page followed by image search and/or movies etc. What Qwiki does is pull all of this together for you so you get an instant overview of all the information in a much more &#039;lean back&#039; way.&lt;/p&gt;
&lt;p&gt;
	The video below is a demo of the product at TechCrunch Disrupt 2010. If you&#039;d like to sign up for their invite-only alpha test head over to &lt;a href=&quot;http://qwiki.com&quot;&gt;Qwiki.com&lt;/a&gt;. They also have a few sample Qwikis live on the site.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder=&quot;0&quot; height=&quot;225&quot; src=&quot;http://player.vimeo.com/video/15444551&quot; width=&quot;400&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://vimeo.com/15444551&quot;&gt;Qwiki at TechCrunch Disrupt&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/qwiki&quot;&gt;Qwiki&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;!--break--&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sat, 23 Oct 2010 10:13:42 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">140 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan/2010/10/23/qwiki-information-experience#comments</comments>
</item>
<item>
 <title>Sorting the garden out</title>
 <link>http://murfitt.net/blog/dan/2010/09/05/sorting-garden-out</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/gardening&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Gardening&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;
	My dad came over today to help sort our garden out. We wanted to open the end of the garden up to grow some colourful plants and maybe add a few solar lights. The end of the garden was previously segmented into smaller pieces, with a raised patch with a few shrubs and some fenced off stones.&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960786250/&quot; title=&quot;End of the garden before by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;End of the garden before&quot; height=&quot;500&quot; src=&quot;http://farm5.static.flickr.com/4150/4960786250_ea0124a6e2.jpg&quot; width=&quot;333&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960194053/&quot; title=&quot;End of the garden before by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;End of the garden before&quot; height=&quot;333&quot; src=&quot;http://farm5.static.flickr.com/4086/4960194053_c07c2c55fd.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	Here you can see we started to knock the wall down before but had to put it off for a while as the foundation of the wall went quite deep. Quite satisfying work, knocking a wall down!&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960790950/&quot; title=&quot;End of the garden before by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;End of the garden before&quot; height=&quot;333&quot; src=&quot;http://farm5.static.flickr.com/4107/4960790950_7e1f832248.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960797174/&quot; title=&quot;Half way through by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;Half way through&quot; height=&quot;333&quot; src=&quot;http://farm5.static.flickr.com/4113/4960797174_8a417ba87b.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	Once we broke into the wall foundations we managed to pull large chunks of the wall up without any problems. All that&#039;s left to do is tidy up!&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960204811/&quot; title=&quot;Finished the end of the garden by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;Finished the end of the garden&quot; height=&quot;500&quot; src=&quot;http://farm5.static.flickr.com/4106/4960204811_0980e58bac.jpg&quot; width=&quot;333&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;a href=&quot;http://www.flickr.com/photos/danmurf/4960209049/&quot; title=&quot;Finished the end of the garden by Dan Murfitt, on Flickr&quot;&gt;&lt;img alt=&quot;Finished the end of the garden&quot; height=&quot;333&quot; src=&quot;http://farm5.static.flickr.com/4150/4960209049_018a92fb16.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
	Here&#039;s the finished result - a nice patch of soil ready for a few layers of colourful plants and some solar lights.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Sun, 05 Sep 2010 17:32:22 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">139 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan/2010/09/05/sorting-garden-out#comments</comments>
</item>
<item>
 <title>Foursquare Vs. Gowalla</title>
 <link>http://murfitt.net/blog/dan/2010/08/20/foursquare-vs-gowalla</link>
 <description>&lt;div class=&quot;field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-inline clearfix&quot;&gt;&lt;h3 class=&quot;field-label&quot;&gt;Tags: &lt;/h3&gt;&lt;ul class=&quot;links inline&quot;&gt;&lt;li class=&quot;taxonomy-term-reference-0&quot;&gt;&lt;a href=&quot;/tags/foursquare&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Foursquare&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-1&quot;&gt;&lt;a href=&quot;/tags/gowalla&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Gowalla&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;taxonomy-term-reference-2&quot;&gt;&lt;a href=&quot;/tags/social-networking&quot; typeof=&quot;skos:Concept&quot; property=&quot;rdfs:label skos:prefLabel&quot; datatype=&quot;&quot;&gt;Social Networking&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;&lt;div class=&quot;field-items&quot;&gt;&lt;div class=&quot;field-item even&quot; property=&quot;content:encoded&quot;&gt;&lt;p&gt;With &lt;a href=&quot;http://blog.facebook.com/blog.php?post=418175202130&quot;&gt;recent news about Facebook’s new ‘Places’ feature&lt;/a&gt; it looks like location based social networking could become the next big thing over the next couple of years. In case you can’t wait for this to be fully rolled out and you want to give one of the established location based social networks a try, here’s some background info.&lt;/p&gt;
&lt;!--break--&gt;&lt;h2&gt;What is a location based social network?&lt;/h2&gt;
&lt;p&gt;Facebook and Twitter allow you to share messages, photos, links, etc. with a network of friends or followers. Location based social networks operate in a similar manner - however they are location centric, so instead of sharing a message with a photo attached, you share a location, with a message (and possibly a photo) attached. One strange difference is that both these social networks (Foursquare and Gowalla) have the feel of a game, which I don’t get from Facebook or Twitter. Foursquare allows you to earn badges for checking in. For example, check in at a location more times than anyone else and you become the mayor. With Gowalla you can drop and collect items. For example, you may have a teddy bear which you can drop at a location, then some one else can pick that up and view a history of the bear and see who else has owned it in the past. It can then be taken to another location and dropped off and the journey continues. These features add an element of fun when connecting with your friends, comparing items and badges, but they also have a commercial implication for businesses. Some businesses are starting to sign up and give (for Foursquare) the mayor a special offer (like a free coffee) for just checking in more than anyone else. This incentive could encourage people to visit a location as often as possible to gain the mayor status. These services also offer the potential to offer businesses statistics on their customers (where they’re from, where else they go, how long they stay, etc.).&lt;/p&gt;
&lt;h2&gt;So, which should I join, Gowalla or Foursquare?&lt;/h2&gt;
&lt;p&gt;That’s probably down to preference, as they are both very similar. I’m going to try both and see how I get on. Personally, from just going through the apps briefly, I prefer the look and feel of Gowalla.&lt;/p&gt;
&lt;p&gt;Kevin Rose is an investor in both Foursquare and Gowalla, so here’s a quick video of him talking about how these work and some of the features.&lt;/p&gt;
&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/UlJy343uJdE?fs=1&amp;amp;hl=en_GB&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://www.youtube.com/v/UlJy343uJdE?fs=1&amp;amp;hl=en_GB&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;Here’s another video reviewing the iPhone and Android apps for Foursquare and Gowalla.&lt;/p&gt;
&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/dXeOIgGgvMs?fs=1&amp;amp;hl=en_GB&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;embed src=&quot;http://www.youtube.com/v/dXeOIgGgvMs?fs=1&amp;amp;hl=en_GB&amp;amp;rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;h2&gt;Privacy&lt;/h2&gt;
&lt;p&gt;If you are about to sign up to these apps make sure you review the privacy details carefully. The concept of location based services opens up various causes for concern, as you are telling the world where you are and when. Make sure you share this information carefully and with only whom you chose.&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://foursquare.com&quot;&gt;Foursquare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://gowalla.com&quot;&gt;Gowalla&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
 <pubDate>Fri, 20 Aug 2010 22:08:27 +0000</pubDate>
 <dc:creator>Dan Murfitt</dc:creator>
 <guid isPermaLink="false">138 at http://murfitt.net</guid>
 <comments>http://murfitt.net/blog/dan/2010/08/20/foursquare-vs-gowalla#comments</comments>
</item>
</channel>
</rss>
