<?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>Conceptric &#187; Software</title>
	<atom:link href="http://www.conceptric.co.uk/category/everything/software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.conceptric.co.uk</link>
	<description>Ideas and Applications</description>
	<lastBuildDate>Sat, 31 Jul 2010 20:30:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>What Git does best.</title>
		<link>http://www.conceptric.co.uk/what-git-does-best.htm</link>
		<comments>http://www.conceptric.co.uk/what-git-does-best.htm#comments</comments>
		<pubDate>Tue, 18 Nov 2008 20:55:40 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Everything]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://www.conceptric.co.uk/?p=122</guid>
		<description><![CDATA[I've succumbed to the lure of the cool kids version control. GIT has advantages and disadvantage over my current favourite, Subversion.]]></description>
			<content:encoded><![CDATA[<p>I run several remote Subversion repositories and connect using SSH over the Internet. Having local version control for those times I don&#8217;t have an ADSL connection was the main reason I looked at Git.</p>
<p>There&#8217;s a good <a href="http://blog.macromates.com/2008/git-bundle/">TextMate bundle to support Git</a>, but to be honest I&#8217;ve mostly used the command-line.</p>
<h3>Weaknesses.</h3>
<p><a href="http://svnbook.red-bean.com/en/1.0/ch07s04.html">Vendor branching</a> is possible, <a href="http://sourceware.org/frysk/build/git-fu.html">but awkward</a>. I frequently use vendor drops of WordPress, SimpleTest and a number of other libraries. There may be a good way of doing this, but I haven&#8217;t found it online&#8230; yet.</p>
<p>I miss the <a href="http://svnbook.red-bean.com/en/1.0/ch07s03.html">svn:externals</a> functionality, especially in applications that use a lot of plugins: WordPress in particular. Subversion allows me to define particular tagged versions of these to be pulled from their repositories during deployment without needing to bother controlling them myself.</p>
<h3>Strengths.</h3>
<p>Branch merging when trying out new ideas is a dream. I created a new branch, refactored huge sections of the codebase, and merged it all back together flawlessly. With Subversion this would have been a lot slower and more problematic. Git&#8217;s simply great for those investigatory spikes.</p>
<h3>The verdict for Git.</h3>
<p>I&#8217;ve yet to seriously try Git to interface with my remote Subversion repositories, using the &#8216;git svn&#8217; series of commands. Having local copies of these, whilst still being able to use remote Subversion would be very useful. I&#8217;ve found using remote Subversion repositories easy, but trying to push a Git repository to Subversion is not so easy. I&#8217;m also going to try deploying from a Git repository using Capistrano in the near future.</p>
<p>It strikes me that Git is best at programmer related activities and weakest in those of interest to administrators deploying applications. I shall certainly continue to use it, but alongside Subversion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/what-git-does-best.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal revisited</title>
		<link>http://www.conceptric.co.uk/drupal-revisited.htm</link>
		<comments>http://www.conceptric.co.uk/drupal-revisited.htm#comments</comments>
		<pubDate>Thu, 24 Apr 2008 13:46:29 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[club]]></category>
		<category><![CDATA[content management system]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[writemaps]]></category>

		<guid isPermaLink="false">http://www.jameswhinfrey.co.uk/?p=58</guid>
		<description><![CDATA[Four months on and it's time to review progress on the <a href="http://northamptonshirebirdclub.org.uk/">Northamptonshire Bird Club</a> website. Is Drupal working out the way I hoped?]]></description>
			<content:encoded><![CDATA[<p>OK&#8230; as I mentioned in my <a href="http://www.jameswhinfrey.co.uk/using-drupal.htm">previous article</a>, I&#8217;d had a change of heart on the approach for the <a href="http://northamptonshirebirdclub.org.uk/">Northamptonshire Bird Club</a> website.</p>
<h3>Redefining the Architecture.</h3>
<p>I decided to start again by defining the information architecture for the site based on a proper discussion with the Club committee. The first few meetings on this topic just weren&#8217;t as well focused as they should have been; mostly my fault for not knowing what I wanted from them; but this time I tried targeting those features that the membership would really value. Each of the features that emerged seemed to fall into logical sections of the information architecture:</p>
<ul>
<li>About the Club &#8212; including notices, events and membership contacts.</li>
<li>Content on Birding &#8212; after all it&#8217;s the main focus of the Club.</li>
<li>Social groups within the Club divided by specific interest.</li>
</ul>
<p>These overall sections were used as containers for the more specific features, and these formed the basis for implementation.</p>
<p>I&#8217;ve tried an online tool called <a href="http://writemaps.com/">WriteMaps</a> for developing and sharing the architecture of this site. I haven&#8217;t decided whether it&#8217;s the best way to approach the job yet, but here&#8217;s <a href="http://writemaps.com/sitemaps/shareMap/3b3c848ehee80w3zgak2n5e4wi9m7vblx2ma8n6fmemi1orinj">the link to the detailed sitemap</a>.</p>
<h3>Implementing the Design.</h3>
<p>The original site used custom taxonomy &#8212; tagging &#8212; to enforce the architecture, with multiple sections of the site sharing the same content types. As I mentioned, this made it very confusing for the Club editors, which was reflected in the site presentation.</p>
<h4>Installing new modules.</h4>
<p>I needed to add several new modules to support the new content. There are several ways of doing this; this alone is a substantial topic; but the simplest is to download the module directory containing the code into the modules directory of your Drupal installation.</p>
<h4>Content types.</h4>
<p>For this redesign I decided that each of the features should have a dedicated content type so that users only need select the right one, there&#8217;s help text as you can see, and it&#8217;ll end up in the right place on the website. No more messing about with tags!</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/the-content-types.jpg" title="The new content types" alt="The new create content menu" width="400" height="450" /></div>
<p>A great tool for this is the <a href="http://drupal.org/project/cck">Content Construction Kit (<abbr title="Content Construction Kit">CCK</abbr>)</a> module. It makes implementing new content types very easy; no PHP required; and there are a wide range of modules that provide additional data fields. I&#8217;ve used several to provide dates, images and even GoogleMaps, take a look at <a href="http://drupal.org/project/Modules/category/88">the full list of compatible modules</a> on the Drupal website.</p>
<p>Once the CCK module is installed, all the changes you want to make can be managed from the <em>Content types</em> section of <em>Content Management</em>.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/content-type-management.jpg" title="Content type management" alt="The content type management menu" width="400" height="396" /></div>
<h4>Providing access.</h4>
<p>All these new content types need to have access control set&#8211;up before you can go any further. This is done in <em>Access control</em>, under <em>User Management</em>  in the administration section of Drupal.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/user-management-menu.jpg" title="User management menu" alt="The user management menu" width="400" height="252" /></div>
<p>You should find both create and edit options to set under <em>node module</em> for the new content types.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/node-access-control.jpg" title="Node access control" alt="The node access control options" width="400" height="162" /></div>
<p>Once these are set the content types should appear on the appropriate <em>create content</em> menus.</p>
<h4>Setting up the paths.</h4>
<p>But you&#8217;ll want to set the <abbr title="Uniform Resource Locator">URL</abbr>s to reflect the new architecture before deploying.</p>
<p>I use <a href="http://drupal.org/project/pathauto">Pathauto</a> to provide aliases for my content that better reflect the structure of the website and present friendly URLs. You can do this manually, but if you can&#8217;t rely on your users to do this consistently I would recommend using Pathauto.</p>
<p>The <em>Pathauto</em> settings are under <em>Site Configuration</em>, and it&#8217;s the Node paths you want to set&#8211;up for your new content.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/pathauto-overview.jpg" title="Pathauto overview" alt="Overview of the options for the Pathauto module" width="400" height="234" /></div>
<p>These, combined with the individual content types, provide the structure for the website. For example I wanted the bird guide to appear within the birding section of the site architecture with individual entries beneath this, so I set the pattern to <cite title="Pathauto pattern for the bird guide">birding/birdguide/[title].htm</cite>.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/some-node-path-settings.jpg" title="Node path settings" alt="Examples of node path settings" width="400" height="198" /></div>
<h4>Time for a View.</h4>
<p>The Views module provides the ability to present node data in a range of different formats. With the module installed your views can be managed from the <em>Administer views</em> section found under <em>Site building</em>.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/the-views.jpg" title="Administering Views" alt="Example of the Views administration options" width="400" height="270" /></div>
<p>Here you can define new views for each of the content types and define a URL from which the specific view can be accessed in the browser. In the image above you can seen that I wanted the bird guide list to appear as the default in the bird guide, and gave it the URL <cite title="Views URL for the bird guide">birding/birdguide</cite>. These views can generate lists, tables and customised sorting, in addition to the more standard web page presentations.</p>
<h4>&#8230;And a menu.</h4>
<p>Finally we&#8217;re going to want a menu from which all our good work can be accessed. The menus and blocks in Drupal can all be found in the <em>Site building</em> section.</p>
<p>The sequence is simple, first create a new menu for the features you&#8217;ve implemented, under the <em>Menus</em> section, using the URLs of the views;</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/the-birding-menu.jpg" title="The birding menu" alt="Example of the birding section menu" width="400" height="216" /></div>
<p>and then go to the <em>Blocks</em> section and put the new menu where you want it to appear on the website.</p>
<div style="text-align:center;"><img src="http://www.jameswhinfrey.co.uk/wp-content/uploads/blocks-in-the-left-sidebar.jpg" title="Defining blocks" alt="Placing the menus in left sidebar on the website" width="400" height="162" /></div>
<p>That should be it! Your new functionality has been added.</p>
<h3>Conclusions?</h3>
<p>Having established this workflow, I implemented each of the identified features one at a time, ensuring it was working and acceptable before moving on to the next.</p>
<p>I believe, and feedback suggests my users agree, that this approach to building a Drupal website is far more successful than a taxonomy based one. I still use taxonomy, but it now provides addition information for particular types of content rather than forming the basis for site architecture.</p>
<p>As for Drupal itself, it&#8217;s relatively easy to use, even without significant PHP knowledge, and the large community provides a huge range of contributed modules and support. This makes it a powerful way to develop feature rich, multi&#8211;user websites very quickly.</p>
<p>On the downside, I&#8217;ve found providing users with an easy way to upload and insert images very difficult. There are serious problems with using the popular <a href="http://drupal.org/project/tinymce">TinyMCE</a> <abbr title="What You See Is What You Get">WYSIWYG</abbr> editor and <a href="http://drupal.org/project/imce">IMCE</a> file handling together; individually they work OK, but together&#8230; I need to look at this again.</p>
<p>I would definitely recommend trying <a href="http://drupal.org/">Drupal</a> out if you need a <abbr title="Content Management System">CMS</abbr>, for an image rich website; such as a gallery; I&#8217;d try <a href="http://www.flickr.com/">Flickr</a> or, for ultimate control, hand coded <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/drupal-revisited.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First impressions of MarsEdit</title>
		<link>http://www.conceptric.co.uk/first-impressions-of-marsedit.htm</link>
		<comments>http://www.conceptric.co.uk/first-impressions-of-marsedit.htm#comments</comments>
		<pubDate>Thu, 10 Apr 2008 15:56:39 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Mac User]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[marsedit]]></category>

		<guid isPermaLink="false">http://www.jameswhinfrey.co.uk/?p=39</guid>
		<description><![CDATA[I&#8217;m writing on the 30 day trial of MarsEdit, the blog editing tool for the Mac. Given that this is my second post of the day &#8212; very rare, I know &#8212; you might have gathered that I like it. I&#8217;ve always edited my online content remotely, I have a local copy and can work [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m writing on the <a href="http://www.red-sweater.com/marsedit/">30 day trial of MarsEdit</a>, the blog editing tool for the Mac.  Given that this is my second post of the day &#8212; very rare, I know &#8212; you might have gathered that I like it.</p>
<p>I&#8217;ve always edited my online content remotely, I have a local copy and can work off&#8211;line. I use <a href="http://macromates.com/">TextMate</a> for most of my development work and I&#8217;ve been using it for blogging too.</p>
<p>OK&#8230; I was reluctant to change. I like having full control over mark&#8211;up and haven&#8217;t been impressed by a <acronym title="What You See Is What You Get">WYSIWYG</acronym> editor yet, for Web use at least. Untried, I ranked MarsEdit amongst them.</p>
<p>I must apologise to the developers. It&#8217;s a great and flexible tool. Hope I&#8217;ll be doing a little more blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/first-impressions-of-marsedit.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtualizing my world</title>
		<link>http://www.conceptric.co.uk/virtualizing-my-world.htm</link>
		<comments>http://www.conceptric.co.uk/virtualizing-my-world.htm#comments</comments>
		<pubDate>Thu, 10 Apr 2008 15:38:01 +0000</pubDate>
		<dc:creator>James Whinfrey</dc:creator>
				<category><![CDATA[Everything]]></category>
		<category><![CDATA[Mac User]]></category>
		<category><![CDATA[Personal Perspectives]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[vmware fusion]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://www.jameswhinfrey.co.uk/?p=38</guid>
		<description><![CDATA[Virtualization is definitely a big trend in computing and I&#8217;m growing to love it. On the Web. My production server environment is virtualized by the Xen hypervisor; providing a more flexible and cost effective solution. I like the freedom of complete root access but, given my relatively low traffic volumes, the cost of a dedicated [...]]]></description>
			<content:encoded><![CDATA[<p>Virtualization is definitely a big trend in computing and I&#8217;m growing to love it.</p>
<h3>On the Web.</h3>
<p>My production server environment is virtualized by the <a href="http://xen.xensource.com/">Xen hypervisor</a>; providing a more flexible and cost effective solution.</p>
<p>I like the freedom of complete root access but, given my relatively low traffic volumes, the cost of a dedicated server would be prohibitive. However, Xen provides me with my own little chunk of hardware resources that no other user&#8217;s going to break for me. </p>
<p>The great thing is that these resources can be altered very quickly to respond to changes in my requirements; great scalability in a changeable world.</p>
<h3>On the Desktop.</h3>
<p>I&#8217;m also making extensive use of virtualization on my desktop using VMWare Fusion. I&#8217;m a Mac user, but one of the attractions of the VMWare product is the interchangeability of any virtual machine (<abbr title="Virtual Machine">VM</abbr>) between platforms. </p>
<h4>VMWare Fusion.</h4>
<p>VMWare have been in the business of <a href="http://www.vmware.com/virtualization/">Virtualization</a> of a while now, and have a powerful range of products. Whilst many of these are targeted at the enterprise environment, Fusion is definitely a consumer product; in a good way; and the benefits to me so far&#8230;</p>
<ul>
<li>Surprisingly seamless Windows XP including Office, in my experience a much better product than the sadly neglected Mac version. Fusion has a &#8216;Unity&#8217; mode, which places these applications, running in a Windows environment, right on my Mac desktop.</li>
<li>I&#8217;ve tried different Linux flavours for the desktop and server, and I haven&#8217;t needed multiple machines. A great asset when you like to dabble but don&#8217;t have much free space; small house you see; and want to keep the bills down.</li>
<li>I&#8217;ve tried a whole range of software products without the usual worry of messing up my regular working platform, if it all goes wrong I just delete the VM and start again. If I might want to return to this set&#8210;up again, I can take a snapshot of the current installation, or copy the VM file to a backup location so I don&#8217;t have to start from scratch each time.</li>
<li>Finally, I&#8217;ve build VMs of the production server for deployment testing. I know that they&#8217;re not identical, but they&#8217;ve been good enough to iron out problems in build and deployment scripts before unleashing them on the production server itself.</li>
</ul>
<h4>A virtual network.</h4>
<p>Fusion has a built&#8210;in <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr> server to provide <abbr title="Internet Protocol">IP</abbr> addresses, or they can be assigned by an external network using the bridged network option.</p>
<p>After exploring these options I discovered that I could build a virtual development network right on my laptop and make it as private as I want. Oh, yes, you can fix the IPs the server hands out, making it much easier to edit that hosts file.</p>
<p>The <acronym title="Network Address Translation">NAT</acronym> option can access the outside world, to install updates for example, by sharing the host connection. However it&#8217;s protected from external access. My physical home network uses NAT via an <abbr title="Asymmetric Digital Subscriber Line">ADSL</abbr> router, but this is a great option if you&#8217;re likely to take your laptop network out on the road and I use it for the majority of my installations.</p>
<p>If you&#8217;re even more worried about unauthorised access to your latest development project, you can use the host&#8210;only option; access only from the host machine or other local VMs using this network set&#8210;up.</p>
<p>With all the VMs using the same network option, they can all see and access one another. So now I can write my code on the host Mac, test deployment to a virtual <a href="http://www.centos.org/">CentOS</a> Linux server, and check how it looks on Windows. It&#8217;s self contained, I can flip between machines and it&#8217;s all totally mobile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.conceptric.co.uk/virtualizing-my-world.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
