<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[RambleOn]]></title>
  <link href="http://rambleon.org/atom.xml" rel="self"/>
  <link href="http://rambleon.org/"/>
  <updated>2012-05-17T20:57:17-04:00</updated>
  <id>http://rambleon.org/</id>
  <author>
    <name><![CDATA[Jason Adam Young]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[In Defense of Marriage]]></title>
    <link href="http://rambleon.org/2012/05/02/in-defense-of-marriage/"/>
    <updated>2012-05-02T09:02:00-04:00</updated>
    <id>http://rambleon.org/2012/05/02/in-defense-of-marriage</id>
    <content type="html"><![CDATA[<p>In North Carolina today, <a href="http://www.ncga.state.nc.us/EnactedLegislation/Statutes/HTML/BySection/Chapter_51/GS_51-1.2.html">gay marriage is illegal</a>. And now and through next Tuesday, the issue of whether to amend the state constitution, taking the already existing law a step further to constitutionally outlaw same-sex marriage (along with any legal recognition of civil unions and domestic partnerships) has been placed before the voters in the North Carolina primary.</p>

<p>If you&#8217;d rather just read my posts about jobs and programming and ruby and systems administration - you may want to click on. I&#8217;d say this post is political. But it&#8217;s not. It is about defending marriage. It is about values and morals.</p>

<p>For portions of my life since college I was very involved in protestant evangelical christian churches, I have spent years studying the christian bible and having conversations with christians, and those values and traditions shaped my views on marriage. I was 33 when I married, and I&#8217;ve been married for 5 and half years now.</p>

<p>At 33 and unmarried, I went–at least in that aspect of my life–from being what society generally considers a little &#8220;weird&#8221; to &#8220;normal&#8221;. And since I&#8217;ve been married, I&#8217;ve realized even more the rights and the recognition and the benefits that society conveys on those that are married.</p>

<p>When my wife and I married, my wife chose to keep her maiden name. We certainly had a few conversations about that. My family expressed a fair amount of reservation, I think my wife&#8217;s family was little perplexed. And even though we are not the first to do so, even if it feels totally normal to us now, and largely accepted by our families, it&#8217;s still a little &#8220;different&#8221; The auto dealership still can&#8217;t quite get it right. The vet has called me by wife&#8217;s last name more than once. She&#8217;s been called by my last name more times than we can count. It&#8217;s all benign these days though. We get a little wink, and you can tell that most people are thinking &#8220;well that&#8217;s not what <em>I</em> would do&#8221; - but I&#8217;m not sure that we&#8217;ve ever gotten any negative comments from strangers about it.</p>

<p>It&#8217;s a very small glimpse for me into what it means to have a &#8220;different&#8221; view from what is considered &#8220;normal&#8221; in marriage. But I don&#8217;t know anyone that wouldn&#8217;t consider it incredibly insane to deny my wife and I the rights and benefits that come with marriage because we have different last names.</p>

<p>So I can imagine, but I can&#8217;t fully know and appreciate what it is like for same-sex couples. We had a choice about names. Sexual identity is not a choice.</p>

<p>What I do know is that the existing law is wrong. And this proposed admendment is wrong.</p>

<p>I hope at my core I always felt this, but I know I&#8217;ve had expressions in my past that I wish now I could take back - especially now that I&#8217;ve come to know and respect and value those colleagues and friends that are affected by this deeply unjust law and will be affected by the deeply unjust constitutional admendment.</p>

<p>I will not look my friends, my colleagues, my fellow human beings in the eye and say that they can not enjoy the rights that I enjoy because of who they are.</p>

<p>There is nothing right about denying two consenting adults the chance to be together in marriage. Nothing right about denying others the right to take responsibility, financially and emotionally for the other. Nothing right about denying others the right to be in the hospital room when the other is sick. Nothing about denying two people that have spent or want to spend a lifetime together the benefits and rights that marriage confers.</p>

<p>While this issue and others have contributed to change how I view christianity, I can say with certainty there is nothing at the core of christianity and the values that christians profess to hold that provides any justification for this law and this admendment. There is absolutely, positively nothing moral, nothing values-based about treating someone else as less than a person for who they are.</p>

<p>My straight marriage doesn&#8217;t need defending, but the institution should be as strong as it can be, and as long as two consenting adults in our society are denied the right to marry if they so choose, it can not be.</p>

<p>My vote is against this admendment. If you are a North Carolina citizen, I hope yours is too.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Reboot]]></title>
    <link href="http://rambleon.org/2012/04/28/reboot/"/>
    <updated>2012-04-28T11:11:00-04:00</updated>
    <id>http://rambleon.org/2012/04/28/reboot</id>
    <content type="html"><![CDATA[<p><span class='caption-wrapper'><img class='caption' src='http://photos.rambleon.org/photos/i-7sKd4Kw/0/L/i-7sKd4Kw-L.jpg' width='' height='' alt='The "Servers" circa 2006' title='The "Servers" circa 2006'><span class='caption-text'>The &#8220;Servers&#8221; circa 2006</span></span></p>

<p>Eight weeks ago, I <a href="http://rambleon.org/2012/03/08/perspective/">resigned</a> from the only non-University job I have had in 15 years.</p>

<p>Last week, I returned to the University, and the job I held for the 6 and a half years prior.</p>

<p>I&#8217;m not really sure I have a cogent set of thoughts and feelings about it. On one hand, I&#8217;m worried. The things about the culture and the environment that frustrated me before have not gone away. There&#8217;s nothing I can do to change them, and for a variety of reasons, outside of my director and maybe one or two others, there&#8217;s nothing I can do to even broach conversations about changing them – at any level. The same worry I had before that these things about the culture and the environment will threaten the future of the initiative as a whole (and in turn, my future) has not changed. In some ways, it might be worse – the nagging thoughts and feelings that I might have failed this time make me worry whether I&#8217;ll make it next time.</p>

<p>There&#8217;s a quote that the internet attributes in one form to Maya Angelou and another to Mary Engelbreit. &#8220;If you don&#8217;t like something, change it, if you can&#8217;t change it, change the way you think about it.&#8221;</p>

<p>So I will focus on the other hand. And on the other hand I&#8217;m thankful. Thankful to my director and the initiative&#8217;s director for the opportunity. Thankful to be in a place where I know I can contribute. Thankful for an environment that allows for research and contemplation, and (usually) the time to fail and succeed. Thankful for all the same flexibility and security and interesting work that made it a great job then, and a great job now. Thankful for an overall culture that at its core has a mission that I believe matters and can make a difference.</p>

<p>I&#8217;m thankful that the job has a new role, and to spend a portion of my time exploring the work we&#8217;ve done over the last six and half years to find things we didn&#8217;t know that were there.</p>

<p>I personally bought some books last week:</p>

<p><img src="http://photos.rambleon.org/photos/i-2QSmnmz/0/M/i-2QSmnmz-M.jpg"></p>

<p>I don&#8217;t know yet where it&#8217;s headed, but I will looking at the data we&#8217;re generating, and building more skills in analysis, visualization, and the communication of that data, and while learning, teach what I&#8217;m learning along the way. It&#8217;s a little vague, and that&#8217;s because the problems are vague – it&#8217;s more about trying and doing and seeing what works and what doesn&#8217;t and building on that <a href="http://rambleon.org/2012/04/02/betelgeuse/">step by step</a>.</p>

<p>So I&#8217;m looking forward to seeing where the next year takes me, looking forward to help with existing efforts wherever I can, to interacting and learning more with my colleagues around the country, to working to &#8220;commit code everyday&#8221;, to watching something really interesting emerge out of the data we have, while working with and learning MongoDB, Riak, R, SciRuby, Graphite, Statsd, D3, gnuplot, rubyvis/protovis and whatever else that I don&#8217;t yet know I need to know.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Capistrano Campout]]></title>
    <link href="http://rambleon.org/2012/04/10/capistrano-campout/"/>
    <updated>2012-04-10T14:18:00-04:00</updated>
    <id>http://rambleon.org/2012/04/10/capistrano-campout</id>
    <content type="html"><![CDATA[<p>I&#8217;ve become a huge fan of <a href="http://campfirenow.com/">Campfire</a> as a group communication tool over the last six months, in both teams that I was part of during that time, and I&#8217;ve seen how incredibly useful it can be as a hub to track automated pieces of information as well, like GitHub&#8217;s commit integration with campfire.</p>

<p>So if I have GitHub commits — what about capistrano deployments? I&#8217;ve had capistrano integrated with email in my own coding projects, but email is a bit limited — having a real-time posting to capistrano would be even better.</p>

<p>So, inspired by the already existing and excellent projects: <a href="https://github.com/technicalpickles/capistrano-mountaintop">capistrano-mountaintop</a> and <a href="https://github.com/pjaspers/capfire">capfire</a>. I&#8217;ve married and extended the ideas in both with <a href="https://github.com/jasonadamyoung/capistrano-campout">capistrano-campout</a>.</p>

<p>Campout will post/speak a configurable message to a campfire room as the capistrano deploy task starts — and utilizing the EngineYard <a href="https://github.com/engineyard/eycap">eycap</a> logger routine, will capture the capistrano logger output to a file, and parse it for success/failure — and will post a configurable message on post-deployment success or a different message on post-deployment failure, as well as following the capistrano-mountaintop model of pasting the log to the room as well.</p>

<p>You can also specify sounds to <del>amaze</del> annoy your co-workers.</p>

<p>Campout includes a generator to generate the configuration files for your project as well, and includes support for loading from a campout.yml and/or a campout.local.yml ( ala <a href="https://github.com/railsjedi/rails_config">rails_config</a> ) — so that you can have shared and/or personal settings, as well as a built-in mechanism for keeping the campfire token out of open repositories.</p>

<p>I&#8217;m not sure that campout fits anyone&#8217;s needs other than my own, but if you use capistrano and campfire you may want to give it – or one of the other projects – a try. Having deployment notifications in campfire can be incredibly useful, especially paired with other events.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sun Day]]></title>
    <link href="http://rambleon.org/2012/04/07/sun-day/"/>
    <updated>2012-04-07T10:12:00-04:00</updated>
    <id>http://rambleon.org/2012/04/07/sun-day</id>
    <content type="html"><![CDATA[<p><img src="http://photos.rambleon.org/All/our-animals/i-FLJPQCt/0/L/DSC5650-L.jpg" title="" ></p>

<p>Sure it&#8217;s Saturday. But they&#8217;re not listening.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Betelgeuse, Betelgeuse, Betelguese]]></title>
    <link href="http://rambleon.org/2012/04/02/betelgeuse/"/>
    <updated>2012-04-02T15:00:00-04:00</updated>
    <id>http://rambleon.org/2012/04/02/betelgeuse</id>
    <content type="html"><![CDATA[<p><img src="http://photos.rambleon.org/All/My-Photos/DSC8418/528260265_m4d6U-L.jpg" title="" ></p>

<p>I&#8217;ve naturally been thinking a lot these last few weeks about my future. About the things that I want to learn. About the kinds of things that I want to do. About <a href="http://rambleon.org/2011/08/03/doing-something-changes-how-we-see-it/">doing things that matter</a>.</p>

<p>However, the <a href="http://rambleon.org/2012/03/08/perspective/">perspective</a> I&#8217;ve gained from all that thinking about the future is that I need to do a lot less of it.</p>

<p>I have spent most of my life, maybe all of my adult life thinking about the future. Thinking about &#8220;the next.&#8221; The &#8220;what I want to do when&#8221; kinds of things. Constantly thinking about what all of the possibilities of the outcomes from my own actions or those around me are going to be.</p>

<p>Even in the most pedestrian of things – like walks with my dogs, I&#8217;m still thinking of &#8220;next&#8221;. I&#8217;m not thinking about the walk, I&#8217;m not stopping to enjoy the weather or the trees or the things along the road. I&#8217;m thinking about that email that I&#8217;m going to send, or whatever thing I might do when the walk is done. As such there&#8217;s little joy and happiness in the moment, because I&#8217;m always thinking about what I&#8217;m going to do when the moment is over.</p>

<p>And it&#8217;s not like it&#8217;s all that productive or prepatory - I will spend time thinking about what I want to do or what I should be doing, or what the best thing to do next is, so much that sometimes I fail to do anything. I like to make fun of the bureaucratic tendency in organizations that &#8220;plan to plan&#8221; - but I&#8217;m not sure on a personal level that I&#8217;m all that different.</p>

<p>I do this so much so that I&#8217;ve forgotten, if I ever knew how to begin with, to live in the here and the now. It&#8217;s all <strong><em>thinking</em></strong> about doing without any regard to <strong><em>being</em></strong>.</p>

<p>I&#8217;m not sure how to fix that, other than paradoxically (for me) not trying to think about how to fix it.</p>

<p>My title comes from some of the yak shaving that accompanied this post, because something really interesting happened on that path.</p>

<p>In trying to find some kind of photo illustration that would hint at &#8220;capturing the moment&#8221; - I came across a night exposure I had made during December 2008 that&#8217;s at the top of this post.</p>

<p>There&#8217;s something interesting about trying any kind of photographic exposure of stars. Even the 15 second exposure for this image is enough time for the earth to turn just enough that it will give you just the hint of a star trail (pretty evident in the <a href="http://photos.rambleon.org/All/My-Photos/7870457_BnTtSX#!i=528260265&amp;k=m4d6U&amp;lb=1&amp;s=O">large size view</a> ). I know it&#8217;s 15 seconds because of the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format">EXIF</a> data uploaded to Smugmug with the photo.</p>

<p>I started looking at the stars, and wondered what the reddish one was in the image - I had known before, but didn&#8217;t remember any of my stars. I was pretty sure I was looking at Orion. So I ran <a href="http://www.stellarium.org/">Stellarium</a> - set my coordinates from google earth, set the date and time to the time the photo was taken - and I could browse exactly what that star was:</p>

<p><img src="http://photos.rambleon.org/photos/i-XGVDjfP/0/L/i-XGVDjfP-L.jpg"></p>

<p>I could <a href="http://en.wikipedia.org/wiki/Betelgeuse">look it up</a> and figure out why it was red, and even search to see why I was taking pictures that night (it was the night of an &#8220;almost <a href="http://en.wikipedia.org/wiki/Supermoon">supermoon</a>&#8221; ).</p>

<p>And maybe all of this is a bit of the reminder that I need. And that&#8217;s to remember that we live in incredibly amazing times. The technology we have enables things that were next to impossible to learn and explore so easily just 10 years ago. And it&#8217;s only going to get better and better. There are real problems to solve, and part of thinking about the future that&#8217;s good to do is figuring out what I can help do to solve them.</p>

<p>But I need to get there by learning, doing, and most importantly being - one moment at a time.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Alright Encoding, Let's Do It]]></title>
    <link href="http://rambleon.org/2012/03/28/alright-encoding/"/>
    <updated>2012-03-28T21:30:00-04:00</updated>
    <id>http://rambleon.org/2012/03/28/alright-encoding</id>
    <content type="html"><![CDATA[<p>My former colleagues ran into an issue recently with a Rails 3.1 application when they upgraded to the latest versions of several gems where text stored in a serialized field suddenly started showing the bytecodes for accented quotes e.g. I don’t suddenly turned into I donâ\u0080\u0099t</p>

<p>Let&#8217;s pause for station identification (here, <a href="http://www.youtube.com/watch?v=JGpajGj07BU&amp;feature=youtu.be&amp;t=1m3s">watch this duel</a> for some cinematic flavor) and write up a few terms for google to find to save others this headache: Problem. Encoding. YAML. Serialized. Rails. Delayed Job. Upgrade. Syck. Pysch. Characters look funny. Display Issues. Latin1 is the root of all evil. UNHOLY TEXT CRAPTASM.</p>

<p>They resolved it with some phpmyadmin text field editing. But I thought I had beat down this encoding mess once and for all with a great big utf-8 mysql push years ago, and heading into the promised land that was Ruby 1.9 with regard to string handling. So I wanted to know the root cause.</p>

<p>What went wrong?</p>

<p>I had <a href="https://github.com/extension/learn/blob/667b5cc96c263ce54f669087e5d4e69632a1e8d6/db/sensemaking_questions.yml">this yaml file of stock questions</a> that I used to <a href="https://github.com/extension/learn/blob/667b5cc96c263ce54f669087e5d4e69632a1e8d6/db/seeds.rb#L293">seed the database</a>. Unfortunately I paid no attention to what was actually being stored in the database.</p>

<p>Let&#8217;s observe - I can&#8217;t paste the &#8220;right single quotation mark&#8221; (which the Mac OSX character viewer gleefully reports as Unicode: U+2019, UTF-8: E2 80 99) into IRB, but I can cheat:</p>

<pre><code>% echo "I’m your huckleberry." &gt; test.yml
% rails console
Loading development environment (Rails 3.1.3)
&gt;&gt; string = YAML.load(File.open('test.yml'))
=&gt; "I’m your huckleberry."
</code></pre>

<p>And when we convert that to yaml as Rails does when serializing it (by default):</p>

<pre><code>&gt;&gt; string.to_yaml
=&gt; "--- \"I\\xE2\\x80\\x99m your huckleberry.\"\n"
</code></pre>

<p>Doh! But then de-yamling it seems okay:</p>

<pre><code>&gt;&gt; newstring = YAML.load(string.to_yaml)
=&gt; "I’m your huckleberry."
</code></pre>

<p>Which is why I never noticed. I mean, how often do you look at a man&#8217;s shoes? er. I mean, in the database. Sorry, mixing the movie metaphors.</p>

<p>But that was until after the gem upgrade - which we&#8217;ll simulate here with a hint of foreshadowing:</p>

<pre><code>&gt;&gt; yamlstring = string.to_yaml
=&gt; "--- \"I\\xE2\\x80\\x99m your huckleberry.\"\n"
&gt;&gt; YAML::ENGINE.yamler = 'psych'
=&gt; "psych"
&gt;&gt; newstring = YAML.load(yamlstring)
=&gt; "Iâ\u0080\u0099m your huckleberry."
</code></pre>

<p>Doh! And all I wanted was an normal encoding-free life.</p>

<p>So after observing the problem in its native form, I turn to google - which turns up <a href="http://stackoverflow.com/questions/8558101/rails-encoding-woes-with-serialized-hashes-despite-utf8">this stackoverflow post</a> - and yep:</p>

<pre><code>% rails console
Loading development environment (Rails 3.1.3)
&gt;&gt; YAML::ENGINE.yamler 
=&gt; "syck"
</code></pre>

<p>We have the culprit! But not where it&#8217;s coming from.</p>

<p>At first, I blame rails, because that&#8217;s usually the easiest thing to do right? Surely they changed something between 3.1 and 3.2?  But searching the source code, and grepping the log indicates that rails got some pysch tenderlove a long time ago.</p>

<pre><code>% git log | grep 'psych'
c29eef7 [1 year, 2 months ago] (Aaron Patterson) load psych by default if possible
59f3218 [1 year, 2 months ago] (Aaron Patterson) load and prefer psych as the YAML parser when it is available
</code></pre>

<p>So them I do a grep on the gems:</p>

<pre><code>% grep -ir 'syck' .
[...]
./delayed_job-2.1.4/lib/delayed/yaml_ext.rb:YAML::ENGINE.yamler = "syck" if defined?(YAML::ENGINE)
</code></pre>

<p>And there we have it and <a href="https://github.com/collectiveidea/delayed_job/commit/cbb4060c8dad886f59d77deab444c94ad61e09a9#lib/delayed/yaml_ext.rb">here&#8217;s why</a> (Note Aaron Patterson&#8217;s prophetic warning) - Delayed Job 3 doesn&#8217;t force &#8216;syck&#8217; anymore, so it fell back to &#8216;psych&#8217;.</p>

<pre><code>% rails console                                              
Loading development environment (Rails 3.2.2)
&gt;&gt; YAML::ENGINE.yamler 
=&gt; "psych"
&gt;&gt; string = YAML.load(File.open('test.yml'))
=&gt; "I’m your huckleberry."
&gt;&gt; string.to_yaml
=&gt; "--- I’m your huckleberry.\n...\n"
</code></pre>

<p>There&#8217;s still the issue of cleaning up the old data, and while it&#8217;s a little late for my colleagues, an easy fix (though you may want to turn off timestamping) for our serialized fields (at least for the stock questions) could have been:</p>

<pre><code>&gt;&gt; YAML::ENGINE.yamler = 'syck'
&gt;&gt; all_responses = {}
&gt;&gt; StockQuestion.all.map{|sq| all_responses[sq.id] = sq.responses}
&gt;&gt; YAML::ENGINE.yamler = 'psych'
&gt;&gt; StockQuestion.all.each do |sq|
&gt;&gt; sq.responses = all_responses[sq.id]
&gt;&gt; sq.save!
&gt;&gt; end
</code></pre>

<p>I&#8217;m sure I&#8217;ll meet up with encoding again. Then we&#8217;ll have us another reckoning.</p>

<p>p.s. <a href="https://github.com/indeyets/syck/blob/master/COPYING">syck must have the most unique dual license ever</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Perspective]]></title>
    <link href="http://rambleon.org/2012/03/08/perspective/"/>
    <updated>2012-03-08T09:33:00-05:00</updated>
    <id>http://rambleon.org/2012/03/08/perspective</id>
    <content type="html"><![CDATA[<p><span class='caption-wrapper'><img class='caption' src='http://photos.rambleon.org/All/My-Photos/i-wxrQ9Nb/0/L/IMG0674-L.jpg' width='' height='' alt='Sunrise over Savannah' title='Sunrise over Savannah'><span class='caption-text'>Sunrise over Savannah</span></span></p>

<p>Four weeks ago, I <a href="http://rambleon.org/2012/02/05/do-learn/">wrote</a> about starting a new job for the first time in 15 years.</p>

<p>Last friday, I resigned.</p>

<p>The company was Rails Machine, a full-service web operations company based in Savannah with an orientation to managing Ruby on Rails applications. I have a tremendous amount of respect and appreciation for what the organization does, how they treat their customers, and the amazing level of talent and problem-solving skill in the team. They live and breathe web operations. If you have a Ruby on Rails application at the core of your business, and want to focus your efforts on the application and not operations, and want the best service provider you can get for deploying, managing, and monitoring your application, hands down they are the people to hire.</p>

<p>For me, at the end of the day, it just wasn&#8217;t the right fit–and I don&#8217;t think I was the right fit for them. I really like web operations, but I learned that web operations itself is not my passion. For me personally to make the right fit, it needed to be.</p>

<p>I am looking forward to some upcoming opportunities, but for now, I&#8217;m taking the break that I should have taken prior to starting four weeks ago. I&#8217;m learning some new things, paying down some technical debt, working on the honeydo list, taking walks with the dogs, and gaining some perspective.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Do, Learn]]></title>
    <link href="http://rambleon.org/2012/02/05/do-learn/"/>
    <updated>2012-02-05T02:42:00-05:00</updated>
    <id>http://rambleon.org/2012/02/05/do-learn</id>
    <content type="html"><![CDATA[<p>Just about a month ago, I asked a colleague–just starting his new job the next day as CIO of a small public university–if he had &#8220;that nervous excited feeling that you got as a kid on the first day of school?&#8221;</p>

<p>Little did I know that just one month later, I&#8217;d be asking that of myself.</p>

<p>Tomorrow, for the first time in six and a half years–and eight and half years prior to that in other roles at NC State University–I&#8217;ll be starting the day in a new organization.</p>

<hr />

<p>I&#8217;ve written a number of posts here over the years referencing the <em>Shawshank Redemption</em>–sourced from <a href="http://rambleon.org/2005/04/07/brooks-was-here/">one seven years ago</a> echoing Morgan Freeman&#8217;s character&#8217;s words about being <em>institutionalized</em></p>

<blockquote><p>These walls are kind of funny. First you hate &#8216;em, then you get used to &#8216;em. Enough time passes, gets so you depend on them.</p></blockquote>

<p>It took a while, and parts of it changed in all three roles that I had at NC State, but like Red, I learned how to become that guy that knew how to get things, how to make things work, how to succeed in my roles there and how to help others do the same.</p>

<p>I started a brand new school across Wake County when I was in second grade. When I got to school, all the other kids were drawing pictures, and I thought we were supposed to draw what we were interested in and wanted to be when we grew up. I sat down and started drawing a picture of the moon and probably the space shuttle—that was the first year the shuttle launched—and a few minutes later I heard the teacher tell a parent that we were all drawing pictures of what we did that summer.</p>

<p>I remember wanting to crawl under the desk just thinking about having to explain how I went to space that summer.</p>

<p>There&#8217;s some part of me that still feels like that second grade Jason felt. I&#8217;m not sure what the picture is that everyone is drawing. I don&#8217;t know the rules. I don&#8217;t know the culture. I don&#8217;t know my new colleagues, and they don&#8217;t know me. I don&#8217;t know where anything is yet with my new job.</p>

<p>So, am I nervous? Yes.</p>

<hr />

<p>I have <a href="http://outfielding.net/">written before</a> that my goal is to <em>learn by doing meaningful work</em> or more succintly <strong>Do, Learn</strong></p>

<p>Sure, it&#8217;s amorphous. And I&#8217;ve written equally vague hopes I had for the roles I&#8217;ve had at NC State - or really any role that I have. Most recently last August where I wrote about my experiences at OSCON and Ariel Waldman&#8217;s quote that <a href="http://rambleon.org/2011/08/03/doing-something-changes-how-we-see-it/">Doing something changes how we see it</a>.</p>

<p>I&#8217;m thankful that I had the opportunity to see that the work that I&#8217;ve done have an impact on my local team, and often the division of the University (or recently, Extension) that my team was part of. But for all the passion that I have for the research, teaching, and extension mission of the land-grant university, affecting change within the larger organization is slow, and hard, even more so for a technologist watching the kind of work that they do upend entire industries (including education, though from outside the academy).</p>

<p>I want to do and most importantly, I want to see what I do have a meaningful and positive impact on the organization that I&#8217;m part of, and learn enough along the way that to see that work that I do have an even greater impact beyond the organization in concert with my colleagues.</p>

<hr />

<p>When I started six and half years ago at Extension, I remember having that same second grade nervousness. I had been managing for almost 5 years prior, and while I was leading technical projects, I had given up most of my day to day technical work. In my job in Extension, I had the charge to build from scratch the environment that we would deliver and develop on. At the start, I was it. There wasn&#8217;t anyone else–not for the systems work at least. And until I had the opportunity to mentor another systems administrator, the system itself remained mine alone to break and fix and guide.</p>

<p>It&#8217;s different now, the last six and half years of doing and learning have given me a confidence again that I can figure anything out.</p>

<p>But it&#8217;s also different because I&#8217;m not starting alone this time.</p>

<p>I have a lot of experience doing what I do. But the most fundamental lesson that experience teaches me is that I have so much to continue learning.</p>

<p>And I&#8217;ve already begun learning things that I didn&#8217;t know–just from watching the twitter accounts of my new colleagues. I am greatly looking forward to having the opportunity to continue learning from them and along with them.</p>

<p>And in the few emails and conversations I&#8217;ve had we are definitely going to be <em>doing</em> things that will have an impact on the business we&#8217;re in.</p>

<p>Like Red, I&#8217;m at the start of a long journey whose conclusion is uncertain&#8230;</p>

<p>But am I excited? Hell yes.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[For The Monkeys]]></title>
    <link href="http://rambleon.org/2012/02/02/for-the-monkeys/"/>
    <updated>2012-02-02T11:09:00-05:00</updated>
    <id>http://rambleon.org/2012/02/02/for-the-monkeys</id>
    <content type="html"><![CDATA[<p>I&#8217;m recently retired (for four days, more on that soon) - so I&#8217;m in the process of making sure I have a backup of all my email. Why? I don&#8217;t know, I&#8217;ve lived so much of the last 10 years of my working life in email, it seemed like a good idea at the time.</p>

<p>What is fun about it is finding things that long ago I forgot that I said. There&#8217;s a whole lot that never should see the light of day, but some of them–with a little tweaking–deserve a public airing, particularly if they involve monkeys.</p>

<p>My <a href="https://plus.google.com/114296506386465886516/about">(now former) boss, Kevin Gamble</a> has an oft-repeated mantra of what you can do with the organization issues - the metaphorical &#8220;monkeys on your back&#8221;.</p>

<p>You can:</p>

<ul>
<li>Avoid the monkey/leave it with the current caretaker</li>
<li>Starve the monkey</li>
<li>Take the monkey and feed and care for it</li>
</ul>


<p>This came up about four years ago, about some issue or another. It could be just about any issue that an organization would face when there&#8217;s a monkey on your back.</p>

<p>In response, I then proceeded to pontificate about the monkey</p>

<blockquote><p>Well, given my personality is such that when I see a monkey in the room, particularly if the monkey appears to be neglected is to go:</p>

<p>&#8220;Hey there&#8217;s a monkey in the room.&#8221;</p>

<p>Although, I don&#8217;t usually stop there, I proceed to describe how the monkey looks, and talk about the monkey&#8217;s lineage, and relate stories about all the monkeys that I&#8217;ve known before&#8230;, but I digress</p>

<p>But I tend to feel that ignoring there&#8217;s a monkey in the room, particularly a neglected monkey, is wrong.  I especially feel that it is a failure of higher education in general, that when someone, in whatever particular mode of expression that they use, will point out there&#8217;s a monkey in room, that leadership tends to collectively ignore not only the monkey, but the person that pointed out the monkey.</p>

<p>That&#8217;s not to say that every time that someone says they see a monkey, that it&#8217;s really a monkey.  Good leadership knows the difference between live monkeys, stuffed monkeys, and mice dressed up as monkeys.  But ignoring the person that thought they saw a monkey, by not at least saying &#8220;thanks, but it&#8217;s really not a monkey, here&#8217;s what it is&#8221;.  But no, the monkey reporter is ignored.  Unless the monkey reporter is someone on an advisory board or booster club or whatever.  Then all monkeys, stuffed, live, and impersonated are all treated as monkeys.</p>

<p>Others, in their own way, have pointed out that there is a monkey in the room. Admittedly, that expression comes across as &#8220;Why isn&#8217;t that monkey dancing?  Please put a uniform on that monkey and make it dance.  Now.&#8221; While it isn&#8217;t really the best way of expressing that there&#8217;s a monkey in the room, my sincere wish is that leaders will go: &#8220;You know, that&#8217;s a great point, there&#8217;s a monkey there, and while it really isn&#8217;t a dancing monkey, what is the course of action for the monkey?&#8221; Putting a monkey in time-out is fine, but ignoring it is not.  At least I don&#8217;t think it is.</p>

<p>Maybe there&#8217;s no educational organization anywhere that does this.  But one could hope that somehow, someway, somewhere they will do this.</p>

<p>If not for us, then for the monkeys.</p></blockquote>

<p>&#8220;If not for us, then for the monkeys&#8221; is my new catch phrase.  I haven&#8217;t had a <a href="http://rambleon.org/2010/02/03/you-know-what-today-needed/">catch phrase</a> in a <a href="http://rambleon.org/2010/02/04/more-higgins/">long time</a>.  And given a catch phrase, there&#8217;s no telling <a href="http://rambleon.org/2010/02/06/not-yet-far-enough/">how far I&#8217;ll take it</a> (well, in that case, I got pretty lazy and stopped there, which is to say &#8220;not very far&#8221;).</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Face of the Week]]></title>
    <link href="http://rambleon.org/2012/01/17/face-of-the-week/"/>
    <updated>2012-01-17T18:23:00-05:00</updated>
    <id>http://rambleon.org/2012/01/17/face-of-the-week</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/our-animals/14614295_jfKJXf#!i=1676073656&amp;k=JcnZRnd&amp;lb=1&amp;s=A"><img src="http://photos.rambleon.org/All/our-animals/i-JcnZRnd/0/M/DSC5336-M.jpg" title="Aaarrrr I'm a Pirate!" alt="" /></a></p>

<p>Insert some joke about &#8220;Pirate Cat&#8221; here.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Pardon The Dust]]></title>
    <link href="http://rambleon.org/2012/01/15/pardon-the-dust/"/>
    <updated>2012-01-15T22:38:00-05:00</updated>
    <id>http://rambleon.org/2012/01/15/pardon-the-dust</id>
    <content type="html"><![CDATA[<p>I&#8217;ve decided to do what all the cool kids are doing and bake my blog (with <del>butter</del> <a href="http://octopress.org">octopress</a> ).</p>

<p>Like <a href="http://mattgemmell.com/2011/09/12/blogging-with-octopress/">Matt Gemmell</a> - I didn&#8217;t need all the features that wordpress provided, and while I&#8217;m not sure that it was all that opaque–the fewer moving parts I have to maintain, the better.</p>

<p>Moving was relatively straightforward. I had to modify <a href="https://github.com/thomasf/exitwp">exitwp</a> to use html2text_file instead of html2text to stop html2text from wrapping–and breaking–strings over 80 characters  (thanks to <a href="https://github.com/thomasf/exitwp/issues/6#issuecomment-3103262">this comment</a> from James Ward). I also needed to convert double newlines to double br&#8217;s (all&#8230;the&#8230;way) in order for the paragraphs to be there–I had always let wordpress convert double newlines to paragraphs (pointer also thanks to James Ward). And I had to run it all on Ubuntu, because OS X wasn&#8217;t all that happy about things. But once that was all done, it was a piece of cake to get set up.</p>

<p>I apache alias&#8217;d my old wp-content uploads, and rewrite the /feed urls to /atom.xml - but other than that, it seems to be a drop-in replacement.</p>

<p><del>I&#8217;m using comments through <a href="http://disqus.com">disqus</a> - but the comment to post ratio is pretty low, so I don&#8217;t know that I&#8217;ll keep them - but all the old comments have been imported there for now.</del></p>

<p>So there might be some things that don&#8217;t look right, or aren&#8217;t linked right. I&#8217;ll fix them eventually. So if you see something, say something.</p>

<p>[Update] Comments. meh. Send me a tweet, or google plus, or email, I think that will work out best</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[First in Flight]]></title>
    <link href="http://rambleon.org/2011/12/30/first-in-flight-2/"/>
    <updated>2011-12-30T15:39:04-05:00</updated>
    <id>http://rambleon.org/2011/12/30/first-in-flight-2</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/Eastern-NC-2011/20806887_gG652b#1652173042_dbdQ5JF-A-LB"><img src="http://photos.rambleon.org/All/Eastern-NC-2011/i-dbdQ5JF/0/M/DSC5005-M.jpg" title="Flight!" alt="" /></a></p>

<p><a href="http://photos.rambleon.org/All/Eastern-NC-2011">More from Eastern NC&#8230;</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Run!]]></title>
    <link href="http://rambleon.org/2011/12/30/run/"/>
    <updated>2011-12-30T15:28:41-05:00</updated>
    <id>http://rambleon.org/2011/12/30/run</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/Mattamuskeet-2011/20806887_gG652b#1652170613_vBJTmVR-A-LB"><img src="http://photos.rambleon.org/All/Mattamuskeet-2011/i-vBJTmVR/0/M/DSC4874-M.jpg" title="Run!" alt="" /></a></p>

<p><a href="http://photos.rambleon.org/All/Mattamuskeet-2011/20806887_gG652b#1652170900_TzGnfX8-A-LB"><img src="http://photos.rambleon.org/All/Mattamuskeet-2011/i-TzGnfX8/0/M/DSC4895-M.jpg" title="Run!" alt="" /></a></p>

<p><a href="http://photos.rambleon.org/All/Mattamuskeet-2011/20806887_gG652b#1652172714_fK2MDcm-A-LB"><img src="http://photos.rambleon.org/All/Mattamuskeet-2011/i-fK2MDcm/0/M/DSC4980-M.jpg" title="Run!" alt="" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Merry Christmas]]></title>
    <link href="http://rambleon.org/2011/12/25/merry-christmas-2/"/>
    <updated>2011-12-25T12:19:42-05:00</updated>
    <id>http://rambleon.org/2011/12/25/merry-christmas-2</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/our-animals/14614295_jfKJXf#1646198797_k6XXg5t-A-LB"><img src="http://photos.rambleon.org/All/our-animals/i-k6XXg5t/0/M/DSC4604-M.jpg" alt="" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Puzzled]]></title>
    <link href="http://rambleon.org/2011/12/20/puzzled/"/>
    <updated>2011-12-20T13:03:19-05:00</updated>
    <id>http://rambleon.org/2011/12/20/puzzled</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/our-animals/14614295_jfKJXf#1640444240_TM53f8x-A-LB"><img src="http://photos.rambleon.org/All/our-animals/i-TM53f8x/0/L/DSC4528-L.jpg" title="Puzzled" alt="" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Face of the day]]></title>
    <link href="http://rambleon.org/2011/12/20/face-of-the-day/"/>
    <updated>2011-12-20T12:09:53-05:00</updated>
    <id>http://rambleon.org/2011/12/20/face-of-the-day</id>
    <content type="html"><![CDATA[<p><img src="http://photos.rambleon.org/All/Elinor/i-Fhg77M4/1/L/DSC4488-L.jpg" title="Reflected" alt="" /></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Pup Face of the Week]]></title>
    <link href="http://rambleon.org/2011/12/02/pup-face-of-the-week-15/"/>
    <updated>2011-12-02T23:23:26-05:00</updated>
    <id>http://rambleon.org/2011/12/02/pup-face-of-the-week-15</id>
    <content type="html"><![CDATA[<p><a href="http://photos.rambleon.org/All/our-animals/14614295_jfKJXf#1613569404_89v5kSm-A-LB"><img src="http://photos.rambleon.org/All/our-animals/i-89v5kSm/0/M/DSC4437-M.jpg" alt="" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Career Advice]]></title>
    <link href="http://rambleon.org/2011/12/01/career-advice/"/>
    <updated>2011-12-01T00:15:39-05:00</updated>
    <id>http://rambleon.org/2011/12/01/career-advice</id>
    <content type="html"><![CDATA[<p>Today was one of those days where I do and say things that are the antithesis of good career advice.</p>

<p>So that means, of course I&#8217;m going to give some appropriate career advice.</p>

<p><strong>DO. If your dog poops on the floor, clean it up.</strong> This is of course, a given. Everyone agrees with this, if you cause a problem, fix it. If you break something, fix it. If you can&#8217;t fix it, find someone who can. There&#8217;s not universal practice of this, but there&#8217;s pretty much universal agreement that it should be done.</p>

<p><strong>DO. If there is dog poop on the floor, you cannot ignore it. In fact, clean it up.</strong> This is where things get hard. Who wants to clean up other people&#8217;s dog poop? Of course you can say &#8220;it&#8217;s not my job&#8221;, &#8220;it&#8217;s somebody else&#8217;s problem&#8221;, &#8220;I have my own poop to clean up&#8221;, &#8220;I don&#8217;t want to get stuck cleaning up poop all the time&#8221;. All true, and we&#8217;ve all said that. In the best of organizations, you might get recognized for cleaning up poop when you didn&#8217;t have to. In most organizations you&#8217;ll just be asked to muck out the barn. But here&#8217;s the thing. The more poop you clean, the more you learn about poop. The more experience you have, the better you are equipped to solve the next problem. I can&#8217;t tell you how much my career has benefitted from seeing something that wasn&#8217;t right and trying to fix it. Yes, I&#8217;ve had to clean up a lot of poop. But I&#8217;ve learned a lot in the process.</p>

<p><strong>DO. Recognize when your dog is going to poop on the floor and handle it before it happens.</strong> This takes experience. See point #2. In good organizations, people will recognize that you can do this. In normal organizations, no one will care, but you&#8217;ll have to clean less poop.</p>

<p><strong>DO. Recognize when other&#8217;s dogs are going to poop on the floor and handle it before it happens.</strong> This takes even more experience. See point #2. Sometimes, particularly in mentorship situations and with small out of the way rooms, you can let the other dog poop, but you should be there to keep the dog from going into a main room, and you should help clean it up. In great organizations you&#8217;ll be recognized as a mentor. In normal organizations, you might gain an appreciative colleague that will help you out when you&#8217;re dog sitting. Either way, there&#8217;s less poop to clean up, or you&#8217;ll learn more about poop.</p>

<p>There&#8217;s a debatable caveat here though. If you don&#8217;t have a trust relationship with the owner of the dog - you will not be liked. Especially if they think their dog only poops butterflies - you will not be liked. It&#8217;s even possible you&#8217;ll be blamed for causing the dog to poop. I don&#8217;t have any good answers for this. Sometimes you have to warn about things anyway. Sometimes maybe it&#8217;s just better to let it happen and hope that they don&#8217;t ignore the poop on the floor. See #2</p>

<p><strong>DO NOT. Under no circumstance, should you proclaim, loudly or otherwise that THERE IS POOP ON THE FLOOR.</strong> And definitely do not say one word about HAVING TO BE THE ONE TO CLEAN IT UP. There&#8217;s great temptation in this. Particularly if you warned it was going to happen. I have failed at this far too many times. It&#8217;s getting better as I get older, but you&#8217;d think I&#8217;d learn one day. No one wants to hear about the poop and what you are doing with it.</p>

<p>The summary:</p>

<p>Do shit. Know your shit. Don&#8217;t talk shit.</p>

<p>That&#8217;s my blinding glimpse of the obvious advice for the day</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[200 OK]]></title>
    <link href="http://rambleon.org/2011/11/18/200-ok/"/>
    <updated>2011-11-18T23:17:50-05:00</updated>
    <id>http://rambleon.org/2011/11/18/200-ok</id>
    <content type="html"><![CDATA[<p>My colleagues in Extension computing throughout the nation started an annual tradition sometime back of celebrating what are usually the best of the worst (or the funniest) stories throughout the year that happen to them or their colleagues (or their clients) in computing.</p>

<p>Being computing professionals, they appropriately call them the &#8220;404 awards&#8221;. Usually because in the moment, someone&#8217;s intelligence and/or sanity has gone missing. I don&#8217;t usually feel like mine are funny enough to tell, but I certainly have my share of 404 (and 500) stories.</p>

<p>But every so often, there&#8217;s a 200 OK.</p>

<p>I have a friend that I&#8217;ve known for over 20 years that is a captain and chaplain in the U.S. Army. We haven&#8217;t talked much in a long time, and earlier this year he deployed back to Afghanistan.</p>

<p>The other day he dropped me a note. He and his wife were scheduled to have a Skype call this weekend - and something was broken with Skype on her Windows 7 computer. I don&#8217;t do much desktop support, and it&#8217;s been years since I supported anything on any version of windows - and I&#8217;ve never met or talked with his wife. But in 20 years, I don&#8217;t think my friend has ever asked me to do anything like that.</p>

<p>I fired up Windows 7, downloaded Skype, then downloaded it again when I realized Microsoft and Skype have versions all over the place, got a few details, and headed to the forums. She had already been through a whole bunch of things that she had found searching for a solution, and had done a lot of homework on it already, but it still wasn&#8217;t working</p>

<p>There wasn&#8217;t anything definitive that I found, but I had some gut feelings about it. So another email or two with some details and some ideas on just walking back to square zero with one of Skype&#8217;s updates to something that was still in beta (or the &#8220;garage&#8221; they call it). I wasn&#8217;t sure what was going to fix it - but I had some steps and a plan and I was already readying an old Mac laptop as a fallback.</p>

<p>And in the evening, I got an email back - the opening line was &#8220;HALLELUJAH!!!&#8221;</p>

<p>I didn&#8217;t really do much. Certainly there have been other computing problems this week that have been more complex, that I worked harder and longer at finding a solution to. But they didn&#8217;t feel as good as this, and it&#8217;s been a long time since I had that &#8220;this is what I was meant to do&#8221; feeling.</p>

<p>I&#8217;m sure next week I&#8217;ll rm -rf a server again. Or blow the release of an app. Or jump to some conclusion about what isn&#8217;t working and break what is.</p>

<p>But today wasn&#8217;t one of those days.</p>

<p>Today was 200 OK.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Stanford's Learning Experiment]]></title>
    <link href="http://rambleon.org/2011/11/13/stanfords-learning-experiment/"/>
    <updated>2011-11-13T18:56:11-05:00</updated>
    <id>http://rambleon.org/2011/11/13/stanfords-learning-experiment</id>
    <content type="html"><![CDATA[<p>I like data, I cannot lie.</p>

<p>Out of all the things I enjoy in my job, I think what I like the most is pulling together the bits and pieces of data that we have, aggregating it together and trying to extract some meaning out of it. Maybe it&#8217;s because I was a system administrator first, I don&#8217;t know. I like the logging, I like the queries, I just like doing it. It&#8217;s fun. It feels meaningful.</p>

<p>But I always feel like it is amateur hour when I do. Sure, I know my basic statistics, and if it&#8217;s a dataset about activity that I know about, I have an intuitive feel for what&#8217;s right and wrong about the data surrounding it. But I don&#8217;t really feel like I know how to make something meaningful out of it.</p>

<p>I was, and am, pretty excited that Stanford decided to experiment this fall in mass delivery of three topics, databases, machine learning, and artificial intelligence.</p>

<p>I decided to follow along with the machine learning class, because I was curious about the material, and I think it may help me make more meaningful relationships out of the data that my apps and systems collect.</p>

<p>If you want a perspective on the course from a professional writer, you can <a href="http://www.slate.com/articles/technology/future_tense/features/2011/learning_machine/stanford_s_machine_learning_stuff_gets_to_the_good_stuff_.html">follow along with the course from Chris Wilson at Slate</a>, but four weeks in, I wanted to share a little about how I&#8217;m feeling about it.</p>

<p>First, let me say what&#8217;s great about the course. Dr. Andrew Ng is really good at teaching. He is what I am amazed about when it comes to the best faculty I meet: demonstrable experts in their field that are able to connect with those of us who are not experts, and will likely never be. He has done something that I remember the best of the faculty I&#8217;ve learned from do, he&#8217;s guided us into having a better intuition about what&#8217;s happening with the various mathematical algorithms he&#8217;s presented.</p>

<p>Also great are the technical implementation of the course. The student assistants putting together the website, the video delivery, the submission system have all done a great job - especially given the constraints of what delivering a course to thousands (maybe tens of thousands) of students entails. I&#8217;m not the biggest fan of the Q&amp;A forum format - but it&#8217;s not because of the technical implementation, it&#8217;s because I don&#8217;t think anyone has quite gotten the &#8220;mass of people able to fluidly from niche groups&#8221; thing right.</p>

<p>I have learned. And that&#8217;s what matters. I&#8217;ve completed all the review assignments, scoring 4.25 or better (out of 5) on the first try, learning if I missed parts of a multiple choice review question, and being able to resubmit the review questions with 100% credit on the second.</p>

<p>And I&#8217;ve submitted each one of <a href="https://skitch.com/jasonadamyoung/gee25/machine-learning">my programmatic assignments with 100% credit</a> on the first try.</p>

<p>But I&#8217;ve still felt lost (especially with the neural network assignments).</p>

<p>Part of that is me. I get lost in the math. I don&#8217;t know what is different about being able to follow and deconstruct variable names and statements in programming languages and trying to follow and deconstruct mathematical notation. Maybe it&#8217;s all the greek letters, I don&#8217;t know, but I struggle with it, I always have. I can see it in code, I can&#8217;t just &#8220;see it&#8221; in the math notation. That frustration is part of the reason I didn&#8217;t pursue graduate degrees, and what (little) advanced math there is in this machine learning class (we get to pretty much skip all the formula derivation) just serves to throw me off my game for a bit.</p>

<p>So the programming assignments have been great because they&#8217;ve helped to clarify the math for me - I come out of them (usually) having a better understanding of the math (but that&#8217;s only once I grok enough of the math to get started).</p>

<p>But here&#8217;s the one place that I think that the Machine Learning class falls short. The programming assignments are treated as the protected resource. And it&#8217;s not limited to Stanford, I think it&#8217;s endemic to most Computer Science programs, and that&#8217;s the great failure I think of Computer Science instruction.</p>

<p>We&#8217;ve been asked to agree to the Stanford Honor Code and not share code before the assignment is due. I can understand that given that if the course is structured to use the programming assignments as a &#8220;gradeable&#8221; resource (and the internet-wide course is sharing itself with Stanford&#8217;s own applied section of their CS229 machine learning course) - and it makes total sense that they would, because you can do automated mass-checking on outputs with mathematical programming. I don&#8217;t begrudge that.</p>

<p>But by treating the code as the protected resource, it fails the very thing that these programs need to be doing the most, getting us to solve problems with others, to build on each other&#8217;s work (just like we are building on written recognition research in our own programming assignment) - to begin to develop efficient, readable, understandable implementations of the methods to solve these problems.</p>

<p>At the least, there needs to be a time &#8220;after&#8221; the assignment for sharing and reflection. I&#8217;ve scored 100% and I still feel lost. My code pasts the test, but is it efficient? Is it obfuscated? Are there better implementations? How could I build on it and make it better? I still feel a little lost that I&#8217;ve gotten it right, I&#8217;ve seen hints of it in the Q&amp;A forums where I could learn even more if I had the chance to compare and contrast. I&#8217;ve thankfully seen pushing-the-honor-code hints that got me started enough in the right direction past the math notation that the assignments themselves did not.</p>

<p>But that&#8217;s not possible in this course, because the programming assignments are still &#8220;open&#8221; after the deadline for reduced credit.</p>

<p>(It&#8217;s made a little worse that the &#8220;credit&#8221; for a course like this is moot, the internet mass of volunteers here to learn, not for a grade of any kind - but again, we share with the for-credit work of students at Stanford.).</p>

<p>I know from my own degree that Computer Science is not software development, and probably never has been. I think that things have changed in the 15 years since I got my own degree, not so much in the early courses where the algorithms still do the grading, but in the later courses. But it still hasn&#8217;t changed enough.</p>

<p>I am very thankful for the opportunity that Stanford and Dr. Ng have provided to us, to give us Stanford-quality instruction in a way that gives us a live progression with others going through it at the same time. I think that part of it may well be a coming future for education.</p>

<p>But until the software part of computer science instruction becomes a lot less of a protected resource in the process - this isn&#8217;t the future of computing education.</p>
]]></content>
  </entry>
  
</feed>

