<?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>Kyle Brady:  Blog &#187; Programming</title>
	<atom:link href="http://www.kyle-brady.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kyle-brady.com</link>
	<description>coherent thoughts on diverse topics</description>
	<lastBuildDate>Sun, 21 Mar 2010 15:47:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://www.kyle-brady.com/?pushpress=hub'/>
<cloud domain='www.kyle-brady.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>lastRSS Modified For cURL Use &#91;Self&#93;</title>
		<link>http://www.kyle-brady.com/2009/11/17/lastrss-modified-for-curl-use/</link>
		<comments>http://www.kyle-brady.com/2009/11/17/lastrss-modified-for-curl-use/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 18:12:31 +0000</pubDate>
		<dc:creator>Kyle Brady</dc:creator>
				<category><![CDATA[Self]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[lastRSS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.kyle-brady.com/?p=5162</guid>
		<description><![CDATA[I recently had to use lastRSS for a project to parse some RSS feeds using PHP, and my server was being cranky about using fopen() to access URLs - despite being overridden to allow it.

So I decided to sidestep the issue and rewrite the file acquisition portion of lastRSS to use cURL instead of fopen, [...]]]></description>
			<content:encoded><![CDATA[I recently had to use <a href="http://lastrss.oslab.net/">lastRSS</a> for a project to parse some RSS feeds using <a href="http://www.php.net">PHP</a>, and my server was being cranky about using <a href="http://php.net/manual/en/function.fopen.php">fopen()</a> to access URLs - despite being overridden to allow it.<br />
<br />
So I decided to sidestep the issue and rewrite the file acquisition portion of lastRSS to use <a href="http://php.net/manual/en/book.curl.php">cURL</a> instead of fopen, and <a href="http://www.kyle-brady.com/downloads/lastRSSwithcURL.php">here it is</a>.<br />
<br />
The changes are in the Parse() function:<br />
<blockquote>function Parse ($rss_url) {<br />
// Open and load RSS file<br />
// now uses cURL instead of fopen() -- Kyle Brady [http://www.kyle-brady.com]<br />
<br />
$ch = curl_init();<br />
<br />
if ($ch !== false) {<br />
curl_setopt($ch, CURLOPT_URL, $rss_url);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
$rss_content = curl_exec($ch);<br />
curl_close($ch);</blockquote><br />
<a href="http://www.kyle-brady.com/downloads/lastRSSwithcURL.php">Enjoy.</a>]]></content:encoded>
			<wfw:commentRss>http://www.kyle-brady.com/2009/11/17/lastrss-modified-for-curl-use/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CIS37A at Mission College &#91;Old Content&#93;</title>
		<link>http://www.kyle-brady.com/2009/07/23/cis37a-at-mission-college/</link>
		<comments>http://www.kyle-brady.com/2009/07/23/cis37a-at-mission-college/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 07:30:33 +0000</pubDate>
		<dc:creator>Kyle Brady</dc:creator>
				<category><![CDATA[Old Content]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Code Samples]]></category>
		<category><![CDATA[Full Code Release]]></category>
		<category><![CDATA[Mission College]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.kyle-brady.com/?p=3434</guid>
		<description><![CDATA[During summer session, I completed a requirement at SJSU by taking CIS37A, an "Intro to C" class.  Although the homeworks were admittedly done rather last-minute.

The code is all pretty hacky, ugly, and "it works for their problem statement, move on" style, but it's been posted anyways.

Check out the missionProjects/cis37A repository.]]></description>
			<content:encoded><![CDATA[During summer session, I completed a requirement at SJSU by taking CIS37A, an "Intro to C" class.  Although the homeworks were admittedly done rather last-minute.<br />
<br />
The code is all pretty hacky, ugly, and "it works for their problem statement, move on" style, but it's been posted anyways.<br />
<br />
<a href="http://projects.kyle-brady.com/svn/listing.php?repname=missionProjects&amp;path=%2Fcis37A%2F#path_cis37A_">Check out the missionProjects/cis37A repository.</a>]]></content:encoded>
			<wfw:commentRss>http://www.kyle-brady.com/2009/07/23/cis37a-at-mission-college/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Won a Copyfight &#91;Expose&#93;</title>
		<link>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/</link>
		<comments>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:23:20 +0000</pubDate>
		<dc:creator>Kyle Brady</dc:creator>
				<category><![CDATA[Expose]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Copyfight]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[DMCA]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SJSU]]></category>

		<guid isPermaLink="false">http://www.kyle-brady.com/?p=2759</guid>
		<description><![CDATA[follow the update thread for the latest chapter in the saga

As a brief introduction, I'm a student at San Jose State University, as a Computer Science major, in San Jose, CA.  I had a class the last semester (Jan 2009 - May 2009) called "Data Structures and Algorithms", taught by Dr. Beeson, where the homework [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><em><small><a href="../2009/08/28/the-spartan-daily-debacle-update-thread"><em>follow the update thread for the latest chapter in the saga</em></a></small></em></p><br />
<br />
As a brief introduction, I'm a student at San Jose State University, as a Computer Science major, in San Jose, CA.  I had a class the last semester (Jan 2009 - May 2009) called "Data Structures and Algorithms", taught by Dr. Beeson, where the homework was all code, submitted by a certain date to an online submission/analysis system.<br />
<br />
Throughout the semester, I posted <a href="http://projects.kyle-brady.com/svn/listing.php?repname=sjsuProjects&amp;path=%2Fcs146%2F#path_cs146_">my correct/working code publicly</a> (project descriptions returning sometime in the near future), after the due date, and didn't think much of it - I thought exposing the code to the public could be helpful for some people, as well as <a href="http://www.kyle-brady.com/tag/code-samples/">a good employer reference for the future</a>.<br />
<br />
However, I was contacted by Dr. Beeson after the semester had ended (May 22, 2009), telling me to remove all public code or else he'd fail me, since he considered it a violation of the Academic Integrity standards.  I responded very politely, citing SJSU Policies and Student Senate Resolutions/Statements:<br />
<blockquote>Professor,<br />
<br />
How is this a violation of Academic Integrity?  I posted them after the initial due date, and very clearly state that these are not to be used in lieu of a student doing their own homework, nor are they likely reliable enough to be used in a corporate environment.<br />
<br />
You may ask, then, what the point is - the point is that I'm starting to create a repository where my future employers can see code I've written easily, something that is more important for the interview process in our modern world than ever.  The work all semester was difficult enough that I felt it warranted being included.  Additionally, sharing code with the world at large, in the spirit of the Open Source community, is not incorrect when the code is your own - even if no-one ever looks at it.<br />
<br />
According to the Academic Integrity Policy of SJSU [accessible <a href="http://sa.sjsu.edu/download/judicial_affairs/Academic_Integrity_Policy_S07-2.pdf" target="_blank">here</a>], I do not qualify for any of the terms of Cheating or Plagiarism.<br />
<br />
According to the Student Conduct Code of SJSU [accessible <a href="http://sa.sjsu.edu/download/judicial_affairs/Student_Conduct_Code.pdf" target="_blank">here</a>], I do not qualify for any of the terms of Section B.  Any arguments for Section B Item 14 are invalid, because they are not being disseminated for commercial purposes.<br />
<br />
According to a statement by the SJSU Student Senate on April 20, 1990 [accessible <a href="http://www.sjsu.edu/senate/s90-5.htm" target="_blank">here</a>], "Academic institutions exist for the transmission of knowledge, the pursuit of truth, the intellectual growth of students, and the general wellbeing of society".  My actions are within the spirit of this.<br />
<br />
Finally, according to the same Senate Resolution, students have a right to freedom of speech (which this is classified as), "So long as a student demonstration does not interfere with the classroom".  Having posted the code after the due date, I did not interfere with the classroom.<br />
<br />
Thusly, I do not see a need to remove my code under threat of grade penalty.  If you disagree on any of these points, or wish to discuss it further, I will be more than happy to bring this discussion to Dr. Louden's attention.</blockquote><br />
He responded rather explosively, and was visibly upset/angry.  In lieu of posting his response, which I'm sure he'd find and take action on, let me summarize it:<br />
<ul><br />
	<li>what were cited are examples, not a full list</li><br />
	<li>he had expected me to cooperate, otherwise he would have filed a Cheating claim against me</li><br />
	<li>take down his PDF files due to copyright <em>(note: I did; they're being retooled for reposting as my own content)</em></li><br />
	<li>does everything need to be stated as acceptable or not?  spitting on the classroom floor was mentioned.</li><br />
	<li>future classes will expressly prohibit the public posting of code solutions at any time</li><br />
</ul><br />
Obviously, the last bit worried me, and as a first response I replied to him:<br />
<blockquote>Professor,<br />
<br />
I understand that they are merely examples, but I thought it was important to point out what the spirit of Cheating and Plagiarism is, since this may very well result in a new definition set.<br />
<br />
I will remove the problem descriptions.<br />
<br />
I appreciate that you didn't file a case, because, as you said, it was not my intention to help others cheat or facilitate it.  In fact, I still don't believe this could be considered cheating, since it is a very different situation than passing a Final around the room.  Perhaps I could have posted the code at a later date than I did for each assignment, but the principle remains the same.<br />
<br />
There is no reason to not make homework solutions public at an appropriate time, and what I have done is no different than sharing answers after they have been turned in for grading - or reviewing graded homeworks in groups before a Final Exam.  I merely used the Internet as my distribution method, instead of a paper-and-ink solution.<br />
<br />
Finally, I believe spitting on the floor is completely unrelated.  That would fall under basic actions of human decency, whereas what I have done over the previous months is more intellectual in nature.<br />
<br />
Thank you for the consideration of my response.</blockquote><br />
Following that email, to which I received no reply, I emailed Dr. Louden, the Computer Science Department Chair, because of the potentially devastating nature of what Dr. Beeson intended to do:<br />
<blockquote>Hello Dr. Louden,<br />
<br />
I have been contacted by Dr. Beeson today regarding the posting of my homework solutions for CS146, past due date, online as a reference for my future employers as well as the general public (if they were interested).  He seemed to think this was a violation of Academic Integrity, and considered it Cheating.  While we still disagree, he has agreed to not penalize me because he didn't explicitly state it was forbidden.<br />
<br />
However, this is still a concern to me, as he has indicated this will be a tenet in all of his classes henceforth.<br />
<br />
The code I have posted is code that I wrote, and posted past the due date.  As such, it cannot be considered cheating.  But for a Professor to prohibit post-grading distribution of solutions is ludicrous.  What I have done is, essentially, no different than students comparing answers after handing in homework, or comparing graded solutions of a semester's work prior to the Final Exam.  Neither of those are considered Cheating, or any manner of an Academic Integrity violation, so why should mine be considered different?<br />
<br />
To prevent it would not only be destructive, prohibitive, and harmful, but potentially a violation of Freedom of Speech as well.<br />
<br />
I have included the emails between myself and Dr. Beeson as an attachment.  I hope that you can review these details and make an appropriate decision as to whether the prevention of such sharing is both legal and intelligent.<br />
<br />
Thank you for your time, and I hope to hear from you soon.</blockquote><br />
I got a prompt response from Dr. Louden, indicating he would research the issue and get back to me - all of the above occurred on May 22nd, 2009.  I received a response from him on June 1st, the important snippets being:<br />
<ul><br />
	<li>the Office of Student Conduct and Ethical Development was contacted for a ruling</li><br />
	<li>Dr. Louden did not believe Dr. Beeson can unilaterally prohibit the public posting of code</li><br />
	<li>copyright issues could arise if the problem sets were highly unique or code from Dr. Beeson was used <em>(note: not the case)</em></li><br />
	<li>Dr. Louden disagreed with the assertion that posting code online was the same as sharing homework solutions, because of the medium in which they were posted <em>(note: the Internet)</em></li><br />
	<li>Dr. Louden stated he thought the claim of Freedom of Speech would be a stretch</li><br />
</ul><br />
A mixed bag of responses, but overall fairly good for my concerns - I considered it a win that I had the Department Chair largely on my side.  On June 3rd, I was notified of an official response from SJSU:<br />
<blockquote>"I have now heard from Debra Griffith, Judicial Affairs Officer of SJSU, and she agrees that what you have done does not in any way constitute a violation of the University Academic Integrity Policy, and that Dr. Beeson cannot claim otherwise."</blockquote><br />
Thanks to some perseverance and asking the right questions, SJSU Professors are now prohibited from barring students from posting their code solutions online, as well as penalizing their students for doing so.<br />
<br />
A win for students, programmers, and copyfighters nationwide!<br />
<br />
--- --- ---<br />
<br />
<strong>Update (6/11/2009 1:08am PST):</strong> <a href="http://www.boingboing.net/2009/06/11/student-challenges-p.html">BoingBoing picked this up</a>, with a pretty glowing pat-on-the-back from Cory Doctorow himself!<br />
<br />
<strong>Update (6/11/2009 6:50pm PST):</strong> <a href="http://techdirt.com/articles/20090611/1027095200.shtml">TechDirt picked this up as well!</a><br />
<br />
<strong>Update (6/12/2009 1:55am PST):</strong> I only just noticed it <a href="http://news.ycombinator.com/item?id=652669">showed up on Hacker News a long time ago</a>...<br />
<br />
<strong>Update (6/13/2009 12:00pm PST): </strong> <a href="http://arstechnica.com/open-source/news/2009/06/academic-source-code-dust-up-symptom-of-cs-education-ills.ars">ArsTechnica</a> and <a href="http://news.slashdot.org/story/09/06/13/123211/Student-Who-Released-Code-From-Assignments-Accused-of-Cheating?art_pos=5">Slashdot</a> are now in the mix.<br />
<br />
<strong>Update (6/15/2009 6:40am PST):</strong> The dust is starting to settle a little, but <a href="http://www.linux.com/news/software/developer/18933-academic-source-code-dust-up-symptom-of-cs-education-ills">Linux.com did a writeup</a> as well.<br />
<br />
<strong>Update (6/15/2009 12:05pm PST):</strong> <em> The Chronicle of Higher Education</em> (an "old world" publication) <a href="http://chronicle.com/wiredcampus/article/3826/student-beats-cheating-charges-for-posting-work-online">wrote about this</a>.<br />
<br />
<strong>Update (6/16/2009 7:00am PST):</strong> Another non-nerd blog has done a piece, this time with an interview, <a href="http://www.insidehighered.com/news/2009/06/16/computer">courtesy of Jack Stripling at <em>Inside Higher Education</em></a>.  Probably the last one for all this.<br />
<br />
<strong>Update (8/24/2009 6:45am PST):</strong> <a href="http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/">Featured in SJSU's Spartan Daily</a>, first issue of the Fall Semester, but in bad taste.  <a href="http://www.kyle-brady.com/2009/08/26/sjsu-reporting-digital-freedoms-with-bias/">See my response</a>.]]></content:encoded>
			<wfw:commentRss>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/feed/</wfw:commentRss>
		<slash:comments>489</slash:comments>
		</item>
	</channel>
</rss>
