<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://132.161.132.157/drupal6"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Computer Science - development</title>
 <link>http://132.161.132.157/drupal6/taxonomy/term/605/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>CS Table 4/26: The left-pad kerfuffle</title>
 <link>http://132.161.132.157/drupal6/node/863</link>
 <description>&lt;p&gt;
Recent events in the JavaScript ecosystem have raised serious questions about the appropriate models for code sharing and reuse. In case you missed it, the sequence of events was: (1) JavaScript developer writes many modules, including one called &quot;left-pad&quot; that provides a function to add spaces to the left side of a string, (2) this developer loses control of a different module that used a copyrighted name, (3) developer deletes all of his modules, and (4) thousands of JavaScript applications that depend on left-pad fail.
&lt;/p&gt;
&lt;p&gt;
While this sequence of events was amusing to watch as an outsider, it leads to serious questions about the appropriate size of a shareable unit of code and the practices of centralized software package management services. This topic will also give us an opportunity to discuss the difference in typing disciplines across languages and the role of type systems in building modular, reusable software components.
&lt;/p&gt;
&lt;p&gt;
If you aren&#039;t familiar with JavaScript development, the node ecosystem, or the node package manager (npm), the following documentation should give you a sense of how dependencies work in JavaScript. &lt;a href=&quot;https://docs.npmjs.com/getting-started/what-is-npm&quot;&gt;nmp Documentation: What is npm?&lt;/a&gt; and &lt;a href=&quot;https://docs.npmjs.com/getting-started/using-a-package.json&quot;&gt; npm Documentation: Using a &#039;package.json.&#039;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are several short readings for this week:
&lt;ul&gt;
&lt;li&gt;An overview of the situation: &lt;a href=&quot;http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/&quot;&gt;NPM &amp; left-pad: Have We Forgotten How To Program? David Haney. March 23, 2016.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A response from kik, the company that controls the copyright for one of the deleted modules: &lt;a href=&quot;https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d#.ufvydur7q&quot;&gt;A discussion about the breaking of the Internet. Mike Roberts. March 23, 2016.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A response from npm: &lt;a href=&quot;http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm&quot;&gt;kik, left-pad, and npm. The npm Blog. March 23, 2016.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;And of course, because sarcasm reigns on the internet, this appeared later the same day: &lt;a href=&quot;http://left-pad.io&quot;&gt;left-pad.io&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;In case you&#039;re wondering why left-pad isn&#039;t part of JavaScript already, this brilliant article by James Mickens should give you a sense of the horror running inside your web browser: &lt;a href=&quot;http://scholar.harvard.edu/files/mickens/files/towashitallaway.pdf&quot;&gt;logout: To Wash It All Away. James Mickens, USENIX ;login:, March 2014&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt; 

&lt;p&gt;Computer science table (CS Table) is a weekly meeting of Grinnell College community members (students, faculty, staff, etc.) interested in discussing topics related to computing and computer science. CS Table meets Tuesdays from 12:00-12:45 in JRC 224C. Students on meal plans, faculty, and staff are expected to cover the cost of their meals. Visitors to the College and students not on meal plans can charge their meals to the department.&lt;/p&gt;</description>
 <comments>http://132.161.132.157/drupal6/node/863#comments</comments>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/606">code sharing</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/605">development</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/604">JavaScript</category>
 <category domain="http://132.161.132.157/drupal6/taxonomy/term/607">reusable modules</category>
 <pubDate>Mon, 25 Apr 2016 13:37:59 +0000</pubDate>
 <dc:creator>petersos</dc:creator>
 <guid isPermaLink="false">863 at http://132.161.132.157/drupal6</guid>
</item>
</channel>
</rss>
