<?xml version="1.0"?>
<News hasArchived="true" page="8757" pageCount="10787" pageSize="10" timestamp="Thu, 03 Sep 2026 00:58:57 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=recent&amp;page=8757">
<NewsItem contentIssues="true" id="30319" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30319">
<Title>Annual Mulligan Lecture Honors Founding Physics Professor</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://umbcgiving.files.wordpress.com/2013/05/joseph_mulligan_001.jpg" rel="nofollow external" class="bo"><img alt="Joseph_Mulligan_001" src="http://umbcgiving.files.wordpress.com/2013/05/joseph_mulligan_001.jpg?w=640" style="max-width: 100%; height: auto;"></a>UMBC’s Physics Department recently honored one of its founding faculty members with the seventh annual <a href="http://physics.umbc.edu/awards/mulligan_details.php" rel="nofollow external" class="bo"><strong>Joseph Mulligan Memorial Lecture</strong></a>, which focuses on a topic related to the history of physics.</p>
    <p>This year’s lecture — which is presented by the winner of the Joseph F. Mulligan Award and is based on a gift by <strong>Eleanor Mulligan</strong> in memory of her husband — was given by student <strong>Diana Marcu</strong>, who spoke on the topic “Neutrinos: History and their Role in Astrophysics.”</p>
    <p><a href="http://www.youtube.com/watch?v=WUXVwgTZ0IQ" rel="nofollow external" class="bo">&gt; &gt; VIDEO: View the full lecture here.</a></p>
    <p>Dr. Mulligan joined the newly-founded UMBC in 1968. He served as the UMBC Dean for Graduate Studies and Research from 1968 to 1982, and as acting Chair of the UMBC Physics Dept from 1987-1988. In 1989 he was made Professor Emeritus of Physics at UMBC. His personal interest in the history of physics is what inspired the lecture that memorializes him today.</p>
    <p>He stated: “For many years I have had an interest in the history of physics and the history of ideas, and during my teaching career read many biographies of physicists and occasional articles and book reviews in <em>Isis</em>. I used some of this material in my physics lectures, and found that liberal arts students are anxious to know more about the lives of famous physicists, and respond with interest and enthusiasm when such topics are introduced into physics classes.”</p>
    <p><a href="http://physics.umbc.edu/bios/mulligan/" rel="nofollow external" class="bo">&gt; &gt; Read more about Dr. Mulligan, his life, and work here.</a></p>
    <a href="http://umbcgiving.wordpress.com/2013/05/24/annual-mulligan-lecture-honors-founding-physics-professor/#gallery-766-1-slideshow" rel="nofollow external" class="bo">Click to view slideshow.</a>
    <br>   </div>
]]>
</Body>
<Summary>UMBC’s Physics Department recently honored one of its founding faculty members with the seventh annual Joseph Mulligan Memorial Lecture, which focuses on a topic related to the history of physics....</Summary>
<Website>http://umbcgiving.wordpress.com/2013/05/24/annual-mulligan-lecture-honors-founding-physics-professor/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30319/guest@my.umbc.edu/d1f4f57bc3715680ebe56248ca9a6057/api/pixel</TrackingUrl>
<Tag>uncategorized</Tag>
<Group token="retired-548">UMBC Giving</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-548</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/images/avatars/group/11/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/images/avatars/group/11/original.png?1787842820</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/images/avatars/group/11/xxlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/images/avatars/group/11/xlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/images/avatars/group/11/large.png?1787842820</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/images/avatars/group/11/medium.png?1787842820</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/11/small.png?1787842820</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/images/avatars/group/11/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/images/avatars/group/11/xxsmall.png?1787842820</AvatarUrl>
<Sponsor>UMBC Giving</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 11:32:58 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="106992" important="false" status="posted" url="https://my3.my.umbc.edu/posts/106992">
<Title>Annual Mulligan Lecture Honors Founding Physics Professor</Title>
<Body>
<![CDATA[
    <div class="html-content">UMBC’s Physics Department recently honored one of its founding faculty members with the seventh annual Joseph Mulligan Memorial Lecture, which …</div>
]]>
</Body>
<Summary>UMBC’s Physics Department recently honored one of its founding faculty members with the seventh annual Joseph Mulligan Memorial Lecture, which …</Summary>
<Website>https://magazine.umbc.edu/annual-mulligan-lecture-honors-founding-physics-professor/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/106992/guest@my.umbc.edu/ac13cbda210ee998fc70940dc3bc233d/api/pixel</TrackingUrl>
<Tag>impact</Tag>
<Group token="retired-1945">UMBC Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-1945</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/images/avatars/group/8/original.png?1787842820</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xxlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/images/avatars/group/8/xlarge.png?1787842820</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/images/avatars/group/8/large.png?1787842820</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/images/avatars/group/8/medium.png?1787842820</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/8/small.png?1787842820</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/images/avatars/group/8/xsmall.png?1787842820</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/images/avatars/group/8/xxsmall.png?1787842820</AvatarUrl>
<Sponsor>UMBC Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 11:32:58 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="30318" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30318">
<Title>The .net strip #36: Roger Federer</Title>
<Body>
<![CDATA[
    <div class="html-content">Brad Colbow on sales people and prestigious clients<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Fnet-strip-36-roger-federer&amp;t=The+.net+strip+%2336%3A+Roger+Federer" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Fnet-strip-36-roger-federer&amp;t=The+.net+strip+%2336%3A+Roger+Federer" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Fnet-strip-36-roger-federer&amp;t=The+.net+strip+%2336%3A+Roger+Federer" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Fnet-strip-36-roger-federer&amp;t=The+.net+strip+%2336%3A+Roger+Federer" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2Fnet-strip-36-roger-federer&amp;t=The+.net+strip+%2336%3A+Roger+Federer" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165664488947/u/49/f/502346/c/32632/s/2c5da120/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165664488947/u/49/f/502346/c/32632/s/2c5da120/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Brad Colbow on sales people and prestigious clients     </Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/KJfhl2uMKw4/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30318/guest@my.umbc.edu/fd6ca451a1b1ee60e578ef8c20025eb3/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 11:20:19 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="30316" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30316">
<Title>Cargo-Culting in JavaScript</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31879&amp;c=1082229114" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31879&amp;c=1082229114" alt="" style="max-width: 100%; height: auto;"></a><p>Cargo-cult programming is what a programmer does when he or she doesn't know a particular language or paradigm well enough, and so ends up writing redundant and possibly harmful code. It rears its head quite often in the land of JavaScript. In this article, I explore the concept of cargo-cult programming and places to watch out for it in JavaScript.</p>
    <p></p>
    <blockquote><p> Dogmatic rules surface and spread, until they are considered the norm.</p></blockquote>
    <p>Cargo-culting is sometimes defined as "<a href="http://www.softpanorama.org/Skeptics/IT_skeptic/cargo_cult_programming.shtml" rel="nofollow external" class="bo">the extreme adherence to the form instead of content</a>." The form, in programming, being the syntax, paradigms, styles and patterns that we employ. The content being the abstract thing that you are seeking to represent through your code — the very substance of your program. A person with lacking understanding in an area is likely to copy the form of others without truly understanding, and thus their content — their program — can suffer.</p>
    <p>Cargo-culting is curiously common in JavaScript, probably because of the general low barrier to entry in the front-end development world. You can whip up an HTML page with a bit of JavaScript in seconds. As a result, there are many people who become sufficiently proficient in these technologies to feel comfortable creating and imposing rules on themselves and others. Eventually, other newcomers copy these rules. Dogmatic rules surface and spread, until they are considered the norm:</p>
    <ul>
    <li>Always use strict equality operators</li>
    <li>Never use eval</li>
    <li>Always use a single var declaration per scope</li>
    <li>Always use an IIFE – it “protects” you</li>
    </ul>
    <p>A rule continues to spread until a programmer is only using a given technique because of its popularity, instead of considering each specific use-case independently.</p>
    <hr>
    <h2>JavaScript Abuzz with Semicolons</h2>
    <p>If you've had the opportunity to witness the witty banter and rhetoric of the software developer over the years, you will have spotted a tendency to discuss seemingly tiny things at great lengths. Things like the semicolon, the comma, white-space or the curly brace.</p>
    <p>Syntax like semicolons or white-space may seem to purely be elements of form, not of content. But many of these subtle syntax rules can have significant effects in JavaScript. If you don't understand the 'form' then you cannot begin to understand the 'content'.</p>
    <p>So in this article, we will identify what areas of form in JavaScript are frequently cargo-culted off of — that is, copied without understanding.</p>  <img alt="How JavaScript can seem" src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/05/js_iceberg.jpg" style="max-width: 100%; height: auto;"> <em>How JavaScript can seem…</em> an image from Angus Croll’s "<a href="https://speakerdeck.com/anguscroll/the-politics-of-javascript" rel="nofollow external" class="bo">The Politics Of JavaScript</a>" presentation <hr>
    <h2>Undefined</h2>
    <p>Angus Croll, in a recent presentation, titled "<a href="https://speakerdeck.com/anguscroll/the-politics-of-javascript" rel="nofollow external" class="bo">The Politics Of JavaScript</a>", highlighted one of the most common pieces of JS dogma that people cargo-cult off of:</p>
    <pre>if (typeof myObject.foo === 'undefined') {...}&#x000A;    </pre>
    <p>Most of the time, doing such a long-winded check for <code>undefined</code> is pointless. The technique became common because people were copying other people, not because of it's actual value.</p>
    <p>Of course, there are times when:</p>
    <pre>typeof x === 'undefined'&#x000A;    </pre>
    <p>… is preferable to:</p>
    <pre>x === undefined&#x000A;    </pre>
    <p>But, equally, there are times when the latter is preferred. A quick overview of the options:</p>
    <pre>// Determine if `x` is undefined:&#x000A;    x === undefined&#x000A;    typeof x == 'undefined'&#x000A;    typeof x === 'undefined'&#x000A;    x === void 0&#x000A;    &#x000A;    // Determine if `x` is undefined OR null:&#x000A;    x == null&#x000A;    x == undefined&#x000A;    </pre>
    <p>People started using the <code>typeof</code> approach because they were protecting themselves against:</p>
    <ul>
    <li>A potentially undeclared variable (<em>non-typeof approaches would throw TypeErrors</em>)</li>
    <li>Someone overwrote undefined globally or in a parent scope. Some environments allow you to overwrite <code>undefined</code> to something like <code>true</code>. You have to ask yourself: “<em>Is it likely that someone overwrote undefined, and should my script have to pander to such silliness?</em>“</li>
    </ul>
    <p>But most of the time they're protecting themselves from having to worry. It's a catch-all avoidance of having to know the details. Knowing the details can help you though. Every character of your code should exist with a purpose in mind.</p>
    <p>The only time that you should need to use a <code>typeof</code> check for <code>undefined</code> is when you are checking for a variable that may not have been declared, e.g. checking for jQuery in the global scope:</p>
    <pre>if (typeof jQuery != 'undefined') {&#x000A;        // ... Use jQuery&#x000A;    }&#x000A;    </pre>
    <p>The thing is, if jQuery <em>does</em> exist, then we can be sure that it's an object – a "<a href="http://james.padolsey.com/javascript/truthy-falsey/" rel="nofollow external" class="bo">truthy</a>" thing. So this would be sufficient:</p>
    <pre>// or:&#x000A;    if (window.jQuery) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <hr>
    <h2>The Great Strict/non-strict Debate</h2>
    <p>Let's take something very common and generally considered good advice, solely using strict-equality:</p>
    <pre>a === b&#x000A;    </pre>
    <p>Strict-equality is said to be good because it avoids ambiguity. It checks both the value and the type, meaning that we don't have to worry about implicit coercion. With non-strict equality, we do have to worry about it though:</p>
    <pre>1 == 1    // true &amp;mdash; okay, that's good&#x000A;    1 == "1"  // true &amp;mdash; hmm&#x000A;    1 == [1]  // true &amp;mdash; wat!?&#x000A;    </pre>
    <p>So it would seem sensible advice to entirely avoid non-strict equality, right? Actually, no. There are many situations where strict-equality creates large amounts of redundancy, and non-strict equality is preferable.</p>
    <p>When you know, with 100% certainty, that the types of both operands are the same, you can avoid the need for strict-equality. For example, I always know that the <code>typeof</code> operator returns a string, and my right-hand operand is also a string (e.g. <code>"number"</code>):</p>
    <pre>// With strict-equals&#x000A;    typeof x === 'number'&#x000A;    &#x000A;    // With non-strict-equals:&#x000A;    typeof x == 'number'&#x000A;    </pre>
    <p>They're both effectively identical. I am not necessarily suggesting that we abandon strict-equals in this case — I am suggesting that we remain aware of what we're doing so that we can make the best choices given each situation.</p>
    <p>Another quite useful example is when you want to know if a value is either <code>null</code> or <code>undefined</code>. With strict equality, you might do this:</p>
    <pre>if (value === undefined || value === null) {&#x000A;        // ...&#x000A;    }&#x000A;    </pre>
    <p>With non-strict equality, it's far simpler:</p>
    <pre>if (value == null) {&#x000A;        // ...&#x000A;    }&#x000A;    </pre>
    <p>There is no catch here — it is doing exactly what we want, only, arguably, less visibly. But, if we know the language, then what's the problem? It's right there <a href="http://es5.github.io/#x11.9.3" rel="nofollow external" class="bo">in the spec</a>:</p>
    <p>The comparison <code>x == y</code>, where <code>x</code> and <code>y</code> are values, produces <code>true</code> or <code>false</code>. Such a comparison is performed as follows:</p>
    <ul>
    <li>If x is null and y is undefined, return true.</li>
    <li>If x is undefined and y is null, return true.</li>
    </ul>
    <p>If you're writing JavaScript with the intention of it being read, if at all, by people that know JavaScript, then I would argue that you shouldn't feel bad taking advantage of implicit language rules, like this.</p>
    <hr>
    <h2><code>hasOwnProperty</code></h2>
    <p>The <code>hasOwnProperty</code> method is used to determine whether a property is directly owned by an object. Is it commonly found in <code>for..in</code> loops to ensure that you only mess with direct properties and not inherited properties.</p>
    <pre>for (var i in object) {&#x000A;        if (object.hasOwnProperty(i)) {&#x000A;            // We can do stuff with `object[i]`&#x000A;        }&#x000A;    }&#x000A;    </pre>
    <p>It’s important to note that the <code>for-in</code> statement will only loop through enumarable properties. Native inherited methods, for example, are not enumerable and so you don't need to worry about them anyway.</p>
    <p>The <code>hasOwnProperty</code> check is specifically preventing you from touching properties that you or some third-party script has defined, i.e. when your object's prototype has enumerable properties.</p>
    <p>If you know that your object's prototype (<em>or its prototype’s prototype</em> etc.) doesn't have any enumerable properties, then <em>you don't have to worry</em> about using <code>hasOwnProperty</code> in your <code>for-in</code> loops. And, if your object is initialized, via ES5's <code>Object.create(null)</code>, then you won't even be able to call <code>hasOwnProperty</code> directly on the object (<em>no prototype means no inherited native methods</em>). This means that using <code>hasOwnProperty</code> by default in all of your <code>for-in</code> loops may actually break sometimes.</p>
    <p>One potential solution for objects with <code>null</code> prototypes is to use a saved reference to <code>hasOwnProperty</code>, like so:</p>
    <pre>var hasOwnProperty = Object.prototype.hasOwnProperty;&#x000A;    &#x000A;    // Later in your code:&#x000A;    for (var i in someObject) {&#x000A;        if (hasOwnProperty.call(someObject, i)) {&#x000A;            // ...&#x000A;        }&#x000A;    }&#x000A;    </pre>
    <p>That will work even if the object has no prototype (in the case of <code>Object.create(null)</code>). But, of course, we should only do this in the first place if we know we need it. If you're writing a third-party script for a "hostile" environment, then yes, definitely check for enumerable inherited properties. Otherwise, it may not be necessary all the time.</p>
    <p><strong>Note:</strong> IE9 and Safari 2.0 complicate the matter further when you're trying to identify enumerable properties that are already defined as non-enumerable. It's worth checking out <a href="https://github.com/bestiejs/spotlight.js/blob/7077cdeda829dd0965c911365e33e406a24a41aa/spotlight.js#L74-183" rel="nofollow external" class="bo">a truly cross-browser forOwn loop implementation</a>.</p>
    <p>To conclude: your use of <code>hasOwnProperty</code> should depend on the object being looped over. It depends on what assumptions you can safely make. Blindly protecting yourself using the <code>hasOwnProperty</code> will not suffice in all cases. Be wary of cross-browser differences too.</p>
    <hr>
    <h2>Over-Parenthesising</h2>
    <p>Another common redundancy that creeps into JS code is the parenthesis. Within expressions, it is used to force specific grouping of sub-expressions. Without them, you are at the mercy of <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence#Table" rel="nofollow external" class="bo">operator precedences and associativities</a>. For example:</p>
    <pre>A &amp;&amp; B || C&#x000A;    A &amp;&amp; (B || C)&#x000A;    (A &amp;&amp; B) || C&#x000A;    </pre>
    <p>One of those is not like the other. The parentheses force a specific grouping, and many people prefer the extra clarity. In this case, the logical AND operator has a higher precedence than the logical OR operator, meaning that it is the first and last lines that are equivelant. The second line is an entirely different logical operation.</p>
    <blockquote><p>Higher precedence means that it will occur before other operations in a series of operations.</p></blockquote>
    <p>To avoid this complexity, developers frequently opt for a "parentheses policy" — where you keep adding parentheses until it is abundantly clear which operations are occurring, both for you and potential readers of the code. It can be argued that this verbosity ends up making things less clear though.</p>
    <p>It’s tricky for a reader sometimes. One must consider that any given parentheses may have been added because:</p>
    <ul>
    <li>It was needed to override default precedence/associativity</li>
    <li>For no functional reason at all, just for "protection" or "clarity"</li>
    </ul>
    <p>Take this example:</p>
    <pre>A &amp;&amp; B ? doFoo() : doBaz()&#x000A;    </pre>
    <p>Without knowledge of operator precedence rules, we can see two possible operations here:</p>
    <pre>(A &amp;&amp; B) ? doFoo() : doBaz()&#x000A;    A &amp;&amp; (B ? doFoo() : doBaz())&#x000A;    </pre>
    <p>In this case, it's the logical AND that has the higher precedence, meaning that the equivalent parenthesised expression is:</p>
    <pre>(A &amp;&amp; B) ? doFoo() : doBaz()&#x000A;    </pre>
    <p>We should feel no obligation to add these parentheses in our code, though. It happens implicitly. Once we recognize that it happens implicitly, we are free to ignore it and focus on the program itself.</p>
    <p>There are, of course, valid arguments to retain the parentheses where implicit grouping is unclear. This really comes down to you and what you're comfortable with. I would, however, implore you to <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence#Table" rel="nofollow external" class="bo">learn the precedences</a> and then you can be fully empowered to take the best route, dependent on the specific code you're dealing with.</p>
    <hr>
    <h2>Object Keys</h2>
    <p>It's not rare to see redundant quotes in object literals:</p>
    <pre>var data = {&#x000A;      'date': '2011-01-01',&#x000A;      'id': 3243,&#x000A;      'action': 'UPDATE',&#x000A;      'related': { '1253': 2, '3411': 3 }&#x000A;    };&#x000A;    </pre>
    <p>In addition to strings, JavaScript allows you to use valid identifier names and numbers as object literal keys, so the above could be re-written to:</p>
    <pre>var data = {&#x000A;      date: '2011-01-01',&#x000A;      id: 3243,&#x000A;      action: 'UPDATE',&#x000A;      related: { 1253: 2, 3411: 3 }&#x000A;    };&#x000A;    </pre>
    <p>Sometimes, you may prefer the added consistency of being able to use quotes, especially if a field-name happens to be a reserved word in JavaScript (like 'class' or 'instanceof'). And that's fine.</p>
    <p>Using quotes is not a bad thing. But it is redundant. Knowing that you don't have to use them is half the battle won. It is now your choice to do what you want.</p>
    <hr>
    <h2>Comma Placement</h2>
    <p>There is a huge amount of subjective preference, when it comes to punctuation placement in programming. Most recently, the JavaScript world has been abuzz with rhetoric and discontent over the comma.</p>
    <p>Initialising an object in traditionally idiomatic JavaScript looks like this:</p>
    <pre>var obj = {&#x000A;        a: 1,&#x000A;        b: 2,&#x000A;        c: 3&#x000A;    };&#x000A;    </pre>
    <p>There is an alternative approach, which has been gaining momentum though:</p>
    <pre>var obj = {&#x000A;          a: 1&#x000A;        , b: 2&#x000A;        , c: 3 &#x000A;    };&#x000A;    </pre>
    <p>The supposed benefit of placing the commas before each key-value pair (apart from the first) is that it means you only have to touch one line in order to remove a property. Using the traditional approach, you would need to remove "<code>c: 3</code>" and then the trailing comma on the line above. But with the comma-first approach you're able to just remove "<code>, c: 3</code>". Proponents claim this makes trailing commas less likely and also cleans up source-control diffs.</p>
    <p>Opponents, however, say that this approach only achieves getting rid of the trailing-comma "problem" by introducing a new leading-comma problem. Try removing the first line and you're left with a leading comma on the next line. This is actually considered a good thing by comma-first proponents, because a leading comma would immediately throw a SyntaxError. A trailing comma, however, throws nothing, except in IE6 and 7. So if the developer fails to test their JS in those versions of IE, then the trailing commas can often creep into production code, which is never good. A leading comma throws in all environments, so is less likely to be missed.</p>
    <p>Of course, you might argue that this entire thing is moot. We should probably be using linters like <a href="http://www.jslint.com/" rel="nofollow external" class="bo">JSLint</a> or the kinder <a href="http://www.jshint.com/" rel="nofollow external" class="bo">JSHint</a>. Then we're free to use the punctuation and whitespace placement that makes the most sense to us and our coworkers.</p>
    <p>Let's not even get started on the comma-first style in variable declarations..</p>
    <pre>var a = 1&#x000A;      , b = 2&#x000A;      , c = 3&#x000A;      ;&#x000A;    </pre>
    <hr>
    <h2>Thou Shalt Code for Psychopaths?</h2>
    <p>We should endeavour to learn the languages we use to a good enough level that we're able to avoid cargo-culting and over-protective catch-all coding techniques. And we should trust our coworkers and other developers to do the same.</p>
    <p>We’ve also discussed the abandonement of cruft in favor of taking advantage of a language’s idiosyncracies and implicit rules. To some, this creates maintainability issues, especially if someone more junior in their acquisition of a given language approaches the code. For example, what if they don’t know about JavaScript’s weak vs. strict equality?</p>
    <p>On the topic of maintainability, we’re reminded <a href="http://c2.com/cgi/wiki?CodeForTheMaintainer" rel="nofollow external" class="bo">by this famous quote</a>:</p>
    <blockquote><p>Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.</p></blockquote>
    <p>I don’t know if that is truly good advice. Even taken metaphorically, it suggests a distrust of the fictional maintainer’s competency — and the need to worry about their understanding above everything else. I would rather write code in the knowledge that it will be taken care of by people that know their stuff. So as a possible contradiction or even an addendum to that quote, I offer:</p>
    <blockquote><p>Always code as if the person who ends up maintaing your code is knowledgeable about the language and its constructs and is seeking to gain understanding of the problem domain through reading your code.</p></blockquote>
    <p>While this may not always be true, we should seek for it be so. We should endeavour to ensure that people working on a specific technology have the sufficient understanding to do so. The learned cargo-culter says:</p>
    <blockquote><p>If I forever pander to a lower level of understanding in my code — treading softly — strictly abiding to conventions and style guides and things I see the “experts” do, then I am never able to advance my own understanding, nor take advantage of a language in all its weirdness and beauty. I am happily and blissfully settled in this world of rules and absolutes, but to move forward, I must exit this world and embrace higher understanding.</p></blockquote>
    </div>
]]>
</Body>
<Summary>Cargo-cult programming is what a programmer does when he or she doesn't know a particular language or paradigm well enough, and so ends up writing redundant and possibly harmful code. It rears its...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/i3fMBPBrtbM/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30316/guest@my.umbc.edu/04b263446d4436fd9b49d2e8231f5e42/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>javascript-and-ajax</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 11:04:57 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 11:04:57 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30314" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30314">
<Title>Blackboard Down for Maintenance 10 pm 5/31 to 1 am 6/1</Title>
<Body>
<![CDATA[
    <div class="html-content">The UMBC Blackboard server will be down from 10 pm Friday 5/31 to 1 am Saturday 6/1.  This down time is during the <a href="http://www.umbc.edu/blogs/oit-news/archives/2011/08/blackboard_week.html" rel="nofollow external" class="bo">regularly scheduled maintenance window</a> and is necessary for DoIT staff to perform maintenance on the system. We appreciate your patience and apologize for any inconvenience that this down time may cause.</div>
]]>
</Body>
<Summary>The UMBC Blackboard server will be down from 10 pm Friday 5/31 to 1 am Saturday 6/1.  This down time is during the regularly scheduled maintenance window and is necessary for DoIT staff to perform...</Summary>
<Website>http://my.umbc.edu/groups/bbannouncements/news/30314</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30314/guest@my.umbc.edu/1a3a40a00ed12bfc90b699cf34ea54d9/api/pixel</TrackingUrl>
<Tag>update</Tag>
<Group token="bbannouncements">Blackboard Announcements</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/bbannouncements</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/xsmall.png?1437137819</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/original.png?1437137819</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/xxlarge.png?1437137819</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/xlarge.png?1437137819</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/large.png?1437137819</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/medium.png?1437137819</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/small.png?1437137819</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/xsmall.png?1437137819</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/319/f6b35e5217428f5021e113525a55e6f4/xxsmall.png?1437137819</AvatarUrl>
<Sponsor>Blackboard Announcements</Sponsor>
<PawCount>0</PawCount>
<CommentCount>2</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 10:44:17 -0400</PostedAt>
<EditAt>Wed, 26 Mar 2014 12:30:43 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="30356" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30356">
<Title>Side project: Coloradore</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="Side project: Coloradore" src="http://netdna.webdesignerdepot.com/uploads/2013/05/thumbnail20.jpg" width="200" height="160" style="max-width: 100%; height: auto;"></p>
    <p><a title="Coloradore" href="http://coloradore.tumblr.com/" rel="nofollow external" class="bo">Coloradore</a> is the side project of graphic designer Anna Kövecses in which her aim is to create a collection of interesting color palettes that take the form of simple, quirky poster designs.</p>
    <p>Alongside each poster that Anna creates is a key that lists the hex code for each of the colors used in the design. The idea is that if you see some colours that you like, you simply can take note of the hex codes and then use those colors in your own projects.</p>
    <p>Here’s a collection of some of our favourite posters:</p>
    <p><a href="http://coloradore.tumblr.com/post/26754067252/coloradore-003-1-eb5b25-background-2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore1.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/26972544408/coloradore-011-1-66cc99-2-387a99-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore2.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/27892790472/coloradore-021-1-adb400-2-8e6933-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore3.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/48354830812/brand-new-coloradore-print-available-now-in-our" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore4.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/28905128411/coloradore-022-1-859590-2-f6edd4-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore5.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/44852685481/coloradore-024-1-1f2023-2-c49d1c-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore6.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/27325953836/coloradore-016-1-fdffe3-2-2e2f2d-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore7.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p><a href="http://coloradore.tumblr.com/post/27619594824/coloradore-020-1-ff4915-2-322c2f-3" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/05/coloradore8.jpg" width="650" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"></a></p>
    <p> </p>
    <p><em><strong>Which of these posters is your favourite? Do you have a similar side project? Let us know in the comments.</strong></em></p>
    <p><br><br>
    </p>
    <table width="100%">
    <tbody>
    <tr>
    <td>
          <a href="http://www.mightydeals.com/deal/crazypixels-bundle.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Massive Bundle from CrazyPixels – only $19!</strong></a>
        </td>
    <td>
          <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br>
            <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="Side project: Coloradore" style="max-width: 100%; height: auto;"><br>
          </a>
        </td>
    </tr>
    </tbody>
    </table>
    <p><br> </p>
    <a href="http://www.webdesignerdepot.com/2013/05/side-project-coloradore/" rel="nofollow external" class="bo">Source</a>
    </div>
]]>
</Body>
<Summary>Coloradore is the side project of graphic designer Anna Kövecses in which her aim is to create a collection of interesting color palettes that take the form of simple, quirky poster designs....</Summary>
<Website>http://www.webdesignerdepot.com/2013/05/side-project-coloradore/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30356/guest@my.umbc.edu/5f3c3f7673600b93fc38795333f1ef4f/api/pixel</TrackingUrl>
<Tag>anna-k-ovecses</Tag>
<Tag>art</Tag>
<Tag>color</Tag>
<Tag>coloradore</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>inspiration</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>posters</Tag>
<Tag>sql</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 10:15:29 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 10:15:29 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30315" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30315">
<Title>How Knitters are Human Computers</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em>This is a guest post by <a href="http://codecademy.com/mk.carroll" rel="nofollow external" class="bo">M.K. Carroll</a>, Crochet Editor at Cooperative Press and Knit Edge magazine. Have something you'd like to share on our blog? <a href="http://codecademy.wufoo.com/forms/share-your-codecademy-story/" rel="nofollow external" class="bo">Drop us a line</a>.</em> </p>
    
    <p>It's a popular hobby, practiced by people all over the world. At its most basic, it's a loop of string and two pointy sticks. The loops can be combined in various ways to create a wide variety of things, from the practical and useful to the whimsical and just plain weird. In other words, knitting is a lot like coding. </p>
    
    <h4>Say what?</h4>
    
    <p><code>*k2, p2, 2/2 LC; rep from *, end k2.</code></p>
    
    <p>What you see above could be described as <em>a line of knitting code:</em> a set of instructions that you can use to execute a row of knitting. Combined with additional lines of code, these instructions (commonly referred to as a knitting pattern) can be used to create a recognizable item, such as a sweater or a pair of socks.</p>
    
    <h4>Knitting — like coding — gives you the freedom to create</h4>
    
    <p>You can buy a sweater ready-made with a lot less effort than it would take to knit one, but there are a lot of reasons why you might want to knit that sweater yourself, like having one that fits you perfectly. You could also spend a lot of time trying to find one to buy, or a lot of money getting someone else to design and knit it for you. Sometimes - like learning how to code - learning how to create is how you get exactly what you want. </p>
    
    <p><img src="http://25.media.tumblr.com/39f7e25a839a3012603bb83013344812/tumblr_mn9bmnF5N21s0a0dko1_1280.png" alt="Knitting" style="max-width: 100%; height: auto;"> </p>
    
    <h4>One line at a time...</h4>
    
    <p>Knitters and other "yarncrafters" (like crocheters and weavers) understand what it means to build something one stitch (bit) at a time, and yarncrafting pattern designers (coders) know what it means to code, use an API, design, test, debug, and maintain the source code - even if they don't realize it yet. Daniella Nii says that: </p>
    
    <blockquote>
    <p>"Just as in coding, attention to detail and syntax are crucial to a successful execution of a pattern (program). An overlooked parenthesis, comma or repeat can result in a piece of code that doesn't compile and will interrupt the flow of the program, possibly discovered when the next line of instructions will not work with what the knitter has on the needles."</p>
    </blockquote>
    
    <p>Knitters know how to learn and "speak" a different language already, and learning how to code could mean being able to design and build the knitting app they want, without having to hope that someone else will. Not bad for something that starts with two sticks and some string! </p>
    
    <h4>Know how to knit? Learn how to code!</h4>
    
    <p>If you are a yarncrafter, you are already predisposed to learn how to code. Do you think it would be awesome to play a video game based on knitting? You can learn how to make one. Would you like to sell your crocheted mustaches on your own website? You can learn how to build a website and storefront too. Do you think <a href="http://www.codecademy.com/tracks/placekitten" rel="nofollow external" class="bo">PlaceKitten is an awesome API</a>, but would be improved with yarn? You can <a href="http://codecademy.com/tracks/apis" rel="nofollow external" class="bo">learn how to use APIs</a> to make the app that you want, instead of settling for an app designed for someone else. </p>
    
    <h4>Know how to code? Well...</h4>
    
    <p>If you are learning how to code and enjoying it, you may also enjoy learning how to knit, crochet, or spin. After all, if you want to build a website to look and function in just the right way for you, you may also be the kind of person who would want to knit a pair of Dalek patterned mittens that fit you perfectly. </p>
    
    <hr>
    
    <p><em>Thanks to the yarncrafting coders LeTonBeau (on Ravelry.com), Daniela Nii (nikkisstudio on Ravelry.com), and Megan of stockinettezombies.com for volunteering to check my analogies and make sure they were accurate!</em></p>
    </div>
]]>
</Body>
<Summary>This is a guest post by M.K. Carroll, Crochet Editor at Cooperative Press and Knit Edge magazine. Have something you'd like to share on our blog? Drop us a line.     It's a popular hobby,...</Summary>
<Website>http://www.codecademy.com/blog/70-how-knitters-are-human-computers</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30315/guest@my.umbc.edu/6e04cdaec4e85378c2a1b1a9cb81cad0/api/pixel</TrackingUrl>
<Tag>academy</Tag>
<Tag>code</Tag>
<Tag>codecademy</Tag>
<Tag>learning</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 10:04:00 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 10:04:00 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30308" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30308">
<Title>Upping Your Type Game</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The ultimate primer on web type for web developers by Jessica Hische.</p>
    <p><a href="http://jessicahische.is/talkingtype" title="Direct link to featured article" rel="nofollow external" class="bo">Direct Link to Article</a> — <a href="http://css-tricks.com/upping-your-type-game/" rel="nofollow external" class="bo">Permalink</a></p>
    <hr>
    
    <p><strong>Need a new look for your portfolio? Check out the <a href="http://thethemefoundry.com/wordpress/snap/?utm_campaign=css_tricks_snap" rel="nofollow external" class="bo">Snap WordPress theme</a> from The Theme Foundry. Sass files and Compass config are included!</strong></p>
    
    <hr>
    
    <p><small><a href="http://css-tricks.com/upping-your-type-game/" rel="nofollow external" class="bo">Upping Your Type Game</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>The ultimate primer on web type for web developers by Jessica Hische.   Direct Link to Article — Permalink     Need a new look for your portfolio? Check out the Snap WordPress theme from The Theme...</Summary>
<Website>http://jessicahische.is/talkingtype</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30308/guest@my.umbc.edu/a4ddffb4a5dbfd1dabbac4639e6b3ade/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>link</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 09:07:49 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 09:07:49 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="30309" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30309">
<Title>Just One of Those Weird Things About CSS: Background on &lt;body&gt;</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>So you want to make the background of your website red eh? You'll probably put this in your CSS:</p>
    <p></p>
    <pre><code>body {&#x000A;      background: red;&#x000A;    }</code></pre>
    <p>Done!</p>
    <pre><a href="http://codepen.io/chriscoyier/pen/Ioibf" rel="nofollow external" class="bo">Check out this Pen!</a></pre>
    <p>You're going about your business and then all the sudden one day this happens:</p>
    <pre><a href="http://codepen.io/chriscoyier/pen/AgGKa" rel="nofollow external" class="bo">Check out this Pen!</a></pre>
    <p>What in the heck? Why is the red cut off like that? I put red as the background color on the body?</p>
    <p>You did, but the fact that that red color floods the background is just a strange anomaly of CSS. The body element isn't actually as tall as the browser window. It's only as tall as the content inside it, just like a div or anything else.</p>
    <p>See:</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2013/05/body-only-tall.png" alt="" style="max-width: 100%; height: auto;">
    <p><strong>In the absence of a background on the html element, the body background will cover the page. If there is a background on the html element, the body background behaves just like any other element.</strong></p>
    <p>Somewhere along the line, a <code>background-color</code> got set on the <code>html</code> element.</p>
    <p>Perhaps you're using <a href="http://necolas.github.io/normalize.css/" rel="nofollow external" class="bo">normalize.css</a> 2.1.1, which included setting the background to white on the html element to <em>"Prevent system color scheme's background color being used in Firefox, IE, and Opera."</em> This has since been reverted, presumably because it caused this issue too widely.</p>
    <p>To "fix" it, just remove the background on the html element, or move whatever you want to "flood" always to the html element as its behavior is consistant. </p>
    <hr>
    
    <p><strong>Need a new look for your portfolio? Check out the <a href="http://thethemefoundry.com/wordpress/snap/?utm_campaign=css_tricks_snap" rel="nofollow external" class="bo">Snap WordPress theme</a> from The Theme Foundry. Sass files and Compass config are included!</strong></p>
    
    <hr>
    
    <p><small><a href="http://css-tricks.com/just-one-of-those-weird-things-about-css-background-on-body/" rel="nofollow external" class="bo">Just One of Those Weird Things About CSS: Background on &lt;body&gt;</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>So you want to make the background of your website red eh? You'll probably put this in your CSS:     body {   background: red; }   Done!   Check out this Pen!   You're going about your business...</Summary>
<Website>http://css-tricks.com/just-one-of-those-weird-things-about-css-background-on-body/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30309/guest@my.umbc.edu/bce22fd4183ea9fce89bd91e1590f92d/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 08:58:21 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 08:58:21 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30310" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30310">
<Title>This Website Brought To You By&#8230;</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>I always wanted to write something on all the technologies that a website relies on in order to have been created and work. My attempts have so far failed because it spirals out of control so quickly. Kevin Kelly sums it up:</p>
    <blockquote><p>A web page relies on perhaps a hundred thousand other inventions, all needed for its birth and continued existence. There is no web page anywhere without the inventions of HTML code, without computer programming, without LEDs or cathode ray tubes, without solid state computer chips, without telephone lines, without long-distance signal repeaters, without electrical generators, without high-speed turbines, without stainless steel, iron smelters, and control of fire. None of these concrete inventions would exist without the elemental inventions of writing, of an alphabet, of hypertext links, of indexes, catalogs, archives, libraries and the scientific method itself. To recapitulate a web page you have to re-create all these other functions. You might as well remake modern society.</p></blockquote>
    <p>The article isn't about the web hardly at all, it's about the interconnectivity of tools and how far we'll be set back if that is disrupted. I enjoyed the term "upcreation tool." So many of the tools we use as web workers are tools in which to make more complex tools.</p>
    <p><a href="http://www.kk.org/thetechnium/archives/2007/03/bootstrapping_t.php" title="Direct link to featured article" rel="nofollow external" class="bo">Direct Link to Article</a> — <a href="http://css-tricks.com/this-website-brought-to-you-by/" rel="nofollow external" class="bo">Permalink</a></p>
    <hr>
    
    <p><strong>Need a new look for your portfolio? Check out the <a href="http://thethemefoundry.com/wordpress/snap/?utm_campaign=css_tricks_snap" rel="nofollow external" class="bo">Snap WordPress theme</a> from The Theme Foundry. Sass files and Compass config are included!</strong></p>
    
    <hr>
    
    <p><small><a href="http://css-tricks.com/this-website-brought-to-you-by/" rel="nofollow external" class="bo">This Website Brought To You By…</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>I always wanted to write something on all the technologies that a website relies on in order to have been created and work. My attempts have so far failed because it spirals out of control so...</Summary>
<Website>http://www.kk.org/thetechnium/archives/2007/03/bootstrapping_t.php</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30310/guest@my.umbc.edu/a4a8cf2af8eb01a50172c54f98350ddd/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>link</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 24 May 2013 08:56:58 -0400</PostedAt>
<EditAt>Fri, 24 May 2013 08:56:58 -0400</EditAt>
</NewsItem>

</News>
