<?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>Craig Russell Web n That &#187; Software</title>
	<atom:link href="http://www.craig-russell.co.uk/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.craig-russell.co.uk</link>
	<description>Web developement, identity management, federated access, web tech, geekery and the odd bit of paper folding</description>
	<lastBuildDate>Fri, 27 Jan 2012 21:57:34 +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>HTML5 Reference: Free Kindle Book</title>
		<link>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/</link>
		<comments>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 17:40:49 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=1001</guid>
		<description><![CDATA[So, I got a Kindle for Xmas. It is awesome. Pretty much the first thing I did with it is start hunting for free web development ebooks. I was quite surprised to find that there wasn&#8217;t a free tag reference for HTML5. So I made one. It&#8217;s not in the Amazon store, but you can&#8230;]]></description>
			<content:encoded><![CDATA[<p>So, I got a Kindle for Xmas. It is awesome.</p>
<p>Pretty much the first thing I did with it is start hunting for free web development ebooks. I was quite surprised to find that there wasn&#8217;t a free tag reference for HTML5.</p>
<p>So I made one.</p>
<p>It&#8217;s not in the Amazon store, but you can download and copy it to you Kindle over USB.</p>
<p><a href="http://www.craig-russell.co.uk/downloads/HTML5_Reference.mobi">Download HTML5 Reference here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/html5-reference-free-kindle-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Physics Orbiting Objects</title>
		<link>http://www.craig-russell.co.uk/javascript-physics-orbiting-objects/</link>
		<comments>http://www.craig-russell.co.uk/javascript-physics-orbiting-objects/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 13:31:34 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=998</guid>
		<description><![CDATA[Finally I&#8217;ve found a decent example of a JS physics simulation. This example by Jorn Zaefferer shows how to model a bouncing ball with vector arithmetic. I&#8217;ve tweaked this code to build a simulation of objects orbiting about a point. The only key difference is that the gravity for each ball is recalculated relative to&#8230;]]></description>
			<content:encoded><![CDATA[<p>Finally I&#8217;ve found a decent example of a JS physics simulation. This <a href="http://bassistance.de/2011/12/09/vector-math-basics-to-animate-a-bouncing-ball-in-javascript/" target="_blank">example by Jorn Zaefferer</a> shows how to model a bouncing ball with vector arithmetic.</p>
<p>I&#8217;ve tweaked this code to build a simulation of objects orbiting about a point. The only key difference is that the gravity for each ball is recalculated relative to the &#8220;sun&#8221; with each animation step. I&#8217;ve also removed collision detection with the window borders.</p>
<p>There&#8217;s a live <a href="http://craig-russell.co.uk/examples/orbiting_ball/" target="_blank">example here</a>. View the source for the.. er.. source.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/javascript-physics-orbiting-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Mining &#8211; Harder Than it Should Be</title>
		<link>http://www.craig-russell.co.uk/data-mining-harder-than-it-should-be/</link>
		<comments>http://www.craig-russell.co.uk/data-mining-harder-than-it-should-be/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 08:21:47 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Comment]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=949</guid>
		<description><![CDATA[I&#8217;ve recently finished an MSc in Intelligent Systems at De Montfort University (I passed with distinction &#8211; thanks for asking). One module of the course was devoted to using Data Mining techniques to explore data sets. Data Mining differs from the more common analysis of data. Commonly a data set may be analysed statistically, looking&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently finished an <a href="http://www.cse.dmu.ac.uk/msccir/" target="_blank">MSc in Intelligent Systems at De Montfort University</a> (I passed with distinction &#8211; thanks for asking). One module of the course was devoted to using Data Mining techniques to explore data sets. Data Mining differs from the more common analysis of data. Commonly a data set may be analysed statistically, looking for the distribution of this or calculating the rate of change in that, whereas applying data mining techniques can expose otherwise obscure patterns in the data. Or to put it another way: using statistics you are asking the data what to show, but Data Mining reveals to you what the data has.</p>
<p>As part of the course we used one of the major data mining products on the market. As an class of Masters Degree students, learning about the subtle intricacies of our chosen subject, the product served us well. We were able to tweak and twiddle with more switches than a 747. We had the luxury of time to run, re-run, rinse and repeat data processing over and over. I&#8217;m equally sure that for professional data mining consultants, hired by large wealthy companies to trawl vast private data repositories, these products are worth the thousands of pounds of license fees they pay.</p>
<p>But what about everyone else? What about the campaigns <a href="http://www.freeourdata.org.uk/" target="_blank">working to holding government to account over public data</a>? What about the new-breed of <a href="http://www.guardian.co.uk/news/datablog/2011/jul/28/data-journalism" target="_blank">data journalist exposing stories otherwise hidden in obscure facts and figures</a>? What about the <a href="http://buzzdata.com/about" target="_blank">data evangelists enlightening and entertaining with wonderful visualisations</a>? How accessible is data mining for these people? How affordable? How usable?</p>
<p>Not enough.</p>
<p>With increasingly more data being placed in the public domain, so increases the need for tools to explore this data. Data Mining tools are out there, but are no-where-near as accessible as the data that requires them.</p>
<p>It is with this in mind that I have begun to develop an accessible, usable and intuitive suite of tools to explore data sets. The first of these, <a href="http://clusterbombapp.com" target="_blank">Clusterbomb</a>, will mine data sets to expose the hidden clusters of records buried within. I&#8217;m expecting to have an alpha release out early next year, but for now <a href="http://clusterbombapp.com" target="_blank">sign up to the mailing list</a> to keep an eye on developments. Clusterbomb is also on <a href="http://twitter.com/clusterbombapp" target="_blank">Twitter</a> and <a href="http://facebook.com/clusterbombapp/" target="_blank">Facebook</a>.</p>
<blockquote><p>❝To be ahead of the rest, you need to see more than they do❞</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/data-mining-harder-than-it-should-be/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Single CMS &#8211; The One Page CMS</title>
		<link>http://www.craig-russell.co.uk/single-cms-the-one-page-cms/</link>
		<comments>http://www.craig-russell.co.uk/single-cms-the-one-page-cms/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 11:34:50 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=928</guid>
		<description><![CDATA[Recently, in my day job, a request came in for a single page site. The requesters wanted to edit the content of the site without worrying about the style of the page. The solution we went with utilised our existing CMS system, but nevertheless I felt my developer itch needing scratching. So I whipped up&#8230;]]></description>
			<content:encoded><![CDATA[<p>Recently, in my day job, a request came in for a single page site. The requesters wanted to edit the content of the site without worrying about the style of the page. The solution we went with utilised our existing CMS system, but nevertheless I felt my developer itch needing scratching. So I whipped up a simple little single page CMS, and called it (wait for it) Single CMS.</p>
<p>It makes use of <a href="http://www.tinymce.com/">TinyMCE</a> for the editor, so not HTML needed. The user-generated content is filtered through the damn handy <a href="http://php.net/manual/en/function.strip-tags.php"><code>strip_tags</code></a> function and saved in a text file that is writeable by the server.</p>
<p>The single page itself can be styled independently and just calls a few php includes to insert the content HTML. There&#8217;s options in the <code>config.php</code> file to set the admin username and password along with site meta, error messages and a few other bits and bobs. Single CMS is bundled with <a href="http://jquery.com/">JQuery</a> and <a href="http://www.modernizr.com/">modernizr</a> and makes use of most of the sweet stuff from the <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a> project.</p>
<p>If you want to have a play around, the source is up on <a href="https://github.com/craig552uk/SingleCMS">GitHub</a>. It&#8217;s <a href="http://www.opensource.org/licenses/mit-license.php">MIT Licenced</a>, so feel free to use, abuse and reuse.</p>
<p><a href="https://github.com/craig552uk/SingleCMS/zipball/master">Download Simple CMS Here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/single-cms-the-one-page-cms/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Top Chrome Plugins for Safer Browsing</title>
		<link>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/</link>
		<comments>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 08:22:26 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=915</guid>
		<description><![CDATA[You&#8217;ve gotta take your security seriously when using the web. Your actions on-line are being tracked and monitored constantly by various companies. This might not bother you, but it bothers me. Here&#8217;s a few plugins for Google Chrome that give me a little more piece of mind when I&#8217;m online. AdBlock Blocks all (well most)&#8230;]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve gotta take your security seriously when using the web. Your actions on-line are being tracked and monitored constantly by various companies. This might not bother you, but it bothers me. Here&#8217;s a few plugins for Google Chrome that give me a little more piece of mind when I&#8217;m online.</p>
<h2><a href="https://chrome.google.com/webstore/detail/gighmmpiobklfepjocnamgkkbiglidom">AdBlock</a></h2>
<p>Blocks all (well most) ads on sites around the web. No-one likes ads, apart from the people pushing them, this plugin makes them go away.</p>
<h2><a href="https://chrome.google.com/webstore/detail/gofhjkjmkpinhpoiabjplobcaignabnl">Flash Block</a></h2>
<p>Blocks all those irritating flash animations from jumping straight down your eyeballs when all you want to do is read an article. It lets you choose which flash objects to enable with a click. You can also white-list sites, preventing flash from being blocked at all (YouTube is white-listed by default).</p>
<h2><a href="https://chrome.google.com/webstore/detail/hhnjdplhmcnkiecampfdgfjilccfpfoe">Keep My Opt-Outs</a></h2>
<p>A plugin provided by Google to stop Google from using your browser habits to send targeted ads. Needless to say, they don&#8217;t market this very widely, but it is there.</p>
<h2><a href="https://chrome.google.com/webstore/detail/mlomiejdfkolichcflejclcbmpeaniij">Ghostery</a></h2>
<p>Ghostery aims to block those nasty tracking scripts from running in your browser. It doesn&#8217;t promise to block everything, and requires a little configuration, but something is better than nothing.</p>
<h2><a href="https://chrome.google.com/webstore/detail/flcpelgcagfhfoegekianiofphddckof">KB SSL Enforcer</a></h2>
<p>This plugin checks every site you visit for SSL support, if it does it forces you to use it. SSL ensures that the information sent over the internet can only be read by the site you&#8217;re visiting and no-one else along the way.</p>
<h2><a href="https://chrome.google.com/webstore/detail/lcncmkcnkcdbbanbjakcencbaoegdjlp">Google SSL Web Search</a></h2>
<p>Adds a secure version of Google search to your search engines list. You should set Google SSL as your default search engine.</p>
<p>There&#8217;s certainly more that you could do to <a href="https://encrypted.google.com/search?sourceid=chrome&#038;ie=UTF-8&#038;q=safer+browsing+habits">improve your safety while on-line</a>, but adding these plug-ins to your browser is a good start.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/top-chrome-plugins-for-safer-browsing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Tip: Custom Config Parameters</title>
		<link>http://www.craig-russell.co.uk/git-tip-custom-config-parameters/</link>
		<comments>http://www.craig-russell.co.uk/git-tip-custom-config-parameters/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 12:06:04 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=898</guid>
		<description><![CDATA[Git is lovely. You know this. Here&#8217;s another bit of Gitty loveliness for you: Custom Config Parameters. The primary configuration file in Git is found in .git/config. In here are the configuration parameters for your repository. Git provides a tool to manage this file &#8211; git config. Handily this tool lets you store your own&#8230;]]></description>
			<content:encoded><![CDATA[<p>Git is lovely. You know this. </p>
<p>Here&#8217;s another bit of Gitty loveliness for you: Custom Config Parameters.</p>
<p>The primary configuration file in Git is found in <code>.git/config</code>. In here are the configuration parameters for your repository. Git provides a tool to manage this file &#8211; <a href="http://kernel.org/pub/software/scm/git/docs/git-config.html">git config</a>. Handily this tool lets you store your own configuration parameters too.</p>
<h2>How to do it</h2>
<p>If you have a look inside <code>.git/config</code> you&#8217;ll see that data is structured in key-value pairs grouped in to sections.</p>

<div class="wp_syntax"><div class="code"><pre class="plain" style="font-family:monospace;">[branch &quot;master&quot;]
	remote = origin
	merge = refs/heads/master</pre></div></div>

<p>Which is accessed by running a command like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config branch.master.remote
origin</pre></div></div>

<p>And modified like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config branch.master.remote newValue</pre></div></div>

<p>You can define a new section to store your own data like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config mydata.mykey valueA</pre></div></div>

<p>You can store multiple values too&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config --add mydata.mykey valueB</pre></div></div>

<p>And fetch them all like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config --get-all mydata.mykey
valueA
valueB</pre></div></div>

<p>Delete a single value like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config --unset mydata.mykey valueB</pre></div></div>

<p>Delete all key values like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config --unset-all mydata.mykey</pre></div></div>

<p>And to remove a whole section&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">-&gt; git config --remove-section mydata</pre></div></div>

<h2>What to do with it</h2>
<p>That&#8217;s great, but what can you do with it?</p>
<p>Why not use it to store parameters for your workflow scripts? Here&#8217;s some ideas.</p>
<ul>
<li>The locations of CSS and JS files to be minified</li>
<li>Compilation output directory</li>
<li>The latest version release number (if your not a tag fan)</li>
<li>Feature branch meta data (owner, decription, etc.)</li>
<li>A list of deployment servers</li>
</ul>
<p>If you use this feature in your scripts, drop a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/git-tip-custom-config-parameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Branch in Command Prompt</title>
		<link>http://www.craig-russell.co.uk/git-branch-in-command-prompt/</link>
		<comments>http://www.craig-russell.co.uk/git-branch-in-command-prompt/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 21:00:22 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=878</guid>
		<description><![CDATA[This article from NetTuts explains the basics of configuring the command prompt on Linux and Mac. It includes the great idea of displaying the current Git branch in the prompt. However, their method makes use of the vcprompt package, which has to be compiled and installed. A worthwhile exercise, but a bit unnecessary for a&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://net.tutsplus.com/tutorials/other/how-to-customize-the-command-prompt/">This article from NetTuts</a> explains the basics of configuring the command prompt on Linux and Mac. It includes the great idea of displaying the current Git branch in the prompt.</p>
<p>However, their method makes use of the <a href="http://vc.gerg.ca/hg/vcprompt/">vcprompt</a> package, which has to be compiled and installed. A worthwhile exercise, but a bit unnecessary for a simple prompt. The following snippet of scripting will do the same job, just pop it in your <code>.bashrc</code> file.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> pre_prompt_print<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>
    <span style="color: #007800;">GIT</span>=<span style="color: #ff0000;">&quot;&quot;</span>
    <span style="color: #007800;">BRANCH</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">git</span> branch <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> \<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> ‘<span style="color: #7a0874; font-weight: bold;">&#123;</span>print <span style="color: #007800;">$2</span><span style="color: #7a0874; font-weight: bold;">&#125;</span>’<span style="color: #000000; font-weight: bold;">`</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$BRANCH</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #007800;">GIT</span>=”<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #007800;">$BRANCH</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>”
    <span style="color: #000000; font-weight: bold;">fi</span>
    <span style="color: #7a0874; font-weight: bold;">printf</span> “<span style="color: #007800;">$USER</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #007800;">$HOSTNAME</span><span style="color: #007800;">$PWD</span> <span style="color: #007800;">$GIT</span>\n”
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #007800;">PROMPT_COMMAND</span>=pre_prompt_print
<span style="color: #007800;">PS1</span>=”-<span style="color: #000000; font-weight: bold;">&gt;</span> ”</pre></div></div>

<p>This will give you a command prompt looking something like this&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">craig@craig-laptop:/home/craig/myGitProject [git:master]  
-&gt;</pre></div></div>

<p>How imaginative is my hostname eh?</p>
<p>I didn&#8217;t spend too long on this, and I know it could be better refined. So if you have any suggestions, drop a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/git-branch-in-command-prompt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GEdit: The Missing Keyboard Shortcuts</title>
		<link>http://www.craig-russell.co.uk/gedit-keyboard-shortcuts/</link>
		<comments>http://www.craig-russell.co.uk/gedit-keyboard-shortcuts/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 18:13:52 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=841</guid>
		<description><![CDATA[I&#8217;ve love GEdit, it&#8217;s a great text editor, and having added a few plugins, a great IDE too. GEdit has a few keyboard short cuts for working with the application. But there&#8217;s also a lot of great short cuts for working within the document. These, however, arn&#8217;t documented anywhere. GEdit uses the GTKTextView widget to&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve love GEdit, it&#8217;s a great text editor, and having added a few plugins, a great IDE too.</p>
<p>GEdit has a few <a href="http://live.gnome.org/Gedit/KeyboardShortcuts">keyboard short cuts</a> for working with the application. But there&#8217;s also a lot of great short cuts for working within the document. These, however, arn&#8217;t documented anywhere.</p>
<p>GEdit uses the <a href="http://developer.gnome.org/gtk/2.24/GtkTextView.html">GTKTextView</a> widget to display and edit text, it&#8217;s for this that the short cuts are undocumented.</p>
<p>I&#8217;ve collected all the GTKTextView keyboard short cuts I know of here. I suspect that there are more (moving the cursor to the start and end of sentences for example) but I haven&#8217;t found them yet.</p>
<p>Also, as the GTKTextView widget is used throughout Gnome, you&#8217;ll find that these short cuts can be used all over the place (like in textareas on websites).<br />
<br/></p>
<h2>Navigation &amp; Selection</h2>
<p>These short cuts can be used to move the cursor around the document. Navigation shortcuts can be used with the Shift key to select text.</p>
<table class="aligncenter">
<tr>
<td>Ctrl+Right</td>
<td>Move cursor forward by word</td>
</tr>
<tr>
<td>Ctrl+Left</td>
<td>Move cursor backwards by word</td>
</tr>
<tr>
<td>Ctrl+Home</td>
<td>Move cursor to start of document</td>
</tr>
<tr>
<td>Ctrl+End</td>
<td>Move cursor to end of document</td>
</tr>
<tr>
<td>Ctrl+PageUp</td>
<td>Move cursor to start of wrapped line</td>
</tr>
<tr>
<td>Ctrl+PageDn</td>
<td>Move cursor to end of wrapped line</td>
</tr>
</table>
<p><br/></p>
<h2>Deleting</h2>
<p>These short cuts can be used to delete sections of text.</p>
<table class="aligncenter">
<tr>
<td>Ctrl+Del</td>
<td>Delete word ahead cursor</td>
</tr>
<tr>
<td>Ctrl+BkSpce</td>
<td>Delete word behind cursor</td>
</tr>
<tr>
<td>Ctrl+Shift+Del</td>
<td>Delete from cursor to end of line</td>
</tr>
<tr>
<td>Ctrl+Shift+BkSpce</td>
<td>Delete from cursor to start of line</td>
</tr>
<tr>
<td>Ctrl+d</td>
<td>Delete line</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/gedit-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Writing Gedit Plugins &#8211; Link Round Up</title>
		<link>http://www.craig-russell.co.uk/writing-gedit-plugins-link-round-up/</link>
		<comments>http://www.craig-russell.co.uk/writing-gedit-plugins-link-round-up/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 21:45:44 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.craig-russell.co.uk/?p=839</guid>
		<description><![CDATA[If you want to write a plugin for Gedit, you&#8217;ve probably struggled to find any helpful tutorials and documentation. That&#8217;s because there isn&#8217;t much out there. On my hunt, I&#8217;ve found the following few links to be worthwhile. Python Plugin How To for gedit 3 My first gedit plugin Gedit Plugin It&#8217;ll also be worth&#8230;]]></description>
			<content:encoded><![CDATA[<p>If you want to write a plugin for Gedit, you&#8217;ve probably struggled to find any helpful tutorials and documentation. That&#8217;s because there isn&#8217;t much out there.</p>
<p>On my hunt, I&#8217;ve found the following few links to be worthwhile.</p>
<p><a href="http://live.gnome.org/Gedit/PythonPluginHowTo">Python Plugin How To for gedit 3</a></p>
<p><a href="http://www.russellbeattie.com/blog/my-first-gedit-plugin">My first gedit plugin</a></p>
<p><a href="http://sp2hari.com/2007/11/08/gedit-plugin/">Gedit Plugin</a></p>
<p>It&#8217;ll also be worth checking this out.</p>
<p><a href="http://pygtk.org/pygtk2tutorial/">PyGTK 2.0 Tutorial</a></p>
<p>It&#8217;s not much, but it&#8217;s a start&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.craig-russell.co.uk/writing-gedit-plugins-link-round-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

