<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-5587083</atom:id><lastBuildDate>Tue, 03 Jan 2012 23:06:09 +0000</lastBuildDate><category>cakephp</category><category>framework</category><category>php</category><title>Connrs {Blog}</title><description></description><link>http://blog.connrs.me.uk/</link><managingEditor>noreply@blogger.com (Paul Connolley)</managingEditor><generator>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-140019036168704385</guid><pubDate>Wed, 27 Oct 2010 09:19:00 +0000</pubDate><atom:updated>2010-10-27T10:25:06.316+01:00</atom:updated><title>Firesheep and the avoidance of the real problem</title><description>&lt;p&gt;Obviously &lt;a href="http://techcrunch.com/2010/10/24/firesheep-in-wolves-clothing-app-lets-you-hack-into-twitter-facebook-accounts-easily/"&gt;Firesheep has been big news&lt;/a&gt; this last week or so. Somebody is sitting in a pub right now waiting for you to access Facebook, Twitter or your webmail account so that they can get in and play with all the shinies. Scary stuff; and yet most news outlets haven't really discussed the issue in detail, they haven't discussed where the issue will commonly take place (public places like pubs, cafes, restaurants, libraries with open wifi), and they don't really discuss how SSL on a few major scapegoats will actually solve a worldwide security issue.
&lt;h2&gt;Public. Open. Wifi.&lt;/h2&gt;
&lt;p&gt;I mean, come on! This is the biggest problem; just because someone has an extension that no longer works doesn't mean that somebody else doesn't just have some custom build of &lt;a href="http://www.wireshark.org/"&gt;Wireshark&lt;/a&gt; running that does far more than steal cookies for your favourite social sites. We're talking about the potential for identity theft by people getting &lt;em&gt;far more than a feed of your recent photos and activities&lt;/em&gt;. Some sites may encrypt your password on submit but other forums won't. And what are the chances that somebody on an open hotspot &lt;i&gt;doesn't&lt;/i&gt; have the same password for a couple of other sites?
&lt;p&gt;Also, people may now be smugly sitting on an open hotspot not going on Twitter and Facebook. But their favourite news site has a like button on it. Is that a problem? Has anyone asked or addressed this in a news article too?
&lt;h2&gt;The Solution?&lt;/h2&gt;
&lt;p&gt;The geek solution is to have a &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;VPN&lt;/a&gt; or a &lt;a href="http://en.wikipedia.org/wiki/Tunneling_protocol#Secure_Shell_tunneling"&gt;SSH socks proxy&lt;/a&gt; and to always use it as an interface between open sites; the firefox buff solution is to get one of the many extensions that forces SSL for sites that allow it (and it isn't all of them;) the scapegoat solution is to tell big social networking sites to go SSL so that it's no longer a problem (they should be using SSL anyway the lazy slackers.
&lt;p&gt;&lt;em&gt;None&lt;/em&gt; of these ideas really close up the ultimate truth that not everyone gets security. Not everyone will be able to buy a VPN for that rare occasion that they're on an open hotspot; the fact that VPNs are a &lt;strong&gt;bloody pain&lt;/strong&gt; to set up just compounds the problem. Very few know what SSH is.
&lt;p&gt;The real solution needs to have all of these plus: Closed public wifi. There are a couple of ways with various issues for security but will offer a modicum of privacy for people without the ability to take security measures by themselves. For starters, cafes and libraries could simply stick the network key on the notice board for visitors. Change it daily and keep it inside for patrons only. Alternatively, for situations where the business has a rented device, have 2 hotspots. The first hotspot is open and, when you connect, it takes your browser to a login page with instructions and today's network key. Then you disconnect, sign in to the closed wifi, and use the key you just pasted to your clipboard.
&lt;h2&gt;Is that it?&lt;/h2&gt;
&lt;p&gt;Not really. Computer security is about an ongoing awareness of the fact that everyone wants your bank details and identity. But reporting on an issue and calling social networking sites to use SSL is just scapegoating and avoiding a real world problem with security. Get it sorted pubs, clubs and cafes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-140019036168704385?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/10/firesheep-and-avoidance-of-real-problem.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-780855146836897064</guid><pubDate>Fri, 15 Oct 2010 22:05:00 +0000</pubDate><atom:updated>2010-10-15T23:05:31.936+01:00</atom:updated><title>Minify Plugin - Cake Bakery article</title><description>&lt;p&gt;I just posted an article on the Bakery called &lt;a href="http://bakery.cakephp.org/articles/connrs/2010/10/15/minify_and_gzip_plugin_for_your_javascript"&gt;Minify and gzip plugin for your Javascript&lt;/a&gt;. It’s regarding one of my latest Github projects called &lt;a href="http://github.com/connrs/minify"&gt;minify&lt;/a&gt; and is up there waiting to be dropped into any of your Cake applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-780855146836897064?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/10/minify-plugin-cake-bakery-article.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-3622742919867841655</guid><pubDate>Tue, 05 Oct 2010 21:30:00 +0000</pubDate><atom:updated>2010-10-05T22:59:00.119+01:00</atom:updated><title>Making MediaQuery.js</title><description>&lt;p class="disclaimer"&gt;Blog post is a work in progress while I actually do the research. Posting it here now anyway because I’m at the stage that I want to get it up on Github and so it allows me to link to some form of &lt;i&gt;Readme&lt;/i&gt; here that will give you a clue to what’s going on…

&lt;p&gt;A small jQuery plugin–called &lt;a href="http://plugins.jquery.com/project/MediaQueries"&gt;Media Queries&lt;/a&gt;–caught my attention around 2 months ago that I decided would be really useful for creating adaptive layouts for various desktop (and mobile) resolutions. I liked the plugin a lot but I didn’t always want to stick jQuery in every site I created that I’d want to support some sort of adaptive layout.

&lt;p&gt;7 late nights later, I rolled up my sleeves and started hacking away. The script was a mishmash of DOM functions and jQuery DOM functions so I spent some time learning the script and rewriting it. At this stage, I’d like to thank Paul Irish for reminding me that there was nothing wrong in seeing how others did it, in his video on &lt;a href="http://vimeo.com/12529436"&gt;10 Things I Learned from the jQuery Source&lt;/a&gt;, as I had a look at some other sources to pull together some ideas that would make the conversion a little smoother. It really shocked me that I didn’t actually have to do any debugging when I finally ran it in a page the first time. Of course I ran it in Safari 5 and it didn’t actually need to run most of the code. I digress

&lt;h2&gt;IE6&lt;/h2&gt;

&lt;p&gt;Debugging had to start—for me—in IE6. I had this big vision that my name would be blasted into the stars and that I would become the new big name on Twitter, Digg and all my favourite bloggers out there. And then that bubble burst. Parrrrrrrrppppppphhhhhhhsplplpplplpllplplplpip.

&lt;p&gt;To elaborate, allow me to show you a brief snippet of output:

&lt;pre&gt;&lt;code&gt;BODY{ PADDING-LEFT: 0px; PADDING-TOP: 0px; PADDING-RIGHT: 0px; PADDING-BOTTOM: 0px }
@media Unknown{P{ DISPLAY: none }}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Parrrrrrrrppppppphhhhhhhsplplpplplpllplplplpip

&lt;p&gt;It’s pretty clear that IE6 has &lt;b&gt;absolutely no clue&lt;/b&gt; what to do with your sexy CSS. Please note that this issue only really presents itself when you use inline &lt;code&gt;@media&lt;/code&gt; declarations. If you keep all your CSS in separate files, as I do currently, then you’re probably fine; it’s a world of pain otherwise as IE6 has issues with @media.

&lt;h2&gt;Respite&lt;/h2&gt;

&lt;p&gt;At least I can get it to function in older versions of Firefox and Safari… Right? No. Gecko 1.9.1 represents the birth of inline @media support in Firefox. However, there are issues with older versions of Firefox. I couldn’t actually get a copy of Firefox 1.0 running on the virtual machine I had so I decided to jump ahead to 1.5 (I hope you don’t mind.)

&lt;p&gt;Either way it wouldn’t have mattered. Firefox 1.5 (Gecko 1.8.1ish) and below don’t really have much love for complex media attributes on the link element. So, 2 days in to my little research project, and I already don’t really want to continue rewriting this little script. I’ve been coding while I research so I’ve already got some functions in place to do some sexy work on inline @media queries. It’s just a shame that the various browsers remove it all from the DOM or mingle it into uselessness.

&lt;hr&gt;

&lt;p&gt;More sexy blogness to come once I’ve done some more on that day job thing…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-3622742919867841655?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/10/making-mediaqueryjs.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-6548485982943592356</guid><pubDate>Tue, 20 Jul 2010 13:59:00 +0000</pubDate><atom:updated>2010-09-25T12:22:29.400+01:00</atom:updated><title>Progressive Enhancement with CSS Media Queries</title><description>&lt;p&gt;There have been a number of articles recently talking about how to use media queries of late by &lt;a href="http://hicksdesign.co.uk/journal/new-goodies"&gt;Hicks&lt;/a&gt;, &lt;a href="http://colly.com/comments/carry_on_responsively/"&gt;Colly&lt;/a&gt; and others; it has even had some air time on Dan Benjamin's &lt;a href="http://5by5.tv"&gt;5by5&lt;/a&gt; network. I remember playing with the idea of it during a stint of research on Apple's website so, when I spotted what Jon Hicks managed to get out of it, I had to give it a try.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NB. This is hopefully going to be an article that gets a number of redrafts over the next few weeks until it's perfect. I'm using &lt;a href="http://web1984.com"&gt;my freelance site&lt;/a&gt; as the testing ground for it so dig in to my site to see. I would like some help from device owners who can test some of these layouts on their iPads/Androids/etc. Tweet me if you want to offer any help.&lt;/b&gt;&lt;/p&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;h3&gt;First Attempt&lt;/h3&gt;
&lt;p&gt;As part of trying to be a tidier coder I wanted to look at splitting this all out in to multiple CSS files so as to keep it easier to update and manage. My first draft process went like this:
&lt;ul&gt;
&lt;li&gt;Create screen.css
&lt;li&gt;Add the CSS for the high resolution version of the site
&lt;li&gt;Create 1024.css
&lt;li&gt;Add loads of hacks to (to 1024.css) give netbook users an easier time
&lt;li&gt;Create 640.css
&lt;li&gt;Add loads of hacks (to 640.css) to give iPad users an easier time
&lt;li&gt;Create 320.css
&lt;li&gt;Add loads of hacks (to 320.css) to give iPod users an easier time
&lt;/ul&gt;
&lt;p&gt;At the end of it I had 4 gigantic CSS files with various declarations of varying complexity, !important at the end of a lot of lines, many resets for paddings and I was really unhappy with it. Ultimately, to give visitors a helping hand with their smaller devices (or legacy browsers) you'd need to add large portions of CSS just to hack it down to render well. I decided a progressive enhancement made more sense than graceful degradation.
&lt;h3&gt;Second Draft&lt;/h3&gt;
&lt;p&gt;Before taking it any further we need to make sure we have &lt;code&gt;&amp;lt;meta name="viewport" content="width=device-width"&amp;gt;&lt;/code&gt; in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; or else live testing is going to produce strange results on an iPhone/iPod Touch.
&lt;p&gt;Next you need to decide upon a range of display widths for your layout. It will very much depend entirely upon the particular design, as to whether you need to offer more than 2 or 3 varieties. I wanted to use 4 columns at a higher resolution and allow it to reduce sensibly for netbooks, iPads, and mobiles respectively.
&lt;p&gt;&lt;b&gt;At this stage I've only been able to research Apple devices so anyone able to offer me some help with perfecting this with Android and other mobile browsers (&lt;a href="http://quirksmode.org/"&gt;@ppk&lt;/a&gt; wink wink) will really be of great help.&lt;/b&gt;
&lt;p&gt;To get this to work correctly, you need to have the base stylesheet with the bare minimum needed for a plain layout and then have additional stylesheets to enhance the layout as display width increases:
&lt;h4&gt;Layout &amp; CSS&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;body id="home"&amp;gt;&amp;lt;div id="main"&amp;gt;
&amp;lt;header id="header"&amp;gt;&amp;lt;h1&amp;gt;Foo&amp;lt;/h1&amp;gt;&amp;lt;/header&amp;gt;
 
&amp;lt;nav id="menu"&amp;gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Lorem&amp;lt;/a&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Lorem&amp;lt;/a&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Lorem&amp;lt;/a&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Lorem&amp;lt;/a&amp;gt;&amp;lt;/ul&amp;gt;
&amp;lt;/nav&amp;gt;
 
&amp;lt;section id="showcase"&amp;gt;
&amp;lt;article&amp;gt;&amp;lt;h2&amp;gt;Lorem&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;Lorem ipsum&amp;lt;/article&amp;gt;
&amp;lt;article&amp;gt;&amp;lt;h2&amp;gt;Lorem&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;Lorem ipsum&amp;lt;/article&amp;gt;
&amp;lt;article&amp;gt;&amp;lt;h2&amp;gt;Lorem&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;Lorem ipsum&amp;lt;/article&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;div id="content"&amp;gt;
&amp;lt;div class="c_primary"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class="c_ancillary"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt; 

&amp;lt;div id="sidebar"&amp;gt;
&amp;lt;div class="s_primary"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class="s_ancillary"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt; 

&amp;lt;/div&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- not sure if dl is appropriate here but giving it a try --&gt;
&lt;dl&gt;
&lt;dt&gt;&amp;lt;link rel="stylesheet" type="text/css" href="http://web1984.com/css/jun2010/default.css" media="all"&amp;gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;This is your default stylesheet. A simple one column layout with some standard colours. Centre aligned header and navigation but other than that it's pretty plain. I've used media="all" but it's unnecessary.
&lt;/dd&gt;
&lt;dt&gt;&amp;lt;link rel="stylesheet" type="text/css" href="http://web1984.com/css/jun2010/640.css" media="screen and (min-width: 480px),(min-width:320px) and (orientation:landscape)"&amp;gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;&lt;i&gt;I regret naming this 640.css as that is the upper bound before the next stylesheet activates but I'll continue like this for now and fix it soon.&lt;/i&gt;
&lt;p&gt;This one activates at 480 pixels in width. I chose 480 pixels as it's the width of the iPhone in landscape mode. There are two media query statements here because the iPhone device width doesn't alter when the orientation is altered but it does recognise orientation.
&lt;pre&gt;&lt;code&gt;#sidebar {
display: table-cell;
width: 240px !important;
}

#content {
display: table-cell;
border-collapse: collapse;
border-spacing: 0px;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This turns the 2 divs (with display:block) into a 2 column layout with the right hand sidebar only taking up 240px
&lt;/dd&gt;
&lt;dt&gt;&amp;lt;link rel="stylesheet" type="text/css" href="http://web1984.com/css/jun2010/1024.css" media="screen and (min-width: 641px) "&amp;gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;Now we cater for netbook/iPad owners. At this stage we aren't catering to the smaller mobile devices so we can get away with one media statement. This will apply further enhancements to the CSS until the display width exceeds 1024 pixels.
&lt;pre&gt;&lt;code&gt;#menu ul {
text-align: left;
}

