<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AlastairC &#187; Web Apps</title>
	<atom:link href="http://alastairc.ac/category/web-apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://alastairc.ac</link>
	<description>Kything web interactions</description>
	<lastBuildDate>Thu, 12 Apr 2012 22:34:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Bristol Council CMS discussion</title>
		<link>http://alastairc.ac/2010/09/bristol-council-cms-discussion/</link>
		<comments>http://alastairc.ac/2010/09/bristol-council-cms-discussion/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 13:31:21 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Real life]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[councils]]></category>
		<category><![CDATA[procurement]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=711</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2010/09/IMG_0673-150x122.jpg" alt="Presentation slide." width="150" height="122" class="alignleft size-thumbnail wp-image-712" />I attended the Roundtable Discussion about Bristol City Council’s Future Web Platform, an interesting insight into how local authorities think about their web presence. Something about the presentations &#38; process jarred with me, and it took a little while to work out what the problem was: <strong>the assumptions</strong>. I've dissected some of them and proposed new ones.]]></description>
			<content:encoded><![CDATA[<p>I attended the <a href="http://bccwww.wordpress.com/2010/08/10/roundtable/">Roundtable Discussion</a> about Bristol City Council’s Future Web Platform, an interesting insight into how local authorities think about their web presence. Something about the presentations &amp; process jarred with me, and it took a little while to work out what the problem was: <strong>the assumptions</strong>.</p>
<p>I&#8217;d glanced through the <a href="http://bccwww.files.wordpress.com/2010/08/func-andtech-requirements-cms.pdf">requirements</a>, which were relatively good for a Council, but obviously include everything and the kitchen sink. The presentation gave a brief outline, these are some key slides for the requirements:<br />

<a href='http://alastairc.ac/2010/09/bristol-council-cms-discussion/img_0673/' title='Presentation slide 1'><img width="150" height="122" src="http://alastairc.ac/wp-content/uploads/2010/09/IMG_0673-150x122.jpg" class="attachment-thumbnail" alt="Website functionality, including ability to create multiple website, personalisation, forms engine, multi-lingual." title="Presentation slide 1" /></a>
<a href='http://alastairc.ac/2010/09/bristol-council-cms-discussion/img_0674/' title='Presentation slide 2'><img width="150" height="121" src="http://alastairc.ac/wp-content/uploads/2010/09/IMG_0674-150x121.jpg" class="attachment-thumbnail" alt="Web presence: web 2.0 functionality, video &amp; audio, alerts and messages." title="Presentation slide 2" /></a>
<a href='http://alastairc.ac/2010/09/bristol-council-cms-discussion/img_0675/' title='Presentation slide 3'><img width="150" height="120" src="http://alastairc.ac/wp-content/uploads/2010/09/IMG_0675-150x120.jpg" class="attachment-thumbnail" alt="Technologies: Java or Microsoft, 5 year roadmap, open standards enabling interoperability." title="Presentation slide 3" /></a>
</p>
<p>Apologies for the picture quality, check out the full presentations on <a href="http://bccwww.wordpress.com/2010/09/13/presentations-from-fridays-event/">Bristol City Council&#8217;s blog</a>. (Some of it is available on <a href="http://www.connectingbristol.org/2010/09/09/live-webcast-roundtable-discussion-about-the-councils-future-web-platform/">Connecting Bristol</a> in video.)</p>
<p>I think these requirements will lead the Council down just the same path they are trying to escape. Particularly:</p>
<ul>
<li><strong>Using Java</strong> or Microsoft (internally support technologies)</li>
<li>Having a <strong>5 Year roadmap</strong></li>
<li><strong>Over-arching requirements</strong> that affect all other functionality; such as being multi-lingual, personalised, and accessible. Assuming that each of the specific functionalities (e.g. forum) has to meet those over-arching requirements (which is implied), they create an enormous overhead. Not that they are unachievable, but the chances of a traditional CMS being able to meet them across all the specific functionalities are non-existant.</li>
</ul>
<p>Although not in the slides, there are two implicit requirements:</p>
<ul>
<li><abbr title="Bristol City Council">BCC</abbr> do not want to be trapped using a niche product with limited suppliers.</li>
<li>The &#8216;solution&#8217; would be a single product</li>
</li>
<p>Unfortunately there isn&#8217;t a solution that will meet those requirements.</p>
<h2>Java</h2>
<p><strong>NB:</strong> There was no-mention of Microsoft &#8216;solutions&#8217; at the meeting, so I&#8217;m assuming <abbr title="Bristol City Council">BCC</abbr> don&#8217;t believe one would be open or cheap enough.</p>
<p>I would ditch this requirement for several reasons:</p>
<dl>
<dt>It assumes people unfamiliar with the website&#8217;s development will edit it.</dt>
<dd>Even if a Java CMS were used, why would Council staff mess with the CMS? Perhaps if the internal staff are involved in the development work it would be ok. But then, why use an external supplier at all? Assuming that the Council physically host it then they can and should administer the system, but it doesn&#8217;t need to be in Java for that. I would separate the development from the (hosting) administration, and have a contract with the developers for support for the application(s).</dd>
<dd>Another option would be to hand-off the hosting to the company developing the website (or their hosting partner).</dd>
<dt>Java isn&#8217;t used by people creating modern websites.</dt>
<dd>I have nothing against Java, and it is eminently suitable for many purposes. Unfortunately quick development of a modern website is not one of them. I recently looked around for a Java framework that produced good, clean, accessible HTML. There are some promising developments (e.g. <a href="http://www.grails.org/">Grails</a>), but as a general rule Java developers/development doesn&#8217;t tend to care about the front-end. For example, a client was considering the Java Icefaces framework, who&#8217;s <a href="http://www.icefaces.org/main/ajax-java/jsf-components.iface">knowledge of accessibility</a> is years behind current thinking.</dd>
<dt>How future proof is Java?</dt>
<dd>Another count against Java (especially in a 5 year time frame) is whether it will be open. Since Oracle bought Sun, and especially since they <a href="http://news.cnet.com/8301-30684_3-20013546-265.html">sued Google over Java</a>, Java&#8217;s future direction is in doubt. Not that I think <abbr title="Bristol City Council">BCC</abbr> would have a legal issue, but Java could be a legacy technology in 5 years.</p>
</dd>
<dt>Java is inherently a heavy technology.</dt>
<dd>We used to use Java for <a href="http://www.nomensa.com/">our</a> CMS, and using the <abbr title="Java Virtual Machine">JVM</abbr> plus database and webserver is a lot for a server. Compared to a LAMP stack (or our preferred Linux/Nginx/Postgres/Python) you won&#8217;t get a lot of bang for your buck. A modern website tends to integrate multiple streams (e.g. RSS), databases of things, and related components, and if you look at the big players (Yahoo, Facebook etc.) they aren&#8217;t using Java as their primary technology. Neither are the products catering to small players (e.g. WordPress &#038; Drupal)</p>
</dd>
</dl>
<h2>5 year roadmap</h2>
<p>This requirement is inherently going to discriminate against open source solutions. The nature of open source development is distributed and reactive, there isn&#8217;t a &#8220;guy in marketing&#8221; who will draw up a customer friendly roadmap.</p>
<p>You need to either to find a partner company with a good track record who looks like they will be around in 5 years, or go into the initial development assuming that you&#8217;ll have to be able to move off the solution with a 1 year turn-around.</p>
<p>I also don&#8217;t think that proprietary solutions are realistically better here, it&#8217;s just as likely they&#8217;ll get bought out or go under. The difference between an open source CMS dying out (like <a href="http://forge.osor.eu/projects/aplaws/">APLAWS</a>) and a proprietary one going under is negligible, you&#8217;d have to migrate in both cases.</p>
<h2>Overarching Requirements </h2>
<p>These are useful and necessary requirements (e.g. accessibility), I&#8217;m not suggesting they are ditched, just that combined with the desired functionality, the Council should not be looking at one product.</p>
<h2>Start at a lower level</h2>
<p>Council (in fact most) procurement starts with the assumption that you can draw up a list of requirements, and assess a series of products and see how well they match. CMS products (commercial and open source) are built to meet these tick-lists.</p>
<p>The thing is, <strong>the more boxes a product can tick, the less likely it is going to do it well</strong>. You know that joke about consultants? They can be quick, good, cheap: pick any two.</p>
<p>There is a similar &#8216;law&#8217; of content management systems, pick two out of:</p>
<ul>
<li>Quick to implement</li>
<li>Flexible functionality</li>
<li>Have an easy to use interface</li>
</ul>
<p>Take WordPress as a well known example, it&#8217;s got a reasonably good interface, and it can be very quick to implement. However, it isn&#8217;t going to be flexible enough for the Council&#8217;s requirements (e.g. changing the workflow).</p>
<p>Drupal can be quick to implement (for sites which have the same assumptions that Drupal makes), it is quite flexible, but it&#8217;s a pig to use for non-technical authors. (You can modify the interface, but then it&#8217;s not quick to implement.)</p>
<p>Having done some Reddot development, that is fairly quick to implement a site, and the interface for authors is ok, but extending it can be a nightmare. </p>
<h2>New assumptions</h2>
<p>So what to do? The most important change in assumptions are:</p>
<ul>
<li><strong>The website will be highly customised</strong> and that a traditional CMS is not going to meet the council&#8217;s requirements.</li>
<li>Start with only the core requirements to provide the most important services, and a roadmap.</li>
</ul>
<p>I&#8217;ve done a lot of user-research with local authorities, and if you don&#8217;t get the basics right (easy access to core services) all the fancy &#8216;Web 2.0&#8242; style functionality is wasted.</p>
<p>My recommendation for technical direction would be to use a framework based approach. Use a lower-level framework like <a href="http://www.djangoproject.com/">Django</a>, <a href="http://rubyonrails.org/">Ruby on Rails</a> or <a href="http://www.asp.net/mvc">MS MVC</a>. These were created as toolsets for creating modern web sites / applications. Some companies have CMS type products that provide an easy-to-use interface that sit on top, just be careful they retain the flexibility of the underlying framework. The key is that you start with a core website and build exactly what you need.</p>
<p>Another approach would be to assume the use of several technologies. For example, use Drupal as the main tool for the website, but assume that there will be an extended development time for customisation, and other products will be used, skinned and customised.</p>
<p>I prefer the framework approach, as you spend less time working around the assumptions of the CMS, but it depends on the situation. Let&#8217;s hope the Council can get past the standard thinking.</p>
<hr />
<h2>My biases</h2>
<p>I think everyone at the meeting has some inherent bias or agenda, I&#8217;ll make mine explicit:<br />
I work for a company (<a href="http://www.nomensa.com">Nomensa</a>) that does work with local authorities (and others) in the area of user-research, web design and content management. The usual disclaimer that these are my words applies.</p>
<p>So in experience terms, I&#8217;ve run or seen lots of usability testing, Information Architecture sessions, and focus groups of citizens/customers for local authorities. I&#8217;ve also been involved with many CMS-migration / redesign projects at local authorities (and other markets).</p>
<p>I&#8217;ve also spearheaded development of our (DJango based) Content Management System Defacto (website updating soon), which was born out of frustration with inflexible and inaccessible CMS products.</p>
<p>However, what I&#8217;ve written above is my honest assessment, we haven&#8217;t bid for the website and I don&#8217;t have any commercial interest at this time, just a Bristonian&#8217;s interest!</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2010/09/bristol-council-cms-discussion/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Send to my&#8230; fridge?</title>
		<link>http://alastairc.ac/2010/09/send-to-my-fridge/</link>
		<comments>http://alastairc.ac/2010/09/send-to-my-fridge/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 23:37:35 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Usability / IA]]></category>
		<category><![CDATA[Web APIs]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[boxee]]></category>
		<category><![CDATA[huffduffer]]></category>
		<category><![CDATA[instapaper]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=688</guid>
		<description><![CDATA[<img src="/wp-content/uploads/2010/09/boxee-example-150x84.png" alt="" title="Boxee screenshot" width="150" height="84" class="alignleft size-thumbnail wp-image-693" />I've noticed a trend in how I use the internet now, where I use different aspects of it in different contexts. In my browser there is a set of bookmarks in a folder called "Send to", which allows me to direct resources to different places.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve noticed a trend in how I use the internet now, where I use different aspects of it in different contexts. In my browser there is a set of bookmarks in a folder called &#8220;Send to&#8221;, which allows me to direct resources to different places.</p>
<p>Admittedly I&#8217;m on the geeky side; I&#8217;ve got lots of gadgets. However, I&#8217;m have very lazy/efficient habits and would rather spend several hours setting something up if it saves me time in the long run. The main things I have setup are:</p>
<ul>
<li><a href="http://delicious.com/">Delicious</a></li>
<li><a href="http://www.instapaper.com/">Instapaper</a></li>
<li><a href="http://huffduffer.com/">Huffduffer</a></li>
<li><a href="http://boxee.tv">Boxee</a></li>
</ul>
<p>What that actually equates to is that I use those resources on my:</p>
<ul>
<li>Laptop (working)</li>
<li>iPad (reading)</li>
<li>iPod (listening)</li>
<li>TV (watching)</li>
</ul>
<p>The key is that it is easy, and largely automated. If I see an audio file on a webpage, I can use a bookmarklet to &#8216;huffduff&#8217; it. iTunes will then download it automatically and it appears on my iPod the next time I sync.</p>
<p>Boxee and Instapaper are even quicker, as external services they sync over wireless. For example, a friend sends me a funny YouTube video whilst I&#8217;m at work, I hit &#8220;send to Boxee&#8221;. </p>
<p>Next time I&#8217;m lounging on the sofa, I open up Boxee on the television (via the Mac Mini) and up pops the funny video in my list. (I do recommend watching the <a href="http://www.youtube.com/watch?v=U9lFe504i2s">James Galea card trick</a> by the way.)</p>
<p><a href="/wp-content/uploads/2010/09/boxee-example.png"><img src="/wp-content/uploads/2010/09/boxee-example.png" alt="Screen shot from Boxee that shows a listing of online videos I&#039;ve added." title="Boxee example" class="size-full wp-image-693" /></a></p>
<p>The key is not the device per-se, it&#8217;s the situation. I can read/watch/listen on my laptop, but I&#8217;d rather send funny videos to my living room, and read long articles away from my computer.</p>
<h2>Where will it go from here?</h2>
<p>I can only see this type of functionality becoming more widespread. Google has already added &#8216;Send to mobile&#8217; to the Chrome browser for sending to an Android phone. It feels like when Jack Bower (in 24) says <q>Send it to my screen!</q>, but more fun.</p>
<p>I picked on fridges for the title of this post because it is the household appliance that was always touted as being internet enabled someday, but could this be useful soon?</p>
<p>Apply the &#8220;send to&#8221; principle to e-commerce and I could see something online and order it to my fridge. That doesn&#8217;t sound very practical. This example would be better the other way around, so that when I am at my fridge, I&#8217;d know I&#8217;ve run out of something and it has a &#8220;send to&#8221; feature that goes straight to a shopping list on my computer, or even to the supermarket.</p>
<p>If you are creating an online service, the simplest implementation at the moment is to create bookmarklets for people to &#8216;send to&#8217; your service. You can win over a lot of users by not making them think, now you can also enable them to use the most appropriate device for their context.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2010/09/send-to-my-fridge/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An unimportant hole in Section 508?</title>
		<link>http://alastairc.ac/2009/07/an-unimportant-hole-in-section-508/</link>
		<comments>http://alastairc.ac/2009/07/an-unimportant-hole-in-section-508/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 22:16:00 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[cms]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=497</guid>
		<description><![CDATA[Mike Paciello recently pointed to an article that <q cite="http://twitter.com/mpaciello/statuses/2557091286" title="mpaciello's tweet">says Section 508 inefficient for CMS and web development tools</q>. This matches what I would expect, however, I discovered the article has it the opposite way round.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paciellogroup.com/">Mike Paciello</a> recently pointed to an article that <q cite="http://twitter.com/mpaciello/statuses/2557091286" title="mpaciello's tweet">says Section 508 inefficient for CMS and web development tools</q>. This matches what I would expect, however, I discovered the article has it the opposite way round.</p>
<p>According to Peter Abrahams, Section 508:</p>
<blockquote cite="http://www.it-analysis.com/blogs/Abrahams_Accessibility/2009/7/a_hole_in_section_508.html" title="A hole in section 508, by Peter Abrahams"><p>only considers the accessibility of the product and not the accessibility of any outputs of the product. This means that website development tools, Content Management tools, document creation tools or any other tool that produces output that may be viewed electronically can conform to section 508 but none of their outputs do. </p></blockquote>
<p>A few years ago most <abbr title="Content Management System">CMS</abbr> products were atrocious both front and back end, providing hard-coded tag-soup and inaccessible interfaces. (From a personal point of view, that is what lead to the development of <a href="http://www.defacto-cms.com">Defacto</a>, consider that my bias.)</p>
<p>However, most <abbr title="Content Management System">CMS</abbr>s have improved on the front-end, allowing developers to create websites that don&#8217;t break all the <a href="http://www.w3.org/TR/WCAG20/"><abbr title="Web Content Accessibility Guidelines">WCAG</abbr> guidelines</a>. (Although often they put a lot of obstacles in the way, and developers don&#8217;t always manage to get around them.) </p>
<p>What is almost a universal failure in the <abbr title="Content Management System">CMS</abbr> market is the authoring interfaces. I&#8217;ve tested many, and the bigger the name, the worse the accessibility of the back-end is.</p>
<p>Maybe things are different in the US market, but somehow I doubt it. CMS vendors have conglomerated quickly in the last few years, and interface quality does not seem to be the deciding factor in which survive. Generally the accessibility of the authoring interface is overlooked by almost every buyer, except the more stringent Government or Disability Charities, who then discover they have no choice but to buy inaccessible software.</p>
<p>Perhaps there is a hole in the Section 508 laws, but the result isn&#8217;t what Mr Abrahams has suggested, and I&#8217;d recommend checking into the lesser know but just as important <a href="http://www.w3.org/WAI/intro/atag.php">Authoring Tools Guidelines</a>.</p>
<p>The article implies that <abbr title="Content Management System">CMS</abbr> vendors have no need to worry about the websites that are produced by their product. However, what has been effective is the commercial pressure of their clients demanding the ability to create accessible websites. Publicly facing websites are highly visible, if only that sort of pressure could be applied to the back-end interfaces, we&#8217;d have many better CMS products.</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2009/07/an-unimportant-hole-in-section-508/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Django &#8211; Local vs Live error</title>
		<link>http://alastairc.ac/2009/04/django-local-vs-live-error/</link>
		<comments>http://alastairc.ac/2009/04/django-local-vs-live-error/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 16:07:18 +0000</pubDate>
		<dc:creator>AlastairC</dc:creator>
				<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://alastairc.ac/?p=468</guid>
		<description><![CDATA[<p>I came across a strange error using Django when putting something live that I couldn&#8217;t find via google, so hopefully this will help anyone in the same position.  When I put some new code live (to allow members to enter events), it errored with:</p>
'str' object has no attribute '_default_manager'<p>&#8230;</p>]]></description>
			<content:encoded><![CDATA[<p>I came across a strange error using Django when putting something live that I couldn&#8217;t find via google, so hopefully this will help anyone in the same position.  When I put some new code live (to allow members to enter events), it errored with:</p>
<pre>'str' object has no attribute '_default_manager'</pre>
<p>On my local development server it was working fine, when the payment was confirmed the event saved the relation to each member.</p>
<p>The relevant bits of the models were:</p>
<pre>class Event(models.Model):
   ...
   entrants = models.ManyToManyField("members.Member", blank=True, null=True)

class Payment(models.Model):
   ...
   events = models.ManyToManyField("events.event", blank=True, null=True)</pre>
<p>Can you see the error? The views worked fine locally on the development server, saving the payment and adding the members to the entrants list of the event.</p>
<p>However, on the live site (Apache &amp; mod_python), it would give a type error:</p>
<pre>'str' object has no attribute '_default_manager'</pre>
<p>Confused, <a href="http://botland.oebfare.com/logger/django/2009/4/6/15/#19:20-1330926">I asked on IRC</a>, but apparently this sort of error is usually from having different code between local and live. I&#8217;m running from an SVN repository, this didn&#8217;t seem likely.</p>
<p>The other clue I had was that the admin area would give me an error when trying to look at payments. So, looking carefully at the model I spotted my mistake:</p>
<pre>events = models.ManyToManyField("events.<strong>e</strong>vent", blank=True, null=True)</pre>
<p>Capitalisation! The &#8216;Event&#8217; is the model name, and should be capitalised.</p>
<p>It&#8217;s just strange that the local server didn&#8217;t pick up the same issue?</p>
]]></content:encoded>
			<wfw:commentRss>http://alastairc.ac/2009/04/django-local-vs-live-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

