<?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>Alan's blog &#187; firefox</title>
	<atom:link href="http://www.alandix.com/blog/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alandix.com/blog</link>
	<description>just starting ...</description>
	<lastBuildDate>Wed, 08 Feb 2012 18:53:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>tread lightly &#8212; controlling user experience pollution</title>
		<link>http://www.alandix.com/blog/2012/01/14/tread-lightly-controlling-user-experience-pollution/</link>
		<comments>http://www.alandix.com/blog/2012/01/14/tread-lightly-controlling-user-experience-pollution/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 08:40:15 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[HCI and usability]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[HCI]]></category>
		<category><![CDATA[human computer interaction]]></category>
		<category><![CDATA[networks]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=802</guid>
		<description><![CDATA[When thinking about usability or user experience, it is easy to focus on the application in front of us, but the way it impacts its environment may sometimes be far more critical. However, designing applications that are friendly to their environment (digital and physical) may require deep changes to the low-level operating systems. I&#8217;m writing [...]]]></description>
			<content:encoded><![CDATA[<p>When thinking about usability or user experience, it is easy to focus on the application in front of us, but the way it impacts its environment may sometimes be far more critical.  However, designing applications that are friendly to their environment (digital and physical) may require deep changes to the low-level operating systems.</p>
<p>I&#8217;m writing this post effectively &#8216;offline&#8217; into a word processor for later upload. I sometimes do this as I find it easier to write without the distractions of editing within a web browser, or because I am physically disconnected from the Internet.  However, now I am connected, and indeed I can see I am connected as a FTP file upload is progressing, it is just that anything else network-related is stalled.</p>
<p>The reason that the FTP upload is &#8216;hogging&#8217; the network is, I believe, due to a quirk in the UNIX scheduling system, which was, paradoxically, originally intended to improve interactivity.</p>
<p>UNIX, which sits underneath Mac OS, is a multiprocessing operating system running many programs at once.  Each process has a priority, called its &#8216;<a href="http://docstore.mik.ua/orelly/unix3/upt/ch26_07.htm" target="_blank">niceness</a>&#8216;, which can be set explicitly, but is also tweaked from moment to moment by the operating system.  One of the rules for &#8216;tweaking&#8217; it is that if a process is IO-bound, that is if it is constantly waiting for input or output, then its niceness is decreased, meaning that it is given higher priority.</p>
<p>The reason for this rule is partly to enhance interactive performance in the old days of command line interfaces; an interactive program would spend lots of time waiting for the user to enter something, and so its priority would increase meaning it would respond quickly as soon as the user entered anything. The other reason is that CPU time was seen as the scarce resource, so that processes that were IO bound were effectively being &#8216;nicer&#8217; to other processes as they let them get a share of the precious CPU.</p>
<p>The FTP program is simply sitting there shunting out data to the network, so is almost permanently blocked waiting for the network as it can read from the disk faster than the network can transmit data.  This means UNIX regards it as &#8216;nice&#8217; and ups its priority.  As soon as the network clears sufficiently, the FTP program is rescheduled and it puts more into the network queue, reads the next chunk from disk until the network is again full to capacity.  Nothing else gets a chance, no web, no email, not even a network trace utility.</p>
<p>I&#8217;ve seen the same before with a database server on one of Fiona&#8217;s machines &#8212; all my fault.  In the MySQL manual it suggested that you disable indices before large bulk updates (e.g. ingesting a file of data) and then re-enable them once the update is finished as indexing is more efficient on lots of data than one at a time.  I duly did this and forgot about it until Fiona noticed something was wrong on the server and web traffic had ground to a near halt.  When she opened a console on the server, she found that it seemed quiet, very little CPU load at all, and was puzzled until I realised it was my indexing.  Indexing requires a lot of reading and writing data to and from disk, so MySQL became IO-bound, was given higher priority, as soon as the disk was free it was rescheduled, hit the disk once more &#8230; just as FTP is now hogging the network, MySQL hogged the disk and nothing else could read or write.  Of course MySQL&#8217;s own performance was fine as it internally interleaved queries with indexing, it is just everything else on the system that failed.</p>
<p>These are hard scenarios to design for.  I have written before (&#8220;<a href="http://www.alandix.com/blog/2008/06/21/why-software-need-never-hang/" target="_blank">why software need never hang</a>&#8220;) about the way application designers do not think sufficiently about potential delays due to slow networks, or broken connections.  However, that was about the applications that are suffering.  Here the issue is not that the FTP program is badly designed for its delays, it is still responding very happily, just that it has had a knock on effect on the rest of the system. It is like cleaning your sink with industrial bleach &#8212; you have a clean house within, but pollute the watercourse without.</p>
<p>These kind of issues are not related solely to network and disk, any kind of resource is limited and profligacy causes damage in the digital world as much as in the physical environment.</p>
<p>Some years ago I had a Symbian smartphone, but it proved unusable as its battery life rarely exceeded 40 minutes from full charge.  I thought I had a duff battery, but later realised it was because I was leaving applications on the phone &#8216;open&#8217;.  For me I went to the address book, looked up a number, and that was that, I then maybe turned the phone off or switched  to something else without &#8216;exiting&#8217; the address book.  I was treating the phone like every previous phone I had used, but this one was different, it had a &#8216;real&#8217; operating system, opening the address book launched the address book application, which then kept on running &#8212; and using power &#8212; until it was explicitly closed, a model that is maybe fine for permanently plugged in computers, but disastrous for a moble phone.</p>
<p>When early iPhones came out iOS was criticised for being single threaded, that is not having lots of things running in the &#8216;background&#8217;.  However, this undoubtedly helped its battery life.  Now, with newer versions of iOS, it has changed and there are lots of apps running at once, and I have noticed the battery life reducing, is that simply the battery wearing out with age or the effect of all those apps running?</p>
<p>Power is of course not just a problem for smartphones, but for any laptop.  I try to closedown applications on my Mac when I am working without power as I know some programs just eat CPU when they are apparently idle (yes, Firefox, it&#8217;s you I&#8217;m talking about).  And from an environmental point of view, lower power consumption when connected would also be good.   My hope was that Apple would take the lessons learnt in the early iOS to change the nature of their mainstream OS, but sadly they succumbed to the pressure to make iOS a &#8216;proper&#8217; OS!</p>
<p>Of course the FTP program could try to be friendly, perhaps when it is not the selected window deliberately throttle its network activity.  But then the 4 hour upload would take 8 hours, instead of 20 minutes left at this point, I&#8217;d be looking forward to another 4 hours and 20 minutes, and I&#8217;d be complaining about that.</p>
<p>The trouble is that there needs to be better communication, more knowledge shared, between application and operating system.  I would like FTP to use all the network capacity that it can, <em>except</em> when I am interacting with some other program.  Either FTP needs to say to the OS &#8220;hey here&#8217;s a packet, send it when there&#8217;s a gap&#8221;<sup><a href="#footnote-1-802" id="footnote-link-1-802" title="See the footnote.">1</a></sup>, or the OS needs some way for applications to determine current network state and make decisions based on that.  Sometimes this sort of information is easily available, more often it is either very hard to get at or not available at all.</p>
<p>I recall years ago when internet was still mainly through pay-per-minute dial-up connections.  You could set your PC to automatically dial when the internet was needed.  However, some programs, such as chat, would periodically check with a central server to see if there was activity, this would cause the PC to dial-up the ISP.  If you were lucky the PC also had an auto-disconnect after a period of inactivity, if you were not lucky the PC would connect at 2am and by the morning you&#8217;d find yourself with a phone bill more than your weeks&#8217; wages.</p>
<p>When we were designing onCue at <a href="http://www.aqtive.net/" target="_blank">aQtive</a>, we wanted to be able to connect to the Internet when it was available, but avoid bankrupting our users.  Clearly somewhere in the TCP/IP stack, the layers of code over the network, at some level deep down it knew whether we were connected.  I recall we found a very helpful function in the Windows API called something like &#8220;isConnected&#8221;<sup><a href="#footnote-2-802" id="footnote-link-2-802" title="See the footnote.">2</a></sup>.  Unfortunately, it worked by attempting to send a network packet and returning true if it succeeded and false if it failed.  Of course sending the test packet caused the PC to auto-dial &#8230;</p>
<p>And now there is just 1 minute and 53 seconds left on the upload, so time to finish this post before I get on to garbage collection.</p>
<br /><ol class="footnotes"><li id="footnote-1-802">This form of &#8220;send when you can&#8221; would also be useful in cellular networks, for example when syncing photos.  [<a href="#footnote-link-1-802">back</a>]</li><li id="footnote-2-802">I had a quick peek, and fund that Windows CE has a function called <a href="http://msdn.microsoft.com/en-us/library/ms918360.aspx" target="_blank">InternetGetConnectedState</a>.  I don&#8217;t know if this works better now.  [<a href="#footnote-link-2-802">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2012/01/14/tread-lightly-controlling-user-experience-pollution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Names, URIs and why the web discards 50 years of computing experience</title>
		<link>http://www.alandix.com/blog/2010/08/08/names-uris-and-why-the-web-discards-50-years-of-computing-experience/</link>
		<comments>http://www.alandix.com/blog/2010/08/08/names-uris-and-why-the-web-discards-50-years-of-computing-experience/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 17:46:37 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[HCI and usability]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[Fiona]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[lovefibre]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[snip!t]]></category>
		<category><![CDATA[Tiree]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=268</guid>
		<description><![CDATA[Names and naming have always been a big issue both in computer science and philosophy, and a topic I have posted on before (see &#8220;names – a file by any other name&#8220;). In computer science, and in particular programming languages, a whole vocabulary has arisen to talk about names: scope, binding, referential transparency. As in [...]]]></description>
			<content:encoded><![CDATA[<p>Names and naming have always been a big issue both in computer science and philosophy, and a topic I have posted on before (see &#8220;<a href="http://www.alandix.com/blog/2010/02/17/names-a-file-by-any-other-name/" target="_blank">names – a file by any other name</a>&#8220;).</p>
<p>In computer science, and in particular programming languages, a whole vocabulary has arisen to talk about names: <a href="http://en.wikipedia.org/wiki/Scope_%28programming%29" target="_blank" title="Wikipedia: Scope">scope</a>, <a href="http://en.wikipedia.org/wiki/Name_binding" target="_blank" title="Wikipedia: Name Binding">binding</a>, <a href="http://en.wikipedia.org/wiki/Referential_transparency_%28computer_science%29" target="_blank" title="Wikipedia: Referential Transparency">referential transparency</a>.  As in philosophy, it is typically the association between a name and its &#8216;meaning&#8217; that is of interest.  Names and words, whether in programming languages or day-to-day language, are, what philosophers call, &#8216;<a href="http://www.seop.leeds.ac.uk/entries/intentionality/" target="_blank" title="Intentionality (Stanford Encyclopedia of Philosophy)">intentional</a>&#8216;: they refer to something else.  In computer science the &#8216;something else&#8217; is typically some data or code or a placeholder/variable containing data or code, and the key question of semantics or &#8216;meaning&#8217; is about how to identify which variable, function or piece of data a name refers to in a particular context at a particular time.</p>
<p>The emphasis in computing has tended to be about:</p>
<p style="padding-left: 30px;">(a) Making sure names have unambiguous meaning when looking locally inside code.  Concerns such as referential transparency, avoiding dynamic binding and the deprecation of global variables are about this.</p>
<p style="padding-left: 30px;">(b) Putting boundaries on where names can be seen/understood, both as a means to ensure (a) and also as part of encapsulation of semantics in object-based languages and abstract data types.</p>
<p>However, there has always been a tension between clarity of intention (in both the normal and philosophical sense) and abstraction/reuse.  If names are totally unambiguous then it becomes impossible to say general things. Without a level of controlled ambiguity in language a legal statement such as &#8220;if a driver exceeds the speed limit they will be fined&#8221; would need to be stated separately for every citizen.  Similarly in computing when we write:</p>
<p style="padding-left: 30px;">function f(x) { return (x+1)*(x-1); }</p>
<p>The meaning of x is different when we use it in &#8216;f(2)&#8217; or &#8216;f(3)&#8217; and must be so to allow &#8216;f&#8217; to be used generically.  Crucially there is no internal ambiguity, the two &#8216;x&#8217;s refer to the same thing in a particular invocation of &#8216;f&#8217;, but the precise meaning of &#8216;x&#8217; for each invocation is achieved by <em>external binding</em> (the argument list &#8216;(2)&#8217;).</p>
<p>Come the web and URLs and URIs.</p>
<p><a href="http://www.lovefibre.com/" target="_blank">Fiona@lovefibre</a> was recently making a test copy of a website built using <a href="http://wordpress.org/" target="_blank">WordPress</a>.  In a pure html website, this is easy (so long as you have used <em>relative or site-relative links</em> within the site), you just copy the files and put them in the new location and they work <img src='http://www.alandix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   Occasionally a more dynamic site does need to know its global name (URL), for example if you want to send a link in an email, but this can usually be achieved using configuration file.  For example, there is a development version of <a href="http://www.snipit.org/" target="_blank">Snip!t</a> at cardiff.snip!t.org (rather then www.snipit.org), and there is just one configuration file that needs to be changed between this test site and the live one.</p>
<p>Similarly in a pristine WordPress install there is just such a configuration file and one or two database entries.  However, as soon as it has been used to create a site, the database content becomes filled with URLs.  Some are in clear locations, but many are embedded within HTML fields or serialised plugin options.  Copying and moving the database requires a series of SQL updates with string replacements matching the old site name and replacing it with the new &#8212; both tedious and needing extreme care not to corrupt the database in the process.</p>
<p>Is this just a case of WordPress being poorly engineered?</p>
<p>In fact I feel more a problem endemic in the web and driven largely by the URL.</p>
<p>Recently I was experimenting with <a href="https://developer.mozilla.org/en/building_an_extension" target="_blank">Firefox extensions</a>.  Being a good <a href="http://www.hcibook.com/alan/papers/PPIG2008-as-we-may-code/" target="_blank">21st century programmer</a> I simply found an existing extension that was roughly similar to what I was after and started to alter it.  First of course I changed its name and then found I needed to make changes through pretty much every file in the extension as the knowledge of the extension name seemed to permeate to the lowest level of the code.  To be fair <a href="https://developer.mozilla.org/en/xul" target="_blank">XUL</a> has mechanisms to achieve a level of encapsulation introducing local URIs through the &#8216;chrome:&#8217; naming scheme and having been through the process once. I maybe understand a bit better how to design extensions to make them less reliant on the external name, and also which names need to be changed and which are more like the &#8216;x&#8217; in the &#8216;f(x)&#8217; example.  However, despite this, the experience was so different to the levels of encapsulation I have learnt to take for granted in traditional programming.</p>
<p>Much of the trouble resides with the URL.  Going back to the two issues of naming, the URL focuses strongly on (a) making the name unambiguous by having a single universal namespace;  URLs are a bit like saying &#8220;let&#8217;s not just refer to &#8216;Alan&#8217;, but &#8216;the person with UK National Insurance Number XXXX&#8217; so we know precisely who we are talking about&#8221;.  Of course this focus on uniqueness of naming has a consequential impact on generality and abstraction.  There are many visitors on <a href="http://www.isleoftiree.com/" target="_blank">Tiree</a> over the summer and maybe one day I meet one at the shop and then a few days later pass the same person out walking;  I don&#8217;t need to know the persons NI number or URL in order to say it was the same person.</p>
<p>Back to Snip!t, over the summer I spent some time working on the XML-based extension mechanism.  As soon as these became even slightly complex I found URLs sneaking in, just like the WordPress database <img src='http://www.alandix.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />   The use of <a href="http://www.w3.org/TR/REC-xml-names/" target="_blank">namespaces</a> in the XML file can reduce this by at least limiting full URLs to the XML header, but, still, embedded in every XML file are un-abstracted references &#8230; and my pride in keeping the test site and live site near identical was severely dented<sup><a href="#footnote-1-268" id="footnote-link-1-268" title="See the footnote.">1</a></sup>.</p>
<p>In the years when the web was coming into being the Hypertext community had been reflecting on more than 30 years of practical experience, embodied particularly in the Dexter Model<sup><a href="#footnote-2-268" id="footnote-link-2-268" title="See the footnote.">2</a></sup>.  The Dexter model and some systems, such as Wendy Hall&#8217;s Microcosm<sup><a href="#footnote-3-268" id="footnote-link-3-268" title="See the footnote.">3</a></sup>, incorporated <em>external linkage</em>; that is, the body of content had marked hot spots, but the association of these hot spots to other resources was in a separate external layer.</p>
<p>Sadly HTML opted for internal links in anchor and image tags in order to make html files self-contained, a pattern replicated across web technologies such as XML and RDF.  At a practical level this is (i) why it is hard to have a single anchor link to multiple things, as was common in early Hypertext systems such as <a href="http://en.wikipedia.org/wiki/Intermedia_%28hypertext%29" target="_blank">Intermedia</a>, and (ii), as Fiona found, a real pain for maintenance!</p>
<br /><ol class="footnotes"><li id="footnote-1-268">I actually resolved this by a nasty &#8216;hack&#8217; of having internal functions alias the full site name when encountered and treating them as if they refer to the test site &#8212; very cludgy!  [<a href="#footnote-link-1-268">back</a>]</li><li id="footnote-2-268">Halasz, F. and Schwartz, M. 1994. The Dexter hypertext reference model. Commun. ACM 37, 2 (Feb. 1994), 30-39. DOI= http://doi.acm.org/10.1145/175235.175237  [<a href="#footnote-link-2-268">back</a>]</li><li id="footnote-3-268">Hall, W., Davis, H., and Hutchings, G. 1996 Rethinking Hypermedia: the Microcosm Approach. Kluwer Academic Publishers.  [<a href="#footnote-link-3-268">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2010/08/08/names-uris-and-why-the-web-discards-50-years-of-computing-experience/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>grammer aint wot it used two be</title>
		<link>http://www.alandix.com/blog/2009/07/10/grammer-aint-wot-it-used-two-be/</link>
		<comments>http://www.alandix.com/blog/2009/07/10/grammer-aint-wot-it-used-two-be/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 10:35:28 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[HCI and usability]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[Fiona]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[grammar]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[lovefibre]]></category>
		<category><![CDATA[pedantry]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=182</guid>
		<description><![CDATA[Fiona @ lovefibre and I have often discussed the worrying decline of language used in many comments and postings on the web. Sometimes people are using compressed txtng language or even leetspeak, both of these are reasonable alternative codes to &#8216;proper&#8217; English, and potentially part of the natural growth of the language.  However, it is [...]]]></description>
			<content:encoded><![CDATA[<p>Fiona <a href="http://www.lovefibre.com/" target="_blank">@ lovefibre</a> and I have often discussed the worrying decline of language used in many comments and postings on the web. Sometimes people are using compressed txtng language or even <a href="http://en.wikipedia.org/wiki/Leet" target="_blank">leetspeak</a>, both of these are reasonable alternative codes to &#8216;proper&#8217; English, and potentially part of the natural growth of the language.  However, it is often clear that the cause is ignorance not choice.  One of the reasons may be that many more people are getting a voice on the Internet; it is not just the journalists, academics and professional classes.  If so, this could be a positive social sign indicating that a public voice is no longer restricted to university graduates, who, of course, know their grammar perfectly &#8230;</p>
<p>Earlier today I was using Google to look up the author of a book I was reading and one of the top links was a listing on <a href="http://www.ratemyprofessors.com/" target="_blank">ratemyprofessors.com</a>.  For interest I clicked through and saw:</p>
<blockquote><p>&#8220;He sucks.. hes mean and way to demanding if u wanan work your ass off for a C+ take his class<sup><a href="#footnote-1-182" id="footnote-link-1-182" title="See the footnote.">1</a></sup>&#8221;</p></blockquote>
<p>Hmm I wonder what this student&#8217;s course assignment looked like?</p>
<h2><span id="more-182"></span>and a little web-usability tag story</h2>
<p>In case you are wondering, yes I did try to look to see if I was listed (although I am sure all my British students have perfect grammar :-/ ).  However, unfortunately (or maybe fortunately), I could not tell.  In order to search UK universities you need to use a pull-down menu.  But<sup><a href="#footnote-2-182" id="footnote-link-2-182" title="See the footnote.">2</a></sup>, of course, being an up-to-date and cool site, ratemyprofessors.com uses a funky Javascript+DOM menu not a plain HTML-form one .  Notice the little gap between the button for the pull-down and the menu itself.  As you try to move your mouse over the menu it disappears!  So for a Firefox user like me it is a US-only site.</p>
<p><img class="alignnone" src="http://www.alandix.com/images/ratemyprofessors-menu.jpg" alt="" width="211" height="229" /></p>
<br /><ol class="footnotes"><li id="footnote-1-182">In case you think I&#8217;m a complete pedant, personally, I am happy with both the slang &#8216;sucks&#8217; and &#8216;ass&#8217; (instead of &#8216;arse&#8217;!), and the compressed speech &#8216;u&#8217;. These could be well-considered choices in language.  The mistyped &#8216;wanna&#8217; is also just a slip. It is the slightly more proper &#8220;hes mean and way to demanding&#8221; that seems to show  general lack of understanding.  Happily, the other comments, were not as bad as this one, but I did find the student who wanted a &#8220;descent grade&#8221; amusing <img src='http://www.alandix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />    [<a href="#footnote-link-1-182">back</a>]</li><li id="footnote-2-182">Yes, that was a sentence starting with a conjunction.  And, yes, you may have heard this is bad grammar, but only when used carelessly; see &#8220;<a href="http://languagestyle.suite101.com/article.cfm/grammar_starting_a_sentence_with_or_and_or_but" target="_blank">Grammar- Starting a Sentence with Or, And or But</a>&#8221; @ <a href="http://www.suite101.com/" target="_blank">Suite101</a> or &#8220;<a href="http://grammar.ccc.commnet.edu/grammar/conjunctions.htm#beginning" target="_blank">Beginning a Sentence with And or But</a>&#8221; for an apposite quote.  [<a href="#footnote-link-2-182">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2009/07/10/grammer-aint-wot-it-used-two-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a new version of &#8230; on downgrades and preferences</title>
		<link>http://www.alandix.com/blog/2009/07/03/a-new-version-of-on-downgrades-and-preferences/</link>
		<comments>http://www.alandix.com/blog/2009/07/03/a-new-version-of-on-downgrades-and-preferences/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 11:08:58 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[HCI and usability]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[appropriation]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[HCI]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=178</guid>
		<description><![CDATA[I&#8217;m wondering why people break things when they create new versions. Firefox used to open a discreet little window when you downloaded papers.  Now-a-days it opens a full screen window completely hiding the browser. A minor issue, but makes me wonder about both new versions and also defaults and personalisation in general. This is what [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m wondering why people break things when they create new versions.</p>
<p>Firefox used to open a discreet little window when you downloaded papers.  Now-a-days it opens a full screen window completely hiding the browser.</p>
<p>A minor issue, but makes me wonder about both new versions and also defaults and personalisation in general.</p>
<p><span id="more-178"></span></p>
<p>This is what Firefox does:</p>
<table border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.alandix.com/images/firefix-download-2-full.jpg"><img class="alignnone" src="http://www.alandix.com/images/firefix-download-2-at20.png" alt="" width="256" height="160" /></a></td>
<td><a href="http://www.alandix.com/images/firefix-download-3-full.png"><img class="alignnone" src="http://www.alandix.com/images/firefix-download-3-at20.png" alt="" width="256" height="160" /></a></td>
</tr>
<tr>
<td style="text-align: center;">downoad file from link</td>
<td style="text-align: center;">oops where&#8217;s the screen</td>
</tr>
</tbody>
</table>
<p>There must be a setting somewhere in the code with the width and height, and someone must have explicitly decided to make it full screen, but why?  In order to change it, then there must have been a deliberate decision, but if there is a default value and you aren&#8217;t sure what it will be, then why not let the user decide.  I resize it every time down to a little discreet window again &#8230; I wish it would remember?</p>
<p>It is a little thing, but so often there are arbitrary changes between versions, some major (like the radical XP/Vista that kept many Windows users on the old version), some tiny (but annoying).  It may well be that for some people the new behaviour is better, but typically these cosmetic changes are arbitrary, and if so would be obvious things for user preferences, or even alternative skins.</p>
<p>I was in Trento in May talking with Silvia Gabrielli and Anthony Jameson at the <a href="http://i3.fbk.eu/en/home" target="_blank">Intelligent Interfaces &amp; Interaction</a> group at FBK.  They are working on preference and profile setting<sup><a href="#footnote-1-178" id="footnote-link-1-178" title="See the footnote.">1</a></sup>, which seems like a problem that should have been solved years ago, but as is evident, is still a very live topic. So few users actually update the user defaults, and as is evident from the Firefox example, many things that should be updateable are not.</p>
<p>One of the simple design heuristics for preferences is to allow them to be set when the user is actually using the feature, not in some separate preference panel.  In fact Firefox is quite good at this, for example, with &#8220;do this from now on&#8221; type options in dialogue boxes. The download window size should also follow this heuristics, so that when I resize the window then next time it should be the same size as I resized it to.</p>
<table border="0" align="center">
<tbody>
<tr>
<td><a href="http://www.alandix.com/images/firefix-download-2-extract-emph.jpg"><img class="aligncenter" src="http://www.alandix.com/images/firefix-download-2-extract-emph.jpg" alt="" width="289" height="220" /></a></td>
</tr>
<tr>
<td style="text-align: center;">Firefox doing it right</td>
</tr>
</tbody>
</table>
<p>Being a little more radical, but hardly complicated, one could adopt one of the design guidelines for appropriation<sup><a href="#footnote-2-178" id="footnote-link-2-178" title="See the footnote.">2</a></sup> and try to make customisation options shareable.  This would mean that if I had worked out a nice set of values for preferences I could export it as something like an XML file and mail it to a colleague.  Or when you have a new computer you could transfer settings across between applications.</p>
<p>One of the general heuristics that applies also to user customisation is &#8220;if you want people to do something, make it easy&#8221; &#8230; but this applies equally to the developers of customisable parts of an interface.</p>
<p>My guess is that to get things right in the long run the kind of user studies and theoretical work that Tony and Silvia are doing, and design heuristics such as those I&#8217;ve mentioned, need to be built into a customisation infrastructure that is both flexible enough for complex parts of an interface (e.g. the password and cookie managers), but also simple enough that it is almost as easy to allow user customisation as it is to fix parameters to an arbitrary value.</p>
<br /><ol class="footnotes"><li id="footnote-1-178">They have a paper at Interact, &#8220;<a href="http://doi.acm.org/10.1145/1502650.1502734" target="_blank">Users&#8217; preferences regarding intelligent user interfaces: differences among users and changes over time</a>&#8220;  [<a href="#footnote-link-1-178">back</a>]</li><li id="footnote-2-178">A. Dix (2007).<strong> Designing for Appropriation</strong>. In <em>Procedings of BCS HCI 2007, People and Computers XXI,</em> Volume 2, BCS eWiC.<a href="http://www.bcs.org/server.php?show=ConWebDoc.13347"> paper @ eWiC</a>  [<a href="#footnote-link-2-178">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2009/07/03/a-new-version-of-on-downgrades-and-preferences/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>tech talks: brains, time and no time</title>
		<link>http://www.alandix.com/blog/2009/04/18/tech-talks-brains-time-and-no-time/</link>
		<comments>http://www.alandix.com/blog/2009/04/18/tech-talks-brains-time-and-no-time/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 11:05:54 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[HCI and usability]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[brain]]></category>
		<category><![CDATA[consciousness]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[HCI]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[slow time]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=163</guid>
		<description><![CDATA[Just scanning a few Google Tech Talks on YouTube.  I don&#8217;t visit it often, but followed a link from Rob Style&#8216;s twitter.  I find the video&#8217;s a bit slow, so tend to flick through with the sound off, really wishing they had fast forward buttons like a DVD as quite hard to pull the little [...]]]></description>
			<content:encoded><![CDATA[<p>Just scanning a few <a href="http://www.youtube.com/user/googletechtalks" target="_blank">Google Tech Talks</a> on YouTube.  I don&#8217;t visit it often, but followed a link from <a href="http://dynamicorange.com/" target="_blank">Rob Style</a>&#8216;s twitter.  I find the video&#8217;s a bit slow, so tend to flick through with the sound off, really wishing they had fast forward buttons like a DVD as quite hard to pull the little slider back and forth.</p>
<p>One talk was by <a href="http://www.quantumconsciousness.org/" target="_blank">Stuart Hameroff</a> on <a href="http://www.youtube.com/watch?v=aw9Jo5qNCsQ" target="_blank">A New Marriage of Brain and Computer</a>.  He is the guy that works with Penrose on the possibility that quantum effects in microtubules may be the source of consciousness.  I notice that he used calculations for computational capacity based on traditional neuron-based models that are very similar to my own calculations some years ago in &#8220;<a href="http://www.hcibook.com/alan/papers/brain-and-web-2005/" target="_blank">the brain and the web</a>&#8221; when I worked out that the memory and computational capacity of a single human brain is very similar to those of the entire web. Hameroff then went on to say that there are an order of magnitude more microtubules (sub-cellular structures, with many per neuron), so the traditional calculations do not hold!</p>
<p style="text-align: center;"><a href="http://www.alandix.com/images/google-TT-singularity.jpg" target="_blank"><img class="aligncenter" src="http://www.alandix.com/images/google-TT-singularity-sml.jpg" alt="" width="233" height="188" /></a></p>
<p style="text-align: left;">Microtubules are fascinating things, they are like little mechano sets inside each cell.  It is these microtubules that during cell division stretch out straight the chromosomes, which are normally tangled up the nucleus.  Even stranger those fluid  movements of amoeba gradually pushing out pseudopodia, are actually made by mechanical structures composed of microtubules, only looking so organic because of the cell membrane &#8211; rather like a robot covered in latex.</p>
<p style="text-align: center;"><a href="http://www.alandix.com/images/phase-ameba.jpg" target="_blank"><img class="aligncenter" src="http://www.alandix.com/images/phase-ameba.jpg" alt="pictire of amoeba" width="278" height="238" /></a></p>
<p>The main reason for going to the text talks was one by Steve Souders &#8220;<a href="http://www.youtube.com/watch?v=52gL93S3usU" target="_blank">Life&#8217;s Too Short &#8211; Write Fast Code</a>&#8221; that has lots of tips for on speeding up web pages including allowing Javascript files to download in parallel.  I was particularly impressed by the quantification of costs of delays on web pages down to 100ms!</p>
<p style="text-align: center;"><a href="http://www.alandix.com/images/google-TT-fast-scripts.jpg" target="_blank"><img class="alignnone" src="http://www.alandix.com/images/google-TT-fast-scripts-sml.jpg" alt="" width="299" height="179" /></a> <a href="http://www.alandix.com/images/google-TT-time-is-money.jpg" target="_blank"><img class="alignnone" src="http://www.alandix.com/images/google-TT-time-is-money-sml.jpg" alt="" width="240" height="179" /></a></p>
<p>This is great.  Partly because of my long interest in <a href="http://www.hcibook.com/alan/topics/time/" target="_blank">time and delays in HCI</a>. Partly because I want my own web scripts to be faster and I&#8217;ve already downloaded the <a href="http://developer.yahoo.com/yslow/" target="_blank">Yahoo! YSlow</a> plugin for FireFox that helps diagnose causes of slow pages.  And partly  because I get so frustrated waiting for things to happen, both on the web and on the desktop &#8230; and why oh why does it take a good minute to get a WiFi connection &#8230;.  and why doesn&#8217;t YouTube introduce better controls for skimming videos.</p>
<p>&#8230; and finally, because I&#8217;d already spent too much time skimming the tech talks, I looked at one last talk: David Levy, &#8220;<a href="http://www.youtube.com/watch?v=KHGcvj3JiGA" target="_blank">No Time To Think</a>&#8221; &#8230; how we are all so rushed that we have no time to really think about problems, not to mention life<sup><a href="#footnote-1-163" id="footnote-link-1-163" title="See the footnote.">1</a></sup>.  At least that&#8217;s what I think it said, because I skimmed it rather fast.</p>
<p style="text-align: center;"><a href="http://www.alandix.com/images/google-TT-no-time.jpg" target="_blank"><img class="aligncenter" src="http://www.alandix.com/images/google-TT-no-time-sml.jpg" alt="" width="234" height="165" /></a></p>
<br /><ol class="footnotes"><li id="footnote-1-163">see also my own discussion of <a href="http://www.hcibook.com/alan/projects/slow-time/" target="_blank">Slow Time</a>  [<a href="#footnote-link-1-163">back</a>]</li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2009/04/18/tech-talks-brains-time-and-no-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE in second place!</title>
		<link>http://www.alandix.com/blog/2009/03/23/ie-in-second-place/</link>
		<comments>http://www.alandix.com/blog/2009/03/23/ie-in-second-place/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 13:21:09 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[academic]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=140</guid>
		<description><![CDATA[Looked at web stats for this blog for first time in ages.  IE is still top browser in raw hits, but between them Firefox and Mozilla  family have 39% above IE at 36%.  Is this just that there are more Mac users amongst HCI people and academics, or is Mozilla winning the browser wars?]]></description>
			<content:encoded><![CDATA[<p>Looked at web stats for this blog for first time in ages.  IE is still top browser in raw hits, but between them Firefox and Mozilla  family have 39% above IE at 36%.  Is this just that there are more Mac users amongst HCI people and academics, or is Mozilla winning the browser wars?</p>
<p><img class="aligncenter" title="blog browser stats March 2009" src="http://www.alandix.com/images/browser-stats-mar-2009.png" alt="" width="308" height="162" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2009/03/23/ie-in-second-place/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Firefox 3 seems to have fixed memory problems</title>
		<link>http://www.alandix.com/blog/2008/08/28/firefox-3-seems-to-have-fixed-memory-problems/</link>
		<comments>http://www.alandix.com/blog/2008/08/28/firefox-3-seems-to-have-fixed-memory-problems/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 10:22:06 +0000</pubDate>
		<dc:creator>alan</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[snip!t]]></category>

		<guid isPermaLink="false">http://www.alandix.com/blog/?p=94</guid>
		<description><![CDATA[I had been reluctantly considering giving up using Firefox as it crawled to a halt so often on so many sites. To be fair I think it is because I keep lots of tabs open and Firefox did not seem to deal will with pages with many refreshing elements &#8230; many air and train ticketing [...]]]></description>
			<content:encoded><![CDATA[<p>I had been reluctantly considering giving up using Firefox as it crawled to a halt so often on so many sites.  To be fair I think it is because I keep lots of tabs open and Firefox did not seem to deal will with pages with many refreshing elements &#8230; many air and train ticketing sites were particular problems.  However, <a title="Firefx 3 at Mozilla site" href="http://www.mozilla.com/en-US/firefox/" target="_blank">Firefox 3</a> has been running continuously for some time now and looking at &#8216;top&#8217; in terminal window has about 1/3 the real memory footprint compared with Firefox 2 &#8230; now it is comparable with Word, Dreamweaver, etc. &#8230; I had been sticking with Firefox largely because the Firefox <a href="http://www.snipit.org/">Snip!t</a> bookmarklet works better than the Safari one, so now I can continue to do so without the machine crawling to a halt &#8211; well done team Mozilla <img src='http://www.alandix.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.alandix.com/blog/2008/08/28/firefox-3-seems-to-have-fixed-memory-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