header#header h1 {
text-align: left;
}

#showcase {
display: table;
border-collapse: separate;
border-spacing: 24px;
padding: 0;
}

#showcase &gt; article {
display: table-cell;
width: 33%;
position: relative;
text-align: left;
}

#showcase &gt; article h2 {
display: block;
}

#showcase p {
display: block;
}

#showcase &gt; article h2 a {
padding: 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This time we've kept the main content layout at 2 columns but created a 3 column layout for the web app showcase at the top of the site. As the layout is wide enough I've unhidden the paragraphs that were hidden (display:none) at the lower resolutions. T'would be contestable as a waste of bandwidth but I find it makes sense to reduce the page clutter. Visitors on smaller devices could have clicked/pushed their way through to the pages that they link to. 
&lt;/dd&gt;
&lt;dt&gt;&amp;lt;link rel="stylesheet" type="text/css" href="http://web1984.com/css/jun2010/1440.css" media="screen and (min-width: 1025px)"&amp;gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;This is the last stage. Big screen layout. I add all the declarations to create a 4 column layout
&lt;pre&gt;&lt;code&gt;#main {
position: relative;
}

#menu ul {
position: absolute;
font-size: 200%;
right: 12px;
top: 0;
}

#menu a {
padding: 2em 12px 0.5em;
}

#menu a:hover {
padding-top: 1.75em;
border-top: 0.25em solid #1f8199;
}

#sidebar {
width: 480px !important;
}

#sidebar div.s_primary, #sidebar div.s_ancillary {
display: table-cell;
width: 50%;
padding: 0 12px 0 0;
margin: 0;
}

