<?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>Kids Try This At Home</title>
	<atom:link href="http://www.kidstrythisathome.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kidstrythisathome.com</link>
	<description>Drivel about data and musings about metadata.</description>
	<lastBuildDate>Sun, 18 Mar 2012 09:34:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Top 5 Historical Computer Science articles for Web2.0 Developers</title>
		<link>http://www.kidstrythisathome.com/2012/03/top-5-historical-computer-science-articles-for-web2-0-developers/</link>
		<comments>http://www.kidstrythisathome.com/2012/03/top-5-historical-computer-science-articles-for-web2-0-developers/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 04:17:22 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Book Club]]></category>
		<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[barcamp]]></category>
		<category><![CDATA[reading list]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=490</guid>
		<description><![CDATA[After a request from my early talk at Barcamp Canberra 2012 on the importance of rereading classic paper to promote innovation in programming, I&#8217;ve put together a list of &#8220;required reading&#8221; for modern developers. This is a short selection of openly available papers from the early days of CS on topics that modern programmers take [...]]]></description>
			<content:encoded><![CDATA[<p>After a request from my early talk at Barcamp Canberra 2012 on the importance of rereading classic paper to promote innovation in programming, I&#8217;ve put together a list of &#8220;required reading&#8221; for modern developers. This is a short selection of openly available papers from the early days of CS on topics that modern programmers take for granted.</p>
<p>For each paper if I&#8217;ve given an approximate amount of time needed to devote to the read it, and a suggested beverage for while reading.</p>
<p><a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD215.html">GO TO Statement Considered harmful (A Case against the GO TO Statement)</a><br />
E.W. Dijkstra, 1968 &#8211; (Morning tea &amp; A cup of coffee)</p>
<p>This is probably the most recommended paper on this list, not just by me. Its no coincidence that it comes first, as not only was it the paper that has had the greatest impact on computer science, but it was released chronologically before the rest of these papers. Dijkstra efforts on structured programming were vital in making the rest of the papers on list list even possible. This paper is the demarcation point between unstructured and structured programming and put the first nail in the GOTO coffin.</p>
<p><a href="http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf">A Relational Model of Data for Large Shared Data Banks</a><br />
E.F. Codd, 1970 &#8211; (2 or 3 evenings &amp; a bottle of red wine)</p>
<p>Codds paper introduced the world to generic relational databases. While we take relational databases for granted, this paper convinced the computing community of the benefits of relational algebra and structured storage for data. While this paper will present nothing new to a seasoned database developer, it presents an concise coverage of the advantage of relational databases and is a counter-point to the current NoSQL/NoRel trend.</p>
<p><a href="http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf">On the criteria to be used in decomposing systems into modules</a><br />
D.L Purnas, 1972 &#8211; (An evening &amp; 2-3 glasses of scotch)</p>
<p>Purnas presents the ideas of modulatisation in programming. Again, modern programmers can probably take for granted the idea of a standard library in a programming language. But this paper dictates why these are vital and brings up ideas of how to balance modulatiry and reuse versus too much modularity and being to complex to reuse.</p>
<p><a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD04xx/EWD447.html">On the role of scientific thought.</a><br />
E.W. Dijkstra, 1974 &#8211; (A lunch break &amp; a bottle of water)</p>
<p>In this paper Dijkstra brings up the idea of the separation of concerns. Where as programmers we view each part of a program as its own discrete concept in isolation of (but not ignorant) of the rest of the program. This paper essentially defines the idea of the separation of presentation and content that we take for granted in web development.</p>
<p><a href="http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html">Applications Programming in Smalltalk-80(TM): How to use Model-View-Controller (MVC)</a><br />
S. Burbeck, 1974 &#8211; (An afternoon tea &amp; a cup of earl gray)</p>
<p>This last paper is a technical and practical discussion of work introducing the &#8220;model-view-controller&#8221; paradigm to programming. While interesting from a historical perspective as an extension of the previous paper by Dijkstra, it also serves as a good introduction and arguement for separation of concerns in a practical way.</p>
<p>Lastly, there is a <a href="http://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science">list of important publications in computer science available on Wikipedia</a> that has a greater range of content that is slightly harder to get access to, but for someone with journal access and specific interests, this is an excellent starting point for discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2012/03/top-5-historical-computer-science-articles-for-web2-0-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Undergrad Computer Science access to journals and why we are doomed to repeat our mistakes</title>
		<link>http://www.kidstrythisathome.com/2012/03/undergrad-computer-science-access-to-journals-and-why-we-are-doomed-to-repeat-our-mistakes/</link>
		<comments>http://www.kidstrythisathome.com/2012/03/undergrad-computer-science-access-to-journals-and-why-we-are-doomed-to-repeat-our-mistakes/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 08:36:54 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Book Club]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Codd]]></category>
		<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=478</guid>
		<description><![CDATA[I&#8217;ve identified a wonderful perk at work &#8211; a wonderful library with vast access to academic journals. In part to some work research, and in part to my own interest I&#8217;ve started reading (or in some cases re-reading) some of the classical works of computer science. My most recent read was E.F. Codd&#8217;s &#8220;A relational [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve identified a wonderful perk at work &#8211; a wonderful library with vast access to academic journals. In part to some work research, and in part to my own interest I&#8217;ve started reading (or in some cases re-reading) some of the classical works of computer science.</p>
<p>My most recent read was E.F. Codd&#8217;s &#8220;<a title="A relational model for large shared data banks" href="www.seas.upenn.edu/~zives/03f/cis550/codd.pdf">A relational model for large shared data banks</a>&#8220;. Reading Codds paper, you find a paper that succinctly lays out the advantages of relational design, in easy to read language and put forwards a strong argument for their use. In 10 pages Codd covers relational databases compared to flat files, introduces relational algebra and set theory, discusses elementary issues in scalability and covers the basics of redundancy and consistency.</p>
<p>But this should be no surprise, because this paper that kicked of the relational database movement. In his paper, <a title="Edgar F. Codd" href="http://en.wikipedia.org/wiki/Edgar_F._Codd">Edgar Codd</a> (as in <a title="Boyce–Codd normal form" href="http://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form">Boyce-Codd Normal Form</a>) convinced the computer science world that flat files weren&#8217;t good enough for large scale applications and that a better solution was needed.</p>
<p>Looking back as a relatively recent graduate of computer science I have to ask &#8211; why have I not read this paper before? There was nothing that Codd said that I hadn&#8217;t read in lecture notes based on more recent work, and it was no more or less easy to read that anything else I&#8217;d read. But this was not just any article justifying relational databases, this was <em>the article</em>.</p>
<p>Sadly, this was all too common, and most of my studies were based on recent works, rather than examining the classics in computer science. And this leads me to believe that this is part of the reason we see so much repetition in computer science. Not because we are reexamining the well, but we are reinventing the wheel. At an undergraduate level I never saw the drive  to explore early computer science theory (partly my own fault, but also of my lecturers for pointing them out).I don&#8217;t think this was due to malice or lack of access, as many of these papers are available for free or through a university library. Mostly, because with the fast growth in computer science, what is new becomes old very quickly,and with so much information being generated it takes effort just to keep up. But based on my reading of Codd, I can say that there is no good reason not to look back When trying to rationalise the use of a relational database, who better to convince a student than the man who literally convinced the world.</p>
<p>So, with this new found access I&#8217;ve begun rereading these &#8216;forgotten&#8217; papers, because there is still so much to learn from them. In Codds case, I&#8217;ve learned that there is no better source of information than its originator, and will encourage others to read his work as well. In hindsight his work seems obvious, its historical context and ability to share this idea sets it apart from every other database text I&#8217;ve read. If you get a chance to read this work, which is available freely thanks to UPenn, I strongly recommend it.</p>
<h3><span class="editsection">[<a title="Edit section: A relational model for large shared data banks" href="http://en.wikipedia.org/w/index.php?title=List_of_important_publications_in_computer_science&amp;action=edit&amp;section=54">edit</a>]</span> <span id="A_relational_model_for_large_shared_data_banks" class="mw-headline"><em>A relational model for large shared data banks</em></span></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2012/03/undergrad-computer-science-access-to-journals-and-why-we-are-doomed-to-repeat-our-mistakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I will not be renewing my CCNA</title>
		<link>http://www.kidstrythisathome.com/2012/01/why-i-will-not-be-renewing-my-ccna/</link>
		<comments>http://www.kidstrythisathome.com/2012/01/why-i-will-not-be-renewing-my-ccna/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:30:48 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[CCNA]]></category>
		<category><![CDATA[certification inflation]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=474</guid>
		<description><![CDATA[A little over three years ago I was a programmer in the Network Services department of a very successful internet services provider. As a part of my career advancement it was recommended that I study pursue some certification. Working with very skilled network engineers the obvious choice was to study for a Cisco Certification &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>A little over three years ago I was a programmer in the Network Services department of a very successful internet services provider. As a part of my career advancement it was recommended that I study pursue some certification. Working with very skilled network engineers the obvious choice was to study for a Cisco Certification &#8211; one of the most common IT certifications available. Over two months of extremely intense study I was able to pass both exams and become a Cisco Certified Networking Associate. I was able to better understand my collegues and improve my understanding of fundamental networking.</p>
<p>Flash forward to now &#8211; I&#8217;ve long since left that job, now working as an Information Analyst for the Australian Government. Most of my work in business analysis and theoretical computer science. I barely even administer my own home network and have forgotten most of what I know about networking.</p>
<p>So why am I not renewing my CCNA?</p>
<p>Because it is intellectually dishonest. At the time, when I got certified, I got it as a proof of my understanding or at least ability to understand. While my career was still in its infacy, this helped demonstrate my capability. Now however, I have experience as a programmer and analyst, but no longer working with networking.</p>
<p>Certification is in essence two things: a resume substitute for experience and proof of ability. If I was to renew my certification (which would require quite a bit of relearning) it would only be a disadvantage, for me and for every other person with a CCNA accreditation. If in the future I was hired on the basis of my accreditation I would soon be found out as someone who is now relatively unskilled with networks, which would only make me look bad. Worse though is that by me, or anyone, who holds an accreditation without appropriate experience or skill only make everyone else who holds that certification look bad by comparison, by the reducing the surety of the accreditation as an indicator of that skill.</p>
<p>As such, holding any certificate without the appropriate skill to back it up is both not in my own self-interest and morally bankrupt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2012/01/why-i-will-not-be-renewing-my-ccna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing Questions in DDI3.1 &#8211; &#8220;Other, please specify&#8221;</title>
		<link>http://www.kidstrythisathome.com/2012/01/managing-questions-in-ddi3-1-other-please-specify/</link>
		<comments>http://www.kidstrythisathome.com/2012/01/managing-questions-in-ddi3-1-other-please-specify/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 11:56:16 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[DDI]]></category>
		<category><![CDATA[Other - please specify]]></category>
		<category><![CDATA[Ramona]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=468</guid>
		<description><![CDATA[A still difficult problem in managing complex questions in DDI is those questions that ask a respondent to pick from a list of options, and if no suitable ones exist, that they write in their own. Below are examples of this kind of question from the US, UK and Australian Censuses (censii/census/censes?): In all three [...]]]></description>
			<content:encoded><![CDATA[<p>A still difficult problem in managing complex questions in DDI is those questions that ask a respondent to pick from a list of options, and if no suitable ones exist, that they write in their own. Below are examples of this kind of question from the US, UK and Australian Censuses (censii/census/censes?):</p>
<p><img title="UK Census Extract" src="http://i.imgur.com/9xpvP.png" alt="UK Census Extract" /><br />
<img title="USA Census Extract" src="http://i.imgur.com/loDbJ.png" alt="USA Census Extract" /></p>
<p><img title="ABS Census Extract" src="http://i.imgur.com/W7UCA.png" alt="ABS Census Extract" /></p>
<p>In all three questions, respondents are asked about their origins, and are given the option to select from a list of common responses or provide a write in response. The easiest way to manage this is through the use of a DDI <a title="DDI Field Level Documentation; MutlipleQuestionItem" href="http://www.ddialliance.org/Specification/DDI-Lifecycle/3.1/XMLSchema/FieldLevelDocumentation/datacollection_xsd/elements/MultipleQuestionItem.html">&lt;MultipleQuestionItem&gt;</a>. A &lt;MultipleQuestionItem&gt; is a way to capture a complex question that asks two or more separate questions that are highly linked.</p>
<p>In the above examples we can split the questions into two, as illustrated in the generic answer below:</p>
<pre>&lt;MultipleQuestionItem&gt;
    &lt;SubQuestions&gt;
        &lt;QuestionItem&gt;
            &lt;QuestionText&gt;
                &lt;LiteralText&gt;
                    What is your ancestral origin?
                &lt;/LiteralText&gt;
            &lt;/QuestionText&gt;
            &lt;CodeDomain&gt;
                &lt;!-- This CodeDomain would include a reference to the list of countries or races --&gt;
            &lt;/CodeDomain&gt;
        &lt;/QuestionItem&gt;
        &lt;QuestionItem&gt;
            &lt;QuestionText&gt;
                &lt;LiteralText&gt;
                    Please Specify:
                &lt;/LiteralText&gt;
            &lt;/QuestionText&gt;
            &lt;TextDomain/&gt;
        &lt;/QuestionItem&gt;
    &lt;SubQuestions&gt;
&lt;/MultipleQuestionItem&gt;</pre>
<p>Here we have been able to split the question, while still managing it in a single item. This is needed as without each other, each subquestion is incomplete. This is not a new concept, and is quite an obvious solution to many people who have tried to solve this issue.</p>
<p>However, there is still the problem that this metadata doesn&#8217;t contain the restriction that a respondent should only be able to enter a free text option if the &#8220;other&#8221; option is selected. While there have been a number of published and attempted solutions, none have been satisfactory. Spliting the question outside of a MultipleQuestionItem and using IfThenElse clauses complicates the structure, and leaving this out makes designing self-interviewed computer systems difficult to manage directly from the metadata.</p>
<p>A possible solution, that resolves both of these issues is through the use of the <a title="DDI Field Level Documentation; SubQuestionSequence" href="http://www.ddialliance.org/Specification/DDI-Lifecycle/3.1/XMLSchema/FieldLevelDocumentation/datacollection_xsd/elements/SubQuestionSequence.html">&lt;SubQuestionSequence&gt;</a>. This is illustrated in the DDI Fragment below:</p>
<pre>&lt;MultipleQuestionItem&gt;
    &lt;SubQuestions&gt;
        &lt;QuestionItem&gt;
            &lt;!-- Ancestral origin QuestionItem --&gt;
        &lt;/QuestionItem&gt;
        &lt;QuestionItem&gt;
            &lt;!-- Please Specify QuestionItem --&gt;
        &lt;/QuestionItem&gt;
    &lt;SubQuestions&gt;
    &lt;SubQuestionSequence&gt;
        &lt;ItemSequenceType&gt;Other&lt;/ItemSequenceType&gt;
        &lt;AlternateSequenceType formalLanguage="Name Of Language Here" &gt;
            &lt;!-- Proprietary command to control logic --&gt;
        &lt;/AlternateSequenceType&gt;
    &lt;/SubQuestionSequence&gt;
&lt;/MultipleQuestionItem&gt;</pre>
<p>In this we have used the SubQuestionSequence to hold the logic used to indicate when the &#8220;Other&#8221; field should be allowable. This field is used to control the specific sequence that the SubQuestions are shown, and in this sense we are controling this ordering, just to specify when a member is not shown &#8211; an excusable use of the field. This choice can be further rationalised, as an unfamiliar agent, for example when moving to a new piece of software, can still interpret the bulk of the metadata, however when presenting the above question would allow a respondent to fill in both sections. But this is no different to how a respondent of a paper-based survey may answer, so it is no great loss of granularity.</p>
<p>How any given agency may choose to populate the commands contained in the AlternateSequenceType will be an individual choice, and a standard way of expressing this may be needed, but this should help other groups more easy solve this problem by indicating where the solution can go and reducing the problem size.</p>
<p>In the next day or two I will be putting a more solid example up into the <a title="DDI Examples repository now available" href="http://www.kidstrythisathome.com/2012/01/ddi-examples-repository-now-available/">DDI Examples Repository</a> for people to work with. As always critiques of these ideas and examples are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2012/01/managing-questions-in-ddi3-1-other-please-specify/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDI Examples repository now available</title>
		<link>http://www.kidstrythisathome.com/2012/01/ddi-examples-repository-now-available/</link>
		<comments>http://www.kidstrythisathome.com/2012/01/ddi-examples-repository-now-available/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 10:59:13 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Metadata]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=462</guid>
		<description><![CDATA[One of the topics for discussion during the DDI Developers meeting was a lack of space for examples of actual DDI code. I hope to fix this problem through a new Google Code repository for DDI Examples. While a little sparse at the moment, I know there are few other good examples of DDI metadata [...]]]></description>
			<content:encoded><![CDATA[<p>One of the topics for discussion during the DDI Developers meeting was a lack of space for examples of actual DDI code. I hope to fix this problem through a <a title="DDI Examples repository" href="http://code.google.com/p/ddi-examples/">new Google Code repository for DDI Examples</a>. While a little sparse at the moment, I know there are few other good examples of DDI metadata available for people to contribute.</p>
<p>At the moment there are two ways that this can be done: I can either make volunteers permanent contributors to the repository so they can share files directly, or people are free to raise tasks and files can be uploaded by myself or another contributor.</p>
<p>I have also split the repository at the moment into three sections:</p>
<ol>
<li><strong>Simple Examples</strong>: used to illustrate a simple concept or use case &#8211; such as a Question, Concept or Study &#8211; but not ideal for actual implementation.</li>
<li><strong>Complex Examples</strong>: to demonstrate more complex ideas, such as referencing, packaging or schemes.</li>
<li><strong>Practical Examples</strong>: highly complex examples that replicate an actual problem or real world scenario completely.</li>
</ol>
<p>At the moment, there are only two files up on the site &#8211; the Australian and New Zealand Standard Industry Classification and the Australian Drugs of Concern Classification. Both of these were generated using Virgil-UI and have had some minor tweaks applied to they are DDI3.1 valid.</p>
<p>With time, I hope this can be a comprehensive resource allowing users easy access to DDI example to lower the barrier to entry to the standard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2012/01/ddi-examples-repository-now-available/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Always double check the standard before writing code</title>
		<link>http://www.kidstrythisathome.com/2011/12/always-double-check-the-standard-before-writing-code/</link>
		<comments>http://www.kidstrythisathome.com/2011/12/always-double-check-the-standard-before-writing-code/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 22:22:56 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[alwayscheckthestandard]]></category>
		<category><![CDATA[DDI]]></category>
		<category><![CDATA[eddi]]></category>
		<category><![CDATA[Virgil]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=459</guid>
		<description><![CDATA[A few weeks ago, I had the privilege of presenting at a collection of DDI Developers in Gothenburg at EDDI. There I presented one of my larger pieces of work, the Virgil-UI DDI Codelist Editor, for critique. While there I received advice, praise and most importantly constructive criticism for which I am grateful. However, this [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I had the privilege of presenting at a collection of DDI Developers in Gothenburg at EDDI. There I presented one of my larger pieces of work, the Virgil-UI DDI Codelist Editor, for critique. While there I received advice, praise and most importantly constructive criticism for which I am grateful. However, this has brought to light a rather large problem.</p>
<p>It was pointed out that I made a small error when dealing with &lt;Code&gt; elements in DDI and accidentally gave them @id attributes, and it was noted that this should be an easy fix. Unfortunately, due to my missing this very early on in the development of Virgil the underlying model relies on Codes having ids to be able to easily make connections between the hierarchical user interface, the &lt;Code&gt;s and the &lt;Category&gt;s that give them meaning.</p>
<p>What this means is that both the DDI coming out of Virgil is invalid, and any valid DDI would not actually be able to be read by Virgil. Essentially, the Virgil model for handling DDI is broken and needs to be almost entirely rewritten and this might take quite a while.</p>
<p>Unfortunately, at this stage rewriting also means re-examining a lot of the initial ideas about what Virgil should be and has highlighted some interesting questions about the DDI model and DDI software, such as:</p>
<ol>
<li><strong>Is abstracting the DDI model away from a user a good approach to software design? Yes.</strong><br />
This was the crux of my talk at EDDI, and I still feel that abstracting the DDI model away from day-to-day users is necessary. The DDI model is complex and covers a wide range of tasks. I believe that designing software that helps users relate the model to specific tasks they are trying to do is a key to getting people to use DDI and think about how they can make their metadata support themselves and those around them.</li>
<li><strong>Is DDI a standard that is suitable to use for day to day management of information? Probably.</strong><br />
In practice, the DDI standard needs to be able to be passed between software if it is to move from an archival standard to a practical statistical metadata standard. One of the things I wanted to achieve with Virgil, was a tool that not only produced DDI, but could also consume it from other sources. In the simplest case this to me meant being able to take a DDI file, and edit the contents of part of it, leaving the rest untouched, and in a lot of cases this is possible with DDI. However, since having to rethink how to manage classifications using DDI, I have realised that there are some objects that are not captured well within DDI and unfortunately classifications are one such example.</li>
<li><strong>Is the DDI model for managing codelists and classifications good enough? Sadly not.</strong><br />
One of the reasons I relied so heavily on the invalid &lt;Code&gt; @ids was that I needed a hook to tie codes and categories together and without this it becomes very difficult to manage what a &#8216;classification&#8217; is in DDI. Furthermore, classifications don&#8217;t exist in DDI per se, but are a rather loose agreement that if you combine &lt;CodeScheme&gt;s and &lt;CategoryScheme&gt;s you get a good approximation. However, this falls apart when we try to document the classification itself.<br />
For example, where do you store the name of a whole classification? There are three viable places (excuse the XPath) &#8211; as a //CodeScheme/Label (being the label of the hierarchy), as a //CategoryScheme/Label (being the label of the collection of classifying categories) or as a //LogicalProduct/Label (the label of the immediate parent that contains both the hierarchies and the categories).<br />
However, each of these approaches has inherent issues, as neither of these are the documented way to manage this information, and if 3 different agencies approached the problem in different ways, then their metadata becomes incomparable. This needs to be discussed further, as it will become a bigger issue as more tools start to try and manage such an important, and conceptually early in the lifecycle piece of metadata.</li>
</ol>
<p>It should be noted that these issues don&#8217;t excuse overlooking the actual standard leading to this predicament. However, given the chance to re-examine how to correct the problem in Virgil, also gives me a chance to examine some of the issues I came across while trying to maintain classifications within DDI. Over the coming month or so while I am going to continue writing up some of the issues I identified with classifications within DDI3.1, how to work around these in the short term, and look at ways to correct the problem in future versions of the standard.</p>
<p>Lastly, in the short-term there will be an update to correct the Code/id problem in the CSV to DDI conversion, so the original use case of being able to mine legacy systems to produce valid DDI will still be filled.</p>
<p>Thanks again to everyone at EDDI for their input and company.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2011/12/always-double-check-the-standard-before-writing-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell to Europe (and EDDI) for another year</title>
		<link>http://www.kidstrythisathome.com/2011/12/farewell-to-europe-and-eddi-for-another-year/</link>
		<comments>http://www.kidstrythisathome.com/2011/12/farewell-to-europe-and-eddi-for-another-year/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 18:22:22 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[DDI]]></category>
		<category><![CDATA[eddi]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=453</guid>
		<description><![CDATA[Here I sit in Helsinki Airport, awaiting a bitter sweet flight home. While it is always good to go home and be with my family and friends, I know I am leaving quite a few behind here in Europe and beyond. By all accounts, the European DDI Users Group meetings were a great success. Along [...]]]></description>
			<content:encoded><![CDATA[<p>Here I sit in Helsinki Airport, awaiting a bitter sweet flight home. While it is always good to go home and be with my family and friends, I know I am leaving quite a few behind here in Europe and beyond.</p>
<p>By all accounts, the <a href="http://www.iza.org/conference_files/EDDI2011/call_for_papers">European DDI Users Group</a> meetings were a great success. Along with seeing all the work people have done of the last year, we were able to sit and discuss and debate for several days and have a solid plan for future work.</p>
<p>While I was only at the Developers meetings, we covered improvements to the website, new ways of managing large DDI instances in relational and non-relational databases, examined new (and forgotten) ways to design software, debated the best ways to handle automated ID creation, listened to the results of the semantic DDI workshops, learned about the <a href="http://registry.ddialliance.org">DDI Agency Registry</a>, debated reducing or removing namespaces from DDI, raised the possibility of a shared DDI Blog/News aggregator and started the creation of not one, but two major additions to the DDI community &#8211; a new transport element nicknamed &#8220;The DDI Bucket&#8221; and started laying the groundwork for a DDI RESTful web interface standard.</p>
<p>And that was in just 3 days! And I am still eagerly awaiting to see how the &#8220;Data Without Borders&#8221; and &#8220;Longitudinal DDI&#8221; workshops went.</p>
<p>The week was made even more productive by the use of Google Docs to create a single, living recollection of the event. Watching everyone type up their notes in real time was great. Over the next few week I (and hopefully the rest of the DDI Developers community) will continue to clean up our collaborative notes and look forward to presenting information and recommendations to the whole DDI community in the new year.</p>
<p>We also discussed upcoming meetings for the DDI Developers group and 3 possibilities were raised, at IASSIST in June, RC33 in July and EDDI next December. While events will most likely go on at all of these events, I strongly encourage those who can come to RC33 to be held in Sydney next July to speak up or at the least contact me in private. There is a wealth of talent in Australia and New Zealand who are well worth getting in contact with and with a large enough group of DDI members in Australia I think a &#8220;DDI Developers Down-under&#8221; would be well attended and well worth the trip.</p>
<p>So with that in mind thankyou to everyone in the DDI Community for a great week &#8211; and especially to Olof Olsson of SND for kindly offering me a place to stay during the week. It was a fantastic week, and served to remind me how if you work hard you can contribute to a community, being called upon to answer questions during the meetings (and once during the question time of someone else&#8217;s talk!) was especially flattering. This has truly re-invigorated my love of metadata (I spent the better part of my evenings in Rome madly writing ideas for tutorials and examples I foolishly volunteered for during the meetings)</p>
<p>So, with that I wish the entire DDI Community a Merry Christmas, Happy Holidays and Happy New Year and look forward to seeing everyone again in the new year, be it in Washington for <a href="http://www.iassist2012.org/index.html">IASSIST 2012</a>, Sydney for <a href="http://www.rc33.org/">RC33</a> or wonderful Bergen for EDDI 2012!!!</p>
<div class="wp-caption alignnone" style="width: 394px"><a href="https://picasaweb.google.com/114760262616249228441/Rome"><img title="Arrivederci" src="https://lh6.googleusercontent.com/-Bt7M3EmQOVo/TuY2PWCS8hI/AAAAAAAAEOc/nmKN-M6tK-M/s512/IMG_20111211_184959.jpg" alt="Arrivederci" width="384" height="512" /></a><p class="wp-caption-text">Arrivederci</p></div>
<p>https://lh6.googleusercontent.com/-Bt7M3EmQOVo/TuY2PWCS8hI/AAAAAAAAEOc/nmKN-M6tK-M/s512/IMG_20111211_184959.jpg</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2011/12/farewell-to-europe-and-eddi-for-another-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upcoming improvements to the DDI Website</title>
		<link>http://www.kidstrythisathome.com/2011/12/ddi-websiteimprovements/</link>
		<comments>http://www.kidstrythisathome.com/2011/12/ddi-websiteimprovements/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 12:57:09 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[eddi]]></category>
		<category><![CDATA[things-I-should-have-done-a-while-ago]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=447</guid>
		<description><![CDATA[EDDI has generated a lot of discussion around DDI, and one area that I have been most interested in and have been guiding discussions around is examining how to improve the DDI Alliance website. As the Web Maintenance Chair, it would be great to rest on my laurels and admit the Website is perfect and [...]]]></description>
			<content:encoded><![CDATA[<p>EDDI has generated a lot of discussion around DDI, and one area that I have been most interested in and have been guiding discussions around is examining how to improve the <a title="DDI Alliance Website" href="http://ddialliance.org">DDI Alliance website</a>. As the Web Maintenance Chair, it would be great to rest on my laurels and admit the Website is perfect and leave it at that.</p>
<p>However, it isn&#8217;t and I wont.</p>
<p>So throughout EDDI, I have been compiling a list of gripes and grumbles (as well as positive remarks and suggestions) regarding the website. In the new year I will be sending out a short survey to DDI Users looking at how people use the website, their issues (both positive and negative) and how they think the DDI Website should look in the future.</p>
<p>One main issue that will definitely be addressed as a part of this exercise is the lack of positive examples of DDI available on the web. The reason for this is that the survey itself, and all its metadata will be made available for people to download and study. This will not be an easy job, but I look forward to contacting researchers and developers across the DDI community to help piece this together and make improvements for everyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2011/12/ddi-websiteimprovements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sing a song of software, bubbles full of lies; 4 and 20 years of stocks audio-lised with Py</title>
		<link>http://www.kidstrythisathome.com/2011/10/sing-a-song-of-software-bubbles-full-of-lies-4-and-20-years-of-stocks-audio-lised-with-py/</link>
		<comments>http://www.kidstrythisathome.com/2011/10/sing-a-song-of-software-bubbles-full-of-lies-4-and-20-years-of-stocks-audio-lised-with-py/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 11:44:08 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Data]]></category>
		<category><![CDATA[Drivel]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[stock]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=435</guid>
		<description><![CDATA[I&#8217;ve been recently toying with the idea of using music as a format of exploratory data analysis. While the use of sound to monitor data isn&#8217;t new, its still relatively uncommon. As I occasionally find myself trying to make sense of large data sets finding a way to quickly analyse them, to find the points [...]]]></description>
			<content:encoded><![CDATA[<h2><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;">I&#8217;ve been recently toying with the idea of using music as a format of exploratory data analysis. While the use of <a title="Slashdot - Network-Monitoring Data Put to Music" href="http://it.slashdot.org/story/06/02/09/1325225/network-monitoring-data-put-to-music">sound to monitor data isn&#8217;t new</a>, its still relatively uncommon. As I occasionally find myself trying to make sense of large data sets finding a way to quickly analyse them, to find the points of interest can be quite tedious. So I thought about ways someone with no music skill could generate sound from data, and produce something relatively melodic, and useful for highlighting patterns and anomalies in the data.</span></h2>
<p><span class="Apple-style-span" style="font-size: 20px; font-weight: bold;">Sing a song of software,</span></p>
<p>To test this out I put together a little tune, that covers the past 24 years of stock information from Microsoft (Piano), Apple(Clarinet) and Google(Xylophone). The pitch is proportional to the price of the stock with low tones being low prices and high be high. While the volume of each instrument is proportional to the volume of sales over the period, so when you hear a quiet sound that is a low volume day, while loud note is a period of higher trading volume.</p>
<p>There are two versions of the music available:</p>
<p>A shorter 2 minute, up-tempo version using weekly stock prices: <a title="Google Docs - SASOS Short OGG" href="http://bit.ly/qPpKZv">OGG</a>, <a title="Google Docs - SASOS Short OGG" href="http://bit.ly/r8XkSN">Midi</a> &#8211; This one is short and to the point, but some of the nuances, like big daily trade spikes are missed.</p>
<p>A longer, 17 minute, version using daily prices: <a title="Google Docs - SASOS Long OGG" href="http://bit.ly/pZScem">OGG</a>, <a title="Google Docs - SASOS Long Midi" href="http://bit.ly/odhw3q">Midi</a> &#8211; This one is a little monotonous at the start, but you can hear Apple come from a tiny instrument in the background to a larger force much better. It also lets you hear some off Apples big trading days.</p>
<h2>Bubbles full of lies;</h2>
<p>A few things to listen out for:</p>
<ul>
<li>Early on, listen for Microsoft&#8217;s speedy accent during the 2000&#8242;s tech boom, and an even quicker decline. (About 1:00 in on the quicker version)</li>
<li>Apple, has for a long time a consistently low trade volume, however occasionally you will hear loud piano strikes starting from the early 2000&#8242;s. (About x minutes in.) These are peaks of stock sale, probably around MacWorld and iPod/Phone/Pad announcements.</li>
<li>After about 2005, you can hear Apple and Google slowly rise in volume and stock price, while Microsoft remains in a consistent range throughout the same period. (After 2:00 in the short version)</li>
</ul>
<h2>4 and 20 years of stocks,</h2>
<p>The data that all of this was pulled from was the historical stock prices data sets available on <a title="Google Finance" href="http://finance.google.com">Google Finance</a>. Why 24 years worth &#8211; because it fit with the theme of the nursery rhyme I was trying to mimic. Its pretty touch and go as to what data you can download from Google Finance, but to be fair, from my understanding this is an issue with the exchanges rather than with Google.</p>
<h2>Audio-lised with Py(thon).</h2>
<p>So the nitty gritty on how it works:</p>
<p>Its a python script that loops through a set of files of output data from Google Finance and using <a title="Google Code - MidiUtil" href="http://code.google.com/p/midiutil/">midiutil</a> creates a Midi file. Each day (or weeks) datapoint is weighted so the values remain within a specific range for a specific instrument and the volumes are adjusted so that each instrument can be detected. Without either of these it really is quite a mish-mash of sound.</p>
<p>This output Midi file is then run through Timidity++ to create an Ogg/Vorbis file. Converting to Ogg is only necessary for consistency, but both the Midi and the Ogg are available.</p>
<h2>Future work and ideas</h2>
<p>Well the goal is to be able to use a technique like this to listen to large multi-variate datasets, that have either a time dimension, or a continuous dependent variable (heights, weights, etc&#8230;). As long as one dimension has values that are relatively evenly and closely distributed with few overlaps and a wide enough spread it should be possible to &#8216;graph&#8217; probably any dataset meaningfully as audio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2011/10/sing-a-song-of-software-bubbles-full-of-lies-4-and-20-years-of-stocks-audio-lised-with-py/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How you can and why you should learn to program.</title>
		<link>http://www.kidstrythisathome.com/2011/10/how-you-can-learn-to-program-and-why-you-should/</link>
		<comments>http://www.kidstrythisathome.com/2011/10/how-you-can-learn-to-program-and-why-you-should/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 08:45:06 +0000</pubDate>
		<dc:creator>Sam</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beginner]]></category>
		<category><![CDATA[Hello World]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.kidstrythisathome.com/?p=425</guid>
		<description><![CDATA[Often people ask me how I learned to program and why I did. The answer is simple, lots of practice because its a useful skill &#8211; and it also helps that I enjoy it. Not everyone will find programming fun or interesting, however at more than one time people will come up against a problem [...]]]></description>
			<content:encoded><![CDATA[<p>Often people ask me how I learned to program and why I did. The answer is simple, lots of practice because its a useful skill &#8211; and it also helps that I enjoy it.</p>
<p>Not everyone will find programming fun or interesting, however at more than one time people will come up against a problem that computers were made to do. Contrary to popular believe computers are dumb &#8211; at least in the sense that they can only do what they are told. What they can do, is they can do these dumb things very, very quickly. So much so, that they can fool you into believing they are smart &#8211; more than smart, magic even. In fact, if you are even a mediocre programmer people can become convinced you are a magician.</p>
<h2>So why should you learn to program?</h2>
<p>Mostly, because your time is valuable. Not to me, but to you. Unlike a computer your time is finite, and if you can make a machine that can give you more time to do something, isn&#8217;t that in your interest? Even if it isn&#8217;t in work, if its just sorting your taxes, or writing a script to check your email for you, there are plenty of small, repetative tasks that you probably do that a machine can do quicker. If you enjoy doing repetitive tasks, then there isn&#8217;t much I can do for you. But if you want to spend more time understanding why you do these things, then read on&#8230;</p>
<h2>Where do you begin?</h2>
<p>Well, I think, there are 3 programs every one must be able to write. Because if you can write these 3 programs and adapt them to your needs, you can do most big, boring tasks that will come your way.</p>
<p>There are 3 programs you need to learn to start to become a programmer and as I explain them, I&#8217;ll show you a brief example to edit and play with and ultimately understand what is going on. These examples are written in <a title="Python Homepage" href="http://www.python.org">Python, a free programming language with a very user friendly syntax</a>.</p>
<h3>Hello, World!</h3>
<p>&#8220;Hello world&#8221; is traditionally the first program many new programmers will write. It is simple, when the program is run the computer prints &#8220;Hello, World!&#8221;. In essence, this simple program introduces programming syntax and demonstrates how to display text to a user.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Hello, World!&quot;</span></pre></div></div>

<p>There isn&#8217;t much to this, but its a starting point. It teaches you some basic syntax and with a lot of languages understanding syntax is important &#8211; computers don&#8217;t speak English and to make them useful you need to learn to talk to them, more than the other way around.</p>
<h3>Simple user interaction</h3>
<p>The second is a simple string manipulator. This goal is to create a simple, persistent user interface, with some error checking that fulfills a task. Here we see an example that does actions on a given string based on a command given to it.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
        <span style="color: #008000;">input</span> = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&amp;gt; &quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">try</span>:
                <span style="color: #dc143c;">cmd</span>,text = <span style="color: #008000;">input</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;:&quot;</span>,<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">cmd</span> == <span style="color: #483d8b;">&quot;uc&quot;</span>:
                        <span style="color: #ff7700;font-weight:bold;">print</span> text.<span style="color: black;">upper</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">cmd</span> == <span style="color: #483d8b;">&quot;lc&quot;</span>:
                        <span style="color: #ff7700;font-weight:bold;">print</span> text.<span style="color: black;">lower</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">cmd</span> == <span style="color: #483d8b;">&quot;rev&quot;</span>:
                        text.<span style="color: black;">reverse</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
                        <span style="color: #ff7700;font-weight:bold;">print</span> text
                <span style="color: #ff7700;font-weight:bold;">elif</span> <span style="color: #dc143c;">cmd</span> == <span style="color: #483d8b;">&quot;quit&quot;</span>:
                        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Bye&quot;</span>
                        <span style="color: #ff7700;font-weight:bold;">break</span>
                <span style="color: #ff7700;font-weight:bold;">else</span>:
                        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Command not recognised&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">except</span>:
                <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Syntax error: enter a command, a colon (:), then a string&quot;</span></pre></div></div>

<p>Firstly, we start the loop and set it to never stop looping. As long as the user wants to play with strings this program will keep going. Next we ask for some input from the user.<br />
Now things get a little more complex, first we try and split the string around a colon, into a command and the text. If the user doesn&#8217;t enter a colon, we throw an error, and give them some help text (after the line that says &#8220;except:&#8221;.<br />
If they do enter a command and text, we set the text to upper case, lower case or reverse it. If they tell us to &#8220;quit:&#8221; we quit by breaking out of the loop (the break command) or we tell them we didn&#8217;t recognise the command.</p>
<p>Its not perfect, but it gives us an understanding of errors, handling user input and basic user interaction &#8211; not bad for 18 lines of code.</p>
<h3>File manipulation</h3>
<p>The last and most important program is a simple file manipulation tool. Again, what the tool does to the file is irrelevant- it might merge files, look for spelling errors, count lines, anything. Perhaps, we are looking for entries in a diary that start with numbers (like dates) in a large file, and only want to view these.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #008000;">file</span> = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'test'</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">for</span> line <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">file</span>:
    <span style="color: #ff7700;font-weight:bold;">if</span> line<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>.<span style="color: black;">isdigit</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> line
<span style="color: #008000;">file</span>.<span style="color: black;">close</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Here we open the file, and then line by line we search through it. When we find a line whose first character is a digit we print the line (line[0] essentially means the 0th character from the start &#8211; <a title="Wikipedia Zero-Based Numbering" href="http://en.wikipedia.org/wiki/Zero-based_numbering">its complicated but its how almost everyone deals with subscripting in lists</a>). Lastly, we clean everything up by closing the file.</p>
<p>Again, by no means the best implementation, but easy enough to read and alter. This time in 5 lines we have a simple script that could help use find our tax information, search our diary, lookup phone numbers, or anything like this.</p>
<h2>I&#8217;ve done this, what now?</h2>
<p>Do whatever task it is that needs doing. Odds are having read these short code snippets you can get an idea of what can be done. Its just a matter of getting out and doing it. You may not be the next Bill Gates/Mark Zuckerburg/whoever, but if you learn to paint a wall you won&#8217;t be the next Da Vinci either. Learn how to do what you need to do, and keep plugging away. Programming is about pulling together pieces of logic, to help us do simple tasks easily and reproducibly. So think lazy, and find all the tasks that you can automate and get something else to do them for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kidstrythisathome.com/2011/10/how-you-can-learn-to-program-and-why-you-should/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

