<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Yesterday I was wrong</title>
	<link>http://dan.bodar.com</link>
	<description>Dan's technical ramblings</description>
	<pubDate>Mon, 14 Apr 2008 14:26:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>The implicit back link</title>
		<link>http://dan.bodar.com/2008/04/14/the-implicit-back-link/</link>
		<comments>http://dan.bodar.com/2008/04/14/the-implicit-back-link/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 10:52:54 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2008/04/14/the-implicit-back-link/</guid>
		<description><![CDATA[A little while back I was chatting to someone about SEO and the power of outgoing links. In the bad old days your client would ask you to build a web site that had no links leaving the site or put some horrible confirmation page asking you that you are leaving!
Whats interesting here is that [...]]]></description>
			<content:encoded><![CDATA[<p>A little while back I was chatting to someone about <abbr title="Search Engine Optimisation">SEO</abbr> and the power of outgoing links. In the bad old days your client would ask you to build a web site that had no links leaving the site or put some horrible confirmation page asking you that you are leaving!</p>
<p>Whats interesting here is that by not having any external links you are reducing your interconnections with other sites, and so reducing your ranking in search engines. Not only do most search engines allow you to search for linked pages but each additional connection in either direction will increase the weighting that matching symbols (words) in those documents have the same implied semantics. This is just like a neural network where each additional connection re-enforces the bond further increasing the chance of a pattern match.</p>
<p>Add to the fact that incoming links, trackbacks and pingbacks are very common on blogs and other modern publishing tools and those implicit back links become explicit.</p>
<p>So if you want people to link to you, you should link to them.</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2008/04/14/the-implicit-back-link/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Plaxo revisited</title>
		<link>http://dan.bodar.com/2008/04/13/plaxo-revisited/</link>
		<comments>http://dan.bodar.com/2008/04/13/plaxo-revisited/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 10:32:03 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[plaxo]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2008/04/13/plaxo-revisited/</guid>
		<description><![CDATA[So I got some helpful feedback on my last post from John McCrea who is VP of Marketing for Plaxo. So I logged back into Plaxo and had a little hunt around and after about 5-10 minutes found my addresses.
My initial reaction was Doh! what an idiot I was, but then after a few minutes [...]]]></description>
			<content:encoded><![CDATA[<p>So I got some <a href="http://dan.bodar.com/2008/04/09/early-morning-rant/#comments">helpful feedback</a> on my last post from John McCrea who is VP of Marketing for Plaxo. So I logged back into Plaxo and had a little hunt around and after about 5-10 minutes found my addresses.</p>
<p>My initial reaction was Doh! what an idiot I was, but then after a few minutes reflection I started to think about user interface design and intuitive learning. When I showcase new functionality to my users, they will often give feedback about how easy a feature is to use or find. Often as developers or familiar users of a system we don&#8217;t see that something might not be named or located in the most natural place.</p>
<p>So I though I might also give some feedback to Plaxo that might help improve the user interface.</p>
<p>This is where the confusion started for me:</p>
<p><img src="http://dan.bodar.com/wp-content/uploads/2008/04/plaxo1.gif" alt="Plaxo options" /></p>
<p>Option 1 leads you to the old Plaxo address book system</p>
<p>Option 2 leads you to an import wizard to get your address book from Outlook, GMail etc</p>
<p>Option 3 doesn&#8217;t contain any of your old address book &#8220;connections&#8221;</p>
<p>So these are my thoughts:</p>
<ul>
<li>Links with nearly the same names but going to total different actions is confusing</li>
<li>Option 3: The domain language seems confused, surely the people I have already shared my address book with are already &#8220;connected&#8221; in someway. Maybe that connection only allows address book features and not all the new features.</li>
<li>Option 2 doesn&#8217;t seem to support importing from option 1 (You wouldn&#8217;t need this option if they were already connected)</li>
<li>Option 1 feels like a skinned version of old app and not really integrated into the whole experience</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2008/04/13/plaxo-revisited/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Early morning rant&#8230;</title>
		<link>http://dan.bodar.com/2008/04/09/early-morning-rant/</link>
		<comments>http://dan.bodar.com/2008/04/09/early-morning-rant/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 06:36:20 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[plaxo]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2008/04/09/early-morning-rant/</guid>
		<description><![CDATA[I&#8217;ve been an occasional user of Plaxo (just the address book) for the last 3 years, using it to keep a few important addresses up to date. Anyway today was the first time I had used it since they launched Pulse, and guess what all my contacts have gone!
Now that&#8217;s not very clever for a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been an occasional user of Plaxo (just the address book) for the last 3 years, using it to keep a few important addresses up to date. Anyway today was the first time I had used it since they launched Pulse, and guess what all my contacts have gone!</p>
<p>Now that&#8217;s not very clever for a social networking site and reminds me what <a href="http://duncan-cragg.org/blog/">Duncan <span class="sub-banner">Cragg</span><span class="sub-sub-banner"></span></a> would say about Web 2.0 and making sure all you data is public, readable in some open format and ideally distributed over the interweb. If fact this really goes back to why &#8220;data bases&#8221; were created in the first place: data lives longer than applications: well not in Plaxo&#8217;s case.</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2008/04/09/early-morning-rant/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gave my first public presentation&#8230;</title>
		<link>http://dan.bodar.com/2008/04/04/gave-my-first-public-presentation/</link>
		<comments>http://dan.bodar.com/2008/04/04/gave-my-first-public-presentation/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 19:17:53 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[progressive enhancement]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2008/04/04/gave-my-first-public-presentation/</guid>
		<description><![CDATA[Well Kiran and I both gave our first public presentations at the OverTheAir mobile conference at the Imperial College.
Kiran talked about Agile &#38; Mobile development and I talked about Progressive Enhancement
]]></description>
			<content:encoded><![CDATA[<p>Well <a href="http://blog.bellubbi.com/">Kiran</a> and I both gave our first public presentations at the <a href="http://overtheair.org/">OverTheAir</a> mobile conference at the Imperial College.</p>
<p>Kiran talked about Agile &amp; Mobile development and I talked about <a href="http://pe.bodar.com/">Progressive Enhancement</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2008/04/04/gave-my-first-public-presentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>More Ubuntu 7.10 notes for Dell D630</title>
		<link>http://dan.bodar.com/2007/12/29/more-ubuntu-710-notes-for-dell-d630/</link>
		<comments>http://dan.bodar.com/2007/12/29/more-ubuntu-710-notes-for-dell-d630/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 19:03:06 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2007/12/29/more-ubuntu-710-notes-for-dell-d630/</guid>
		<description><![CDATA[So the wifi seemed to work pretty well out of the box but I noticed after prolonged use it would just suddenly freeze and the only way to make it come back was to reboot. (You couldn&#8217;t even reload the module or restart networking stack).
You can tell if this will be a problem for you [...]]]></description>
			<content:encoded><![CDATA[<p>So the wifi seemed to work pretty well out of the box but I noticed after prolonged use it would just suddenly freeze and the only way to make it come back was to reboot. (You couldn&#8217;t even reload the module or restart networking stack).</p>
<p>You can tell if this will be a problem for you by running iwconfig: if you have lots of Invalid misc errors and the signal and noise levels are fixed at -60dBm then you will want to switch from the ipw3945 module to the iwl3945.</p>
<p>To try it out:<br />
<code><br />
sudo modprobe -r ipw3945<br />
sudo modprobe -r ieee80211<br />
sudo modprobe -r ieee80211_crypt<br />
sudo modprobe -r mac80211<br />
sudo modprobe iwlwifi_mac80211<br />
sudo modprobe iwl3945<br />
</code></p>
<p>Now if you run iwconfig you should see wlan0 (plus <a href="http://linuxwireless.org/en/developers/Documentation/mac80211#Themasterdevicewmaster0">wmaster0</a> which we&#8217;ll just ignore). If it&#8217;s called wlan0_rename then you run<br />
<code><br />
sudo nano /etc/udev/rules.d/70-persistent-net.rules<br />
</code><br />
Comment out the line reserving eth1 for ipw3945 module.</p>
<p>To make this all permanent you need to add the iwl3945 and iwlwifi_mac80211 modules to /etc/modules</p>
<p><code>sudo echo iwlwifi_mac80211 &gt;&gt; /etc/modules<br />
sudo echo iwl3945 &gt;&gt; /etc/modules<br />
</code></p>
<p>And now stop the ipw3945 and dependencies from loading by blacklisting them<br />
<code><br />
sudo echo blacklist ipw3945 &gt;&gt; /etc/modprobe.d/blacklist<br />
sudo echo blacklist ieee80211 &gt;&gt; /etc/modprobe.d/blacklist<br />
sudo echo blacklist ieee80211_crypt &gt;&gt; /etc/modprobe.d/blacklist<br />
sudo echo blacklist mac80211 &gt;&gt; /etc/modprobe.d/blacklist</code></p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/12/29/more-ubuntu-710-notes-for-dell-d630/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Notes on installing Ubuntu Gutsy Gibbon 64bit edition on a Dell D630</title>
		<link>http://dan.bodar.com/2007/11/08/notes-on-installing-ubuntu-gutsy-gibbon-64bit-edition-on-a-dell-d630/</link>
		<comments>http://dan.bodar.com/2007/11/08/notes-on-installing-ubuntu-gutsy-gibbon-64bit-edition-on-a-dell-d630/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 23:35:48 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/2007/11/08/notes-on-installing-ubuntu-gutsy-gibbon-64bit-edition-on-a-dell-d630/</guid>
		<description><![CDATA[I had to start the install CD in safe VGA mode and have not got the slash to display yet.
To get sound to work you don&#8217;t need to recompile your kernel or go back to an earlier version just follow method G one this page:
Gutsy Intel HD Audio Controller
or
sudo aptitude install linux-backports-modules-generic
sudo gedit /etc/modprobe.d/alsa-base
In the [...]]]></description>
			<content:encoded><![CDATA[<p>I had to start the install CD in safe VGA mode and have not got the slash to display yet.</p>
<p>To get sound to work you don&#8217;t need to recompile your kernel or go back to an earlier version just follow method G one this page:</p>
<p><a href="https://wiki.ubuntu.com/Gutsy_Intel_HD_Audio_Controller#head-0e5a1c0b384a3886c7776913e401a039809c84c9">Gutsy Intel HD Audio Controller</a></p>
<p>or</p>
<p><code>sudo aptitude install linux-backports-modules-generic</code></p>
<p><code>sudo gedit /etc/modprobe.d/alsa-base</code></p>
<p>In the editor, add the following line at the end of the file:</p>
<p><code>options snd-hda-intel model=dell-m42</code></p>
<p>Save the file and reboot to get sound working correctly.</p>
<p>If sound is too low, go to Volume Control&#8217;s Preferences and add &#8220;Front&#8221; (and any other playback tracks) and make sure they are set to the maximum.</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/11/08/notes-on-installing-ubuntu-gutsy-gibbon-64bit-edition-on-a-dell-d630/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What I would love to do</title>
		<link>http://dan.bodar.com/2007/10/06/what-we-would-love-to-do/</link>
		<comments>http://dan.bodar.com/2007/10/06/what-we-would-love-to-do/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 13:34:11 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/?p=6</guid>
		<description><![CDATA[Smart Contracts
http://www.erights.org/smart-contracts/index.html
http://www.waterken.com/dev/IOU/Design/
We may end up getting RESTful smart contracts for free due to all the goodness in the current design. This could lead (my client).com to an unheard of level of security and possible make it the most high profile public implementation of smart contracts to date. Watch this space
Auto Save Enhancement 
We currently auto [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Smart Contracts<br />
</strong><a href="http://www.erights.org/smart-contracts/index.html">http://www.erights.org/smart-contracts/index.html</a><br />
<a href="http://www.waterken.com/dev/IOU/Design/">http://www.waterken.com/dev/IOU/Design/</a></p>
<p>We may end up getting RESTful smart contracts for free due to all the goodness in the current design. This could lead (my client).com to an unheard of level of security and possible make it the most high profile public implementation of smart contracts to date. Watch this space</p>
<p><strong>Auto Save Enhancement </strong></p>
<p>We currently auto save on page transition but for JavaScript clients we could do this on any change. Imagine a world were your browser behaves like IntelliJ and you never loose any data you type in.</p>
<p><strong>Web 3.0 Semantic Web </strong></p>
<p>Due to our data being so dynamic we may have the opportunity to go from web 2.0 to web 3.0 and again this could make this one of the first killer semantic web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/10/06/what-we-would-love-to-do/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What we will be doing in the future</title>
		<link>http://dan.bodar.com/2007/10/06/what-we-will-be-doing-in-the-future/</link>
		<comments>http://dan.bodar.com/2007/10/06/what-we-will-be-doing-in-the-future/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 13:33:42 +0000</pubDate>
		<dc:creator>dan</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/?p=5</guid>
		<description><![CDATA[Decoupling Resource selection from Representation selection in our Urls 
This will allow resources (domain objects/documents) to be selected (think SQL WHERE clauses) and presenters re-used by the client editors without specific coding by developers. So a url like &#8220;/video/skins/latest&#8221; could return all videos tagged with skins or possibly any resource tagged with video and skins. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Decoupling Resource selection from Representation selection in our Urls </strong></p>
<p>This will allow resources (domain objects/documents) to be selected (think SQL WHERE clauses) and presenters re-used by the client editors without specific coding by developers. So a url like &#8220;/video/skins/latest&#8221; could return all videos tagged with skins or possibly any resource tagged with video and skins. What we are aiming for is totally dynamic / fluid urls with uses we never imagined.</p>
<p><strong>Mashups </strong></p>
<p>Editors will be able to mashup YouTube videos, Facebook items, MySpace pages, Flickr images etc. into pretty much any where on the site. Users will be able to mashup client content / videos onto any other site.</p>
<p><strong>Social Networking </strong></p>
<p>Allowing users to rate each others content, interact with client content / users and other social networking sites and generally use the site in new and interesting ways</p>
<p><strong>Caching </strong></p>
<p>We will be totally embracing web caching so that all non current user specific content will be cache able. User specific content will be included client side (in an accessible way) so containing pages do not need to be made non cache able.</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/10/06/what-we-will-be-doing-in-the-future/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What I have been doing for the last few months</title>
		<link>http://dan.bodar.com/2007/10/06/3/</link>
		<comments>http://dan.bodar.com/2007/10/06/3/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 13:20:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/?p=3</guid>
		<description><![CDATA[So I thought I would start my first post with what I have been working on for the last couple of months. Naturally I have removed all references to my current client.
What we have built already:
RESTful Web Site and Web Components 
So just like REST exposed your web service api/end points on to url and [...]]]></description>
			<content:encoded><![CDATA[<p>So I thought I would start my first post with what I have been working on for the last couple of months. Naturally I have removed all references to my current client.</p>
<p><strong>What we have built already:</strong></p>
<p><strong>RESTful Web Site and Web Components </strong></p>
<p>So just like REST exposed your web service api/end points on to url and embraced simple message / state transfer we are going a step further and making all our web components (think html widgets) be exposed by an addressable url. Composition of components can then be done done either server side or client side. And is therefore not language specific so one could compose a widget that comprised of other widgets written in ruby, python and C# etc. In fact the widgets don&#8217;t even need to be on our server or written by us - think mashups on steroids.</p>
<p><strong>Post/Redirect/Get pattern</strong><a href="http://en.wikipedia.org/wiki/Post/Redirect/Get" target="blank"><br />
http://en.wikipedia.org/wiki/Post/Redirect/Get</a></p>
<p>We have built a simple interface contract that enforces that all POSTs return a redirect so that the Back button will always work. This combined with the transaction boundaries ensures that all GET requests are idempotent.</p>
<p><strong>Simple transaction boundaries </strong></p>
<p>Transaction boundaries have been enforced so that developers do not need to worry about them at all in production code. GET requests run in a transaction that will always be rolled back, POST requests will always commit if successful and always roll back if an error is thrown. Some serious work went into taming Hibernate so that it did not auto commit, had no mutable static state and was completely encapsulated.</p>
<p><strong>Extended SiteMesh<br />
</strong><a href="http://www.opensymphony.com/sitemesh/" title="http://www.opensymphony.com/sitemesh/">http://www.opensymphony.com/sitemesh/</a></p>
<p>We are using SiteMesh not only for decoration of the site but for the composition of web components and the ability to extract any content from a page so that when combined with AHAH only the smallest payload is returned to the client keeping response time down.</p>
<p><strong>AHAH (Asynchronous HTML and HTTP)<a href="http://microformats.org/wiki/rest/ahah" target="blank"><br />
</a></strong><a href="http://microformats.org/wiki/rest/ahah" target="blank"> http://microformats.org/wiki/rest/ahah</a><strong><a href="http://microformats.org/wiki/rest/ahah" target="blank"> </a></strong></p>
<p>This enables much simpler JavaScript to be written (think JavaScript that never needs to replicate the domain model or business rules on the client) and allows for complete reuse of server side logic. This combined with behaviour CSS bindings ( <a href="http://www.bennolan.com/behaviour/" target="blank">http://www.bennolan.com/behaviour/ </a>) leads to NO in-line JavaScript nastiness and more semantic html.</p>
<p><strong>No Session State just persistent documents </strong></p>
<p>We have NO session state, all state changes to documents are persisted which leads to a number of advantages: Users never loose data they have filled in, marketing can see exactly how far a user got before balling out of a work flow. Users can fill in data in any order they want and only when they are ready do we action their request. Domain objects are only updated once the document has been validated.</p>
<p><strong>In memory web acceptance testing </strong></p>
<p>Think super fast builds, no deployment (in fact no need for a web server), pure Java acceptance tests (i.e. refactorable) and the 80/20 rule on what is good enough to give you confidence that the system works.</p>
<p><strong>Progressive Enhancement and Accessibility<br />
</strong><a href="http://en.wikipedia.org/wiki/Progressive_Enhancement" target="blank">http://en.wikipedia.org/wiki/Progressive_Enhancement</a></p>
<p>All stories are played vanilla html version first and a second story for JavaScript enhancements. This leads to cleaner simpler semantic html and also allows feedback from the first story to be tacked onto the second story.</p>
<p><strong>NO Logic in the View<br />
</strong><a href="http://www.stringtemplate.org/" title="http://www.stringtemplate.org/">http://www.stringtemplate.org/</a></p>
<p>We are using StringTemplate to enforce that NO logic can be written in the view, plus it&#8217;s super fast, has no &#8220;for loops&#8221; (think ruby each blocks).</p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/10/06/3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally setup my technical blog</title>
		<link>http://dan.bodar.com/2007/10/06/finally-setup-my-personal-blog/</link>
		<comments>http://dan.bodar.com/2007/10/06/finally-setup-my-personal-blog/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 13:14:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dan.bodar.com/?p=4</guid>
		<description><![CDATA[Okay, after 4 years of people asking me, I finally setup a technical blog.
]]></description>
			<content:encoded><![CDATA[<p>Okay, after 4 years of people asking me, I finally setup a technical blog.<br style="font-size: 30.3px; line-height: 39.5px" /></p>
]]></content:encoded>
			<wfw:commentRss>http://dan.bodar.com/2007/10/06/finally-setup-my-personal-blog/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
