<?xml version="1.0"?>
<News hasArchived="true" page="7791" pageCount="10930" pageSize="10" timestamp="Sat, 07 Nov 2026 02:56:54 -0500" url="https://my3.my.umbc.edu/posts.xml?mode=recent&amp;page=7791">
<NewsItem contentIssues="false" id="43225" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43225">
<Title>Seven Must-Read Stories (Week Ending April 4, 2014)</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>Another chance to catch the most interesting, and important, articles from the previous week on <em>MIT Technology Review</em>.</p></div>
]]>
</Body>
<Summary>Another chance to catch the most interesting, and important, articles from the previous week on MIT Technology Review.</Summary>
<Website>http://www.technologyreview.com/view/526036/seven-must-read-stories-week-ending-april-4-2014/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43225/guest@my.umbc.edu/ae74a6ad50b7ee018ef5eaf63bda9c60/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</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, 04 Apr 2014 11:20:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="43290" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43290">
<Title>Seven Must-Read Stories (Week Ending April 5, 2014)</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>Another chance to catch the most interesting, and important, articles from the previous week on <em>MIT Technology Review</em>.</p></div>
]]>
</Body>
<Summary>Another chance to catch the most interesting, and important, articles from the previous week on MIT Technology Review.</Summary>
<Website>http://www.technologyreview.com/view/526036/seven-must-read-stories-week-ending-april-5-2014/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43290/guest@my.umbc.edu/cb2539da120eaa9b1a4bd1c0d9c55020/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</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, 04 Apr 2014 11:20:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="43223" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43223">
<Title>Stripes in CSS</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Stripes are pretty easy to do in CSS these days. <a href="http://css-tricks.com/css3-gradients/" rel="nofollow external" class="bo">CSS gradients</a> via the background-image property really got our back. I thought I'd document some variations in one easy to reference place.</p>
    <p></p>
    <h3>Normal Colored Diagonal Stripes</h3>
    <p>Diagonal stripes are easy to pull off thanks to <code>repeating-linear-gradient()</code>:</p>
    <pre><code>background: repeating-linear-gradient(&#x000A;      45deg,&#x000A;      #606dbc,&#x000A;      #606dbc 10px,&#x000A;      #465298 10px,&#x000A;      #465298 20px&#x000A;    );</code></pre>
    <p>Rather than the very last color-stop being 100% (or nothing, which means 100%) it's a fixed value. Beyond that, it just kinda starts over. This is how I think of it (zoomed in):</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/04/concept.png" alt="" style="max-width: 100%; height: auto;">
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/epfEc/" rel="nofollow external" class="bo">epfEc</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <h3>Gradient Diagonal Stripes</h3>
    <p>If you make the background a regular <code>linear-gradient()</code>, and then make half the stripes totally transparent using <code>repeating-linear-gradient()</code>, it can appear as if the stripes have gradients. Because of multiple backgrounds (and <a href="http://css-tricks.com/stacking-order-of-multiple-backgrounds/" rel="nofollow external" class="bo">stacking order</a>), you can do that all together on a single element:</p>
    <pre><code>background: &#x000A;      /* On "top" */&#x000A;      repeating-linear-gradient(&#x000A;        45deg,&#x000A;        transparent,&#x000A;        transparent 10px,&#x000A;        #ccc 10px,&#x000A;        #ccc 20px&#x000A;      ),&#x000A;      /* on "bottom" */&#x000A;      linear-gradient(&#x000A;        to bottom,&#x000A;        #eee,&#x000A;        #999&#x000A;      );</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/xhkpD/" rel="nofollow external" class="bo">xhkpD</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <h3>Stripes Over Image</h3>
    <p>Perhaps a texture? Any image will work. You could reveal part of the image by making some stripes fully transparent and some fully opaque. Or, any combination. Again multiple backgrounds allows this to all happen on the same element.</p>
    <pre><code>background: repeating-linear-gradient(&#x000A;      45deg,&#x000A;      rgba(0, 0, 0, 0.2),&#x000A;      rgba(0, 0, 0, 0.2) 10px,&#x000A;      rgba(0, 0, 0, 0.3) 10px,&#x000A;      rgba(0, 0, 0, 0.3) 20px&#x000A;    ),&#x000A;    url(<a href="http://s3-us-west-2.amazonaws.com/s.cdpn.io/3/old_map_@2X.png">http://s3-us-west-2.amazonaws.com/s.cdpn.io/3/old_map_@2X.png</a>);</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/gaKyv/" rel="nofollow external" class="bo">gaKyv</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <h3>Any Direction, Any Angle</h3>
    <p>It doesn't have to be exactly 45degrees. That's part of the beauty of the repeating-linear-gradient(). It's not like this perfect rectangle that has to line up and repeat, it's just a set of drawing instructions that repeats.</p>
    <pre><code>background: repeating-linear-gradient(&#x000A;      -55deg,&#x000A;      #222,&#x000A;      #222 10px,&#x000A;      #333 10px,&#x000A;      #333 20px&#x000A;    );</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/qfHmw/" rel="nofollow external" class="bo">qfHmw</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <h3>Straight Stripes (slightly better browser support)</h3>
    <p>There is a super old syntax for CSS gradients that used <code>-webkit-gradient()</code> (note the no "linear" or "radial"). Basically: Safari 4, Chrome 1-9, iOS 3.2-4.3, Android 2.1-3.0. Old stuff. Those browsers don't support repeating gradients. But you could kinda fake it, especially for straight stripes, by making a small rectangle of background via <code>background-size</code>, drawing the stripes in there, and having it repeat naturally like <code>background-image</code> does. </p>
    <pre><code>background: linear-gradient(&#x000A;      to bottom,&#x000A;      #5d9634,&#x000A;      #5d9634 50%,&#x000A;      #538c2b 50%,&#x000A;      #538c2b&#x000A;    );&#x000A;    /* The rectangle in which to repeat. &#x000A;       It can be fully wide in this case */&#x000A;    background-size: 100% 20px;</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/uxJrf/" rel="nofollow external" class="bo">uxJrf</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <p>If you wanted to get crazy, you could <code>transform: rotate()</code> some element with these straight stripes and cut off the overflow, in which to replicate diagonal stripes with deeper browser support. Sounds like a lot of work.</p>
    <h3>Vertical Stripes</h3>
    <p>You could use the same method as above for vertical stripes too. Or, just use <code>repeating-linear-gradient()</code>:</p>
    <pre><code>background: repeating-linear-gradient(&#x000A;      to right,&#x000A;      #f6ba52,&#x000A;      #f6ba52 10px,&#x000A;      #ffd180 10px,&#x000A;      #ffd180 20px&#x000A;    );</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/oCpEu/" rel="nofollow external" class="bo">oCpEu</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <p>Just to be clear, with <code>repeating-linear-gradient()</code> you are best off doing a <code>-webkit-repeating-linear-gradient()</code> as well as the unprefixed one, if you're, you know, prefixing buy yourself <a href="http://css-tricks.com/autoprefixer/" rel="nofollow external" class="bo">which you shouldn't</a>.</p>
    <h3>Radial Stripes</h3>
    <p>Who says they have to be straight lines eh? Radial gradients can be <code>repeating-linear-gradients()</code>:</p>
    <pre><code>/* Note the RADIAL */&#x000A;    background: repeating-radial-gradient(&#x000A;      circle,&#x000A;      purple,&#x000A;      purple 10px,&#x000A;      #4b026f 10px, &#x000A;      #4b026f 20px&#x000A;    );</code></pre>
    <p>See the Pen <a href="http://codepen.io/chriscoyier/pen/AEymd/" rel="nofollow external" class="bo">AEymd</a> by Chris Coyier (<a href="http://codepen.io/chriscoyier" rel="nofollow external" class="bo">@chriscoyier</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>.</p>
    <h3>Funky Town</h3>
    <p>Sometimes rounding errors (maybe?) or other kinda rendering funkiness happens. </p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2014/04/stripes-weird.gif" alt="" style="max-width: 100%; height: auto;">
    <p>Whattyagonnado. I suspect it will get better over time.</p>
    <p><a href="http://codepen.io/chriscoyier/pen/dDhHe/" rel="nofollow external" class="bo">All together now.</a></p>
    <hr>
    <p><small><a href="http://css-tricks.com/stripes-css/" rel="nofollow external" class="bo">Stripes in CSS</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>Stripes are pretty easy to do in CSS these days. CSS gradients via the background-image property really got our back. I thought I'd document some variations in one easy to reference place....</Summary>
<Website>http://css-tricks.com/stripes-css/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43223/guest@my.umbc.edu/f785d2e292046e256576e16e2bccabb4/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, 04 Apr 2014 11:01:57 -0400</PostedAt>
<EditAt>Fri, 04 Apr 2014 11:01:57 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="43222" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43222">
<Title>DealBook: GrubHub Soars in Market Debut; Other New Listings Rise, Too</Title>
<Body>
<![CDATA[
    <div class="html-content">Shares of GrubHub opened at $40, rising nearly 54 percent above the I.P.O. price. Others, including IMS Health and Opower, also enjoyed a pop in their first trades.<br><br><br><a href="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/193360945587/u/0/f/640387/c/34625/s/38fddb90/sc/24/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Shares of GrubHub opened at $40, rising nearly 54 percent above the I.P.O. price. Others, including IMS Health and Opower, also enjoyed a pop in their first trades.</Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38fddb90/sc/24/l/0Ldealbook0Bnytimes0N0C20A140C0A40C0A40Cgrubhub0Esoars0Ein0Emarket0Edebut0Eother0Enew0Elistings0Erise0Etoo0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43222/guest@my.umbc.edu/e30821452856df34cabe043a634862cd/api/pixel</TrackingUrl>
<Tag>castlight-health</Tag>
<Tag>grubhub</Tag>
<Tag>healthcare</Tag>
<Tag>i-p-o-offerings</Tag>
<Tag>ims-health</Tag>
<Tag>initial-public-offerings</Tag>
<Tag>new</Tag>
<Tag>opower</Tag>
<Tag>technology</Tag>
<Tag>top-headline-1</Tag>
<Tag>york</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, 04 Apr 2014 10:31:26 -0400</PostedAt>
<EditAt>Sun, 06 Apr 2014 08:40:23 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="43221" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43221">
<Title>INDS 232: Interdisciplinary Intro. to Food System Studies</Title>
<Tagline>INDS 232: Interdisciplinary Intro. to Food System Studies</Tagline>
<Body>
<![CDATA[
    <div class="html-content">This course explores fundamental concepts within food systems studies, focusing on the intersection of agriculture, the food industry, human health, environmental sustainability and social justice. Core topics include how our food system supports or diminishes ecological well-being, biological diversity, human health, equity and social justice, and animal welfare. The course analyzes the key stakeholders in the food system and emerging efforts to transform it.<div><br></div>
    <div>When: Tuesdays and Thursdays 1-2:15pm</div>
    <div><br></div>
    <div><br></div>
    <div>For more information contact :</div>
    <div><span><a href="mailto:wrigleyj@umbc.edu" rel="nofollow external" class="bo"><span>wrigleyj@umbc.edu</span></a></span></div>
    </div>
]]>
</Body>
<Summary>This course explores fundamental concepts within food systems studies, focusing on the intersection of agriculture, the food industry, human health, environmental sustainability and social...</Summary>
<AttachmentKind>Flyer</AttachmentKind>
<AttachmentUrl>https://assets1-my.umbc.edu/system/shared/attachments/f30ffcecdfb7f724c95c4ab1137c5211/6aeed9c6/news/000/043/221/7dc7538f41cbee2be86aa2559ade080c/INDS 232 flyer.docx?1396621063</AttachmentUrl>
<Attachments>
<Attachment kind="Flyer" url="https://my3.my.umbc.edu/posts/43221/attachments/13078"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43221/guest@my.umbc.edu/59d40a07d4a2a1fbcd96525036583cd1/api/pixel</TrackingUrl>
<Group token="inds">Individualized Study </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/inds</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/original.png?1775678457</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/large.png?1775678457</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/medium.png?1775678457</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/small.png?1775678457</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxsmall.png?1775678457</AvatarUrl>
<Sponsor>Interdisciplinary Studies</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/xxlarge.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/xlarge.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/large.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/medium.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/small.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/xsmall.jpg?1396621016</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/043/221/eeccf3dcdfa0ee5bd3a283e146b06626/xxsmall.jpg?1396621016</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Apr 2014 10:25:28 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="43219" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43219">
<Title>Sandra Lacy and Tim Nohe in Richmond Times Dispatch</Title>
<Tagline>"Enchanting" Annual Richmond Choreographers Showcase</Tagline>
<Body>
<![CDATA[
    <div class="html-content">From the review in the <a href="http://www.timesdispatch.com/entertainment-life/arts-literature/theater/an-evening-of-experimentation/article_c096ddb6-9d17-5586-a231-8150513e9e5b.html" rel="nofollow external" class="bo">Richmond Time Dispatch</a>, by Sheena Jeffers:<div><br></div>
    <div>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <p>The show opened with the entrancing piece “Slip,”
    choreographed by Mariah Maloney in dialogue with the solo performer Sandra
    Lacy. The music, originally composed and performed by Timothy Nohe, moves from
    nature sounds to almost galactic, electronic sounds which seem to vibrate
    through Lacy’s body as the intensity of the piece rises and falls. The use of
    repetition was compelling: each time a phrase was repeated, it felt different.</p>
    
    </div>
    </div>
]]>
</Body>
<Summary>From the review in the Richmond Time Dispatch, by Sheena Jeffers:                      The show opened with the entrancing piece “Slip,” choreographed by Mariah Maloney in dialogue with the solo...</Summary>
<Website>http://www.timesdispatch.com/entertainment-life/arts-literature/theater/an-evening-of-experimentation/article_c096ddb6-9d17-5586-a231-8150513e9e5b.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43219/guest@my.umbc.edu/b98f65e0f35b299cfc4e592f812fa782/api/pixel</TrackingUrl>
<Tag>dance</Tag>
<Tag>electronic</Tag>
<Tag>lacy</Tag>
<Tag>maloney</Tag>
<Tag>mariah</Tag>
<Tag>music</Tag>
<Tag>nohe</Tag>
<Tag>sandy</Tag>
<Tag>tim</Tag>
<Group token="circa">CIRCA</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/circa</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xsmall.png?1762367739</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/original.jpg?1762367739</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xxlarge.png?1762367739</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xlarge.png?1762367739</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/large.png?1762367739</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/medium.png?1762367739</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/small.png?1762367739</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xsmall.png?1762367739</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xxsmall.png?1762367739</AvatarUrl>
<Sponsor>CIRCA</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Apr 2014 10:00:29 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="43220" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43220">
<Title>Creating an RSS Feed Reader With the MEAN Stack</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>This article is a continuation of <a href="http://code.tutsplus.com/tutorials/introduction-to-the-mean-stack--cms-19918" rel="nofollow external" class="bo">Introduction to the MEAN Stack</a>. The previous post covered the installation of the MEAN stack and also presented what we ended up with in terms of its directory structure, after installation. Now it's time for some actual coding!</p>
    <h2>What We'll Be Building</h2>
    <p>We will be building an RSS feed reader using the MEAN stack. The application will allow its user to manage their list of feeds by adding a new feed, deleting an existing one, modifying an existing one and, of course, seeing a list of all the feeds in which the user is interested in.</p>
    <p>The user has to authenticate in order to have access to the application, so that the feeds of one user are not visible to others and most importantly, to users that are not logged in. As we saw in the <a href="http://code.tutsplus.com/tutorials/introduction-to-the-mean-stack--cms-19918" rel="nofollow external" class="bo">previous</a> article, the stack comes with a full authentication mechanism already implemented, so we can use it without further modifications.</p>
    <p>The feed's URLs are stored in a Mongo database on the server so that they are available even after logging off, or after closing the browser.</p>
    <p>The last feeds are displayed to the user on the main page and they will show the article's title, an excerpt and allow the user to click on the title to read the entire post.</p>
    <p>The user will also have the possibility to filter the feeds on various criteria.</p>
    <p>In this first part, we will discuss the implementation of the server part of our application (the backend). We will implement a REST API to respond to the user's requests for viewing, creating, deleting and modifying feeds.</p>
    <p>Luckily for us, the MEAN stack gives us such an API for handling the articles that can be created. We will modify this API to respond to our need of handling the feed URLs. After all, this is why we are using boilerplate code, to modify and adapt it to the needs of our application. So let's do that!</p>
    <h2>The Routes</h2>
    <p>Let's spend a minute and think about what routes our app should to respond to. The picture below shows what we expect to have: </p>
    <img alt="" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/45/posts/20563/image/routes.jpeg" style="max-width: 100%; height: auto;">
    <p>Now, let's open the file <code>app/routes/articles.js</code>. If we look at its contents, we see that this is what we want to have, but applied to the articles. So, we have to modify it a little to fit our needs. First, change its name from <code>articles.js</code> to <code>feeds.js</code>. Then modify it as shown below:</p>
    <pre>    // app/routes/feeds.js&#x000A;        'use strict';&#x000A;    &#x000A;        var feeds = require('../controllers/feeds');&#x000A;        var authorization = require('./middlewares/authorization');&#x000A;    &#x000A;        // Feeds authorization helpers&#x000A;        var hasAuthorization = function(req, res, next) {&#x000A;            if (req.feed.user.id !== req.user.id) {&#x000A;                return res.send(401, 'User is not authorized');&#x000A;            }&#x000A;            next();&#x000A;        };&#x000A;    &#x000A;        module.exports = function(app) {&#x000A;            app.get('/feeds', feeds.all);&#x000A;            app.post('/feeds', authorization.requiresLogin, feeds.create);&#x000A;            app.get('/feeds/:feedId', feeds.show);&#x000A;            app.put('/feeds/:feedId', authorization.requiresLogin, hasAuthorization, feeds.update);&#x000A;            app.del('/feeds/:feedId', authorization.requiresLogin, hasAuthorization, feeds.destroy);&#x000A;    &#x000A;            // Finish with setting up the feedId param&#x000A;            app.param('feedId', feeds.feed);&#x000A;        };&#x000A;    </pre>
    <p>For those familiar with the Express framework, this shouldn't be anything new, but just in case, let's go over it real quickly. We start by requiring the <code>feeds</code> controller (which we'll see in a moment) and the authorization middleware (which the MEAN stack gives us).</p>
    <p>Then we have the <code>hasAuthorization()</code> function, which compares the <code>id</code> of the user who wants to manipulate the feed with the <code>id</code> of the logged in user and returns an error if they are not the same. The <code>next()</code> function is a callback which allows the next layer in the middleware stack to be processed.</p>
    <p>In the last part, our code exports the routes as described in the table above, implementing the security requirements.</p>
    <h2>The Models</h2>
    <p>Creating the application's model using <code>mongoose</code> is a breeze. Rename the <code>app\models\article.js</code> to <code>app\models\feed.js</code> and perform the following modifications:</p>
    <pre>    'use strict';&#x000A;    &#x000A;        /**&#x000A;         * Module dependencies.&#x000A;         */&#x000A;        var mongoose = require('mongoose'),&#x000A;            Schema = mongoose.Schema;&#x000A;    &#x000A;        /**&#x000A;         * Feeds Schema.&#x000A;         */&#x000A;        var FeedsSchema = new Schema ({&#x000A;            feedUrl: {&#x000A;                type: String,&#x000A;                default: '',&#x000A;                trim: true&#x000A;            },&#x000A;    &#x000A;            user: {&#x000A;                type: Schema.ObjectId,&#x000A;                ref: 'User'&#x000A;            }&#x000A;        });&#x000A;    &#x000A;        /**&#x000A;         * Statics&#x000A;         */&#x000A;        FeedsSchema.statics.load = function(id, cb) {&#x000A;            this.findOne({&#x000A;                _id: id&#x000A;            }).populate('user', 'name username').exec(cb);&#x000A;        };&#x000A;    &#x000A;        mongoose.model('Feeds', FeedsSchema);&#x000A;    </pre>
    <p>We define our database structure here as follows: we will have a feeds table containing a <code>feedUrl</code> string type field and a reference to a <code>user</code> which will store the <code>id</code> of the current logged in user. Notice that we don't handle the creation of an <code>id</code> for our documents here, since this is taken care of for us by the MongoDB system.</p>
    <p>Finally, we define a <code>load()</code> function that filters the documents in the database based on the <code>id</code> of the current logged in user.</p>
    <h2>The Controller</h2>
    <p>The controller is responsible for implementing the functions called by the router, when a specific route is requested. All the necessary functions for the CRUD operations we perform are implemented in the controller. Let's take a look at them one by one and see the implementation details.</p>
    <p>You should be noticing a pattern by this point. First, don't forget to rename the <code>app/controllers/articles.js</code> file to <code>app/controllers/feeds.js</code>.</p>
    <h3>Creating a Feed</h3>
    <p>In order to create a feed we implement the <code>create()</code> function:</p>
    <pre>    /**&#x000A;         * Create a feed&#x000A;         */&#x000A;        exports.create = function(req, res) {&#x000A;            var feed = new Feeds(req.body);&#x000A;            feed.user = req.user;&#x000A;    &#x000A;            feed.save(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <p>First, we create a <code>feed</code> variable based on the <code>Feeds</code> model. Then we add to this variable the reference to the current logged in user to be stored. Finally, we call the model's <code>save</code> method to store the document in the database. Upon error, we return to the signup form since most likely the user is not logged in. If the document is created successfully, we return the new document to the caller.</p>
    <h3>Modifying a Feed</h3>
    <pre>    /**&#x000A;         * Update a feed&#x000A;         */&#x000A;        exports.update = function(req, res) {&#x000A;            var feed = req.feed;&#x000A;    &#x000A;            feed = _.extend(feed, req.body);&#x000A;    &#x000A;            feed.save(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <p>We call Lodash's <code>extend</code> method in order to modify the feed's properties with the ones that came from the user. Then the <code>save</code> method of the model stores the modified data in to the database.</p>
    <h3>Deleting a Feed</h3>
    <pre>    /**&#x000A;         * Delete a feed&#x000A;         */&#x000A;        exports.destroy = function(req, res) {&#x000A;            var feed = req.feed;&#x000A;    &#x000A;            feed.remove(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <p>Quite simple, isn't it? The model has a <code>remove</code> method which solved our problem quite easily.</p>
    <h3>Showing Feeds</h3>
    <p>Showing all feeds will be the task of the client part of our application. The server will only return the necessary data:</p>
    <pre>    /**&#x000A;         * List of Feeds&#x000A;         */&#x000A;        exports.all = function(req, res) {&#x000A;            Feeds.find().sort('-created').populate('user', 'feedUrl').exec(function(err, feeds) {&#x000A;                if (err) {&#x000A;                    res.render('error', {&#x000A;                        status: 500&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feeds);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <p>The code performs a find in the database returning the <code>user</code> and the <code>feedUrl</code>. If <code>find</code> fails, a server error is returned, otherwise all the found feeds will be returned.</p>
    <p>A single feed is displayed by using the following:</p>
    <pre>    /**&#x000A;         * Show a feed&#x000A;         */&#x000A;        exports.show = function(req, res) {&#x000A;            res.jsonp(req.feed);&#x000A;        };&#x000A;    </pre>
    <p>... which then uses a helper function:</p>
    <pre>    exports.feed = function (req, res, next, id) {&#x000A;            Feeds.load(id, function (err, feed) {&#x000A;                if (err) return next(err);&#x000A;    &#x000A;                if (!feed) return next(new Error('Failed to load feed ' + id));&#x000A;    &#x000A;                req.feed = feed;&#x000A;    &#x000A;                next();&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <p>... that loads a specific feed based on its <code>id</code> (which will come packaged in the URL).</p>
    <p>The complete code should like this:</p>
    <pre>    // app/controllers/feeds.js&#x000A;        'use strict';&#x000A;    &#x000A;        var mongoose = require('mongoose'),&#x000A;            Feeds = mongoose.model('Feeds'),&#x000A;            _ = require('lodash');&#x000A;    &#x000A;        exports.feed = function (req, res, next, id) {&#x000A;            Feeds.load(id, function (err, feed) {&#x000A;                if (err) return next(err);&#x000A;    &#x000A;                if (!feed) return next(new Error('Failed to load feed ' + id));&#x000A;    &#x000A;                req.feed = feed;&#x000A;    &#x000A;                next();&#x000A;            });&#x000A;        };&#x000A;    &#x000A;        /**&#x000A;         * Show a feed&#x000A;         */&#x000A;        exports.show = function(req, res) {&#x000A;            res.jsonp(req.feed);&#x000A;        };&#x000A;    &#x000A;        /**&#x000A;         * List of Feeds&#x000A;         */&#x000A;        exports.all = function(req, res) {&#x000A;            Feeds.find().sort('-created').populate('user', 'feedUrl').exec(function(err, feeds) {&#x000A;                if (err) {&#x000A;                    res.render('error', {&#x000A;                        status: 500&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feeds);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    &#x000A;        /**&#x000A;         * Create a feed&#x000A;         */&#x000A;        exports.create = function(req, res) {&#x000A;            var feed = new Feeds(req.body);&#x000A;            feed.user = req.user;&#x000A;    &#x000A;            feed.save(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    &#x000A;        /**&#x000A;         * Update a feed&#x000A;         */&#x000A;        exports.update = function(req, res) {&#x000A;            var feed = req.feed;&#x000A;    &#x000A;            feed = _.extend(feed, req.body);&#x000A;    &#x000A;            feed.save(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    &#x000A;        /**&#x000A;         * Delete a feed&#x000A;         */&#x000A;        exports.destroy = function(req, res) {&#x000A;            var feed = req.feed;&#x000A;    &#x000A;            feed.remove(function(err) {&#x000A;                if (err) {&#x000A;                    return res.send('users/signup', {&#x000A;                        errors: err.errors,&#x000A;                        feed: feed&#x000A;                    });&#x000A;                } else {&#x000A;                    res.jsonp(feed);&#x000A;                }&#x000A;            });&#x000A;        };&#x000A;    </pre>
    <h2>Is the REST API Complete?</h2>
    <p>Well, almost. At this point we do not have the client part of the application implemented in order to prove that the code is working. I didn't present the unit tests for the code either, since it's not so complicated and I wanted to leave it up to you as an exercise.</p>
    <p>We can test the code using the Postman - REST Client application available on Google Chrome.</p>
    <h3>Creating a Feed</h3>
    <p>Install <a href="https://github.com/a85/POSTMan-Chrome-Extension" rel="nofollow external" class="bo">Postman</a> if you don't have it already and configure it as follows:</p>
    <img alt="" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/45/posts/20563/image/create_feed.jpg" style="max-width: 100%; height: auto;">
    <h3>Viewing All Feeds</h3>
    <img alt="" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/45/posts/20563/image/get_all_feeds.jpg" style="max-width: 100%; height: auto;">
    <h3>Viewing a Single Feed</h3>
    <img alt="" src="https://s3.amazonaws.com/cms-assets.tutsplus.com/uploads/users/45/posts/20563/image/get_single_feed.jpg" style="max-width: 100%; height: auto;">
    <p>The remaining parts of the code are easy to verify, so please have some fun with Postman and your new application.</p>
    <h2>Conclusion</h2>
    <p>Using a framework or boilerplate code can, in some situations, be useful and make you very productive. As you've seen in this article, implementing the REST API needed for our application was reduced to performing minor modifications to the boilerplate code. Of course for more complex applications, it may be necessary to do more than that, but still, having a starting point can be useful.</p>
    <p>In the next tutorial, we will take a look at the client part of the application for displaying the data we will request from the server, showing forms for entering new feed URLs, handling events and so on.</p>
    </div>
]]>
</Body>
<Summary>This article is a continuation of Introduction to the MEAN Stack. The previous post covered the installation of the MEAN stack and also presented what we ended up with in terms of its directory...</Summary>
<Website>http://code.tutsplus.com/tutorials/creating-an-rss-feed-reader-with-the-mean-stack--cms-20563</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43220/guest@my.umbc.edu/6d2b8f3749d97efcbe2ec139c514b55e/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</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, 04 Apr 2014 10:00:04 -0400</PostedAt>
<EditAt>Fri, 04 Apr 2014 10:00:04 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="43226" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43226">
<Title>How the Internet Is Taking Away America&#8217;s Religion</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Using the Internet can destroy your faith. That’s the conclusion of a study showing that the dramatic drop in religious affiliation in the U.S. since 1990 is closely mirrored by the increase in Internet use.</p>
    <p><img src="https://www.technologyreview.com/sites/default/files/images/Religion.png" alt="" width="460" height="388" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>Using the Internet can destroy your faith. That’s the conclusion of a study showing that the dramatic drop in religious affiliation in the U.S. since 1990 is closely mirrored by the increase in...</Summary>
<Website>http://www.technologyreview.com/view/526111/how-the-internet-is-taking-away-americas-religion/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43226/guest@my.umbc.edu/5e4334a88bc8eeef652e84c5d7c64eb5/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</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, 04 Apr 2014 10:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="43217" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43217">
<Title>INDS at URCAD</Title>
<Tagline>Witness examples of Interdisciplinarity in action!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <span>UMBC's Undergraduate Research and Creative Achievement Day (URCAD) Wednesday,
    April 23, 2014</span><div><span><br></span></div>
    <div><span><br></span></div>
    <span><div>   Poster Presentations, University Ballroom</div>
    <div><br></div>12:00 - 2:00 Vivian C. Chioma</span><br><div>
    <span>"</span><strong>Fear Be Gone: Endocannabinoids Modulate Subsecond Dopamine Release during the Extinction of the Fear Memories"</strong>
    </div>
    <div><br></div>
    <div>
    <div><span><br></span></div>
    <div>
    <span>12:00 - 2:00 Mary B. Hester</span><br><div>
    <span>"</span><span><strong>Arts Advocacy: How to Inspire Policy Change by Measuring and Communicating the Benefits of Arts Education"</strong><br></span>
    </div>
    </div>
    <div><strong><span><br></span></strong></div>
    <div><strong><span><br></span></strong></div>
    <div><span>12:00 - 2:00 Michelle Seu</span></div>
    <div><strong><span>"Investigation of Dimerization Mechanisms in the Simian Immunodeficiency Virus 5' - Untranslated Region"</span></strong></div>
    <div><strong><span><br></span></strong></div>
    <div><br></div>
    <div>
    <div><span>2:00 - 4:00 Michael Zurkowski</span></div>
    <div>
    <strong>"</strong><strong>Student Learning Outcome: Communicating Engineering Design"</strong>
    </div>
    </div>
    <div><span><strong><br></strong></span></div>
    <div><br></div>
    <div>Oral Presentations</div>
    <div><span><br></span></div>
    <div>
    <span>1:45 </span><span>Samantha Hawkins</span><br><div>
    <span>"</span><strong>Baltimore Voices: Creating a Comprehensive Sense of Place and Identity"</strong>
    </div>
    </div>
    <div><span>Location: UC 312</span></div>
    </div>
    <div><span><br></span></div>
    <div>
    <div><strong><br></strong></div>
    <div>
    <span>2:45</span><span> Joyce Ohiri</span>
    </div>
    <div><strong>"Characterizing the AC1-Exemestane Resistant Cell Line in Estrogen-Dependent Breast Cancer"</strong></div>
    <div><span>Location: UC 310</span></div>
    <div><br></div>
    </div>
    </div>
]]>
</Body>
<Summary>UMBC's Undergraduate Research and Creative Achievement Day (URCAD) Wednesday, April 23, 2014          Poster Presentations, University Ballroom    12:00 - 2:00 Vivian C. Chioma  "Fear Be Gone:...</Summary>
<Website>http://www.umbc.edu/undergrad_ed/research/urcad/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43217/guest@my.umbc.edu/de4e8fb142ffd4990d746fa247649654/api/pixel</TrackingUrl>
<Group token="inds">Individualized Study </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/inds</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/original.png?1775678457</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/large.png?1775678457</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/medium.png?1775678457</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/small.png?1775678457</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxsmall.png?1775678457</AvatarUrl>
<Sponsor>Interdisciplinary Studies</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Apr 2014 09:46:14 -0400</PostedAt>
<EditAt>Fri, 04 Apr 2014 14:37:19 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="43218" important="false" status="posted" url="https://my3.my.umbc.edu/posts/43218">
<Title>Bits Blog: Amazon Channels a Cheaper Television Experience</Title>
<Body>
<![CDATA[
    <div class="html-content">To make its set-top box viable, Amazon will have to spend a lot of money. That’s something it’s never been afraid of doing.<br>
    </div>
]]>
</Body>
<Summary>To make its set-top box viable, Amazon will have to spend a lot of money. That’s something it’s never been afraid of doing.</Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/38fd1846/sc/4/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A40C0A40Camazon0Echannels0Ea0Echeaper0Etelevision0Eexperience0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/43218/guest@my.umbc.edu/1d62ef1f7080ffb06fdcfadd526d7751/api/pixel</TrackingUrl>
<Tag>amazon-com-inc</Tag>
<Tag>amazon-com-inc-amzn-nasdaq</Tag>
<Tag>comcast-corporation</Tag>
<Tag>comcast-corporation-cmcsa-nasdaq</Tag>
<Tag>devices</Tag>
<Tag>new</Tag>
<Tag>roku</Tag>
<Tag>technology</Tag>
<Tag>york</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, 04 Apr 2014 09:30:36 -0400</PostedAt>
<EditAt>Fri, 04 Apr 2014 09:30:36 -0400</EditAt>
</NewsItem>

</News>