#content div.c_primary, #content div.c_ancillary {
display: table-cell;
width: 50%;
padding: 0 12px 0 0;
margin: 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here I've made the 4 divs (c_primary, c_ancillary, s_primary, s_ancillary) into table cells and thereby created the final 4 column layout. The fact that this will only truly work within the more advanced-CSS3 capable browsers means that I don't need to worry about hacks. In fact IE6-IE8 are still only displaying the default.css; you can remedy the IE6-IE8 situation quite easily with some conditional comments at the final stages of your project.
&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Further Reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html"&gt;A pixel is not a pixel is not a pixel&lt;/a&gt;—&lt;cite&gt;&lt;a href="http://twitter.com/ppk"&gt;@ppk&lt;/a&gt; of Quirksmode
&lt;li&gt;&lt;a href="http://www.quirksmode.org/mobile/viewports2.html"&gt;A tale of two viewports&lt;/a&gt;—&lt;cite&gt;&lt;a href="http://twitter.com/ppk"&gt;@ppk&lt;/a&gt; of Quirksmode
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-6548485982943592356?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/07/progressive-enhancement-with-css-media.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-1690499267162372436</guid><pubDate>Fri, 09 Jul 2010 09:24:00 +0000</pubDate><atom:updated>2010-07-09T10:24:33.014+01:00</atom:updated><title>Delicious Safari Extension</title><description>&lt;p&gt;I guess I should actually provide a download link for you guys arriving here looking for it. It's a fork of Jeveaux's project so just remember to download this and then use the update feature to update it. I'll ensure that it directs you to the right update.

&lt;p&gt;&lt;a href="http://github.com/downloads/shunuk/delicious-safari-extension/Delicious1.1.safariextz"&gt;Download the Delicious Safari Extension&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-1690499267162372436?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/07/delicious-safari-extension.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-7030704866520179057</guid><pubDate>Wed, 07 Jul 2010 22:57:00 +0000</pubDate><atom:updated>2010-07-07T23:58:22.851+01:00</atom:updated><title>A Month Without Caffeine</title><description>&lt;h3&gt;Introduction: The Problem&lt;/h3&gt;
&lt;p&gt;For a few months I’ve been getting headaches at weekends; they’ll usually manifest in the morning but occasionally continue throughout the day. I thought I was just getting old but after a while I realised that it was because I’d started taking a drug at work that I didn’t take at home over the weekend. I was getting caffeine withdrawal at weekends because I didn’t have the habitual routine at home that I had 'in the office.'
&lt;a name='more'&gt;&lt;/a&gt;
&lt;h3&gt;The Challenge&lt;/h3&gt;
&lt;p&gt;After deciding that I’d had enough, I went cold turkey. And let me tell you that it was hardcore. At first, I did some in-depth research (Google) on the subject of detoxing and found it all pretty scary. Terms like mind fog, drowsiness, brain blur, severe headaches, severe fatigue and the rest gave me pause for thought: Should I bother with this or should I just maintain this addiction for the rest of my life?
&lt;p&gt;No way; I wanted out. I hate the idea of a dependency on something to make me who I am. I don’t mind the idea of having a perk like that but the dependency is a turnoff.
&lt;p&gt;A couple of hours later I let my wife know and then strapped myself down (not really) and just stopped with tea, coffee, chocolate, cola, Sprite, 7up, Lucozade and quite a lot more. It’s absolutely insane how much stuff they stick caffeine into; I actually struggled to find a non-alcoholic non-caffeine drink that I actually felt comfortable drinking when I went to the pub a few days later.
&lt;h3&gt;Day 1—Oh this isn’t too bad&lt;/h3&gt;
&lt;p&gt;The next morning I woke up preparing for a horrendous headache and was thoroughly overjoyed when I felt fine. 3 weeks of migraines my shoe! I must confess to being a little tired and grumpy in the morning but I kept my nerves in check and got through it.
&lt;h3&gt;Day 2—Oh my brain&lt;/h3&gt;
&lt;p&gt;I woke up with the worst headache ever and that wasn’t the worst of it. The headache paled into insignificance alongside what I’ll forever think of as &lt;b&gt;the brain fog&lt;/b&gt;. The brain fog is a range of symptoms like an inability to focus on a conversation; an overwhelming magnetic attraction applied to your eyes from the ground when attempting to make eye contact; memory loss and short term memory trimmed down to minutes; and a general feeling that your ears no longer understand your native language.
&lt;p&gt;This was my lowest day; I nearly went to the kitchen to make the strongest brew ever. I resisted, went to buy some ibuprofen and got through the day
&lt;h3&gt;Day 3—Road to recovery&lt;/h3&gt;
&lt;p&gt;Day 3 was surprising. I still had a headache but the fog already began to dissipate. Partially thanks to some pain relief, I was able to actually do some work. Result.
&lt;h3&gt;Day 4 to 28—Light at the end of the tunnel&lt;/h3&gt;
&lt;p&gt;Throughout the next 24 days I talked a lot about how I was going to enjoy a nice brew at the end of it all. As the days progressed I lost the desire to have that trophy cuppa. In fact, at day 28 (last Saturday) I didn’t bother. I wish that I could say more about caffeine cold turkey but the mind fog was the easiest thing I ever beat.
&lt;h3&gt;After all that trouble&lt;/h3&gt;
&lt;p&gt;I don’t think I’ll be bothering with tea at all. I had a cup of tea yesterday and it didn’t blow my mind and I didn’t descend into craving caffeine either. I like the idea of it being a weekly treat be it a bar of chocolate or a cappuccino at a café.
&lt;p&gt;Give it a try at some point. I think that the detox itself is quite revealing and, while I don’t think it’s something that everyone need endure, if you’re one of the small number of people who just did it for the routine then I you’ll benefit; try replacing it with something healthy like a fresh fruit juice.
&lt;h3&gt;Next week in This Week in Detox…&lt;/h3&gt;
&lt;p&gt;Alcohol? Been there done that you weaklings. Fatty food? Internet? Hah. Cordials? Who knows ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-7030704866520179057?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/07/month-without-caffeine.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-3227411634239296019</guid><pubDate>Tue, 06 Jul 2010 21:38:00 +0000</pubDate><atom:updated>2010-07-07T11:30:49.887+01:00</atom:updated><title>Safari 5.0 extension API and window.close()</title><description>&lt;p&gt;I wanted to make a quick note about how &lt;code&gt;safari.application.openBrowserWindow().activeTab&lt;/code&gt; and &lt;code&gt;window.close()&lt;/code&gt; result in a lack of interaction.
&lt;a name='more'&gt;&lt;/a&gt;
&lt;h3&gt;Backstory&lt;/h3&gt;
&lt;p&gt;In a nutshell, window.close() isn’t allowed to close a window for a document that wasn’t created via Javascript. The idea is that a script shouldn’t be able to willy nilly start ruining your browsing experience by closing a browser window that you’ve, until right now, built up a web page history; a window.close() at that point would remove your browser window and leave you with no back button to get to where you’ve been. There are other ramifications, I guess, but for me that’s the most obvious one.
&lt;h3&gt;Fast Forward to Safari 5.0&lt;/h3&gt;
&lt;p&gt;So I &lt;a href="http://github.com/shunuk/delicious-safari-extension"&gt;forked the delicious safari extension&lt;/a&gt;, from &lt;a href="http://github.com/jeveaux/delicious-safari-extension"&gt;Jeveaux’s original repo&lt;/a&gt;, and made a few changes to enhance it. One of my updates was to include an option to allow Delicious to open in a new window as well as a new tab. A week later I decided to look into why the window wasn’t closing on the Delicious page after you’ve saved it.
&lt;p&gt;Inspecting the source of Delicious’ post-save page you’ll see that it has a simple &lt;code&gt;window.close()&lt;/code&gt; in the &lt;code&gt;head&lt;/code&gt;. So why does it not work? It’s a window opened with javascript right?
&lt;p&gt;My suspicion is that, because it hasn’t been opened with &lt;code&gt;window.open()&lt;/code&gt;, it is classed as a standard window. My next task for the Delicious Safari Extension is to switch it over to &lt;code&gt;window.open()&lt;/code&gt; and then I’m going to file a report/bug/feature request to see if Safari can weigh in on it and perhaps make some small changes for us.
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; I've got a bug report filed &lt;a href="https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/14/wo/uqjX9KcIFBY2hMZvjOf0kM/12.60"&gt;8165625: Safari 5 extension API and window.close()&lt;/a&gt; so here's hoping that it gets some attention
&lt;p&gt;&lt;b&gt;Update 2:&lt;/b&gt; I finally found the reference to where it mentions that &lt;a href="http://developer.apple.com/safari/library/documentation/Tools/Conceptual/SafariExtensionGuide/AddingExtensionToolbars/AddingExtensionToolbars.html#//apple_ref/doc/uid/TP40009977-CH5-SW17"&gt;you can't use window.open() within the API docs&lt;/a&gt;. Just for people who are asking me to use &lt;code&gt;window.open()&lt;/code&gt; as an interim solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-3227411634239296019?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/07/safari-50-extension-api-and-windowclose.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-3969390810629225711</guid><pubDate>Wed, 30 Jun 2010 12:52:00 +0000</pubDate><atom:updated>2010-07-09T10:44:17.554+01:00</atom:updated><title>Know what working in a casual office and sunny days creates?</title><description>&lt;p&gt;Liquid Lunch!&lt;br&gt;
Beer,&lt;br&gt;
Golden beer out in the sun and eyes squinting at life going by.&lt;br&gt;
Old sun-baked wooden benches with parasols and big dirty glass ashtrays,&lt;br&gt;
The cold breeze and scantily clad women, the smell of too much perfume and of life passing by.&lt;br&gt;
Oh yes.
&lt;p&gt;Sometimes the simplest times are the best.

