<?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>Julian Young</title>
	<atom:link href="http://julianyoung.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://julianyoung.com</link>
	<description></description>
	<lastBuildDate>Thu, 05 Apr 2012 11:07:36 +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>iOS5 Battery Saving Tip</title>
		<link>http://julianyoung.com/2011/11/ios5-battery-saving-tip/</link>
		<comments>http://julianyoung.com/2011/11/ios5-battery-saving-tip/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 08:20:10 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=269</guid>
		<description><![CDATA[UPDATE 11/11/11  Apple release iOS5.0.1 last night Apple recently admitted to battery problems, not only in it&#8217;s new iPhone 4S but also in iOS5. Chatter would seem to indicate that apple is working hard on a fix.  Apple developers will note that  iOS 5.0.1 went to beta 2 last night. From my own experiences, the<a href="http://julianyoung.com/2011/11/ios5-battery-saving-tip/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>UPDATE 11/11/11  Apple release iOS5.0.1 last night</p>
<p>Apple recently admitted to <a href="http://www.reghardware.com/2011/10/27/iphone_4s_battery_problems/">battery problems</a>, not only in it&#8217;s new iPhone 4S but also in iOS5. Chatter would seem to indicate that apple is working hard on a fix.  Apple developers will note that  iOS 5.0.1 went to beta 2 last night.</p>
<p>From my own experiences, the problem seems to lie in leaving certain applications running in the background.  Whilst i haven&#8217;t been able to prove this yet, it does statistically seem to be hint in the right direction.</p>
<p>In the mean time whilst it wont sole the main problem, there there is one trick that you can do to help reduce battery consumption;</p>
<p>One of the big consumer of power is the GPS receiver of &#8220;location services&#8221;.  iOS5 uses this to optimize several setting on the phone including the time zone you are in.  However it seem leaving these switched on means the GPS in running all the time, draining the battery. The Chalenge is however the setting are buried;</p>
<p>Go to Settings -&gt; Location Services</p>
<p><a href="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_1.png"><img class="size-medium wp-image-268 alignnone" title="iPhoneSetting_1" src="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_1-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Now scroll right down to the bottom to reveal the extra settings in &#8220;System Services&#8221;</p>
<p><a href="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_2.png"><img class="alignnone size-medium wp-image-267" title="iPhoneSetting_2" src="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_2-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Select Systems Services</p>
<p><a href="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_3.png"><img class="alignnone size-medium wp-image-266" title="iPhoneSetting_3" src="http://julianyoung.com/wp-content/uploads/2011/11/iPhoneSetting_3-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Now switch off as many of these as you really don&#8217;t need, but most of all switch off the &#8220;Setting Time Zone&#8221; &amp; &#8220;Cell Network Search&#8221; (yes mine is on in the screen shot, but its not on any more!)</p>
<p>For the most part I switch of the location service master switch as well when I don&#8217;t want to use the GPS.  Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2011/11/ios5-battery-saving-tip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>rails-footnotes</title>
		<link>http://julianyoung.com/2011/10/rails-footnotes/</link>
		<comments>http://julianyoung.com/2011/10/rails-footnotes/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 12:39:58 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Ruby Gems]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=181</guid>
		<description><![CDATA[&#160; The Missing Gem! https://github.com/josevalim/rails-footnotes Rails-footnotes by Roman V. Babenko provides you with an easy way to debug your application from the browser. With a small CSS trick the gem displays information such as sessions, request parameters, cookies, filter chain, routes, queries, etc. in the bottom of your browser. Why the &#8220;Missing Gem&#8221;? Well frameworks<a href="http://julianyoung.com/2011/10/rails-footnotes/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h3>The Missing Gem!</h3>
<blockquote><p>https://github.com/josevalim/rails-footnotes</p></blockquote>
<p><a href="https://github.com/josevalim/rails-footnotes">Rails-footnotes</a> by <a href="http://www.linkedin.com/in/romanvbabenko">Roman V. Babenko</a> provides you with an easy way to debug your application from the browser. With a small CSS trick the gem displays information such as sessions, request parameters, cookies, filter chain, routes, queries, etc. in the bottom of your browser.</p>
<p>Why the &#8220;Missing Gem&#8221;? Well frameworks such as <a href="http://www.symfony-project.org/">symfony</a> have always had this feature. For my $0.02 this should always have been part of rails.</p>
<p>Thanks Roman for what must be one of the most important development gems for rails.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2011/10/rails-footnotes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multi-tenancy with rails</title>
		<link>http://julianyoung.com/2011/10/multi-tennant-with-rails/</link>
		<comments>http://julianyoung.com/2011/10/multi-tennant-with-rails/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 17:10:02 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=168</guid>
		<description><![CDATA[Multi-tenancy presents lots of challenges for developers, but Gut Naor presents a real case using ruby on rails.  The concept is simple; namespaces,  it sounds easy but real name spaces are only available in a limited number databases.   MSSQL for example can do this, but doing so breaks the security model! Other BLOGS describe way<a href="http://julianyoung.com/2011/10/multi-tennant-with-rails/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Multi-tenancy presents lots of challenges for developers, but Gut Naor presents a real case using ruby on rails.  The concept is simple; namespaces,  it sounds easy but real name spaces are only available in a limited number databases.   MSSQL for example can do this, but doing so breaks the security model! Other BLOGS describe way to achieve a similar effect with mysql, but to really get a result you need to look at a db that stretches the envelope. For open-source  <a href="http://www.postgresql.org/">Postgresql</a> hits the mark,ut side of open source the option is <a href="http://www.oracle.com">Oracle</a>.</p>
<ul>
<li><a href="http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html">Guy Naor&#8217;s presantation</a> @ acts_as_conference 2009</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2011/10/multi-tennant-with-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cyber bullying</title>
		<link>http://julianyoung.com/2009/09/cyber-bullying/</link>
		<comments>http://julianyoung.com/2009/09/cyber-bullying/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 08:53:30 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=283</guid>
		<description><![CDATA[Bullying, whether cyber or real, whether adult, or child is unacceptable and a violation of human rights covered by the “The Universal Declaration of Human Rights”(UN, 1948) and the “Convention on the Rights of the Child” (UN, 1990).  In the eyes of the law, where prosecution takes place it is usually in terms of harassment<a href="http://julianyoung.com/2009/09/cyber-bullying/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Bullying, whether cyber or real, whether adult, or child is unacceptable and a violation of human rights covered by the “The Universal Declaration of Human Rights”(UN, 1948) and the “Convention on the Rights of the Child” (UN, 1990).  In the eyes of the law, where prosecution takes place it is usually in terms of harassment or an assault.  Bullying is a serious issue, because it leaves victims feeling not only feeling abused, but also feeling helpless, scared, and intimidated, consequently victims are often unwilling to come forward and venerable to further abuse.  This vicious cycle has lead to a teenager committing suicide.(BBC, 2009)</p>
<p>In respect to the bullying of children the United Nations “Convention on the Rights of the Child” (UN, 1990) is explicit in the protection of children,  Articles 2,16, and 19 all serve not only sp specify the right of a child to  be abused but additional specify the obligation of adults to ensure the safety of children in their care.  For example article 19.1 states;</p>
<p>“States Parties shall take all appropriate legislative, administrative, social and educational measures to protect the child from all forms of physical or mental violence, injury or abuse, neglect or negligent treatment, maltreatment or exploitation, including sexual abuse, while in the care of parent(s), legal guardian(s) or any other person who has the care of the child.”(UN, 1990)</p>
<p>Critical elements of the article are “all forms of physical or mental violence, injury or abuse….” and the statement “any other person who has the care of the child.”, their first statement ensuring the inclusion of bulling and the last statement ensure to protection of children in all environments, to which I would interpret virtual or real.  It is my view that all parties, parents, schools, police, and ISPs all have both an obligation and role to play in the prevention of abuse and the protection of victims.</p>
<p>Unfortunately, because of the nature of bullying and the often reluctance of victim to come forward, bullying is often hard to detect.   Systematic monitoring for cyber bullying is in danger of falling foul of data privacy laws(EU, 2002).  However as a result of pressure resulting from recent events in the news(BBC, 2009)  YouTube, FaceBook, MySpace, now all have policies in place in respect to bullying and cyber intimidation</p>
<p>There has been commentary within the press and media with regard to the apparent conflict between the prevention of bullying and the freedom of speech.  Indeed the “The Universal Declaration of Human Rights”(UN, 1948) also contain this paradox  protecting both  freedom  of speech and freedom of harassment and abuse.  Both sides of the argument carry merit but anti-bullying laws need considerable care in their development (Kalman, 2009).  There is a real risk of the creation of poor quality law being developed in a similar fashion to the COPA (US_Govenment, 1988) law which eventual had to be over turned</p>
<p>Bulling whether cyber or not in a direct infringement of human rights, and it is the obligation of all parties to ensure the it is dealt with appropriately.  Whilst some may be running in the direction of special anti bullying laws, it is my belief that education, should be the first recourse.  All too often people are simply un aware of their rights and what can and can be don’t when situations arise.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>BBC (2009) <em>Cyber bullying case sentence due</em> [Online]. Available from: <a href="http://news.bbc.co.uk/2/hi/technology/8127533.stm">http://news.bbc.co.uk/2/hi/technology/8127533.stm</a> (Accessed: 21-8-2009).</p>
<p>EU (2002) <em>Directive 2002/58/EC of the European Parliament and of the Council of 12 July 2002 concerning the processing of personal data and the protection of privacy in the electronic communications sector (Directive on privacy and electronic communications)</em> [Online]. Available from: <a href="http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2002:201:0037:0047:EN:PDF">http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:2002:201:0037:0047:EN:PDF</a> (Accessed: 10-8-2009).</p>
<p>Kalman, I. (2009) <em>Psycology Today : The Tragic Death of Freedom of Speech and the Growth of Intolerance </em>[Online]. Available from: <a href="http://www.psychologytoday.com/blog/the-bully-witch-hunt/200907/the-tragic-death-freedom-speech-and-the-growth-intolerance">http://www.psychologytoday.com/blog/the-bully-witch-hunt/200907/the-tragic-death-freedom-speech-and-the-growth-intolerance</a> (Accessed: 22-8-2009).</p>
<p>UN (1948) <em>The Universal Declaration of Human Rights</em> [Online]. Available from: <a href="http://www.un.org/en/documents/udhr/index.shtml">http://www.un.org/en/documents/udhr/index.shtml</a> (Accessed: 25-6-2009).</p>
<p>UN (1990) <em>Convention on the Rights of the Child</em> [Online]. Available from: <a href="http://www2.ohchr.org/english/law/crc.htm">http://www2.ohchr.org/english/law/crc.htm</a> (Accessed: 22-8-2009).</p>
<p>US_Govenment (1988) <em>Children&#8217;s Online Privacy Protection Act of 1998</em> [Online]. Available from: <a href="http://www.ftc.gov/ogc/coppa1.htm">http://www.ftc.gov/ogc/coppa1.htm</a> (Accessed: 23-8-2009).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/09/cyber-bullying/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on internet slang</title>
		<link>http://julianyoung.com/2009/07/thoughts-on-internet-slang/</link>
		<comments>http://julianyoung.com/2009/07/thoughts-on-internet-slang/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 08:45:18 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=278</guid>
		<description><![CDATA[Literacy and linguistics are skills and like any skills that must be learned and practiced.  Increased incidents of “bad practice” are at the detriment of “good practice”. It is important to distinguish informal and formal language use.  The greater levels of acceptance of informality with society, is cause “spillage” of Internet idioms into spoken language.<a href="http://julianyoung.com/2009/07/thoughts-on-internet-slang/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Literacy and linguistics are skills and like any skills that must be learned and practiced.  Increased incidents of “bad practice” are at the detriment of “good practice”. It is important to distinguish informal and formal language use.  The greater levels of acceptance of informality with society, is cause “spillage” of Internet idioms into spoken language.</p>
<p>You will often hear older generations complaining saying things like “that is an awful letter and he’s a bank manager!”  The simple fact is the letter writing like anything else is a skill, and one today in spite of email rarely practiced to any degree.  Personally I can remember that that time I receive or wrote a letter to my mother, if either of us want to communicate , we just pick up the phone, in spite of being in two different countries.</p>
<p>Internet slang arises for two primary causes; typing is slower that speech and the User Interface of portable devices is unsuitable for fast typing.  I essence I would suggest it is driven by a need rather prejudicial accusation of sloppiness.; “the IRC format encourages rapid response, &#8220;participants work quickly to secure their turn and message content becomes more important than surface polish.” (Merchant, 2005)</p>
<p>However other psychological aspects have a part to play, Merchant (Merchant, 2005)suggests that a since of community and identification come from the ability to use such language  ie “being  with the in crowd”. Androutsopoulos  takes this argument further suggestion that language is part of social identity (Androutsopoulos, 2006) and thus a implying that it is a require part of a “network” community..</p>
<p>In the general conversational environment, it is not the norm to speak with “high eloquence”, in fact doing so is likely to attract attention and perhaps a reputation for being eccentric.  Society has already formed a distinction between the formal and informal use of language.  The use of “internet slang” is a further reinforcement of this division. Unfortunately there is evidence that used as a substitute for speech, the distinction between typed speech and real speech blurs and as such idioms spill over into speech.</p>
<p>I would suggest that speech recognition for example could reduce the necessity and perhaps cause the extinction of such slang vocabularies.  Technology has already experienced such changes.  Ammeter radio enthusiasts will be all familiar with Q Codes.  Q codes where adopted as a standard in 1912 and enable the  codes such as CQ (“calling all stations”) to be used.   The necessity?  Once again user interface, the medium was Morse code.  Technology has advance and their use as well as the use of Morse code has significantly declined</p>
<p>Education seeks to provide the skills an experience required to maximize  our potentials.  There is a need to recognize there are multiple levels of linguistic appreciation as well as multiple perceptions.  Literature appreciation, which is arguable the elite academic discipline in respect to language use, would certainly not advocate the use of such “internet idioms”.  Practioners of such academic programs may and sometime do argue that the “sloppiness” of Internet style communications provides then with a lowered starting point in their students.</p>
<p>For my $0.02 I believe this to be a new communication style rather the death of linguistic appreciation.  The increases use of “internet slang” is driven by need and the insufficiencies of user interfaces rather than laziness.</p>
<p>&nbsp;</p>
<p>Androutsopoulos, J. (2006) <em>&#8216;</em>Introduction: Sociolinguistics and computer-mediated communication&#8217;,<em> Wiley Interscience : Journal of Sociolinguistics</em>, [Online]. (Accessed: 5-7-2008).Doi 10.1111/j.1467-9841.2006.00286.x</p>
<p>Merchant, G. (2005) <em>&#8216;</em>Teenage Girls and Internet Chatrooms &#8216;,<em> Sheffield Hallam University</em>, [Online]. Available from: <a href="http://www.shef.ac.uk/content/1/c6/05/05/23/merchant.pdf">http://www.shef.ac.uk/content/1/c6/05/05/23/merchant.pdf</a> (Accessed: 5-7-2009).Doi na</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/07/thoughts-on-internet-slang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design by Contract</title>
		<link>http://julianyoung.com/2009/07/design-by-contract/</link>
		<comments>http://julianyoung.com/2009/07/design-by-contract/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 14:07:11 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=290</guid>
		<description><![CDATA[‘Design by Contract’ both improves the design and reliability of software, but it does so at a cost.  It has been demonstrated that design by contract could have averted some the software industries biggest disasters. However it is important to realize that it is only a technique and not a “silver bullet”, whilst used appropriately<a href="http://julianyoung.com/2009/07/design-by-contract/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>‘Design by Contract’ both improves the design and reliability of software, but it does so at a cost.  It has been demonstrated that design by contract could have averted some the software industries biggest disasters. However it is important to realize that it is only a technique and not a “silver bullet”, whilst used appropriately it contribution to software quality can be significant, there is a myriad of other contributing factors , that it does not address</p>
<p>Design by Contract is not an agile practice, whilst it is true that agile practice like XP embrace activities such as Test Driven Development,  which offer similar attitudes towards  test coverage the emphasis and the actual approach is different.  The requirement for documentation can also be considered in conflict with agile principles.  Although Meyer suggests that much of this can be generated if developers are disciplined.  (Meyer, 1992) However the only way of verifying discipline is “expensive” code inspections.</p>
<p>The principle of Design by Contract require that function assert both pre  and post conditions.  Whist languages like Eiffel possessed these capabilities for the start,  until relatively recently many mainstream languages, java included had no means to implement assertions directly within the language.  To achieve similar results they would have to resource to using exceptions with the appropriate level of “defensive coding”.  An approach which at times has proven to be self defeating.(Meyer, 1992).   Indeed Jazequel and Mayer suggests that Design by Contract could have prevented the infamous Arianne disaster(Jazequel &amp; Meyer, 1997), but their example once again is Eiffel biased and they are quick to point out that Ada, the language user for Arianne, had no  build in support  these constructs.</p>
<p>Design by Contract weakens some of the Object Oriented paradigms, basic principals, such as encapsulation.   If the code require to implement the assertions is require to access the internal part of an object it them becomes bound to the implementation and not independent of it.   Modification to the implementation would require modification to the assertions.  To get around these problems it has bee suggested the only public attributes and methods should be used, however this may well mean the public interface of an object is require to be changes and internals exposed to satisfy the assertions.(Cheon et al., 2005)  This vicious cycle now changes the external interface and opens up new contracts that require asserting!   Further; classes are now given an added responsibility that is an implementation requirements and not part of the origin business domain.</p>
<p>With respect the production of, Barry Boehm is quick to point out that up to a 75%  reduction of  defects introduced can be achieved  can through personnel discipline rather that any specific technique.(Boehm &amp; Papaccio, 1988)   No testing technique can proves there are no defects Testing can only show the presence of errors it is designed to detect.  Contract assertions are invariable equally venerable, it can only assert what has been specified.  An incomplete specification is an incomplete assertion.</p>
<p>Design by Contract,  is capable of offering improved quality,  But it requires the introduction of additional code  require to validate the assertion and handle the exceptions.    This code itself is subject to the possibility of errors.  Improvements in quality that arise for the use of these techniques come at a cost and an increase of complexity.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Boehm, B.W. &amp; Papaccio, P.N. (1988) &#8216;Understanding and controlling software costs&#8217;, <em>Software Engineering, IEEE Transactions on,</em> 14 (10),<strong> </strong>pp. 1462-1477.Doi: 10.1109/32.6191</p>
<p>Cheon, Y., Leavens, G., Sitaraman, M. &amp; Edwards, S. (2005) <em>&#8216;</em>Model variables: cleanly supporting abstraction in design by contract: Research Articles&#8217;, pp.583-599, [Online]. (Accessed: 2-6-20009).Doi <a href="http://dx.doi.org/10.1002/spe.v35:6">http://dx.doi.org/10.1002/spe.v35:6</a></p>
<p>Jazequel, J.M. &amp; Meyer, B. (1997) &#8216;Design by contract: the lessons of Ariane&#8217;, <em>IEEE Computer,</em> 30 (1),<strong> </strong>pp. 129-130.Doi: 10.1109/2.562936</p>
<p>Meyer, B. (1992) <em>&#8216;</em>Applying `design by contract&#8221;,<em> IEEE</em>, pp.40-51, [Online]. (Accessed: 21-6-2009).Doi 10.1109/2.161279</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/07/design-by-contract/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Test Driven Design</title>
		<link>http://julianyoung.com/2009/06/test-driven-design/</link>
		<comments>http://julianyoung.com/2009/06/test-driven-design/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 08:57:39 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=286</guid>
		<description><![CDATA[Test Driven Design, offers significant advantages over Top Down Design, but is a practice that requires a high level of skill.  In essence it prevents the need to write the program twice, and provides testing as an integrated part of the product rather that an afterthought The question has always been when should design stop<a href="http://julianyoung.com/2009/06/test-driven-design/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Test Driven Design, offers significant advantages over Top Down Design, but is a practice that requires a high level of skill.  In essence it prevents the need to write the program twice, and provides testing as an integrated part of the product rather that an afterthought</p>
<p>The question has always been when should design stop and coding start?   Some advocate of the Top down approach go as far as suggesting that methods should be described in pseudo code or OCL prior to development(Bennett et al., 2006, p. 301)  Test Driven Design eliminate this  and requires code to validate the design described by there already in place tests.  Effectively effort is diverted away from design, to quality.</p>
<p>Test Driven Design, refers to design,  “the how”, it does not relieve the development team of the analysis, “the what” , by the time we are in a position of developing tests , we need to have established what it is we are trying to do.  Proponents of agile method, often fail to describe this explicitly but the analysis activities do take place but in an iterative manner and often in conjunction with UML; “A common use of diagrams is to explore a design before you start coding it. Often you get the impression that such activity is illegal in XP, but that&#8217;s not true.” (Fowler, 2004)   large applications require significant level of analysis to decompose, the application into components of a manageable size.  From there on agile practices can take place independently.</p>
<p>The requirement for a high level of skill results from the fact in that design results directly from the coded developed rather than as a separate product created by a highly skilled professional / team and handed over to regular developers.  It is for this reason the extreme programming advocates the uses of pairs programming.  It is eventual that developers are aware of design principals,  patterns etc,  and do not just codes against and API.   Within my organization although the development process maturity had not yes reached a level that I could add Test Drivel Design, We do practice test driven development,  One practice I actively participate in with my teams, is to reverse engineer code using UML tools and then review the generated diagrams prior to “refactoring” or should I say redesigning.   This enables a visual check of the design, and with modern tooling is a very fast process.</p>
<p>Whilst Test Driven Design has slowly been gaining ground in undergraduate and graduate academic circles, it has been rapidly gain ground in school classrooms. (Janzen &amp; Saiedian, 2005) With it incorporation into products such as BlueJ, and education java IDE,  it is very likely that the next generation of developers will consider Test Driven Design as a normal practice.</p>
<p>Perhaps the most compelling of arguments for Test Driven Design, and Test Driven Development come from IBM: “With TDD, unit testing actually happens.</p>
<p>In our prior approaches, testing was an afterthought.”(Maximilien &amp; Williams, 2003)  The IBM Team, inexperienced with the method, achieved a 40% reduction in the defect density on the first trial project.(Williams et al., 2003)</p>
<p>Both Test Driven Design, and Test Driven Development offer the opportunity for significant improvements is software quality. Test Driven Design require significant level of skill within the development team compare to other design techniques, but funds its extra effort by replacing formal design. Activities such as pairs programming mean that this skill can de developed.  TDD is the start of a new bread of responsible programmers.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Bennett, S., McRobb, S. &amp; Farmer, R. (2006) <em>Object Oriented Systems Analysis and Design Using UML</em>. 3rd ed. Maidenhead: McGraw Hill.</p>
<p>Fowler, M. (2004) <em>Is design dead?</em> [Online]. Available from: <a href="http://www.cs.unm.edu/%7Erstehwien/CS580/reading/Is%20Design%20Dead.pdf">http://www.cs.unm.edu/~rstehwien/CS580/reading/Is%20Design%20Dead.pdf</a> (Accessed: 27-5-2007).</p>
<p>Janzen, D. &amp; Saiedian, H. (2005) <em>&#8216;</em>Test-driven development concepts, taxonomy, and future direction&#8217;,<em> IEEE</em>, pp.43-50, [Online]. (Accessed: 21-6-2009).Doi 10.1109/MC.2005.314</p>
<p>Maximilien, E.M. &amp; Williams, L. (2003) <em>&#8216;</em>Assessing test-driven development at IBM&#8217;,<em> IEEE Computer Society</em>, [Online]. (Accessed: 21-6-2009).Doi ISBN ~ ISSN:0270-5257 , 0-7695-1877-X</p>
<p>Williams, L., Maximilien, E.M. &amp; Vouk, M. (2003) <em>&#8216;</em>Test-driven development as a defect-reduction practice&#8217;,<em> IEEE</em>, pp.34-45, [Online]. (Accessed: 21-6-2009).Doi 10.1109/ISSRE.2003.1251029</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/06/test-driven-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Object Orientation and SQA</title>
		<link>http://julianyoung.com/2009/03/object-orientation-and-sqa/</link>
		<comments>http://julianyoung.com/2009/03/object-orientation-and-sqa/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 16:04:47 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[SQA]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=227</guid>
		<description><![CDATA[Object Orientation adds a level of complexity to testing, whilst frameworks and techniques have to adapt, the encapsulated nature of OO helps to define a finite scope.  With minor adaption most methodologies can be adapted to test this technology.  Object Orientation also provides opportunities to enhance out testing repertoire. The concept of Object Orientation binds<a href="http://julianyoung.com/2009/03/object-orientation-and-sqa/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Object Orientation adds a level of complexity to testing, whilst frameworks and techniques have to adapt, the encapsulated nature of OO helps to define a finite scope.  With minor adaption most methodologies can be adapted to test this technology.  Object Orientation also provides opportunities to enhance out testing repertoire.</p>
<p>The concept of Object Orientation binds data and associated methods indo discrete packages or Classes.  Consequently these Classes, once instantiated into objects have state.  The methods associated with the object instance can assumed to behave differently dependant on the inner state of the object it’s self.    Testing frameworks and oracle are required to subscribe to this notion in order to function correctly; Oracles are required to understand the concept of object equivalence, and test harnesses are required to instantiate object instances and  set their state prior to exciting individual tests.</p>
<p>Whilst Object Orientation adds the complexity of state, it also adds clearly defined interfaces that lend themselves to testing.  Class definitions facilitate the definition for test cases for intra class (unit) testing.  Indeed such interfaces make prime candidates for automated testing.  Further the encapsulation help to define the scope for testing.  Private methods for example can only eve be invoked in a give context, by the object it’s self.   With respect to non Object  Oriented structural programming, no such constraints exist, consequently tester cannot know all possible uses of a function, particularly in the cases of support libraries.</p>
<p>However subscribing to this notation has benefits;  Automated unit testing can be greatly enhanced  due to the very nature of object orientation.  With tools like JUnit ,  it is possible for the test harness to automatically inspect class definitions and generate the unit test skeletons for the function described by the object interface definitions.</p>
<p>Stat in particular allows us to focus on new state based testing techniques at the class level,  Stat base testing previously would have only been possible for areas of the application that were state machine based of when and overall understanding of a systems state was definable. The structuren nature of  object oriented programs and  facets such as polymorphism, and encapsulation offer opportunities for further research. (LABICHE, na)</p>
<p>Inspection based methodologies such as Fagan Inspections are not affected by the introduction of object oriented technology, though inspectors are expected to be familiar with the technology and understand its ramifications.   Likewise Black box testing is not affected by the introduction of Object Orientation simply because the approach takes the stand point of not knowing anything about the implementation.</p>
<p>The segmented nature of Object Orientation also lends itself to enhanced Test project management and estimation.  In a similar fashion to defining finite interfaces,  object orientation provides a finite number of discrete classes. The management of test projects, in particular test measurement metrics are greatly enhanced.  Rough estimate for test coverage can easily be obtained,  and estimates of the number of test cases for unit testing can be directly derived from the code itself.</p>
<p>Whilst object orientation adds the complexity of state, the segmentation provided by clear interfaces and encapsulation assists in the development of finite test cases which is particularly of benefit to test automation.   In generally whilst methodologies and frameworks must that these differences in to account, the vast majority of methodologies can still prove effective with minor adaptation.</p>
<p>LABICHE, Y. (na) On Testing Object-Oriented Programs. [online]  Available At: <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.31.4545&amp;rep=rep1&amp;type=pdf">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.31.4545&amp;rep=rep1&amp;type=pdf</a> Accessed:29-3-2009</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/03/object-orientation-and-sqa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security testing is hard</title>
		<link>http://julianyoung.com/2009/03/security-testing-is-hard/</link>
		<comments>http://julianyoung.com/2009/03/security-testing-is-hard/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 10:14:35 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SQA]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=225</guid>
		<description><![CDATA[Software security testing is perhaps the hardest facet of Software Quality Assurance to realise and security faults are often not discovered until such time and their abuse is discovered. There can be no hard and fast rule on the exit criteria for any given project.  Each project must be risk assessed and the effort put<a href="http://julianyoung.com/2009/03/security-testing-is-hard/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>Software security testing is perhaps the hardest facet of Software Quality Assurance to realise and security faults are often not discovered until such time and their abuse is discovered. There can be no hard and fast rule on the exit criteria for any given project.  Each project must be risk assessed and the effort put behind security testing must be importation to the risks defined.</p>
<p>Software security tests goes beyond the normal realm of software testing, no longer are we concerned with the software functioning correctly, but the potential consequences of when it does not. Software failure can and de enviable lead to vulnerabilities that can later be exploited.  Secondly we are concerned with any weakness in the form of functionality that may be exposed and therefore be available for abuse.  Often it is not the software that is under attack but the systems, weaknesses  in the software can facilitate such an attack. These elements may never be software issues for normal users, but none the less may leave the system open to abuse, and present a risk to both users and system owners.</p>
<p>We can never be sure that any given piece of software is free of potential bugs that may used in an attack; “If a library of known exploits fails to find a gap in our application’s armour, we have only the illusion of security”. (Thompson, 2003)  Consequently key to the discussion of exit criteria for software testing is risk assessment and risk management.   Exit criteria must therefore be defined appropriately based on the nature of the project and the risks concerned.   The economic reality is, in line with all things testing, that there has to be a compromise between the time and money available and the level of assurance achieved.</p>
<p>Software security does not come from putting up a password page on the front of application.  Comprehensive security must be built in for the start,  Lipner goes further and suggests that security should be incorporated into the software development lifecycle it’s self (Lipner, 2004)  This would be reasonable since we earlier established that the cost of fixing a given bug is dramatically reduced the earlier it is caught.  Thus establishing a security aware development process is likely to be the cost effective and productive approach. Further the process it’s self and the milestone defined will assist in defining the exit criteria.</p>
<p>We can never be certain that any given piece of software is totally secure, indeed history has shown us that it is more than probable that security flaws exist and sooner or later will be exploited.  Security testing is therefore an economic compromise aimed at reducing risk.  It should be remember that risk management does not seek to eliminate risk, it can’t, but seeks the reduce the probability of risk to acceptable levels.</p>
<p>&nbsp;</p>
<p>LIPNER, S. (2004) The Trustworthy Computing Security Development Lifecycle. <em>Proceedings of the 20th Annual Computer Security Applications Conference</em>.[online] DIO: 10.1109/CSAC.2004.41 (Accessed: 22-3-2009)</p>
<p>THOMPSON, H. H. (2003) Why security testing is hard. <em>Security &amp; Privacy, IEEE,</em> 1<strong>,</strong> 83-86.[online] DIO: 10.1109/MSECP.2003.1219078 (Accessed: 22-3-2009)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/03/security-testing-is-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why the waterfall may reduce quality</title>
		<link>http://julianyoung.com/2009/03/why-the-waterfall-may-reduce-quality/</link>
		<comments>http://julianyoung.com/2009/03/why-the-waterfall-may-reduce-quality/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:31:07 +0000</pubDate>
		<dc:creator>julian</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[SQA]]></category>

		<guid isPermaLink="false">http://julianyoung.com/?p=219</guid>
		<description><![CDATA[The waterfall method, documented by Royce (Royce, 1970), attempted to ensure quality through constraints,  conversely Boehm’s Spiral model (Boehm, 1988) attempts to address the inflexibility of the waterfall approach  offering opportunities for  improvement throughout the entire process.  It is Boehm’s spiral that from the basis of all today’s modern agile mythologies. We should note that<a href="http://julianyoung.com/2009/03/why-the-waterfall-may-reduce-quality/"> <br /><br /> (Read More...)</a>]]></description>
			<content:encoded><![CDATA[<p>The waterfall method, documented by Royce (Royce, 1970), attempted to ensure quality through constraints,  conversely Boehm’s Spiral model (Boehm, 1988) attempts to address the inflexibility of the waterfall approach  offering opportunities for  improvement throughout the entire process.  It is Boehm’s spiral that from the basis of all today’s modern agile mythologies.</p>
<p>We should note that Royce himself stated that the waterfall was not suitable for all project and the potential costs involved implementing the process would be unacceptable to both developers and customer on all but large and critical projects.(Royce, 1970).  Conversely Boehm establishes  that early finding for software problems reduces the cost of fixing them.(Boehm and Huang, 2006)  Of the problems found, the most expletive to fix are those that originate in the design ,  since the overall design is not complete at the start of the spiral, there is opportunity to address such issues thou ought the entire software development life cycle.</p>
<p>Perhaps the biggest impact on quality comes from the psychological change that the spiral method brings;  spiral testing “encourages cooperation between testers and developers”(Lewis, 2004, p101)  It has been my real experience that this cooperation,  part necessity, part evolution is improving mutual respect between the two groups and leading to higher quality product from  initial development .  Never has this been more  apparent with testing frameworks such as xUnit and Frame works such as Ruby on Rails and Symfony embedding unit tests and integration test into their frameworks.  There is an understating that developers don’t like writing test and so in facilitating them to do so these frameworks are encouraging  a new attitude of “responsible developers “who not look upon testing as proof that they did a good job.  The divisive nature “inspired”  the waterfall has all but disappeared.</p>
<p>If Quality is ultimately a measure of how usable a software program is, then the program must be “fit for the purpose” that it was intended for.  There is a real risk on large project the business may have changed during the development cycle and application is no longer “fit for the purpose” .  Spiral methods encourage the involvement of users and help to ensure that the end result is a good match.  Early delivery of working code enables the users to meet some of their business need sooner.</p>
<p>By way of contrast the waterfall offer rigorous control which may be seen to be advantageous, and perhaps even require by regulatory bodies (notable in the medical industry for example)   Whilst both methods have similar elements and attempt to provides similar levels for coverage to those elements, Spiral methods are still considered by some as “too lose” and consequently in appropriate.  Even Boehm expresses concern especial y the need for careful requirements management (Boehm, 2002)</p>
<p>Spiral methods do not only provide opportunities for early delivery, but also provide opportunities for early testing and issue resolution.  The involvement of users/customers further helps to ensure that the customer’s needs are met accurately.  In a dynamic business environment this flexibility may well be essential to the overall success of the project.</p>
<p>&nbsp;</p>
<p>BOEHM (1988) A spiral model of software development and enhancement. <em>IEEE JNL  Computer</em>.[online] DIO: 10.1109/2.59 (Accessed: 18-10-2008)</p>
<p>BOEHM (2002) Get ready for agile methods, with care.<em> IEEE JNL  </em>[online] DIO: 10.1109/2.976920 (Accessed: 4-5-2008)</p>
<p>BOEHM, B. &amp; HUANG, L. (2006) How Much Software Quality Investment Is Enough: A Value-Based Approach. <em>Software, IEEE,</em> 23<strong>,</strong> 88-95.[online] DIO: 10.1109/MS.2006.127 (Accessed: 11-02-2009)</p>
<p>LEWIS, W. E. (2004) <em>Software Testing and Continuous Quality Improvement, </em>New York, Auerbach Publications.</p>
<p>ROYCE, W. W. (1970) Managing the development of large software systems: concepts and techniques. <em>Proceedings of the 9th international conference on Software Engineering</em>.[online] DIO: ISBN:0-89791-216-0 (Accessed: 13-5-2007)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://julianyoung.com/2009/03/why-the-waterfall-may-reduce-quality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

