<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Mac Daddy</title>
	<atom:link href="http://mikemacd.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikemacd.wordpress.com</link>
	<description>Mike MacDonagh&#039;s blog</description>
	<lastBuildDate>Mon, 16 Jan 2012 11:25:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mikemacd.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Mac Daddy</title>
		<link>http://mikemacd.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mikemacd.wordpress.com/osd.xml" title="The Mac Daddy" />
	<atom:link rel='hub' href='http://mikemacd.wordpress.com/?pushpress=hub'/>
		<item>
		<title>The Kung Fu of Software Engineering</title>
		<link>http://mikemacd.wordpress.com/2012/01/16/the-kung-fu-of-software-engineering/</link>
		<comments>http://mikemacd.wordpress.com/2012/01/16/the-kung-fu-of-software-engineering/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 11:24:52 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[kung fu]]></category>
		<category><![CDATA[metaphor]]></category>
		<category><![CDATA[RUP]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=618</guid>
		<description><![CDATA[I&#8217;ve been studying both kung fu and software engineering for many years. I&#8217;ve come to realise that they are very similar and that kung fu is a pretty good metaphor for software engineering. Done right it looks easy, but it&#8217;s not When you watch kung fu in movies, or martial arts in general it makes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=618&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been studying both kung fu and software engineering for many years. I&#8217;ve come to realise that they are very similar and that kung fu is a pretty good <a title="Direct, Indirect and complex metaphors" href="http://mikemacd.wordpress.com/2011/10/14/direct-indirect-and-complex-metaphors/">metaphor</a> for software engineering.</p>
<p><strong>Done right it looks easy, but it&#8217;s not</strong></p>
<p>When you watch kung fu in movies, or martial arts in general it makes sense logically, it looks sensible. Attackers punch in one direction and defenders block in another. Sometimes there&#8217;s tricks and special moves but they&#8217;re just a matter of learning them. However when you actually try and do these moves you find it&#8217;s not so simple. It&#8217;s not easy to react the right way under pressure when you&#8217;ve not done it before. You need to learn muscle memory, improve your fitness, work on your reactions and internalise sometimes counter-intuitive techniques. When you really do it well you use very little energy to do something that looks easy and it becomes easy but other people can&#8217;t get it just by watching you.</p>
<p>Both software engineering and kung fu are deceptively difficult, with hidden complexities and complex emergent behaviour. I think it was <a href="http://en.wikipedia.org/wiki/Grady_Booch">Grady Booch</a> who said (although I couldn&#8217;t find the quote so any mistake is mine) “Software development has, is and always will be, inherently complex”.</p>
<p><strong>Complexity built from simple small techniques</strong></p>
<p>In many kung fu styles you learn basic small movements in repetition, often called &#8220;form&#8221; in martial arts, Sil Nim Tao (generally referred to as <a href="http://en.wikipedia.org/wiki/Siu_Nim_Tao">Siu Nim Tao</a> in <a href="http://en.wikipedia.org/wiki/Wing_Chun">Wing Chun</a> kung fu, the <a href="http://en.wikipedia.org/wiki/RUP">RUP</a> of kung fu) is translated as &#8220;little idea form&#8221;. Learning this form we learn all of the basic movements and stances that set up the body positions required to get the mechanical advantage in a given situation. Each individual movement tends to be very, very simple.</p>
<p>This kind of information and learning is analogous to the basic software engineering knowledge that we give people. We teach them how to write in a language, idioms, patterns, standard architectures, frameworks, build technologies, iterative patterns etc.</p>
<p>However knowing which techniques apply in which situations, which play well with others and how to put them all together is another level of expertise based on experience. Teaching someone the basics does not make them a master. Software engineering, like kung fu is something you should never stop practising and learning.</p>
<p><strong>It gets more complex when you add more people</strong></p>
<p>Defending yourself from one attacker is a whole different ball game than defending yourself from two attackers. Defending yourself from a group of attackers breaks down the whole mixed metaphor of ballgames, sports and anything else in the vicinity. The complexity of the action increases significantly as you add more people, it&#8217;s not just a linear relationship. As more and more people are involved there are emergent behaviours that can&#8217;t be predicted from the beginning.</p>
<p>This is true of any activity that multiple people take part in, especially complex activities. In kung fu it means you have multiple attacks, more energy in your attackers which means once you&#8217;re tired you&#8217;re in trouble. In software it means you have multiple people doing things at the same time with subtly or radically different ideas on what should be done and the best way to do it.</p>
<p>The only ways to reduce this complexity in software engineering are to go up or down. We can either abstract away from the complexity moving to higher level technologies where possible (sacrificing fine control typically) although such abstraction tends to bring it&#8217;s own complexities or we can dive down and educate the team (in the broadest sends) on the complexities to try and reach a common understanding.</p>
<p><strong>No plan survives contact with the enemy</strong></p>
<p>Trying to plan in detail all of the details of a kung fu fight, even against a known assailant is about as pointless as trying to plan all of the details of a software project. There is too much uncertainty, too much complexity and too much emergent behaviour. Above all there is too much change. In both kung fu and software engineering we need to remain agile and responsive to change, in the environment, the different things being thrown at us and our own actions.</p>
<p><strong>There&#8217;s no magical solution</strong></p>
<p>We&#8217;re not in the <a href="http://en.wikipedia.org/wiki/The_Matrix">Matrix</a>, we can&#8217;t download kung fu skills into our heads in seconds. Or software engineering skills. These things take years to learn, will be slightly different for every individual as they tailor the standard wisdom to their particular individual skills and style.</p>
<p>There&#8217;s a lot to learn. Personally I work as a software development coach helping people structure and plan their work from architecture and design mentoring, SCM &amp; Build techniques and tooling, requirements management, agile and iterative project management, portfolio and business management. In many ways these kind of things, and others similar to them, can be thought of as different styles of martial art. Just because you&#8217;re good at one of them doesn&#8217;t mean that you&#8217;re good at another, or the next new one that comes along. Of course a certain aptitude helps, and knowledge of one certainly makes others easier to learn but beware of “experts in everything”.</p>
<p>We can&#8217;t all be <a href="http://en.wikipedia.org/wiki/Bruce_Lee">Bruce Lee</a>, <a href="http://en.wikipedia.org/wiki/Jackie_Chan">Jackie Chan</a> or <a href="http://en.wikipedia.org/wiki/Jet_Li">Jet Li</a> but we get a choice about where we are on the spectrum between being a master and an armchair expert sitting on the sofa watching others do it.</p>
<p><strong>Finally</strong></p>
<p>I believe that there&#8217;s an exact art and subtle science to both martial arts and software engineering. We need to practice these skills, we need to be continually learning and improving. We need to learn from other styles and experienced practitioners.</p>
<p>&#8220;Kung Fu&#8221; is actually translated to &#8220;achievement through great effort&#8221;</p>
<p>If you&#8217;re in the Cheltenham, UK area come and do some kung fu with me at <a href="http://chiwai.co.uk">Chi Wai Black Belt Academy</a>.</p>
<p>I&#8217;ll leave you to make your own <a href="http://www.chucknorrisfacts.com/">Chuck Norris</a> software jokes&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/618/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=618&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2012/01/16/the-kung-fu-of-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>
	</item>
		<item>
		<title>2011 in review for my blog</title>
		<link>http://mikemacd.wordpress.com/2012/01/08/2011-in-review-for-my-blog/</link>
		<comments>http://mikemacd.wordpress.com/2012/01/08/2011-in-review-for-my-blog/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 13:52:06 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[junk]]></category>
		<category><![CDATA[web stuff]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=614</guid>
		<description><![CDATA[I really enjoyed this blurb that wordpress sent so pressed the share button at the bottom! &#160; The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog. Here&#8217;s an excerpt: The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 17,000 times in 2011. If it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=614&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I really enjoyed this blurb that wordpress sent so pressed the share button at the bottom!</p>
<p>&nbsp;</p>
<p>The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.</p>
<p><a href="/2011/annual-report/"><img src="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/emailteaser.jpg" alt="" width="100%" /></a></p>
<p>Here&#8217;s an excerpt:</p>
<blockquote><p>The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about <strong>17,000</strong> times in 2011. If it were a concert at Sydney Opera House, it would take about 6 sold-out performances for that many people to see it.</p></blockquote>
<p><a href="/2011/annual-report/">Click here to see the complete report.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/614/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/614/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/614/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=614&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2012/01/08/2011-in-review-for-my-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://www.wordpress.com/wp-content/mu-plugins/annual-reports/img/emailteaser.jpg" medium="image" />
	</item>
		<item>
		<title>FireFox extension to view your WordPress.com blog stats</title>
		<link>http://mikemacd.wordpress.com/2011/12/19/firefox-extension-to-view-your-wordpress-com-blog-stats/</link>
		<comments>http://mikemacd.wordpress.com/2011/12/19/firefox-extension-to-view-your-wordpress-com-blog-stats/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 11:27:52 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[web stuff]]></category>
		<category><![CDATA[addon]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=610</guid>
		<description><![CDATA[The MMD WordPress FireFox extension is finally publicly listed on the mozilla site. After battling problems with xul layouts on Mac&#8217;s (which was tricky because I don&#8217;t have a Mac) I&#8217;ve finally resolved the issues that were preventing my firefox stats toolbar from being fully reviewed on the main FireFox site. If you&#8217;ve not seen [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=610&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The MMD WordPress FireFox extension is finally publicly listed on the mozilla site. After battling problems with xul layouts on Mac&#8217;s (which was tricky because I don&#8217;t have a Mac) I&#8217;ve finally resolved the issues that were preventing my firefox stats toolbar from being fully reviewed on the main FireFox site.</p>
<p>If you&#8217;ve not seen it before, the MMD WordPress FireFox extension adds a tiny toolbar that shows you your current blog hits on your wordpress.com blog(s). You can then right click to get quick access to the full stats page, new post page and view your blob. Simple but quite useful. Download and <a href="https://addons.mozilla.org/en-US/firefox/addon/mmd-wordpresscom-extension/">install from mozilla</a></p>
<div id="attachment_607" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2008/08/mmdwordpressext.png"><img class="size-medium wp-image-607" title="MMD WordPress Extension" src="http://mikemacd.files.wordpress.com/2008/08/mmdwordpressext.png?w=300&#038;h=78" alt="" width="300" height="78" /></a><p class="wp-caption-text">MMD WordPress Extension</p></div>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/610/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/610/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/610/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=610&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/12/19/firefox-extension-to-view-your-wordpress-com-blog-stats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2008/08/mmdwordpressext.png?w=300" medium="image">
			<media:title type="html">MMD Wordpress Extension</media:title>
		</media:content>
	</item>
		<item>
		<title>scmload script for IBM Jazz SCM</title>
		<link>http://mikemacd.wordpress.com/2011/11/14/scmload-script-for-ibm-jazz-scm/</link>
		<comments>http://mikemacd.wordpress.com/2011/11/14/scmload-script-for-ibm-jazz-scm/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 15:28:31 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[RTC]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=603</guid>
		<description><![CDATA[A common complaint by command line users of the IBM Rational Team Concert (RTC) Software Configuration Management (SCM) command line is that it&#8217;s too complicated to just load some stuff. And they&#8217;re right, especially as compared to something like git. To work around this I wrote a little bash script which you&#8217;re welcome to use/edit/abuse [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=603&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A common complaint by command line users of the <a href="https://jazz.net/library/article/620/" target="_blank">IBM Rational Team Concert (RTC) Software Configuration Management (SCM) command line</a> is that it&#8217;s too complicated to just load some stuff. And they&#8217;re right, especially as compared to something like git. To work around this I wrote a little bash script which you&#8217;re welcome to use/edit/abuse to load stuff in a single command.</p>
<p>Note that this is for the occasional user, if you&#8217;re a command line user by nature then just use the normal scm command line, it&#8217;s quite easy when you&#8217;re used to it. Using this script will involve the creation of an RTC repository workspace, since at the time of writing this can&#8217;t be removed using the command line you may wish to tidy them up using the GUI.</p>
<p>The script (available <a href="https://github.com/macmike/RTC-SCM-Command-Line-Scripts" target="_blank">via github</a>):</p>
<blockquote>
<pre>#!/bin/bash

rtc_server="https://your_server:9443/ccm"

echo ""
echo "Loads the contents of a component from a Jazz SCM stream to the current directory"
echo 'Usage: scmload "&lt;stream_name&gt;" "&lt;component_name&gt;"'
echo ""

stream=$1
comp=$2
error=0

if [ -z "$1" ]
then
  echo "Error: Please specify a stream"
  error=1
fi

if [ -z "$2" ]
then
  echo "Error: Please specify a component"
  error=1
fi

#generate a hopefully unique workspace name
workspace=my_cmdline_wks_$stream

if [ $error -eq 0 ]
then
  echo "Loading stream \"$stream\" component \"$comp\" into local workspace"
  scm login -c -r $rtc_server -n rtclive
  wks_created_str='scm create workspace -s "$stream" "$workspace" -r rtclive'
  echo $wks_created_str
  wks_success='echo "$wks_created_str" | grep "successfully created"'
  if [ -n "$wks_success" ]
  then
    wks_id='echo $wks_created_str | cut -d "(" -f2 | cut -d ")" -f1'
    scm load $wks_id "$comp" -r rtclive
  fi
fi

echo ""</pre>
</blockquote>
<p>Like I said this only automates a fairly simple set of command, but for a novice user it might be helpful as it takes parameters and wotnot. Here&#8217;s what it would look like using the plain scm cli:</p>
<blockquote>
<pre>scm login -c -r https://your_server:9443/ccm -n rtclive
scm create workspace -s "Stream A" "My New Workspace" -r rtclive
scm load "My New Workspace" "Component A" -r rtclive</pre>
</blockquote>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/603/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=603&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/11/14/scmload-script-for-ibm-jazz-scm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux GUI Development: Lazarus 0.9.30 review and screenshots</title>
		<link>http://mikemacd.wordpress.com/2011/11/14/linux-gui-development-lazarus-0-9-30-review-and-screenshots/</link>
		<comments>http://mikemacd.wordpress.com/2011/11/14/linux-gui-development-lazarus-0-9-30-review-and-screenshots/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 13:44:09 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[lazarus]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=583</guid>
		<description><![CDATA[This blog is part of a series looking at programming tools on linux and covers Lazarus 0.9.30 I&#8217;ve always liked Wirthian languages since programming in Modula-2 and university and Delphi late because they&#8217;re very readable and promote good programming practices in the structure of the language. Also, I like Wirth&#8217;s law &#8220;Software is getting slower [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=583&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog is part of a series looking at programming tools on linux and covers Lazarus 0.9.30</p>
<p>I&#8217;ve always liked <a href="http://en.wikipedia.org/wiki/Niklaus_Wirth#Programming_languages">Wirthian languages</a> since programming in Modula-2 and university and Delphi late because they&#8217;re very readable and promote good programming practices in the structure of the language. Also, I like Wirth&#8217;s law &#8220;Software is getting slower more rapidly than hardware becomes faster.&#8221; from <em>A Plea for Lean Software </em>even if it wasn&#8217;t actually him that came up with it.</p>
<p>When I made the jump from Windows to Linux I was on the search for a nice high level language to do GUI development stuff in. In searching I came across Lazarus. Lazarus is a free cross-platform IDE which provides the Delphi experience for Linux (and Windows). Rather than Java&#8217;s &#8220;write once run anywhere&#8221; Lazarus aim&#8217;s for &#8220;write once compile anywhere&#8221; courtesy of the Fee Pascal Compiler (FPC). On top of the compiler Lazarus comes with the LCL (Lazarus Component Library) which gives a single interface for GUI programming despite underlying differences in implementation.</p>
<p>Lazarus is at 0.9.30 so it&#8217;s not a v1 product yet&#8230; However I&#8217;m not going to give much benefit for that since it&#8217;s been around for both windows and linux since 2008 and is available from the Ubuntu Software Centre.</p>
<h3>Installation</h3>
<p>Oh dear&#8230; the most important part of a software package, since if it fails your software doesn&#8217;t get used and for Lazarus it just sucks! When I first tried to install Lazarus it took me over 20 times to get it actually working. A comment from the Lazarus forum replied: &#8220;&#8230;20 times isn&#8217;t that much&#8230;&#8221; as if this is acceptable. Ok, so it&#8217;s free and open source but if it&#8217;s not accessible people won&#8217;t use it. It&#8217;s so hard to get running I&#8217;ve <a title="I finally managed to install lazarus 0.9.30 and fpc 2.4.2 on Ubuntu" href="http://mikemacd.wordpress.com/2011/05/16/i-finally-managed-to-install-lazarus-0-9-30-and-fpc-2-4-2-on-ubuntu/">posted</a> <a title="Install single window Lazarus 0.9.30 in Ubuntu 11.10 step by step" href="http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/">twice</a> on the topic (and had a significant amount of hits from people with the same problems).</p>
<p>Worse, upgrades to Ubuntu have totally broken the installation and it&#8217;s not properly compatible with the new Ubuntu <a title="Install single window Lazarus 0.9.30 in Ubuntu 11.10 step by step" href="http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/">overlay scrollbars</a> leading to focus problems with windows, text boxes and menus.</p>
<p>Basically, unless you really care it not going to be easy to get going. 1/10</p>
<h3>First Impressions</h3>
<p>Once I finally got it running my immediate reaction was summed up by the word &#8220;<a href="http://www.urbandictionary.com/define.php?term=w00t">w00t</a>&#8220;. Despite the always ugly multi-window layout here was an environment and language I knew like the back of my hand (so long as I rewind my memory 15 years) and could quickly put together good looking cross-platform apps in <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<table border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_549" class="wp-caption alignnone" style="width: 160px"><a href="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png"><img class="size-thumbnail wp-image-549" title="Lazarus Multi-Window " src="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png?w=150&#038;h=114" alt="" width="150" height="114" /></a><p class="wp-caption-text">Normal multi-window interface for Lazarus</p></div></td>
<td>
<p><div id="attachment_552" class="wp-caption alignnone" style="width: 160px"><a href="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png"><img class="size-thumbnail wp-image-552" title="Lazarus Single Window" src="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png?w=150&#038;h=113" alt="" width="150" height="113" /></a><p class="wp-caption-text">Lazarus as a single window IDE</p></div></td>
</tr>
</tbody>
</table>
<p>It is possible (by recomiling the IDE) to get a<a title="Install single window Lazarus 0.9.30 in Ubuntu 11.10 step by step" href="http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/"> single window mode</a> which is a bit more modern. I was little disappointed to see that it didn&#8217;t have multi-project support but at least it&#8217;s solid and works if a little old-fashioned feeling. 6/10</p>
<p>WARNING: Due to problems with focus, the current version is close to unusable in Ubuntu 11.10.</p>
<h3>GUI Designer</h3>
<p>The GUI designer is solid and works well. Guidelines, alignment indicators and a pretty good set of visual components make putting together a simple form trivial. There&#8217;s no layout controls as you get in many newer GUI IDEs (flex boxes, tables, fixes vs.s flow etc.) but the use of anchors and panels means this isn&#8217;t a problem. The GUI designer feels a lot like the Delphi designer 9/10</p>
<h3>Code Editor</h3>
<p>The code editor features all of the old colour schemes and look and feel of Delphi with all of the modern stuff you&#8217;d expect like code folding, code completion etc.  The link between code and visual elements is easy to manage, especially with the excellent Actions feature. The Lazarus code editor is actually an improvement over the old Delphi editor 9/10</p>
<h3>Language Features</h3>
<p>Global variables are still there, I understand taking them out would cause problems for supporting old code bases but it&#8217;s still a shame.</p>
<p>The language is a good simple OO implementation but it misses out on some modern features like extension methods, anon methods, iterators, code attributes/decoration, multi-cast events&#8230;</p>
<p>Generics have been added but they feel a bit like a bolt on, especially as when compared to their <a title="Linux GUI Development: Monodevelop 2.6 review and screenshots" href="http://mikemacd.wordpress.com/2011/11/07/linux-gui-development-monodevelop-2-6-review-and-screenshots/">simplicity in languages like c#</a>. Here&#8217;s the same example I used in the c# mono review in Lazarus.</p>
<blockquote>
<pre>  generic TGList&lt;T&gt; = class
    Items: array of T;
    procedure Add(Value: T);
  end;

  TBlobList = specialize TGList&lt;Pointer&gt;;

....

  sb := TStringList.Create();
  for n :=0 to Length(blobs.Items)-1 do
  begin
    sb.Append(TTestBlob(blobs.Items[n]).name);
  end;
  Memo1.Text:= sb.Text;</pre>
</blockquote>
<p>Note the necessity to declare the details of the generic collection, and implement an ad method. Surely I&#8217;m missed something here, if I&#8217;ve got to actually declare the class and implement it I may as well not use a generic. If anyone can advise what I&#8217;m doing wrong here I&#8217;d like to hear about it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Also the need to typecase objects coming out of my list is ugly and old-fashioned.</p>
<p>Finally.. there&#8217;s no (limited) garbage collection. Although visual elements are dealt with when you close a form (it&#8217;s normally too late by then if there&#8217;s a problem) there&#8217;s no garbage collection wbich means in that code above I need to change the TStringList.Create to:</p>
<blockquote>
<pre>sb := TStringList.Create();
try
   ...
finally
   sb.Free;
end;</pre>
</blockquote>
<p>All in all, although it used to be a neat elegant language, and it still is Object Pascal just feels a bit old fashioned and clunky now. Sadly I&#8217;m going to have to give this 6/10</p>
<h3>Feedback Process</h3>
<p>The main feedback mechanism is the<a href="http://www.lazarus.freepascal.org/"> Lazarus site</a> with wiki and forum. The forum&#8217;s fairly active but there seems to be an acceptance of problems such as the installation issues which is worrying.  7/10</p>
<h3>Conclusions</h3>
<p>Although the current version doesn&#8217;t really work with Ubuntu 11.10 the previous (and I hope future) configurations provide a pretty easy to use solid GUI design and code experience if a little old fashioned.</p>
<p>The community is reasonably active but a lot of the Lazarus usage seems non-English meaning the resources are sometimes a little hard to understand for me and since Pascal is  a bit of a <a href="http://mikemacd.wordpress.com/2011/11/07/ngrams-for-nerds/">niche language</a> these days there&#8217;s not much non-Lazarus resources that can apply (except for old Delphi resources).</p>
<p>Although I&#8217;m predisposed to be positive about Lazarus to be honest I can&#8217;t really recommend it unless:</p>
<ul>
<li>You&#8217;re an old Delphi developer looking for some nostaligia</li>
<li>Someone who hasn&#8217;t accepted Delphi is dead (even the website set up to refute this http://www.isdelphidead.com/ is dead!)</li>
<li>You need to quickly produce something very simple for multiple platforms and don&#8217;t know any other languages</li>
</ul>
<table align="center">
<tbody>
<tr>
<td><strong>Category</strong></td>
<td><strong>Score</strong></td>
</tr>
<tr>
<td>Installation</td>
<td>1/10</td>
</tr>
<tr>
<td>First Impressions</td>
<td>6/10</td>
</tr>
<tr>
<td>GUI Designer</td>
<td>9/10</td>
</tr>
<tr>
<td>Code Editor</td>
<td>9/10</td>
</tr>
<tr>
<td>Language Features</td>
<td>6/10</td>
</tr>
<tr>
<td>Feedback process</td>
<td>7/10</td>
</tr>
<tr>
<td><strong>Overall</strong></td>
<td><strong>63% &#8211; Sadly not good enough<br />
</strong></td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/583/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/583/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/583/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=583&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/11/14/linux-gui-development-lazarus-0-9-30-review-and-screenshots/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png?w=150" medium="image">
			<media:title type="html">Lazarus Multi-Window </media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png?w=150" medium="image">
			<media:title type="html">Lazarus Single Window</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux GUI Development: Monodevelop 2.6 review and screenshots</title>
		<link>http://mikemacd.wordpress.com/2011/11/07/linux-gui-development-monodevelop-2-6-review-and-screenshots/</link>
		<comments>http://mikemacd.wordpress.com/2011/11/07/linux-gui-development-monodevelop-2-6-review-and-screenshots/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 16:10:46 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[work]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[monodevelop]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=573</guid>
		<description><![CDATA[This blog is part of a series looking at programming tools on linux and covers MonoDevelop 2.6 MonoDevelop 2.6 is awesome I first tried MonoDevelop about a year ago and gave up quickly. It just wasn&#8217;t usable, but these days it&#8217;s a totally different story. I&#8217;m quite drawn to Mono and MonoDevelop because I used [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=573&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog is part of a series looking at programming tools on linux and covers MonoDevelop 2.6</p>
<p>MonoDevelop 2.6 is awesome <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I first tried MonoDevelop about a year ago and gave up quickly. It just wasn&#8217;t usable, but these days it&#8217;s a totally different story. I&#8217;m quite drawn to Mono and MonoDevelop because I used to be a .net developer and really like C# as a language.  Also as an old Delphi developer the .net framework has an intuitive design and structure since they were both designed in large part by the same guy &#8211; <a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg</a>. I saw him present on LINQ in LA, he&#8217;s a clever dude.</p>
<p><a href="http://en.wikipedia.org/wiki/Mono_%28software%29">Mono</a> is an open source project to make .Net compliant tools, compilers, runtimes etc. able to run not just on windows, but on linux, android, mac etc. <a href="http://en.wikipedia.org/wiki/MonoDevelop">MonoDevelop</a> is an open source development environment for Mono providing GUI designers and language support for C#, Java, Boo, VB.Net, Python, Vala, C, C++, Oxygene (Object Pascal based .Net language, though not available in the current version of MonoDevelop).</p>
<h3>Installation</h3>
<p>I was able to <a href="http://apt.ubuntu.com/p/monodevelop">install it directly from the Ubuntu Software Centre</a>, it ran straight away with no issues. Not quite 10/10 though. I tried to write a &#8220;hello world app&#8221;  and  it wouldn&#8217;t compile <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  A quick google later and I found that the default .net framework target in the project options needed changing from 2.0 to 4.0 then it was fine. 9/10</p>
<h3>First Impressions</h3>
<p>Starting up MonoDevelop you&#8217;re greeting with a very <a href="http://www.microsoft.com/visualstudio/en-gb">MS Visual Studio</a> like welcome screen with links to create stuff, recent stuff and web links. The IDE has a very solid and elegant feel, it doesn&#8217;t start with a million views and tabs like Eclipse, is visually pleasing (unlike Lazarus) and incorporates platform theming well (unlike Eclipse/SWT). 10/10</p>
<div id="attachment_575" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/welcome-monodevelop_002.png"><img class="size-medium wp-image-575" title="MonoDevelop Welcome Screen" src="http://mikemacd.files.wordpress.com/2011/11/welcome-monodevelop_002.png?w=300&#038;h=217" alt="" width="300" height="217" /></a><p class="wp-caption-text">MonoDevelop Welcome Screen</p></div>
<h3>GUI Designer</h3>
<p>The GUI designer is embedded in the main window in a similar fashion to MS Visual Studio, with widgets in a toolbox controlled by layout containers (fixed, aligning, tables etc.). Widgets are added to a window by drag and dropping and although there&#8217;s nice to have features like alignment guidelines missing the designer is solid, platform themed and doesn&#8217;t crash. It slightly frustrating to me that I can&#8217;t just double click on a button to create a default click handler and start writing my code but I can double click in the signals box (on the right) and do it from there.</p>
<div id="attachment_576" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_004.png"><img class="size-medium wp-image-576" title="MonoDevelop GUI designer" src="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_004.png?w=300&#038;h=217" alt="" width="300" height="217" /></a><p class="wp-caption-text">MonoDevelop GUI designer</p></div>
<p>Brilliantly, it can handly some old c# .net forms I wrote which used custom visual inheritance to make a new form frame for an unusual app which I assumed would break it!</p>
<p>The only downside here is that many of the properties seem oddly named and aren&#8217;t consistent across different types. I keep having to hunt around for where to find the text property for different objects. There&#8217;s little relationship to WinForms either if you&#8217;re using GTK# in terms of property and event names. Oh yeah, and alignment/guide lines aren&#8217;t there yet when dragging components around.</p>
<p>Putting together a simple form is a trivial matter completed in seconds. 8/10</p>
<h3>Code Editor</h3>
<p>The code editor supports all the normal modern stuff like colour control, code folding, code completion etc. and again is neat and elegant. The code completion helper in particular is very easy to use as is the code snippets tool box. Obvious problems are underlined as you type and the link between the visual elements and code is easy to work with.</p>
<div id="attachment_578" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_008.png"><img class="size-medium wp-image-578" title="MonoDevelop - Code Editing" src="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_008.png?w=300&#038;h=217" alt="" width="300" height="217" /></a><p class="wp-caption-text">MonoDevelop - Code Editing</p></div>
<div id="attachment_579" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_009.png"><img class="size-medium wp-image-579" title="MonoDevelop - Code Errors" src="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_009.png?w=300&#038;h=217" alt="" width="300" height="217" /></a><p class="wp-caption-text">MonoDevelop - Code Errors</p></div>
<p>The only downsides for me are the refactoring interaction which features a visual arrow that jumps to suggested places to put the new code &#8211; it doesn&#8217;t jump to very sensible places sometime; the compilation errro/warnings which are shown inline embedded in the code. These can make it a little hard to read the code until you&#8217;re used to them. You can of course turn them off. Overall though, it&#8217;s excellent. 9/10</p>
<h3>Language Features</h3>
<p>Writing C# in mono is brilliant. From the <a href="http://www.mono-project.com/CSharp_Compiler">mono project</a> website:</p>
<blockquote><p>The Mono C# compiler is considered feature complete for C# 1.0, C# 2.0 and C# 3.0 (<a title="ECMA" href="http://www.mono-project.com/ECMA">ECMA</a>). A preview of C# 4.0 is distributed with Mono 2.6, and a complete C# 4.0 implementation is available with Mono 2.8&#8230;</p></blockquote>
<p>That means the language supports OO constructs, iterators, anon methods, generics, statics, extension methods, <a href="http://en.wikipedia.org/wiki/LINQ">LINQ</a>, memory management, reflection, threading and much more&#8230;</p>
<p>Between LINQ and the mono framework implementation of the powerful <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC </a>pattern loading stuff into object graphs and presenting that in editable for to users is a high level programming exercise.</p>
<p>As an easy language example here&#8217;s  working with a collection of TestBlob entities:</p>
<blockquote>
<pre>private List&lt;TestBlob&gt; blobs = new List&lt;TestBlob&gt;();

...
StringBuilder sb = new StringBuilder();
for (int n=0;n&lt;blobs.Count;n++)
{
      sb.AppendLine(blobs[n].Name);
}
....</pre>
</blockquote>
<p>Simplez! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>10/10</p>
<h3>Feedback Process</h3>
<p>There&#8217;s a little feedback button on the bottom of the IDE that lets you quickly send feedback to the community. I did this regarding my frustration over clicks from the visual designer direct to code handlers and another minor issue. Within the day I had a friendly response describing how my comments had been listed as two bugs on the public bug tracking system on <a href="http://xamarin.com/">xamarin.com</a> and explaining how to add myself as a subscriber should I wish it.</p>
<div id="attachment_580" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/monodevelop-feedback.png"><img class="size-medium wp-image-580" title="MonoDevelop - Feedback" src="http://mikemacd.files.wordpress.com/2011/11/monodevelop-feedback.png?w=300&#038;h=160" alt="" width="300" height="160" /></a><p class="wp-caption-text">MonoDevelop - Feedback</p></div>
<p>That&#8217;s awesomeness on toast! 10/10</p>
<h3>Conclusions</h3>
<p>The solid GUI designer, integrated debugger and high level language support for cross-platform development provided by MonoDevelop is brilliant. It&#8217;s easy to knock up a quick app to do something. My 7yr old son and I have been using it do develop a calculator as an introduction to programming basics and he things it&#8217;s a good easy to use system.</p>
<p>Getting going with the MVC pattern can be a little frustrating if you just want to programmatically put a bunch of things in a listview (btw if you do this use a treeview not a listview even if that sounds crazy at this point) but that&#8217;s a common hurdle for most modern day languages/gui widget sets.</p>
<p>The mono and monodevlop communities are large and active and the web is full of c# tutorials and info. I&#8217;ve found that guidance written for MS developers in c# is directly applicable to c# in mono. This is now my favourite cross-platform development environment and technology.</p>
<table align="center">
<tbody>
<tr>
<td><strong>Category</strong></td>
<td><strong>Score</strong></td>
</tr>
<tr>
<td>Installation</td>
<td>9/10</td>
</tr>
<tr>
<td>First Impressions</td>
<td>10/10</td>
</tr>
<tr>
<td>GUI Designer</td>
<td>8/10</td>
</tr>
<tr>
<td>Code Editor</td>
<td>9/10</td>
</tr>
<tr>
<td>Language Features</td>
<td>10/10</td>
</tr>
<tr>
<td>Feedback process</td>
<td>10/10</td>
</tr>
<tr>
<td><strong>Overall</strong></td>
<td><strong>93% &#8211; Excellent</strong></td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/573/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=573&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/11/07/linux-gui-development-monodevelop-2-6-review-and-screenshots/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/welcome-monodevelop_002.png?w=300" medium="image">
			<media:title type="html">MonoDevelop Welcome Screen</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_004.png?w=300" medium="image">
			<media:title type="html">MonoDevelop GUI designer</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_008.png?w=300" medium="image">
			<media:title type="html">MonoDevelop - Code Editing</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/simplehelloworld-mainwindow-cs-monodevelop_009.png?w=300" medium="image">
			<media:title type="html">MonoDevelop - Code Errors</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/monodevelop-feedback.png?w=300" medium="image">
			<media:title type="html">MonoDevelop - Feedback</media:title>
		</media:content>
	</item>
		<item>
		<title>Ngrams for nerds</title>
		<link>http://mikemacd.wordpress.com/2011/11/07/ngrams-for-nerds/</link>
		<comments>http://mikemacd.wordpress.com/2011/11/07/ngrams-for-nerds/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 13:34:10 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[junk]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[aspect orientation]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[freeware]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[object orientation]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[RUP]]></category>
		<category><![CDATA[shareware]]></category>
		<category><![CDATA[use case]]></category>
		<category><![CDATA[user story]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=558</guid>
		<description><![CDATA[Pictures that are worth 500 billion words! Google Ngram Viewer shows graphs of how many times words or phrases have occurred in a set of 5 million books over the years. They&#8217;re a really interesting way of seeing trends in information and relative importance between words. It&#8217;s free and easy so check it out. Here&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=558&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pictures that are worth 500 billion words!</p>
<p><a href="http://books.google.com/ngrams">Google Ngram Viewer</a> shows graphs of how many times words or phrases have occurred in a set of 5 million books over the years. They&#8217;re a really interesting way of seeing trends in information and relative importance between words. It&#8217;s free and easy so check it out.</p>
<p>Here&#8217;s some I recently ran that I found interesting. I ran most of them from 1950 onwards and  the info only goes up to 2008.</p>
<h3>Comparison of programming languages</h3>
<div id="attachment_566" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/languages1.png"><img class="size-medium wp-image-566" title="Programming Languages" src="http://mikemacd.files.wordpress.com/2011/11/languages1.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">Programming Languages</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=Java%2CC%2B%2B%2CJavascript%2CPerl%2Cphp%2CPascal%2CC%23&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; When looking at this you&#8217;ve got to mentally remove the baseline Java and Pascal references from the 1950 as they&#8217;re about coffee, islands and mathematicians. Interesting to see Java so dominant.</p>
<h3>Programming paradigms</h3>
<div id="attachment_562" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/prog_paradigms.png"><img class="size-medium wp-image-562" title="Programming Paradigms" src="http://mikemacd.files.wordpress.com/2011/11/prog_paradigms.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">Programming Paradigms</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=object+orientation%2C+aspect+orientation%2C+modular+programming%2C+structured+programming&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; I found this one really interesting. Compared to the others in my query &#8220;structured programming&#8221; had a lot more books written about it. I wonder how much this is a reflection of the rise of the internet&#8230; these days although there are lots of programming books the primary source for learning a language is online material?</p>
<h3>Methodologies</h3>
<div id="attachment_569" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/methodologies2.png"><img class="size-medium wp-image-569" title="Methodologies" src="http://mikemacd.files.wordpress.com/2011/11/methodologies2.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">Methodologies</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=iterative+software+development%2Cwaterfall+development%2CRational+Unified+Process%2Cagile+software+development&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; I was a little surprised to see RUP so much more prevalent than agile but then I did have to add &#8220;software development&#8221; to the term to avoid including the bendy and stretchy. Also as with the previous one I suspect that there&#8217;s a difference here between a vendor driven process with supporting books and a more open source philosophy on agile as a generic umbrella for methodologies, and therefore more online sources. As <a href="http://en.wikipedia.org/wiki/Ivar_Jacobson">Ivar Jacobson</a> says: &#8220;<a href="http://blog.ivarjacobson.com/software-engineering-meets-social-engineering/">No one reads process books</a>&#8220;</p>
<h3>Shareware, Freeware and OSS</h3>
<div id="attachment_563" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/share_free_oss.png"><img class="size-medium wp-image-563" title="Shareware, Freeware and Open Source" src="http://mikemacd.files.wordpress.com/2011/11/share_free_oss.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">Shareware, Freeware and Open Source</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=shareware%2C+freeware%2C+open+source+software&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; This one speaks for itself <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I wish I could have worked out how to add &#8220;expensive vendor products&#8221; to the query!</p>
<h3>User Stories vs. Use Cases</h3>
<div id="attachment_564" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/userstory_usecase.png"><img class="size-medium wp-image-564" title="User Story vs. Use Case" src="http://mikemacd.files.wordpress.com/2011/11/userstory_usecase.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">User Story vs. Use Case</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=user+story%2C+use+case&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; Ah yes, this argument again. Interestingly this dominance of use case over user story in written books correlates with query stats between user stories and use cases on by blog and the <a title="Install single window Lazarus 0.9.30 in Ubuntu 11.10 step by step" href="http://www.ivarjacobson.com">ivarjacobson.com</a> site. Personally I think they&#8217;re both great and complimentary, I often use them together on software projects.</p>
<h3>Windows vs. Linux</h3>
<div id="attachment_565" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/11/win_linux.png"><img class="size-medium wp-image-565" title="Windows vs. Linux" src="http://mikemacd.files.wordpress.com/2011/11/win_linux.png?w=300&#038;h=119" alt="" width="300" height="119" /></a><p class="wp-caption-text">Windows vs. Linux</p></div>
<p><a href="http://books.google.com/ngrams/graph?content=Microsoft+Windows%2C+Linux&amp;year_start=1950&amp;year_end=2008&amp;corpus=0&amp;smoothing=3">Ngram link</a> &#8211; Yep, <a href="http://www.ubuntu.com/">Linux</a> beats Windows at every turn.</p>
<h3>More Ngrams!</h3>
<p>For more fun with Ngrams watch this very funny video explaining this stuff</p>
<span style="text-align:center; display: block;"><a href="http://mikemacd.wordpress.com/2011/11/07/ngrams-for-nerds/"><img src="http://img.youtube.com/vi/5l4cA8zSreQ/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/558/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=558&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/11/07/ngrams-for-nerds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/languages1.png?w=300" medium="image">
			<media:title type="html">Programming Languages</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/prog_paradigms.png?w=300" medium="image">
			<media:title type="html">Programming Paradigms</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/methodologies2.png?w=300" medium="image">
			<media:title type="html">Methodologies</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/share_free_oss.png?w=300" medium="image">
			<media:title type="html">Shareware, Freeware and Open Source</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/userstory_usecase.png?w=300" medium="image">
			<media:title type="html">User Story vs. Use Case</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/11/win_linux.png?w=300" medium="image">
			<media:title type="html">Windows vs. Linux</media:title>
		</media:content>
	</item>
		<item>
		<title>Install single window Lazarus 0.9.30 in Ubuntu 11.10 step by step</title>
		<link>http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/</link>
		<comments>http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 16:14:19 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[junk]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[fpc]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[lazarus]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[screenshots]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=545</guid>
		<description><![CDATA[I&#8217;ve previously blogged on installing lazarus on ubuntu but unfortunately upgrading to ubuntu 11.10 broke my lazarus installation Here&#8217;s how I fixed it all. 1. Totally remove previous Lazarus and fpc installations sudo apt-get purge lazarus* sudo apt-get purge fpc* sudo rm -Rf /usr/lib/fpc sudo rm -Rf /usr/lib/lazarus sudo rm -Rf /usr/share/fpcsrc sudo rm -f [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=545&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve previously blogged on installing <a title="I finally managed to install lazarus 0.9.30 and fpc 2.4.2 on Ubuntu" href="http://mikemacd.wordpress.com/2011/05/16/i-finally-managed-to-install-lazarus-0-9-30-and-fpc-2-4-2-on-ubuntu/">lazarus on ubuntu</a> but unfortunately upgrading to ubuntu 11.10 broke my lazarus installation <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Here&#8217;s how I fixed it all.</p>
<p>1. Totally remove previous Lazarus and fpc installations</p>
<blockquote><p>sudo apt-get purge lazarus*<br />
sudo apt-get purge fpc*<br />
sudo rm -Rf /usr/lib/fpc<br />
sudo rm -Rf /usr/lib/lazarus<br />
sudo rm -Rf /usr/share/fpcsrc<br />
sudo rm -f ~/.fpc<br />
sudo rm -Rf ~/.lazarus<br />
sudo rm -f /usr/bin/lazarus*<br />
sudo rm -f /usr/bin/lazres*<br />
sudo rm -f /usr/bin/lazbuild*<br />
sudo rm -f ~/.local/share/applications/lazarus*</p></blockquote>
<p>2. Install fpc so you can use it from the command line</p>
<p>sudo apt-get install fp-compiler-2.4.4</p>
<p>You can see if this has worked properly by writing a hello world command line app, comiling it and running it before you&#8217;ve even tried to install lazarus. Save the following in a file called cmdline_helloworld.pas:</p>
<blockquote><p>begin</p>
<p>writeln(&#8216;hello world!&#8217;);</p>
<p>end.</p></blockquote>
<p>Then compile using</p>
<blockquote><p>fpc cmdline_helloworld.pas</p></blockquote>
<p>and run using:</p>
<blockquote><p>./cmdline_helloworld</p></blockquote>
<div id="attachment_546" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/10/fpc_cmdline.png"><img class="size-medium wp-image-546" title="Free Pascal Compiler use on the command line" src="http://mikemacd.files.wordpress.com/2011/10/fpc_cmdline.png?w=300&#038;h=228" alt="" width="300" height="228" /></a><p class="wp-caption-text">Free Pascal Compiler use on the command line</p></div>
<p>3. Install lazarus</p>
<blockquote><p>sudo apt-get install lazarus</p></blockquote>
<p>You probably need to disable overlay scrollbars otherwise you can get problems using menus and dialogs in Lazarus and apps made with lazarus:</p>
<blockquote><p>export LIBOVERLAY_SCROLLBAR=0</p></blockquote>
<p>if you don&#8217;t want to make such a global change then just make a script to start lazarus like this:</p>
<blockquote><p>#!/bin/sh<br />
LIBOVERLAY_SCROLLBAR=0 lazarus-ide</p></blockquote>
<p>4. Change IDE settings to make it easier to use with Unity</p>
<p><a title="Ubuntu 11 Unity: Making it useable with application menus and taskbars" href="http://mikemacd.wordpress.com/2011/10/17/ubuntu-11-unity-making-it-useable-with-application-menus-and-taskbars/">Unity is annoying for many reasons</a>, but it doesn&#8217;t deal with multi-window apps like Lazarus very well. So here&#8217;s some suggestions to make it all behave a bit better.</p>
<p>First, if you use a taskbar plugin like tint you can have Lazarus only show one button rather than loads on the task bar (Environment -&gt; Options -&gt; Window and slect &#8220;Show single button in Taskbar&#8221; at the top.</p>
<p>Second, I recommend making lazarus use single window mode. This is a little experimental but I think it&#8217;s a major improvement over the old-fashioned pre-Delphi 2005 layout.</p>
<p>Normal layout:</p>
<div id="attachment_549" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png"><img class="size-medium wp-image-549" title="Lazarus Multi-Window " src="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png?w=300&#038;h=228" alt="" width="300" height="228" /></a><p class="wp-caption-text">Normal multi-window interface for Lazarus</p></div>
<p>To transform Lazarus into a single window mode application you need to install the <strong>AnchorDockingDsgn</strong> package which is helpfully installed with Lazarus. On ubuntu in a standard installation it&#8217;ll be in /usr/lib/lazarus/0.9.30/examples/anchordocking/design.</p>
<p>Do this as sudo otherwise the recompiling process doesn&#8217;t have enough rights to backup packages and wotnot. So start lazarus by doing</p>
<blockquote><p>sudo lazarus-ide</p></blockquote>
<p>In Lazarus File -&gt; Open and browse to anchordockingdsgn.lpk</p>
<p>When the package editor comes up select the install button. Lazarus will ask for confirmation and tell you only static packages are supported so you need to rebuild lazarus (that <em>really</em> needs sorting out!), say yes and then sit back and enjoy the compilation process.</p>
<p>Next time you start Lazarus it&#8217;ll be in single window mode. For some reason the Object Inspector (F11) isn&#8217;t docked by default but you can easily add it yourself.</p>
<div id="attachment_552" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png"><img class="size-medium wp-image-552" title="Lazarus Single Window" src="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png?w=300&#038;h=226" alt="" width="300" height="226" /></a><p class="wp-caption-text">Lazarus as a single window IDE</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/545/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/545/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/545/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=545&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/10/31/install-single-window-lazarus-0-9-30-in-ubuntu-11-10-step-by-step/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/fpc_cmdline.png?w=300" medium="image">
			<media:title type="html">Free Pascal Compiler use on the command line</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/lazarus_multi_window.png?w=300" medium="image">
			<media:title type="html">Lazarus Multi-Window </media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/lazarus_single_window.png?w=300" medium="image">
			<media:title type="html">Lazarus Single Window</media:title>
		</media:content>
	</item>
		<item>
		<title>Rant: Get rid of Daylight Saving Time</title>
		<link>http://mikemacd.wordpress.com/2011/10/31/rant-get-rid-of-daylight-saving-time/</link>
		<comments>http://mikemacd.wordpress.com/2011/10/31/rant-get-rid-of-daylight-saving-time/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 13:08:42 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[blabber]]></category>
		<category><![CDATA[dst]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=536</guid>
		<description><![CDATA[I normally avoid commenting on political matters but this one annoys me from a purely selfish perspective&#8230; I read recently that the UK Govt is considering a move to double sumertime, which it&#8217;s important to point out has nothing to do with double rainbows. I can&#8217;t quite make my mind up about it in terms [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=536&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I normally avoid commenting on political matters but this one annoys me from a purely selfish perspective&#8230;</p>
<p>I<a href="http://www.bbc.co.uk/news/magazine-12523164"> read recently</a> that the UK Govt is considering a move to double sumertime, which it&#8217;s important to point out has nothing to do with <a href="http://knowyourmeme.com/memes/double-rainbow">double rainbows</a>. I can&#8217;t quite make my mind up about it in terms of this change, it&#8217;ll make it easier to work with Europe but put use yet another hour away from the US.</p>
<p>I don&#8217;t see why we need to do it at all. Like Income tax, Daylight Saving Time (DST)  was introduced during wartime and never repealed (ok, that&#8217;s not entirely true, income tax was repealed and reinstated a few times as wars came and went, the last time it was reintroduced was to deal with a defecit in 1842). I don&#8217;t think we need to change timezone at all, if people in some industries want to use the daylight more then why don&#8217;t they personally adjust their sleeping patterns? I&#8217;m rubbish at dealing with time zone changes, jet lag and sleep generally. Changing DST just tires me out and makes me grumpy.</p>
<p>I&#8217;d like to see us dump DST entirely and just stick with the same timezone all year around, <a href="http://www.timeanddate.com/news/time/russia-may-end-dst.html">like the Russians are doing</a>. Let&#8217;s look at the impact of dropping DST in Russia and then see if it&#8217;s worth doing here too.</p>
<p>/rant</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/536/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/536/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/536/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=536&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/10/31/rant-get-rid-of-daylight-saving-time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>
	</item>
		<item>
		<title>UNTHINK &#8211; first impressions and screenshot</title>
		<link>http://mikemacd.wordpress.com/2011/10/29/unthink-first-impressions-and-screenshot/</link>
		<comments>http://mikemacd.wordpress.com/2011/10/29/unthink-first-impressions-and-screenshot/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 00:56:36 +0000</pubDate>
		<dc:creator>mikemacd</dc:creator>
				<category><![CDATA[blabber]]></category>
		<category><![CDATA[circles]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[unthink]]></category>
		<category><![CDATA[uplink]]></category>

		<guid isPermaLink="false">http://mikemacd.wordpress.com/?p=526</guid>
		<description><![CDATA[I saw a video for UNTHINK a while ago that appealed to me. I like the idea of total control of my data, of separation between friends, acquaintances and brands/interests. Also I&#8217;m a pathological early adopter. I like new things, and the shinier and more buttons the better. Sometimes I get carried away with links [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=526&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I saw a <a href="http://www.youtube.com/watch?v=pxMqSdgB-uA">video</a> for <a href="http://unthink.com">UNTHINK</a> a while ago that appealed to me. I like the idea of total control of my data, of separation between friends, acquaintances and brands/interests. Also I&#8217;m a <a href="http://www.thefreedictionary.com/pathological">pathological</a> <a href="http://en.wikipedia.org/wiki/Early_adopter">early adopter</a>. I like new things, and the shinier and more buttons the better. Sometimes I get carried away with links too.</p>
<p>I had an early invite to UNTHINK when it opened to public beta, clearly along with many other early adopters. First problem there, the servers couldn&#8217;t handle the pressure, there were too many early adopters and without the power of Google behind UT (not the best <a title="The difference between initialisms and acronyms" href="http://mikemacd.wordpress.com/2008/09/01/the-difference-between-initialisms-and-acronyms/">acronym</a> huh?) the public beta was essentially a fine example of  a <a href="http://en.wikipedia.org/wiki/Denial-of-service_attack">DDOS attack</a>.</p>
<p>Anyway, a couple of days later and here&#8217;s my first impressions, now I can access the site.</p>
<div id="attachment_529" class="wp-caption alignnone" style="width: 310px"><a href="http://mikemacd.files.wordpress.com/2011/10/unthink.png"><img class="size-medium wp-image-529" title="UNTHINK" src="http://mikemacd.files.wordpress.com/2011/10/unthink.png?w=300&#038;h=193" alt="" width="300" height="193" /></a><p class="wp-caption-text">UNTHINK</p></div>
<p>First of all I find it be gloriously complex. G+ has catered for the simplistic market, but I like complicated things, and this suits me. The UI is reminiscent of the early Facebook and MySpace.  G+ allows me to separate people <a title="Google+ review" href="http://mikemacd.wordpress.com/2011/07/11/google-review/">via circles</a> but I have to set that up, UT has it from the start. It&#8217;s all private by default and they tell me I own my content (the <a href="http://www.unthink.com/deed">unthink emancipation deed</a>). UT prompts me from the very start to control the privacy options of my content, unlike Facebook which decides for me frequently. Finally, it reminds me of <a href="http://www.introversion.co.uk/uplink/">uplink</a> for some reason, and that&#8217;s double or possibly even triple awesome</p>
<p>But&#8230; the social networking market is saturated. Facebook is the Daddy Mac, it&#8217;s where <em>everyone</em> is. Some of my techie friends still aren&#8217;t on G+ so that&#8217;s quiet. UT is positively empty. I keep coming back to Facebook because it&#8217;s where people are, many of my friends have no appetite for multiple networks and as with G+ I wish I could cross post with FB.</p>
<p>Whether it catches on or not, it&#8217;s existence is a good thing as it will apply pressure on widely adopted networks to provide better features. It wasn&#8217;t long after the exposure of G+ circles that Facebook created &#8220;Close friends&#8221; and &#8220;Acquaintances&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mikemacd.wordpress.com/526/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mikemacd.wordpress.com/526/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mikemacd.wordpress.com/526/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mikemacd.wordpress.com&amp;blog=3507899&amp;post=526&amp;subd=mikemacd&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mikemacd.wordpress.com/2011/10/29/unthink-first-impressions-and-screenshot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4d2f742e138474d59582386916e36d8e?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">mikemacd</media:title>
		</media:content>

		<media:content url="http://mikemacd.files.wordpress.com/2011/10/unthink.png?w=300" medium="image">
			<media:title type="html">UNTHINK</media:title>
		</media:content>
	</item>
	</channel>
</rss>