&lt;p&gt; TTDSPUXNAJKQ Hello Technorati&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-3969390810629225711?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/06/know-what-working-in-casual-office-and.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-6083725995998425179</guid><pubDate>Sun, 27 Jun 2010 22:26:00 +0000</pubDate><atom:updated>2010-09-20T12:55:09.623+01:00</atom:updated><title>Check out out the new Digg</title><description>&lt;p&gt;Watching TWiT (This Week in Tech) and checking out the live preview of Digg. Doing some cool stuff and the next paragraph is for some sexy new Digg stuff... Get over to &lt;a href="http://live.twit.tv"&gt;TWiT Live&lt;/a&gt; to see more stuff!&lt;/p&gt;&lt;p&gt;6b312a837a444a45904221ac28e5663a&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-6083725995998425179?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/06/checkout-out-new-digg.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-1932089869732880540</guid><pubDate>Wed, 19 May 2010 14:51:00 +0000</pubDate><atom:updated>2010-10-27T11:16:23.943+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>cakephp</category><category domain='http://www.blogger.com/atom/ns#'>framework</category><category domain='http://www.blogger.com/atom/ns#'>php</category><title>Cake PHP Admin Routing</title><description>&lt;p&gt;First things first: &lt;abbr title="Keep it Simple Stupid"&gt;KISS&lt;/abbr&gt;.&lt;br /&gt;
&lt;p&gt;As a developer who (in the early stages of CakePHP’s development) constantly reinvented the wheel with features already available through the framework itself, I am now so cautious of doing so it’s almost an abhorrence rather than a discipline. However, I feel that this particular obvious solution to a problem is worth sharing:&lt;br /&gt;
&lt;h3&gt;The Problem&lt;/h3&gt;&lt;p&gt;&lt;q&gt;I've got an admin prefix set up in my Cake application and I have a custom layout that I want to use instead of the default layout. I don't really want to specify it in all the admin functions within each controller, is there a way to do it within app_controller.php?&lt;/q&gt;&lt;br /&gt;
&lt;p&gt;Yes:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;function beforeRender() {
 if(!empty($this-&gt;params['prefix']) &amp;&amp; $this-&gt;params['prefix']=='admin') {
  $this-&gt;layoutPath = 'admin';
 }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It's really simple. &lt;code&gt;$this-&gt;action&lt;/code&gt; is the current action—lower case underscore (eg. the_current_action)— as a string. For a single word prefixed route (admin, manage, moderate, etc.) it is easily searched. You could opt for $this-&gt;layout = 'admin_layout' if you like, but I find that using $this-&gt;layoutPath affords a bit of freedom in future should i want to have multiple admin layouts and then I can have a specific controller function line that doesn't need to worry about the beforeRender function overriding anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-1932089869732880540?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/05/cake-php-admin-routing.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-2993007157723074770</guid><pubDate>Mon, 17 May 2010 21:24:00 +0000</pubDate><atom:updated>2010-05-17T23:00:42.052+01:00</atom:updated><title>Really bored of Facebook</title><description>&lt;p&gt;I don't really have any profound discourse for you here; I have this &lt;i&gt;underwhelming&lt;/i&gt; apathy for it now. You know what? Bring back Geocities, bring back some creativity. The most annoying thing is that people have access to a plethora of real web services and nobody is looking at them. That’s why I spend all my time trying to push real world (hah) links to Facebook instead of relying on the incredibly sinister like button.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wits End&lt;/h3&gt;&lt;p&gt;I’m at my wits end. I enjoy tweeting, I enjoy posting the few photos I have to Flickr, I enjoy blogging and I enjoy sharing my musical tastes on Last.fm; none of my friends ever go there. None of you move past that news feed that you probably barely even bother with. I skim it regularly so that I know what you’re up to and what interesting things you’re doing.&lt;br /&gt;
&lt;p&gt;It’s possibly the ultimate irony that I’m doing this to be more sociable and you aren’t even reading this.&lt;br /&gt;
&lt;h3&gt;More Sociable&lt;/h3&gt;&lt;p&gt;That’s right, I wanted to be more sociable with people I couldn’t spend more time with; my wife and daughter take up the majority of my non-work life these days and I love it. Before my ventures into refreshing my friendships with close friends, the Internet (USENET, mailing lists, forums and websites) was for an entirely distinct set of friends—nerds. They wanted to consume information like me: Through a straw. None of them are close friends but they’ve got tastes in accordance with mine and I had some good times during the late hours.&lt;br /&gt;
&lt;h3&gt;Goin’ Solo&lt;/h3&gt;&lt;p&gt;But now I’m sick of Facebook and yearning to go back to those days of online communities and trawling newsgroups at 11pm. That was 10 years ago; I probably won’t be able to find those people again but it may be time to go solo and sack off Facebook. At the very least, until my friends get with the programme and start using the web in a way that suits me; instead of me hoping to impart my daily learnings upon you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-2993007157723074770?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/05/really-bored-of-facebook.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-5829187452380650103</guid><pubDate>Fri, 14 May 2010 09:26:00 +0000</pubDate><atom:updated>2010-05-14T10:27:09.567+01:00</atom:updated><title>Back to Safari</title><description>&lt;p&gt;Yup, I've officially switched back to Safari. Chrome was a great ride but it left me missing some core features of OS X that I didn't want to do without. Since moving to Chrome, I've accepted  life without some of the more hacky SIMBL plugins that I had and so my return to Safari means that I can wave bye bye bye bye bye suckers to:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Saft&lt;br /&gt;
&lt;li&gt;Glims&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;And I'm saying hello to a number of SIMBL plugins &lt;b&gt;that are free&lt;/b&gt;: &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.newsfirex.com/safari140/"&gt;safari140&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href="http://alexstaubo.github.com/keywurl/"&gt;Keywurl&lt;/a&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href="http://stuconnolly.com/projects/safaritabs/"&gt;SafariTabs&lt;/a&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;p&gt;And Greasekit that is forever my best friend forever. I've got some plans to work on a special Greasekit plugin too. &lt;p&gt;Also, I'm &lt;b&gt;no longer blocking ads&lt;/b&gt;. No more bastardising the web. If I don't want to see it I'll just do what I learnt to do years ago before ad blockers existed: Let my eyes glaze over and carry on…&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-5829187452380650103?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/05/back-to-safari.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-8379847440910866363</guid><pubDate>Fri, 07 May 2010 14:47:00 +0000</pubDate><atom:updated>2010-05-07T15:47:59.670+01:00</atom:updated><title>This is so meta but…</title><description>&lt;p&gt;I just wanted to link to the &lt;a href="http://blog.web1984.com/2010/05/do-i-tweet-or-save-to-delicious.html"&gt;article I wrote on overlinking on social networking feeds&lt;/a&gt; to the extent that you don't enjoy……&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BOOM!&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;SYSTEM ERROR

RETURN WITHOUT GOSUB

Please reboot life and try again&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-8379847440910866363?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/05/this-is-so-meta-but.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-6535882641521037672</guid><pubDate>Wed, 05 May 2010 20:00:00 +0000</pubDate><atom:updated>2010-05-05T21:00:41.848+01:00</atom:updated><title>A fresh start</title><description>&lt;p&gt;I decided to start from fresh. No more handrolling content management systems and tacking on my blog. No more reliance on hosting bills and root for something that &lt;i&gt;was&lt;/i&gt; a fickle pastime. But now I'm back and ready to rock with a blog hosted on Blogger
&lt;a name='more'&gt;&lt;/a&gt;
&lt;p&gt;It seems almost full circle in a way as Blogger was one of my earliest (although Livejournal was the absolute first) blog services and I never thought I'd return officially. I was agonising over &lt;a href="http://wordpress.com"&gt;Wordpress.com&lt;/a&gt; as it is a really great system and the packages available are so completely full of goodies. The problem is that I know that I can be fickle, I know that I also like control over what I publish too.
&lt;p&gt;It comes down to the mortality of my blog. I look at Google and know that here's a company that's going to last; and, on the back of this super massive search engine, Blogger is going to last too. I want my ramblings to live on and the Blogger service affords me that. Wordpress would allow it too, but I really decided the &lt;b&gt;only&lt;/b&gt; real thing that I wanted was the immortality of a blog. Nothing else was important. Once I'd agonised enough, and narrowed it down to one thing, I realised that the free Blogger was the obvious choice.
&lt;p&gt;So I integrated Disqus for the comments system, prepped up some widgets for the sidebar that I'll add soon, whipped up some semi retro CSS and renamed my blog as an amalgamation of all the blog names before it.
&lt;p&gt;I'm currently working on an entry over on my &lt;a href="http://blog.web1984.com/"&gt;business' blog&lt;/a&gt; to really talk about how social networking has moulded and changed me. It's probably the reason I'm coming back to this blog after such a long time.
&lt;p&gt;Anyway. Here's to a new decade of blogging. My blogging career has so far managed to span 3 decades and 2 millennia and this time it's here to stay&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-6535882641521037672?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/05/fresh-start.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-8254943004852117244</guid><pubDate>Wed, 16 Apr 2008 19:51:00 +0000</pubDate><atom:updated>2010-05-05T20:23:32.470+01:00</atom:updated><title>So my sister is ill</title><description>&lt;p&gt;Yeah, she's ill. She just had keyhole on her leg and she's experiencing extreme time-offage.&lt;/p&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;p&gt;Seriously though, she's not doing too good; my auntie has the dog, and me and my other uncle - my auntie's brother - are cooking for her.&lt;/p&gt;
&lt;p&gt;I made her my special chilli con carne. It's my tasty personal recipe that I have received praise for. I'm not going to reveal the ingredients for that dish but I will reveal the ingredients of the vindaloo that my uncle made for her tea the other night.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Hot dog sausages&lt;/li&gt;
&lt;li&gt;1 tin of beans&lt;/li&gt;
&lt;li&gt;1 tin of tomato soup&lt;/li&gt;
&lt;li&gt;A portion of frozen peppers&lt;/li&gt;
&lt;li&gt;Tinned potatoes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Apparently it was still quite nice. I've just promised to share my recipe to my sis too.&lt;br&gt;
I may regret that promise… What the hell.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-8254943004852117244?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2008/04/so-my-sister-is-ill.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-5293231612532693075</guid><pubDate>Fri, 08 Jun 2007 14:57:00 +0000</pubDate><atom:updated>2010-05-05T20:27:36.734+01:00</atom:updated><title>Joe Clark Micropatronage</title><description>&lt;a href="http://joeclark.org/micro/"&gt;&lt;img src="http://2.bp.blogspot.com/_XRilllBTg4k/S-HGOhUq5SI/AAAAAAAABEc/MHAOstFNF3Y/s1600/joe-clark-patronage.png" alt="Donate to the Joe Clark Micropatronage Project" class="illustrative"&gt;&lt;/a&gt;

&lt;p&gt;What the hell is all this about? It has something to do with accessibility, Joe Clark, and funding a project. Joe wants to embark on a voyage of discovery (&lt;a href="http://openandclosed.org/"&gt;The Open and Closed Project&lt;/a&gt;) and hopefully wants to finish with some really applicable standards covering &amp;#8220;captioning, audio description, subtitling, and dubbing&amp;#8221; (&lt;cite&gt;from the Joe Clark Micropatronage page&lt;/cite&gt;).&lt;/p&gt; 
 
&lt;p&gt;As it&amp;#8217;s most definitely a worthy cause, you really must &lt;a href="http://joeclark.org/micro/donate/"&gt;donate&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-5293231612532693075?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2007/06/joe-clark-micropatronage.html</link><author>noreply@blogger.com (Connrs)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XRilllBTg4k/S-HGOhUq5SI/AAAAAAAABEc/MHAOstFNF3Y/s72-c/joe-clark-patronage.png' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-5736462017555105629</guid><pubDate>Fri, 08 Jun 2007 13:41:00 +0000</pubDate><atom:updated>2010-05-05T20:27:59.145+01:00</atom:updated><title>The Samurai</title><description>&lt;p&gt;Many years ago, when I was a right-wing-validationist standing alongside the puritan/conservative XHTML police, I may have made silly remarks that disagreed with &lt;a href="http://blog.fawny.org/" title="The almighty Joe Clark"&gt;this man&lt;/a&gt; but I consider myself to be a pensive and considerate man now and I believe this dude &lt;a href="http://blog.fawny.org/2007/06/07/atsamurai/"&gt;thinks the way I&amp;#8217;d like to think&lt;/a&gt;.&lt;/p&gt; 
&lt;a name='more'&gt;&lt;/a&gt;
&lt;p&gt;He displays an unadulterated pure perception of common sense when it comes to accessibility (an -ism that I hold strongly to every day of my life) and bears an impenetrable shield against the fools who can&amp;#8217;t tell when they have gone either too far or not far enough.&lt;/p&gt; 
 
&lt;p&gt;Joe Clark&amp;#8217;s &lt;a href="http://wcagsamurai.org/"&gt;WCAG Samurai&lt;/a&gt; is an effort, somewhat similar in intent to the &lt;abbr title="Web Hypertext Application Technology Working Group"&gt;WHATWG&lt;/abbr&gt; &lt;a href="http://www.whatwg.org/"&gt;Web Hypertext Application Technology Working Group&lt;/a&gt;, that hopes to bring some sanity to the WCAG 1.0. It also discusses elements of the modern Web, something that the &lt;abbr title="Web Accessibility Initiative"&gt;WAI&lt;/abbr&gt; failed to bring into their WCAG 2.0 correctly; it looks at podcasting, videos, and brings into the fold the idea that many web technologies have already begun introducing their own accessible features (Flash) and it really makes the WCAG 2.0 specs look amateurish. Shocking.&lt;/p&gt; 
 
&lt;p&gt;I&amp;#8217;ve taken a good slow read through the Errata for WCAG 1.0 on WCAG Samurai and I&amp;#8217;ve decided it&amp;#8217;s pure brilliance.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-5736462017555105629?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2007/06/samurai.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-1835038313553766312</guid><pubDate>Thu, 17 May 2007 10:27:00 +0000</pubDate><atom:updated>2010-05-05T20:38:06.482+01:00</atom:updated><title>Galactic Wonderment</title><description>&lt;img src="http://4.bp.blogspot.com/_XRilllBTg4k/S-HHrf0WWzI/AAAAAAAABEg/PYlVFY55Oys/s200/galactic-wonderment.jpg" alt="" class="illustrative"&gt;
&lt;p&gt;I’m fascinated by astronomy, the Cosmos, cosmogony, and popular Quantum Theory. As a child I spent hours a night with my binoculars and my telescope watching the night sky. My much under-enjoyed love of photography stemmed from taking photos of the night sky.&lt;/p&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;img src="http://3.bp.blogspot.com/_XRilllBTg4k/S-HHv-_IZmI/AAAAAAAABEk/YRGo8sI2QqA/s200/a-nasa-image-of-many-galaxies-clustered.jpg" alt="" class="illustrative"&gt;
&lt;p&gt;In a very old post from yesteryear, I mentioned &lt;a href="/2004/09/science-cosmic-collisions-or-star-wars"&gt;our Galaxy is a part of a Galactic Cluster&lt;/a&gt; heading towards the Virgo galactic cluster. The idea of clusters of clusters of clusters fascinates me supremely. From the electron orbiting a Hydrogen atom, to planets and comets orbiting our Sun and other suns, to stars orbiting each other in Galaxies, I live in wonder and awe of the greatness of the Universe. That there could be so many stars and galaxies is enough to make you fall to your knees in amazement. To imagine that there are clusters of such size is beyond my imagination.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-1835038313553766312?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2007/05/galactic-wonderment.html</link><author>noreply@blogger.com (Connrs)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XRilllBTg4k/S-HHrf0WWzI/AAAAAAAABEg/PYlVFY55Oys/s72-c/galactic-wonderment.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-4894826237133123311</guid><pubDate>Tue, 01 May 2007 19:04:00 +0000</pubDate><atom:updated>2010-05-05T20:28:19.480+01:00</atom:updated><title>US Department of Laughs</title><description>&lt;p&gt;This is an article from &lt;a href="http://leech.dk"&gt;http://leech.dk&lt;/a&gt; that doesn&amp;#8217;t exist anymore. I needed to revive it:&lt;/p&gt; 
&lt;a name='more'&gt;&lt;/a&gt;
&lt;blockquote&gt; 
  &lt;p&gt;The US government has a new website, http://www.ready.gov/. It&amp;#8217;s another attempt at scare mongering in
  the style of the old &amp;#8220;duck and cover&amp;#8221; advice after WWII.&lt;/p&gt; 
  
  &lt;p&gt;The fun thing is that these pictures are so ambiguous they could mean anything! Here are a few
  interpretations.&lt;/p&gt; 
  
  &lt;ul&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you have set yourself on fire, do not run&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-1.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-1.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you spot terrorism, blow your anti-terrorism whistle. If you are Vin Diesel, yell really loud.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-2.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-2.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you spot a terrorist arrow, pin it against the wall with your shoulder&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-3.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-3.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you are sprayed with an unknown substance, stand and think about it instead of seeing a doctor.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-4.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-4.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Use your flashlight to lift the walls right off of you!&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-5.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-5.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; The proper way to eliminate smallpox is to wash with soap, water and at least one(1) armless hand.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-6.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-6.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Michael Jackson is a terrorist. If you spot this smooth criminal with dead, dead eyes, run the fuck away.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-7.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-7.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Hurricanes, animal corpses and the biohazard symbol have a lot in common. Think about it.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-8.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-8.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Be on the lookout for terrorists with pinkeye and leprosy. Also, they tend to rub their hands together manically.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-9.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-9.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If a door is closed, karate chop it open.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-10.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-10.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If your building collapses, give yourself a blowjob while waiting to be rescued.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-11.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-11.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Try to absorb as much of the radiation as possible with your groin region. After 5 minutes and 12 seconds, however, you may become sterile&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-12.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-12.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; After exposure to radiation it is important to consider that you may have mutated to gigantic dimensions: watch your head.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-13.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-13.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you&amp;#8217;ve become a radiation mutant with a deformed hand, remember to close the window. No one wants to see that shit.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-14.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-14.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; &amp;#8212; If you hear the Backstreet Boys, Michael Bolton or Yanni on the radio, cower in the corner or run like hell.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-15.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-15.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If your lungs and stomach start talking, stand with your arms akimbo until they stop.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-16.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-16.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you are trapped under falling debris, conserve oxygen by not farting.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-17.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-17.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; If you lose a contact lens during a chemical attack, do not stop to look for it.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-18.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-18.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Do not drive a stations wagon if a power pole is protruding from the hood.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-19.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-19.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; A one-inch thick piece of plywood should be sufficient protection against radiation.&lt;/li&gt; 
  &lt;li&gt;&lt;a href="/media/article/us-department-of-laughs-20.gif"  rel="article-gallery" title="" class="thickbox" &gt;&lt;img src="/thumbs/crop/article/us-department-of-laughs-20.gif"  class="inline" alt="" title=""&gt;&lt;/a&gt; Always remember to carry food with you during a terrorist attack. At least you&amp;#8217;ll be able to enjoy a nice coke and apple before you die.&lt;/li&gt; 
  &lt;/ul&gt; 
&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-4894826237133123311?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2010/04/us-department-of-laughs.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-4022498334086886142</guid><pubDate>Mon, 30 Apr 2007 20:34:00 +0000</pubDate><atom:updated>2010-05-05T21:01:17.286+01:00</atom:updated><title>Holiday to Majorca</title><description>&lt;p&gt;Had a bit of a trip to Majorca. Only 4 days. It was pretty nice. There was plenty to keep you occupied.&lt;/p&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Trips to Palma&lt;/li&gt;
&lt;li&gt;Boat rides around the island&lt;/li&gt;
&lt;li&gt;Bars&lt;/li&gt;
&lt;li&gt;Shops&lt;/li&gt;
&lt;li&gt;Bistros&lt;/li&gt;
&lt;li&gt;Bars…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There was a language barrier though; not the Spanish–English barrier you may have expected at first. It was a German resort. It meant that I needed to have two sets of greetings, farewells, and question responses in my head at all times. Waitresses generally expected me and the missus to be German because we didn’t look Spanish. It was quite amusing actually. I could understand but not respond. People kept asking me if I spoke German. But I didn’t know how to say, “no, but I can speak English and the odd bit of Spanish or French.”&lt;/p&gt;

&lt;p&gt;We missed the bus for the trips into Palma. We never timed it right and I didn’t want to hang about waiting for a bus all morning/afteroon. The boat ride was cool. Got a chance to just sit for an hour and watch the world go by. A favoured pastime of mine really.&lt;/p&gt;

&lt;p&gt;The flight there and back was pretty awesome. Flew over the Pyrénées and saw some pretty awesome ice–capped mountains.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-4022498334086886142?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2007/04/holiday-to-majorca.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-8163324688687166192</guid><pubDate>Fri, 20 Apr 2007 16:02:00 +0000</pubDate><atom:updated>2010-05-05T21:05:16.944+01:00</atom:updated><title>How old is too old?</title><description>&lt;p&gt;&lt;a href="http://bbc.co.uk/"&gt;The BBC&lt;/a&gt; and &lt;a href="http://channel4.com/"&gt;Channel 4&lt;/a&gt; have both launched, or are launching, TV on-demand services. As we all know, the BBC have decided to embrace an operating system agnostic policy and have decided to not alienate their OS X visitors (I’m not sure how well Linux users will be treated so we’ll have to wait and see).&lt;/p&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;p&gt;Channel 4 have decided to get it launched (&lt;a href="http://channel4.com/4od"&gt;4od&lt;/a&gt;) without embracing this agnostic/open approach. It seems likely, to me, that they will include mac users later on in its lifetime. Something tickled my fancy though. It seemed strange to me and I thought I would let you see.&lt;/p&gt;
&lt;p&gt;On the 4od error page, there is a message saying that you need Internet Explorer 5.5 or newer. How old is Internet Explorer 5.5! According to the wikipedia:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;Version 5, launched on March 18, 1999, and subsequently included with Windows 98 Second Edition and bundled with Office 2000, was another significant release that supported bi-directional text, ruby characters, XML, XSL and the ability to save web pages in MHTML format. (Windows 2000 included Internet Explorer 5.01 instead.) Version 5.5 followed in July 2000, improving its print preview capabilities, CSS and HTML standards support, and developer APIs; this version was bundled with Windows Me.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Internet_explorer"&gt;&lt;i&gt;Internet Explorer on Wikipedia&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;July 2000 is the date it was released. In my opinion, 5.5 was a terrible browser and is now 7 years old. Its successor is now 6 years old and has now been superseded. How old is too old? Did they accidentally build in support for IE5.5 or did somebody sit there in a board meeting and say, ‘we need to support people with a browser that is outdated and very possibly unsecure.’&lt;/p&gt;
&lt;p&gt;I think it’s too old. I know there of those of you out there saying, ‘but we need to support people who can’t afford these things.’ And I say Linux, Linux, Linux, Firefox, Firefox, Firefox. I have concerns about people who don’t upgrade their computer. Are you the same people who wait until the washing machine is on its last legs before replacing it? Do you still have a black and white TV? Will your TV support DVB when the UK switchover takes place?&lt;/p&gt;
&lt;p&gt;I think that content providers should me more concerned about supporting modern browsers rather than 7 year old messes. What are they thinking? On another note, how many of you still support Netscape 4?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-8163324688687166192?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2007/04/how-old-is-too-old.html</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-111280503894113193</guid><pubDate>Wed, 06 Apr 2005 16:07:00 +0000</pubDate><atom:updated>2005-04-06T17:30:38.943+01:00</atom:updated><title>Awaiting my Life Poster</title><description>&lt;p&gt;Having previously written about &lt;a href="http://shunuk.co.uk/archive/2005/02/02/1107375432" title="Life Poster"&gt;making my own life poster&lt;/a&gt;, a technique covered in &lt;a href="http://www.mikematas.com/blog/2005/01/how-to-make-life-poster.html" title="How to make a life poster"&gt;an article on Mike Matas' blog&lt;/a&gt;, I have been since unsuccessful in getting a print.&lt;/p&gt;
&lt;p&gt;From the beginning, I submitted a support ticket to Apple requesting that they give UK customers poster size prints. I heard nothing back so I moved on to Kodak and their &lt;a href="http://ofoto.co.uk/" title="ofoto UK"&gt;UK ofoto&lt;/a&gt; service. Ofoto also reported that they didn't offer poster sized prints to UK customers and made no other offers to appease me. I quickly moved on to Snapfish who seemed to be unable to handle the 30meg jpeg which I needed to upload. Various browsers were used (I even tried it from a friends XP machine to no avail) before I finally gave up. I was looking around the other day when I discovered &lt;a href="http://photobox.co.uk/" title="PhotoBox"&gt;PhotoBox&lt;/a&gt;. I didn't think that it would be possible but i signed up for a try. The upload page was a java applet with some very dodgy programming. It didn't work for me. I was about to give up until I noticed that they permitted alternative methods to send photos. &lt;acronym title="Multimedia Messaging Service"&gt;MMS&lt;/acronym&gt;, &lt;acronym title="File Transfer Protocol"&gt;FTP&lt;/acronym&gt;, and email. Clicking the link for ftp brought up a nice finder window for me to send my poster to. 10 minutes later and I have a full quality image on their server. And the rest is purely lovely.&lt;/p&gt;
&lt;p&gt;Oh and £20.49 ain't bad. And I know what to get for birthday presents now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-111280503894113193?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2005/04/awaiting-my-life-poster</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-111271715463511337</guid><pubDate>Tue, 05 Apr 2005 15:56:00 +0000</pubDate><atom:updated>2005-04-05T17:05:54.636+01:00</atom:updated><title>The man who…</title><description>&lt;p&gt;Shut down 538 domains for nearly half an hour today&lt;/p&gt;
&lt;p&gt;May I express my deep regret for shutting down so many websites today on a &lt;a href="http://textdrive.com/" title="Textdrve webhosting"&gt;well-known web host provider&lt;/a&gt; today.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I'm sorry because I didn't stop to look at what i was doing with all the goodies they trustingly let me wreak havoc with.&lt;/li&gt;
&lt;li&gt;I'm sorry because I shut down over 500 websites. I don't have any idea of the damage I may have caused their business - or pleasure.&lt;/li&gt;
&lt;li&gt;I'm sorry because of the inconvenience I created to the hard-working guys (and gals?) who put in a lot of effort to keep it going.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I really am sorry and ashamed. If you are one of those unlucky people who I cocked-things-up for then feel free to shout. I will gladly take your abuse.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-111271715463511337?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2005/04/man-who</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-110737543207269852</guid><pubDate>Wed, 02 Feb 2005 19:27:00 +0000</pubDate><atom:updated>2005-02-02T20:37:24.640Z</atom:updated><title>Life Poster</title><description>&lt;p&gt;Those of us who have already seen &lt;a href="http://mikematas.com/" title="Mike Matas&amp;#39; Weblog"&gt;Mike Matas'&lt;/a&gt; post about &lt;a href="http://www.mikematas.com/blog/2005/01/how-to-make-life-poster.html" title="Mike Matas: How to make a life poster"&gt;how to make a life poster&lt;/a&gt;, we will have spent several hours picking and choosing photographs from our &lt;a href="http://apple.com/ilife/iphoto/" title="Apple: iPhoto 5"&gt;iPhoto 5&lt;/a&gt; libraries and then used various tools to create a gigantic poster which we can let Apple print for us.&lt;/p&gt;
&lt;p&gt;For those of us who live in the &lt;acronym title="United Kingdom"&gt;UK&lt;/acronym&gt;, we will not have been able to order poster prints. I even &lt;a href="http://discussions.info.apple.com/webx?14@22.E7YnarVXNDY.7@.68a58fe0" title="Apple Discussions: UK print sizes"&gt;started a thread&lt;/a&gt; on the &lt;a href="http://discussions.info.apple.com/" title="Apple Discussions"&gt;Apple Discussions forum&lt;/a&gt; because I needed &lt;em&gt;closure&lt;/em&gt; on the subject.&lt;/p&gt;
&lt;p&gt;Shortly after posting, a helpful &lt;cite&gt;Vince Hodgson&lt;/cite&gt; said, &lt;q&gt;I have no connection with these folks, nor have I ever used them, but I notice [&lt;a href="http://snapfish.co.uk/" title="Snapfish: Online photo managment"&gt;Snapfish&lt;/a&gt;] do 20"x30".&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;The Snapfish service allows you to upload a JPEG image and order prints for it. First attempt failed. Whether or not it is because the file transfer was disrupted or because they have a maximum size limit I do not know. I'm hoping it will be successful. He also advised that I try going to a printing shop instead. I wanted to respond with two statements but I held my tongue. I chose to leave them here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I &lt;strong&gt;don't want&lt;/strong&gt; to have to move to order the prints, and&lt;/li&gt;
&lt;li&gt;have you &lt;strong&gt;seen&lt;/strong&gt; the prices at printing shops?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The whole point of letting Apple do it is because it's so bloody cheap. The local printing shop charges £50 for things like this.&lt;/p&gt;
&lt;p&gt;My next project is making a &lt;dfn&gt;&lt;acronym xml:lang="la" title="Curriculum Vitae"&gt;CV&lt;/acronym&gt;&lt;/dfn&gt; (which is the British way of saying resumé) using the iPhoto 5 book themes. A little bit of manipulation and you can have stylish, glossy, black, shiny portfolios for job applications. I might even blog the process… Nah.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-110737543207269852?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2005/02/life-poster</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-5587083.post-110566760214325969</guid><pubDate>Fri, 14 Jan 2005 01:49:00 +0000</pubDate><atom:updated>2005-01-14T01:54:41.050Z</atom:updated><title>Data collection and forms</title><description>&lt;p&gt;Through some simply tail biting behaviour on the WSG mailing list, I have prompted myself to write about forms and tables. There are many who say that the table element shouldn't be used within a form. I tend to agree but I wish to talk about situations where it is potentially useful. I also wish to mention usability of forms as well as accessibility.&lt;/p&gt;
&lt;h3&gt;Word definitions&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;Data&lt;/dt&gt;
&lt;dd&gt;The plural of Datum, although it often occurs as a singular noun, implies information (&lt;acronym title="latin"&gt;lat.&lt;/acronym&gt; &lt;q&gt;something given&lt;/q&gt;). It is used in the scientific world to refer to experimental, or investigated, information.&lt;/dd&gt;
&lt;dt&gt;Tabular&lt;/dt&gt;
&lt;dd&gt;Plane-like, flat. Like a table. In context it means a table data layout.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;There are numerous online web-sites which will offer similar descriptions. I tend to refer to either my Longman, and Oxford, English Dictionary and the Longman Guide to English Usage which is a most adequate companion to the former.&lt;/p&gt;
&lt;h3&gt;Tabular Data&lt;/h3&gt;
&lt;p&gt;A very interesting axiom which people quote is that, in HTML, &lt;q&gt;the table is for tabular data.&lt;/q&gt; It is a suitable definition; but also a definition prone to misinterpretation.&lt;/p&gt;
&lt;p&gt;If I could take you away, for a moment, from the world of web-sites, hypertext, binary, and your favourite &lt;acronym title="Integrated Development Environment"&gt;IDE&lt;/acronym&gt; and show you it from a paper perspective. In the real world, at university (oh the irony is abroad tonight), scientists have a spectrum in which they operate. At the one end is the data collation process, in the centre is the analysis, and ultimately the presentation of the information.&lt;/p&gt;
&lt;p&gt;Depending on your field, you will collect information in different ways. Psychologists no doubt employ written questions with informed responses in the space below the question. Statisticians have long sheets with tallies dashing across their pages. Other scientists will often have charts with room for dots, letters, numbers. Some other scientists have sheets and sheets of scribble and junk.&lt;/p&gt;
&lt;p&gt;There is only one definite, when it comes to using tables. That is the results. Much numeric information can be better expressed as a table. Accompanied by a graph, chart, or histogram, the results can be reviewed by others for constructive criticism. Other results can be then discussed. Most of the time, however, they can be computed and organised with relationships expressed in columns and rows.&lt;/p&gt;
&lt;p&gt;The haziness arrives when we look at data retrieval. Many people believe that data input should be considered to be tabular by nature automatically. This is simply not true. I hate hearing, &lt;q&gt;but it's semantic&lt;/q&gt;. What you need to do, before ploughing ahead, is look at how data collation methods are employed.&lt;/p&gt;
&lt;h3&gt;Data Collation&lt;/h3&gt;
&lt;p&gt;There are different methods used in data collation. I want to touch lightly upon them.&lt;/p&gt;
&lt;p&gt;Questionnaires are used often in situations where information may not be entirely numeric. If you are collecting addresses, names, opinions. Anything where extra information can be helpful. Some data quite possibly could be numeric but it still should be collected in a standard question and answer form with potential for taking further information. This information is collected on several subjects at separate times in a frequent manner over a short period. I call the example of the gauntlet I run at least once a week when I am attacked by the clipboard army wanting to get my name and address on a database to send me credit cards and catalogue accounts. These people will often address many people a day (with varying levels of success) and collect the information on individual pages for each person. The information will often be of a discrete, or non-continuous, form.&lt;/p&gt;
&lt;p&gt;Charts are often used in repetitive processes in which the subject, or group of subjects, is often the same each time. Classroom and work registers are an example of such a data collection chart. Other situations include a chart to record temperature readings from a number of freezers in a restaurant kitchen. The subject remains the same on each row with information taken each day and added to the following column. Why is it collected this way? For practical reasons. It serves a purpose that the data collection medium is also the results. For this reason, the information is collected in a tabular format. The information is often collected in a low frequency over a relatively long period. The data will mostly be continuous even if it has rounding errors.&lt;/p&gt;
&lt;p&gt;Looking at this, there are justifications for using a table to represent inputs. But can we honestly tell which? I often see people wanting to use tables because they want to use some dynamic forms which confuse the hell out of me. I cite the example of someone wanting to use a select element as the label for an input when indicating a method of contact. This just will not do.&lt;/p&gt;
&lt;h3&gt;Back to the web&lt;/h3&gt;
&lt;p&gt;Getting back to the World Wide Web, I want to look at data collection situations and how to justify it. Usability, accessibility and validity. The pillars of our web standards world. Different people take different routes believing them all to be worthy. I want to try to offer you all three.&lt;/p&gt;
&lt;p&gt;Let's look at a number of different data collection activities:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User registration,&lt;/li&gt;
&lt;li&gt;forum posting,&lt;/li&gt;
&lt;li&gt;group travel insurance booking,&lt;/li&gt;
&lt;li&gt;those daft quizzes,&lt;/li&gt;
&lt;li&gt;an online weight watcher form.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;User registration&lt;/h4&gt;
&lt;p&gt;User registration is a simple question and answer situation. Discrete data such as names, addresses, telephone numbers, email addresses are very simple and a basic form will suffice:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;form method="post" action="/registration"&amp;gt;
 &amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;Your personal details&amp;lt;/legend&amp;gt;
  &amp;lt;label for="salutation" title="Your preferred title"&amp;gt;&amp;lt;/label&amp;gt; &amp;lt;select&amp;gt; … &amp;lt;/select&amp;gt;
  &amp;lt;label for="forename" title="Your first name"&amp;gt;Forename&amp;lt;/label&amp;gt; &amp;lt;input type="text"…&amp;gt;
 &amp;lt;/fieldset&amp;gt;
 &amp;lt;fieldset&amp;gt;
  &amp;lt;legend&amp;gt;Contact details&amp;lt;/legend&amp;gt;
  &amp;lt;label for="email" title="Your email address"…&amp;gt;
 &amp;lt;/fieldset&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looking at this example form you will see that it makes use of several elements. The &lt;code&gt;fieldset&lt;/code&gt; element is used to group several related inputs together. Various parts of the name form a set and a contact details set could include email, snail mail and telephone numbers. Now I personally use the &lt;code&gt;p&lt;/code&gt; element to address different inputs within a form. Feel free to use your favourite block element, or inline element whilst it is within the &lt;code&gt;fieldset&lt;/code&gt; element, such as the &lt;code&gt;div&lt;/code&gt; element. I know of one man who prefers the unordered list for forms. The &lt;code&gt;legend&lt;/code&gt; element provides information about the relationship between the different information within a fieldset. The &lt;code&gt;label&lt;/code&gt; element is absolutely critical for providing information about the input. Without it, how would anyone know what information they are to provide. I have mentioned these because they are important for accessibility. To validate against certain &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt; document type definitions (and I am thinking about strict implementations only) you should aim to keep your inputs contained within block elements as they are an inline element. The &lt;code&gt;fieldset&lt;/code&gt; element is the obvious choice but you may wish to utilise other elements where is relevant (as mentioned, I use the &lt;code&gt;p&lt;/code&gt; element on occasion).&lt;/p&gt;
&lt;h4&gt;Forums&lt;/h4&gt;
&lt;p&gt;Forum posting is possibly simpler. Many forums have already stored your registered username and you merely need to type in your post into the textarea element. Possibly providing a title to your post. I won't bother giving an example. If you've read this far, you can do this already.&lt;/p&gt;
&lt;h4&gt;Group insurance&lt;/h4&gt;
&lt;p&gt;Group travel insurance booking is the subject which spurred me on with regards to writing this piece. Imagine a situation where you wish to book travel insurance for a pub trip abroad. The insurance company wants the details of each person and there are 25 people. The question which was asked on the mailing list was, &lt;q&gt;can I use a form to create the form?&lt;/q&gt; Initially, the questioner could probably make it a valid &lt;acronym title="HyperText Markup Language"&gt;HTML&lt;/acronym&gt; document and doubly accessible. Even though the information is actually discrete, each table row could represent a person and each cell would be a different piece of information. The cell would need to contain both the input and the label elements. The reason this was suggested was because it would be simpler than having a fieldset with inputs for each person which would take up some serious scroll space on a page.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;form method="post" action="/groupinsure"&amp;gt;
&amp;lt;table summary="…"&amp;gt;
&amp;lt;caption&amp;gt;Group insurance registration&amp;lt;/caption&amp;gt;
&amp;lt;thead&amp;gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Full name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;DOB&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Address&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;
&amp;lt;/thead&amp;gt;
&amp;lt;tfoot&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan="3"&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/tfoot&amp;gt;
&amp;lt;tbody&amp;gt;
 &amp;lt;tr&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="name1" title="Name for traveller 1"&amp;gt;Name&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="dob1" title="DOB for traveller 1"&amp;gt;DOB&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="addr1" title="Name for traveller 1"&amp;gt;Address&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
 &amp;lt;/tr&amp;gt;
 &amp;lt;tr&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="name1" title="Name for traveller 2"&amp;gt;Name&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="dob1" title="DOB for traveller 2"&amp;gt;DOB&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
  &amp;lt;td&amp;gt;&amp;lt;label for="addr1" title="Name for traveller 2"&amp;gt;Address&amp;lt;/label&amp;gt; &amp;lt;input type="text" …&amp;gt;&amp;lt;/td&amp;gt;
 &amp;lt;/tr&amp;gt;
&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I spent some time on it I could make a fully accessible (to the specification) form. With respect to accessibility, its poppy-tosh. Imagine if you saw that repeated for each person. The example above only asks for a small amount of information and could include a multitude of additional cells. I would be clicking the famous &lt;a href="http://useit.com/" title="J Nielsen's Alertbox"&gt;Nielsen&lt;/a&gt; back-button right away. Imagine, for example, that you have separated the registration information into individual fieldsets much like the user registration example above. Then you construct a self-posting form which presents a new, and blank, user registration form each time. You could use &lt;acronym title="Hypertext PreProcessor"&gt;PHP&lt;/acronym&gt; sessions or even keep the form data as hidden fields within the form until the number of registered users tallies with the number specified initially. If you have trouble visualising this idea then let me know and I'll elaborate upon it.&lt;/p&gt;
&lt;h4&gt;Online quizzes&lt;/h4&gt;
&lt;p&gt;I know that both you and I hate them. That doesn't mean I don't know you haven't filled about ten of them in. Possibly more. It depends how much you like memes. Most of them consist of approximately 20 to 30 questions with varying levels of commitment to something.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;form&amp;gt;
&amp;lt;fieldset&amp;gt;
&amp;lt;legend&amp;gt;Do you like owls?&amp;lt;/legend&amp;gt;
&amp;lt;ol&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;label for="owls-love" title="Yes i love owls"&amp;gt;Very much&amp;lt;/label&amp;gt; &amp;lt;input type="radio" name="owls" id="owls-love"&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;label for="owls-yes" title="Yes i like owls"&amp;gt;Yes&amp;lt;/label&amp;gt; &amp;lt;input type="radio" name="owls" id="owls-yes"&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;label for="owls-ok" title="Owls are ok"&amp;gt;No, but I don't feel aggressive towards them&amp;lt;/label&amp;gt; &amp;lt;input type="radio" name="owls" id="owls-ok"&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;
&amp;lt;/fieldset&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a reasonable method of applying markup to something like this. I can't really comment on radio inputs because I tend to avoid them. I would only use them for multiple choice answers which could have a small discrete range of approximately 6. The select element would be a good choice for anything larger as it doesn't visually aggrieve the page. I can't comment on how a screen-reader would vocalise the output but would welcome any input regarding the differences between how a radio input group and select options are spoken.&lt;/p&gt;
&lt;h4&gt;Online weight-watcher form&lt;/h4&gt;
&lt;p&gt;I know of online weight watching schemes and believe that weight and diet and several variables are recorded on a regular basis. There could possibly lie a small inkling of a chance that a grid layout would be applicable. It's incredibly tenuous, I know, but I'm trying to logically look at tabular data collation and how it can apply to HTML. If it were to be marked up in this way, there would need to be label elements used to indicate the cell inputs. I would advise looking at &lt;a href="http://456bereastreet.com/" title="Roger Johansson's website"&gt;Roger Johansson&lt;/a&gt;'s article on the table element called &lt;a href="http://www.456bereastreet.com/archive/200410/bring_on_the_tables/" title="Roger Johansson: Bring on the tables"&gt;Bring on the tables&lt;/a&gt; for information on scope and helping to show further relationships. I'm not going to elaborate on this example because I think you can follow me. If you don't understand, I shall further update this text to describe it.&lt;/p&gt;
&lt;h4&gt;Conclusions&lt;/h4&gt;
&lt;p&gt;Data collation is a discipline which can help us create more usable forms. Look at the information which you need to collect. Do you need it? What range of information do you need. Is the data continuous, discrete, or continuous data grouped into discrete ranges? How often will it be collected? How many subjects are there? Will multiple pages make it easier to process? Are you imagining a specific style? Would some simple CSS do the same job? Is the input likely to be several strings, or alphanumeric characters.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5587083-110566760214325969?l=blog.connrs.me.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.connrs.me.uk/2005/01/data-collection-and-forms</link><author>noreply@blogger.com (Connrs)</author><thr:total>0</thr:total></item></channel></rss>