<?xml version="1.0"?>
<News hasArchived="true" page="8036" pageCount="10744" pageSize="10" timestamp="Sun, 09 Aug 2026 13:31:16 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8036">
<NewsItem contentIssues="true" id="38689" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38689">
<Title>UMBC's First Satellite Launch</Title>
<Tagline>Tiny Satellite ... A Big Step in Space Research at UMBC.</Tagline>
<Body>
<![CDATA[
    <div class="html-content">Congratulations to <a href="http://jcet.umbc.edu/files/2013/11/QubescoutLaunch.jpg" rel="nofollow external" class="bo">Vanderlei Martin's group</a> for launching UMBC's first satellite, Qubescout, at 2:10 EST this morning on a Russian rocket.  The full story can be found <a href="http://www.umbc.edu/window/nano_sat_2013.html" rel="nofollow external" class="bo">here</a>.<div><br></div>
    <div>Note:  JCET has now met its last of 10 goals set out when JCET was formed in 1995.</div>
    </div>
]]>
</Body>
<Summary>Congratulations to Vanderlei Martin's group for launching UMBC's first satellite, Qubescout, at 2:10 EST this morning on a Russian rocket.  The full story can be found here.    Note:  JCET has now...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38689/guest@my.umbc.edu/91532783e38e3e316e467ce28e1f4460/api/pixel</TrackingUrl>
<Group token="jcet">Joint Center for Earth Systems Technology</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/jcet</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/xsmall.png?1524593851</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/original.JPG?1524593851</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/xxlarge.png?1524593851</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/xlarge.png?1524593851</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/large.png?1524593851</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/medium.png?1524593851</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/small.png?1524593851</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/xsmall.png?1524593851</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/429/5f87a3fcca7c117d0f4186749a5c6c59/xxsmall.png?1524593851</AvatarUrl>
<Sponsor>Joint Center for Earth Systems Technology</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/xxlarge.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/xlarge.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/large.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/medium.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/small.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/xsmall.jpg?1385051307</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/689/99d403e4b3d5513eb108bac456ad8b1b/xxsmall.jpg?1385051307</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 21 Nov 2013 11:29:15 -0500</PostedAt>
<EditAt>Mon, 25 Nov 2013 12:35:34 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="38693" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38693">
<Title>Foundation 5, available now</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/11/thumbnail25.jpg" width="200" height="160" style="max-width: 100%; height: auto;">Today, the California-based product design team at ZURB announce the release of <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation 5</a>, the responsive web design framework that’s been adopted by millions of designers and engineers.</p> <p>Designers have loved previous versions of Foundation for its mobile-first attitude and great documentation. Now a ton of features have been added and existing ones streamlined to make the framework faster, smarter and easier to learn.</p> <p>“Front-end frameworks have reached the point where the next logical step is to work on efficiency and speed,” says Jonathan Smiley, a Partner at ZURB. “With Foundation 5 we wanted to pay a lot of attention to that, so we have an even better, leaner starting point for the next version.”</p> <p>Here’s a rundown of what’s new and what’s improved from the ZURB team:</p> <p> </p> <h1>Faster to learn</h1> <ul> <li> <p>Foundation’s documentation has gotten a huge upgrade. There are more and better code examples, plus whole new sections so you can dig as deeply as you like.</p> </li> <li> <p>A new “Getting Started” guide will help new users quickly figure out how to fit the Foundation framework into their workflow.</p> </li> <li> <p>“Getting Started” videos have also been added.</p> </li> <li> <p>Connect with the Foundation community to get answers and share knowledge on a dedicated Foundation Forum.</p> </li> </ul> <p> </p> <h1>Faster to code</h1> <ul> <li> <p>Foundation now has its own command line tool, plus it will use Libsass, a back-end Sass compiling library that will accelerate your SCSS changes by a whopping 5x.</p> </li> <li> <p>The team has also created its own CLI wrappers: just type ‘foundation new project-name’ and you’re off!</p> </li> <li> <p>New components will drastically shave off even more of manual work you need to do. For example, they’ve added a medium grid that ends the need for custom breakpoints and media queries.</p> </li> <li> <p>The new release comes with brand new templates.</p> </li> <li> <p>With Foundation Business, you can upgrade to get professional support, consulting, tools and training.</p> </li> </ul> <p> </p> <h1>Faster for site users</h1> <ul> <li> <p>The Interchange plugin, which has allowed you to deliver different images to different devices, is now even more powerful. You’ll be able to deliver entirely different sections of the page depending on device type.</p> </li> <li> <p>Users will experience smoother animations and transitions as the result of Foundation’s robust support for hardware acceleration.</p> </li> <li> <p>The base visual style is simpler, cleaner and sexier — and quick and easy to restyle.</p> </li> </ul> <p><a href="http://netdna.webdesignerdepot.com/uploads/2013/11/foundation-internal.jpg" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/11/foundation-internal.jpg" width="650" alt="Foundation 5, available now" style="max-width: 100%; height: auto;"></a></p> <p>This is a major upgrade. Current Foundation users will find that lots of wishes have been granted. The framework remains highly responsive, Rails-friendly (but use it with any back-end) and is now more accessible than ever (fully 508 compliant).</p> <p>If you’ve been waiting to check out Foundation, this may be the version that gets you going.</p> <p> </p> <p><em><strong>Are you a Foundation user? Which of the new features are you most excited to see? 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/elite-pro-icons.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Elite Pro: 850+ Icons Usable As 13 Premium Web Fonts – only $29!</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="Foundation 5, available now" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/11/foundation-5-available-now/" rel="nofollow external" class="bo">Source</a> <br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F11%2Ffoundation-5-available-now%2F&amp;t=Foundation+5%2C+available+now" 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.webdesignerdepot.com%2F2013%2F11%2Ffoundation-5-available-now%2F&amp;t=Foundation+5%2C+available+now" 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.webdesignerdepot.com%2F2013%2F11%2Ffoundation-5-available-now%2F&amp;t=Foundation+5%2C+available+now" 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.webdesignerdepot.com%2F2013%2F11%2Ffoundation-5-available-now%2F&amp;t=Foundation+5%2C+available+now" 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.webdesignerdepot.com%2F2013%2F11%2Ffoundation-5-available-now%2F&amp;t=Foundation+5%2C+available+now" 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/180264814684/u/49/f/661066/c/35285/s/33f3545b/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264814684/u/49/f/661066/c/35285/s/33f3545b/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Today, the California-based product design team at ZURB announce the release of Foundation 5, the responsive web design framework that’s been adopted by millions of designers and engineers....</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/33f3545b/sc/4/l/0L0Swebdesignerdepot0N0C20A130C110Cfoundation0E50Eavailable0Enow0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38693/guest@my.umbc.edu/cf7ca730510e7e59d68088a27d7f96e8/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>foundation</Tag>
<Tag>foundation-5</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>latest-foundation</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web-design</Tag>
<Tag>web-design-news</Tag>
<Tag>web-design-resources</Tag>
<Tag>zurb</Tag>
<Tag>zurb-foundation</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>Thu, 21 Nov 2013 11:00:24 -0500</PostedAt>
<EditAt>Thu, 21 Nov 2013 14:00:24 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="38690" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38690">
<Title>Introducing Scut, a new Sass utility library</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em>The following is a guest post by <a href="http://twitter.com/sorrywretch" rel="nofollow external" class="bo">David Clark</a>. I think David's new Sass library "Scut" is pretty interesting. It's like a design utility library, which is distinct from a design pattern library in that it enforces no particular structure or particular visual design. I've always found this kind of thing fascinating, largely because I've never been able to pull it off in a way that feels good to me. I always end up leaning too far into visual design, or too abstract to the point of it not being all that useful. I think David just might be on the right track here. I'll let him explain in detail.</em></p>
    <p></p>
    <p>I've started an open-source Sass utility library with a straightforward mission: <em>to ease and improve our implementations of common style-code patterns</em>. I'm calling it Scut.</p>
    <p><a href="http://davidtheclark.github.io/scut/" rel="nofollow external" class="bo">Scut</a> is a collection of Sass mixins, placeholders, functions, and variables that are generic enough to be widely reusable — within any project, any design — and easy to integrate into diverse workflows and coding conventions. Every Scut utility is an effort to reduce repetition, increase organization, and encourage the reuse and sharing of style code.</p>
    <p>Scut is not a frontend framework, and offers no default styling: it does not concern itself with the gradients on your buttons, the padding of your boxes, the font-size of your headers, or the color of your skin. And it won't provide your vendor-prefixes: Scut's unique focus differentiates it from other preprocessor libraries. It should help you build websites — especially if you, like me, work on <em>a lot</em> of sites, rather than a single large app — but it doesn't do everything. It is a companion to, not a replacement for, other popular tools and practices.</p>
    <p>I've written this article to explain my motivation, intention, and method in starting Scut, and, most of all, to seek your collaborative input.</p>
    <p>So as you read, please keep in mind that Scut is in its infancy, and that you, dear reader, have the power to alter and improve it, whether by adding and upgrading utilities or by clarifying the principles behind them. If at any point you decide that you're ready to try it out or throw in some ideas, please head to <a href="http://davidtheclark.github.io/scut/" rel="nofollow external" class="bo">Scut's documentation</a> or the <a href="https://github.com/davidtheclark/scut" rel="nofollow external" class="bo">repository on Github</a>.</p>
    <h3>How We Share Style-Code Now, and Why There's Room for Scut</h3>
    <h4>Reusable Components: Insert Pretty Button Here</h4>
    <p>Consider <a href="http://getbootstrap.com/" rel="nofollow external" class="bo">Bootstrap</a>, <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation</a>, <a href="http://purecss.io/" rel="nofollow external" class="bo">PureCSS</a>, etc. — whether we call them frontend frameworks, UI kits, design systems, or whatever else, their purpose is clear: <em>to help developers build functional, attractive, reliable interfaces, quickly and easily, from pre-crafted components</em>.</p>
    <p>Even if we don't use these frameworks often, we should recognize their value and learn from them. Above all, <em>they demonstrate the virtues of a systematic approach to site design</em>. Mark Otto's exhortation to <a href="https://speakerdeck.com/mdo/build-your-own-bootstrap" rel="nofollow external" class="bo">"Build your own Bootstrap"</a> and Brad Frost's description of <a href="http://bradfrostweb.com/blog/post/atomic-web-design/" rel="nofollow external" class="bo">"Atomic Design"</a> remind us that if we don't want to adopt someone else's reusable components, we should build our own bits and pieces to be equally systematic, equally reusable. <a href="http://ux.mailchimp.com/patterns" rel="nofollow external" class="bo">Mailchimp's Pattern Library</a> and <a href="https://www.mapbox.com/base/" rel="nofollow external" class="bo">Mapbox's Base</a> serve as large-scale examples of that approach.</p>
    <p>This variety of style-code sharing and reuse — the component collection, the design system — has garnered a lot of attention, and that's a good thing. But <em>it is not the only variety</em>; and I write all this in order say that Scut is different.</p>
    <p><em>A good frontend framework helps us in many ways, but the scope of its reusability across diverse projects and designs is limited.</em> Scut aims at a broader, more rudimentary kind of reuse — reuse not of polished components, but of the abstract, generic patterns and practices that underlie those components. (At least, those patterns and practices that are not clear and simple in vanilla CSS.)</p>
    <h4>Abstract, Generic Patterns and Practices: "Unfinished" Styling</h4>
    <p><strong>Another way to share and reuse style code — Scut's way — involves the transmission of useful maneuvers, clever tricks, and best practices, but not finished components.</strong></p>
    <p>Here's the basic idea: Create and share modules that are as generic, flexible, naked as possible, so they can be used in any project to implement a useful pattern, without demanding or determining a particular environment for it.</p>
    <p>This kind of sharing happens in two ways: tutorials and utility libraries.</p>
    <h5>Tutorials</h5>
    <p>For a paradigmatic example of The Tutorial, I refer you to this very blog, CSS-Tricks, where the eminent Chris Coyier explains and exemplifies patterns we can all apply in our own work. Then there are other blogs, books, articles, Stack Overflow answers, resources divers and sundry — more tutorials on this Internet then we know what to do with.</p>
    <p>The writing and reading and sharing of tutorials is an indispensable practice, especially excellent because tutorials teach while they share. However, they provide practices we can <em>reproduce</em> rather than tools we can <em>reuse</em>: they disseminate <em>knowledge</em>, not <em>utilities</em>.</p>
    <h5>Utilities</h5>
    <p>The Reusable Generic Utility, Scut’s ideal constituent, is a kind of extension of The Tutorial. It turns out that <strong>many (if not most) of the styling tricks, tips, and best practices we read or write about can be abstracted into reusable utilities</strong>.</p>
    <p>For a fine model of what I mean by "utility," consider the many functions of <a href="http://underscorejs.org/" rel="nofollow external" class="bo">Underscore</a>, the JavaScript "utility-belt" — and its offspring <a href="http://lodash.com/" rel="nofollow external" class="bo">Lodash</a>, of course (for this article, please just assume that "Underscore" = "Underscore or Lodash, whatever you prefer"). Let me explain: I've been reading <a href="http://eloquentjavascript.net/" rel="nofollow external" class="bo"><cite>Eloquent Javascript</cite>, by Marijn Haverbeke</a>, and the other night I encountered a common, useful pattern called the "reduce" or "fold" function. In the tutorial tradition, Haverbeke explains what a "reduce" function does and shows me how to make one. So I could write my own — we could all write our own ... But Underscore <em>already has</em> <a href="http://underscorejs.org/#reduce" rel="nofollow external" class="bo">a "reduce" function that we can all use</a> — and since Underscore's function has run the open-source gauntlet, it's going to be better than whatever I might produce on my own (though I can't speak for you, in all your wisdom). As much as I benefit from the knowledge gained, I often gain even more by pairing that knowledge with an open-source utility.</p>
    <p>In the world of style code, the best way to collaboratively create a similar utility collection is with a preprocessor library. (Two significant advantages of preprocessor tools over class collections are (1) that they have variability built in, and (2) that they only impact your final stylesheet, what's served to the client, when they are actually used.) So: <em>enter Scut</em>.</p>
    <p>Let's parallel the JavaScript "reduce" example above with some style code. On CSS-Tricks, there's an immensely useful article, <a href="http://css-tricks.com/centering-in-the-unknown/" rel="nofollow external" class="bo">"Centering in the Unknown,"</a> about centering elements with indeterminate dimensions. The trickiest part is the <em>vertical</em> centering. After reading this article, I know about the method of setting <code>display: table;</code> on the parent element and <code>display: table-cell; vertical-align: middle;</code> on the to-be-centered child. And that's fantastic: it's a valuable trick to learn. <em>But let's not stop there.</em> To extend that tutorial and create a reusable, shareable utility, I can write a Sass mixin — something like this:</p>
    <pre><code>@mixin vertically-center ($child: ".vcentered") {&#x000A;      display: table;&#x000A;      &amp; &gt; #{$child} {&#x000A;        display: table-cell;&#x000A;        vertical-align: middle;&#x000A;      }&#x000A;    }</code></pre>
    <p>Apply this mixin to the parent; pass the to-be-centered child's selector as the argument (or give that child the default class <code>vcentered</code>); and you have achieved vertical centering — and done so by creating a tool that can be reused and shared.</p>
    <p>Essentially, we're doing the same thing with CSS (by way of Sass) that Underscore does with JavaScript. Put together a bunch of these utilities, expose them to the open-source community, and you should end up with a helpful library.</p>
    <p>(By the way, Scut provides <a href="http://davidtheclark.github.io/scut/#vertically_center" rel="nofollow external" class="bo"><em>three</em> different methods of vertical centering</a>, each one fitted for different contexts.)</p>
    <p>I'll explain more about the methodology of Scut's utilities below; but first, you may be asking ...</p>
    <h5>What About Existing Preprocessor Libraries?</h5>
    <p>If you're a regular reader of CSS-Tricks, you've probably heard of <a href="http://compass-style.org/" rel="nofollow external" class="bo">Compass</a> and <a href="http://bourbon.io/" rel="nofollow external" class="bo">Bourbon</a>. There are other Sass libraries, and LESS and Stylus have spawned their own. These libraries exist already, bolstered by strong communities, and work splendidly; they do offer "abstract, generic patterns and practices" — so why build another? Because, from what I've seen, <strong>the existing preprocessor libraries have focused heavily on vendor-prefixing and legacy-browser support, without offering many reusable style patterns</strong>. (Some, yes, but not many.) Valuable as they are, they are also, like all things under the sun, limited.</p>
    <p>Their limitations jumped out at me when I started using <a href="https://github.com/ai/autoprefixer" rel="nofollow external" class="bo">Autoprefixer</a>. (If you haven't done so already, I suggest reading <a href="http://css-tricks.com/autoprefixer/" rel="nofollow external" class="bo">Andrey Sitnik's guest post on CSS-Tricks</a>.) I had tried Compass and was using Bourbon regularly; but with my vendor-prefixing taken care of by Autoprefixer, Compass and Bourbon no longer seemed very useful. They offered a few helpers that I would invoke now and again, but not regularly.</p>
    <p>I started to wonder <em>what else</em> a preprocessor library might be good for. And that led to the idea behind Scut — a preprocessor library that ignores vendor-prefixing in order to focus exclusively on abstract styling patterns.</p>
    <h3>The Principles and Purposes of Scut</h3>
    <h4>What Problems do Scut Utilities Solve?</h4>
    <p>Scut utilities should epitomize the key benefits of CSS preprocessors. I'll list my favorites:</p>
    <p><strong>The Key Benefits of The CSS Preprocessor — which are also The Key Benefits of The Scut Utility:</strong></p>
    <ul>
    <li>
        It helps me <strong>avoid repetition</strong>. Instead of typing the same code in various places, I use a mixin, extend, function, or variable, and my code becomes less annoying to type; more accurate — less vulnerable to typos and inadvertent variations; and easier to change and maintain — since each important part resides in one place only.
      </li>
    <li>
        It helps me <strong>organize code</strong>, by grouping associated rules into named patterns — so instead of tangled lists of various rules contributing in various ways to a component's appearance, <em>I see which rules relate to which specific effects</em>.
      </li>
    <li>It helps me <strong>reuse code</strong> (as explained above).</li>
    </ul>
    <p>Additionally, <strong>the pattern that a Scut utility implements should suffer from one or more of the following problems — and the utility should, of course, solve that problem:</strong></p>
    <h5>1. The pattern is non-intuitive</h5>
    <p>The CSS rules required don't explain themselves. There's some kind of trick involved: you must have been initiated to decipher the code. Also, because there's a trick, the pattern is hard to remember. Unless you've executed the operation a hundred times already, you probably have to look up instructions on somebody's blog; and even then, you'll need to do some thinking, experimenting, and tweaking to get it right again.</p>
    <p>To illustrate: You may want to create an element of fluid dimensions with a fixed aspect ratio — let's say 16/9. After some searching, you've found a method that works — but you may not see <em>why</em> just by looking at the CSS:</p>
    <pre><code>.parent-element {&#x000A;      overflow: hidden;&#x000A;      position: relative;&#x000A;    }&#x000A;    .parent-element:before {&#x000A;      content: "";&#x000A;      display: block;&#x000A;      height: 0; /* Huh? */&#x000A;      padding-top: 56.25%; /* Wha? */&#x000A;    }&#x000A;    .parent-element &gt; .child-element {&#x000A;      position: absolute;&#x000A;      left: 0;&#x000A;      top: 0;&#x000A;      width: 100%;&#x000A;      height: 100%; /* Filling a container with zero height? */&#x000A;    }</code></pre>
    <p>Use a Scut mixin, instead, and a glance at your code will make sense:</p>
    <pre><code>.parent-element {&#x000A;      @include scut-ratio-box(16/9, ".child-element");&#x000A;    }</code></pre>
    <p>The mixin <em>organizes</em> and <em>names</em> the pattern — and also, of course, saves you from repeating the complicated mess if you need a different ratio-box elsewhere.</p>
    <p>For another example, consider the renowned CSS triangle. Without some explanation, the required style code is obscure. To make a blue right-pointing triangle 50px tall and 50px wide:</p>
    <pre><code>.triangle-right {&#x000A;      width: 0; &#x000A;      height: 0; /* A shape with no dimensions? */&#x000A;      border-top: 25px solid transparent; /* Why 25px here? */&#x000A;      border-bottom: 25px solid transparent; /* Who needs invisible borders? */&#x000A;      border-left: 50px solid blue; /* My right-pointing triangle is a left border? */&#x000A;    }</code></pre>
    <p>The trick is ancient and venerable, and well documented in tutorials around the web. (Chris Coyier recently produced <a href="http://css-tricks.com/animation-css-triangles-work/" rel="nofollow external" class="bo">a clever animation to explain how and why it works at all</a>.) So maybe you've read some things, you get it, you pull it off yourself. Still, despite your magnificence, the benefit of a good mixin should be clear, to transform the code above into a single intelligible line:</p>
    <pre><code>.triangle-right {&#x000A;      @include scut-triangle(right, 50px, blue);&#x000A;    }</code></pre>
    <p>And what if you want to build a more complex shape that involves multiple triangles — triangles that are themselves a little more complicated? Then the mixin becomes even more valuable:</p>
    <div>See the Pen <a href="http://codepen.io/davidtheclark/pen/tukri" rel="nofollow external" class="bo">Scut Triangle Example</a> by davidtheclark (<a href="http://codepen.io/davidtheclark" rel="nofollow external" class="bo">@davidtheclark</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>
    </div>
    <h5>2. The pattern deserves a shorthand</h5>
    <p>The pattern may be easy enough to write yourself — not complicated, plenty intuitive — but it consists of a set of rules that can be usefully and regularly grouped into a named shorthand.</p>
    <p>(Of course, vanilla CSS already incorporates some shorthands. Scut just adds more.)</p>
    <p>For example, Scut includes some positioning mixins: instead of —</p>
    <pre><code>position: absolute;&#x000A;    top: 1em;&#x000A;    right: 2em;&#x000A;    bottom: 3em;&#x000A;    left: 4em;</code></pre>
    <p>— you can use <code>scut-absolute</code> and write —</p>
    <pre><code>@mixin scut-absolute(1em 2em 3em 4em)</code></pre>
    <h5>3. The pattern involves some important best practices</h5>
    <p>You may <em>think</em> you know how to do it yourself — but unless you're In The Know and have read all the right things, you may not be doing it the best way. And even if you knew the best way <em>once</em>, in your heyday, you may have since forgotten or missed some game-changing innovations.</p>
    <p><em>There's nothing like an open-source library to take care of this problem.</em>  In fact, best practices is one of the areas where existing preprocessor libraries are pretty strong. So Scut's best-practice utilities — like <a href="http://davidtheclark.github.io/scut/#font-face" rel="nofollow external" class="bo"><code>scut-font-face</code></a>, <a href="http://davidtheclark.github.io/scut/#clearfix" rel="nofollow external" class="bo"><code>scut-clearfix</code></a>, and <a href="http://davidtheclark.github.io/scut/#hd_breakpoint" rel="nofollow external" class="bo"><code>scut-hd-bp</code></a> (for resolution-based media queries) — resemble some mixins you'll find in Bourbon and Compass.</p>
    <h5>4. The pattern is extremely common and a little annoying</h5>
    <p>You use the pattern consistently — every project, usually multiple times per project. And every time, something in your mind mutters "Again?" and a dark psychic cloud passes over your psychic sun, a transient awareness that you're a few keystrokes closer to death.</p>
    <p>If I had a dime for every time I nullified <code>margin</code>, <code>padding</code>, and <code>list-style-type</code> on an unstyled-list — O! the sandwiches I could buy —— So some of Scut's first utilities were <a href="http://davidtheclark.github.io/scut/#list_unstyled" rel="nofollow external" class="bo"><code>scut-list-unstyled</code></a> and its common variations, <a href="http://davidtheclark.github.io/scut/#list_inline" rel="nofollow external" class="bo"><code>scut-list-inline</code></a> and <a href="http://davidtheclark.github.io/scut/#list_floated" rel="nofollow external" class="bo"><code>scut-list-floated</code></a>, exemplified below (with various "skins" applied, to demonstrate how an abstract utility should be able to apply in all kinds of design situations):</p>
    <div>See the Pen <a href="http://codepen.io/davidtheclark/pen/EfgHe" rel="nofollow external" class="bo">Scut's Unstyled Lists</a> by davidtheclark (<a href="http://codepen.io/davidtheclark" rel="nofollow external" class="bo">@davidtheclark</a>) on <a href="http://codepen.io" rel="nofollow external" class="bo">CodePen</a>
    </div>
    <h4>How Do You Make a Scut Utility?</h4>
    <p>In short: <strong>maximize reusability</strong>. Reusability is what distinguishes a library-ready utility from a project-specific one.</p>
    <p><strong>Include sufficient detail to implement the pattern, but no more.</strong> The utility alone should not produce a passable component. Again, Scut isn't about passing around well-constructed, finished designs: it's about <em>facilitating</em> the construction and finishing of <em>unique</em> designs.</p>
    <p><strong>Use arguments to allow for typical variations on the theme.</strong> Whenever reasonable, include conservative default values for those arguments — so users may not have to enter every argument every time — and arrange those arguments according to the order in which they're likely to be changed. Additionally, use <a href="http://sass-lang.com/documentation/file.SASS_REFERENCE.html#mixin-content" rel="nofollow external" class="bo"><code>@content</code> blocks</a>, when they make sense, if you expect regular customizations that won't fit into arguments.</p>
    <p><strong>Namespace</strong>, to prevent conflicts with other libraries and project-specific code. Scut adds a <code>scut-</code> prefix to all its pieces. That way, we can include a "clearfix" utility in Scut without worrying that it will conflict with Bourbon or Compass clearfixes (which aren't namespaced). And we can use generic utility names like "size" (<a href="http://davidtheclark.github.io/scut/#size" rel="nofollow external" class="bo"><code>scut-size</code></a>), generic variable names like "circle" (<a href="http://davidtheclark.github.io/scut/#circle" rel="nofollow external" class="bo"><code>scut-circle</code></a>), without disturbing the natural balance.
    </p>
    <p>Lastly: <strong>document thoroughly, document well</strong>. I'm trying hard to do that with <a href="http://davidtheclark.github.io/scut" rel="nofollow external" class="bo">Scut's docs</a> — and I would, of course, appreciate your input and advice. We've all been frustrated by documentation — we've all known that pain — so we all recognize that <em>the effective reusability of a tool directly relates to the quality of its documentation</em>.</p>
    <h3>Now To Address Some Reservations</h3>
    <h4>I don't use Sass</h4>
    <p>Whatever your workflow, whatever choices you've made, good or bad, Scut can probably help, at least a little. If you don't use Sass, you might still look into the open-source code and either port it (to your preprocessor-of-choice) or read it, along with Scut's documentation, as a series of mini-tutorials, a kind of style-pattern reference.</p>
    <h4>I Love OOCSS and Cannot Serve Two Masters</h4>
    <p>Object-Oriented CSS (OOCSS) and Scut address similar problems with similar solutions: namely, <em>extendable patterns (or "objects")</em>. But they are by no means the same. Perhaps you're an OOCSS aficionado, and you consider all these mixins and extends to be inefficient nonsense. You want a "clearfix" <em>class</em>, not a <em>mixin</em> that will duplicate code, or a bunch of `@extend` directives that will clutter your compiled CSS. You want to make your triangles with classlists like <code>triangle triangle-large triangle-down triangle-red</code>, not one triangle mixin invoked multiple times with different arguments.</p>
    <p>Well, that's OK. There's no need to argue here over the virtues of preprocessors versus those of class-heavy coding conventions, semantic versus presentational classnames, etc., because <em>Scut doesn't preclude OOCSS-style coding</em>, or any other style: simply summon Scut's utilities <em>as needed</em> to help create the classes for your objects and their extensions.</p>
    <h4>I Don't Like Some of Scut's Utilities</h4>
    <p>Let me know what needs to change (file an issue on Github), and we can work together to build a better Scut.</p>
    <p>Keep in mind, also, that some of the current utilities are more experimental than others. As Scut stumbles through its unstable youth (v0.x.x), I'm looking for collaborators who are interested in figuring out what works and what doesn't, which utilities will improve a project's codebase and which might make it more cryptic and harder to maintain.</p>
    <h4>I Think This Whole Idea Is Stupid</h4>
    <p>Again, you're welcome to tell me what you would do differently. Show me how it's done. Or else you can go your separate way, do something you enjoy to cheer yourself up again — eat some pie, ride a bicycle — and forget you ever read this.</p>
    <h3>Curious? Convinced? Confused? Try Using and Contributing to Scut</h3>
    <p>I hope I've said enough, by now, to convince you to look into Scut, maybe tinker with it a little — or even, dare I wish, contribute.</p>
    <p>If you're ready for a trial run, <a href="http://davidtheclark.github.io/scut/" rel="nofollow external" class="bo">Scut's documentation</a> will tell you how to install and apply the library. (Basically, use <a href="http://bower.io/" rel="nofollow external" class="bo">Bower</a> or download <a href="https://github.com/davidtheclark/scut/releases" rel="nofollow external" class="bo">the latest release on Github</a>, then <code>@import</code> into your Sass. Easy as can be.)</p>
    <p>And if you're thinking you may want to donate some modicum of your own brilliance to the project, please don't hesitate. Go for it. Scut is a simple library, an easy open-source contribution — which could be especially nice for those of us who work primarily in HTML and CSS and feel wary of wading into other Github projects. Scut is all about making your work, my work, and the work of other developers <em>easier</em>, maybe even a little bit <em>better</em>; extending tutorials into reusable utilities; encouraging best practices; and sharing good ideas — goals we can agree on. I hope you'll find it a worthy experiment.</p>
    <hr>
    
    <p><small><a href="http://css-tricks.com/introducing-scut-new-sass-utility-library/" rel="nofollow external" class="bo">Introducing Scut, a new Sass utility library</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 following is a guest post by David Clark. I think David's new Sass library "Scut" is pretty interesting. It's like a design utility library, which is distinct from a design pattern library in...</Summary>
<Website>http://css-tricks.com/introducing-scut-new-sass-utility-library/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38690/guest@my.umbc.edu/d9eb62c89c584dda138894da5bed4065/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>Thu, 21 Nov 2013 10:59:18 -0500</PostedAt>
<EditAt>Thu, 21 Nov 2013 10:59:18 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="38687" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38687">
<Title>An Introduction To Full-Stack JavaScript</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>Nowadays, with any Web app you build, you have dozens of architectural decisions to make. And you want to make the right ones: <strong>You want to use technologies that allow for rapid development</strong>, constant iteration, maximal efficiency, speed, robustness and more. You want to be lean and you want to be agile. You want to use technologies that will help you succeed in the short and long term. And those technologies are not always easy to pick out.</p>
    <p>In my experience, <a href="http://theothersideofcode.com/building-full-javascript-application-stack" rel="nofollow external" class="bo">full-stack JavaScript</a> hits all the marks. You’ve probably seen it around; perhaps you’ve considered its usefulness and even debated it with friends. But have you tried it yourself? In this post, I’ll give you an overview of why full-stack JavaScript might be right for you and how it works its magic.</p>
    <p>To give you a quick preview:</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/toptal-blog-image-large-opt.png" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/11/toptal-blog-500-opt.png" alt="toptal-blog-500-opt" width="500" height="561" style="max-width: 100%; height: auto;"></a><br>
    <em>(<a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/toptal-blog-image-large-opt.png" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>I’ll introduce these components piece by piece. But first, a short note on how we got to where we are today.</p>
    <h3>Why I Use JavaScript</h3>
    <p>I’ve been a Web developer since 1998. Back then, <a href="http://www.theperlreview.com/articles/php.html" rel="nofollow external" class="bo">we used Perl</a> for most of our server-side development; but even since then, we’ve had JavaScript on the client side. Web server technologies have changed immensely since then: We went through wave after wave of languages and technologies, such as PHP, ASP, JSP, .NET, Ruby, Python, just to name a few. Developers began to realize that using two different languages for the client and server environments complicates things.</p>
    <p>In the early era of PHP and ASP, when template engines were just an idea, <strong>developers embedded application code in their HTML</strong>. Seeing embedded scripts like this was not uncommon:</p>
    <pre><code>&#x000A;    &lt;script&gt;&#x000A;        &lt;?php&#x000A;            if ($login == true){&#x000A;        ?&gt;&#x000A;        alert("Welcome");&#x000A;        &lt;?php&#x000A;            }&#x000A;        ?&gt;&#x000A;    &lt;/script&gt;&#x000A;    </code></pre>
    <p>Or, even worse:</p>
    <pre><code>&#x000A;    &lt;script&gt;&#x000A;        var users_deleted = [];&#x000A;        &lt;?php&#x000A;            $arr_ids = array(1,2,3,4);&#x000A;            foreach($arr_ids as $value){&#x000A;        ?&gt;&#x000A;        users_deleted.push("&lt;php&gt;");&#x000A;        &lt;?php&#x000A;            }&#x000A;        ?&gt;&#x000A;    &lt;/script&gt;&#x000A;    </code></pre>
    <p>For starters, there were the typical errors and confusing statements between languages, such as <code>for</code> and <code>foreach</code>. Furthermore, writing code like this on the server and on the client to handle the same data structure is uncomfortable even today (unless, of course, you have a development team with engineers dedicated to the front end and engineers for the back end — but even if they can share information, they wouldn’t be able to collaborate on each other’s code):</p>
    <pre><code>&#x000A;    &lt;?php&#x000A;        $arr = array("apples", "bananas", "oranges", "strawberries"),&#x000A;        $obj = array();&#x000A;        $i = 10;&#x000A;        foreach($arr as $fruit){&#x000A;            $obj[$fruit] = $i;&#x000A;            $i += 10;&#x000A;        }&#x000A;        echo json_encode(obj);&#x000A;    ?&gt;&#x000A;    &lt;script&gt;&#x000A;        $.ajax({&#x000A;            url:"/json.php",&#x000A;            success: function(data){&#x000A;                var x;&#x000A;                for(x in data){&#x000A;                    alert("fruit:" + x + " points:" + data[x]);&#x000A;                }&#x000A;            }&#x000A;        });&#x000A;    &lt;/script&gt;&#x000A;    </code></pre>
    <p>The initial attempts to unify under a single language were to create client components on the server and compile them to JavaScript. This didn’t work as expected, and most of those projects failed (for example, ASP MVC replacing <a href="http://stackoverflow.com/questions/102558/biggest-advantage-to-using-asp-net-mvc-vs-web-forms" rel="nofollow external" class="bo">ASP.NET Web forms</a>, and <a href="http://www.gwtproject.org/overview.html" rel="nofollow external" class="bo">GWT</a> arguably being replaced in the near future by <a href="http://www.2ality.com/2013/05/google-polymer.html" rel="nofollow external" class="bo">Polymer</a>). But the idea was great, in essence: a single language on the client and the server, enabling us to reuse components and resources (and this is the keyword: resources).</p>
    <p>The answer was simple: <strong>Put JavaScript on the server.</strong></p>
    <p>JavaScript was actually <a href="http://www.infoworld.com/d/application-development/javascript-conquers-the-server-969" rel="nofollow external" class="bo">born server-side</a> in Netscape Enterprise Server, but the language simply wasn’t ready at the time. After years of trial and error, <a href="http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js" rel="nofollow external" class="bo">Node.js</a> finally emerged, which not only put JavaScript on the server, but also promoted the idea of <a href="http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/" rel="nofollow external" class="bo">non-blocking programming</a>, bringing it from the world of nginx, thanks to the Node creator’s nginx background, and (wisely) keeping it simple, thanks to JavaScript’s event-loop nature.</p>
    <p>(In a sentence, non-blocking programming aims to put time-consuming tasks off to the side, usually by specifying what should be done when these tasks are completed, and allowing the processor to handle other requests in the meantime.)</p>
    <p><strong>Node.js changed the way we handle I/O access forever.</strong> As Web developers, we were used to the following lines when accessing databases (I/O):</p>
    <pre><code>&#x000A;    var resultset = db.query("SELECT * FROM 'table'");&#x000A;    drawTable(resultset);&#x000A;    </code></pre>
    <p>This line essentially blocks your code, because your program stops running until your database driver has a <code>resultset</code> to return. In the meantime, your platform’s infrastructure provides the means for concurrency, usually using threads and forks.</p>
    <p>With Node.js and non-blocking programming, we’re given more control over program flow. Now (even if you still have parallel execution hidden by your database (I/O) driver), you can define what the program should do in the meantime and what it <em>will do</em> when you receive the <code>resultset</code>:</p>
    <pre><code>&#x000A;    db.query("SELECT * FROM 'table'", function(resultset){&#x000A;       drawTable(resultset);&#x000A;    });&#x000A;    doSomeThingElse();&#x000A;    </code></pre>
    <p>With this snippet, we’ve defined two program flows: The first handles our actions just after sending the database query, while the second handles our actions just after we receive our <code>resultSet</code> using a simple callback. This is an elegant and powerful way to manage concurrency. As they say, <strong>“Everything runs in parallel — except your code.”</strong> Thus, your code will be easy to write, read, understand and maintain, all without your losing control over program flow.</p>
    <p>These ideas weren’t new at the time — so, why did they become so popular with Node.js? Simple: Non-blocking programming can be achieved in several ways. Perhaps the easiest is to use callbacks and an <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop" rel="nofollow external" class="bo">event loop</a>. In most languages, that’s not an easy task: While callbacks are a common feature in some other languages, an event loop is not, and you’ll often find yourself grappling with external libraries (for example, Python with <a href="http://www.tornadoweb.org/en/stable/" rel="nofollow external" class="bo">Tornado</a>).</p>
    <p>But in JavaScript, <a href="http://www.impressivewebs.com/callback-functions-javascript/" rel="nofollow external" class="bo">callbacks</a> are built into the language, as is the event loop, and almost every programmer who has even dabbled in JavaScript is familiar with them (or at least has used them, even if they <a href="http://developer.yahoo.com/blogs/ydn/part-1-understanding-event-loops-writing-great-code-11401.html" rel="nofollow external" class="bo">don’t quite understand what the event loop is</a>). Suddenly, every startup on Earth could reuse developers (i.e. resources) on both the client and server side, solving the “Python Guru Needed” <a href="http://www.wantedanalytics.com/insight/2011/05/24/computer-programmers-are-in-demand-employers-post-220000-new-jobs-over-past-30-days-4/" rel="nofollow external" class="bo">job posting problem</a>.</p>
    <p>So, now we have an <a href="http://chetansurpur.com/blog/2010/10/why-node-js-is-totally-awesome.html" rel="nofollow external" class="bo">incredibly fast platform</a> (thanks to non-blocking programming), with a programming language that’s incredibly easy to use (thanks to JavaScript). But is it enough? Will it last? I’m sure JavaScript will have an important place in the future. Let me tell you why.</p>
    <h4>Functional Programming</h4>
    <p>JavaScript was the first programming language to <a href="http://www.crockford.com/javascript/javascript.html" rel="nofollow external" class="bo">bring the functional paradigm</a> to the masses (of course, Lisp came first, but most programmers have never built a production-ready application using it). Lisp and Self, <a href="http://exploringdata.github.io/vis/programming-languages-influence-network/#JavaScript" rel="nofollow external" class="bo">Javascript’s main influences</a>, are full of innovative ideas that can free our minds to explore new techniques, patterns and paradigms. And they all carry over to JavaScript. Take a look at <a href="http://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/" rel="nofollow external" class="bo">monads</a>, <a href="http://uxul.wordpress.com/2009/03/02/generating-church-numbers-with-javascript/" rel="nofollow external" class="bo">Church numbers</a> or even (for a more practical example) <a href="http://underscorejs.org" rel="nofollow external" class="bo">Underscore</a>’s <a href="http://underscorejs.org/#collections" rel="nofollow external" class="bo">collections functions</a>, which can save you lines and lines of code.</p>
    <h4>Dynamic Objects and Prototypal Inheritance</h4>
    <p>Object-oriented programming without classes (and without endless hierarchies of classes) allows for fast development — just create objects, add methods and use them. More importantly, it reduces refactoring time during maintenance tasks by enabling the programmer to modify instances of objects, instead of classes. This speed and flexibility pave the way for rapid development.</p>
    <h4>JavaScript Is the Internet</h4>
    <p>JavaScript was <a href="http://www.computer.org/csdl/mags/co/2012/02/mco2012020007.pdf" rel="nofollow external" class="bo">designed for the Internet</a>. It’s been here since the beginning, and it’s <a href="http://www.netmagazine.com/news/firefox-23-hide-disable-javascript-option-132851" rel="nofollow external" class="bo">not going away</a>. All attempts to destroy it have failed; recall, for instance, the downfall of <a href="http://jaxenter.com/douglas-crockford-java-was-a-colossal-failure-javascript-is-succeeding-because-it-works-45928.html" rel="nofollow external" class="bo">Java Applets</a>, VBScript’s replacement by <a href="http://www.typescriptlang.org" rel="nofollow external" class="bo">Microsoft’s TypeScript</a> (which compiles to JavaScript), and Flash’s demise at the hands of the <a href="http://www.buuteeq.com/blog/html5-and-the-death-of-flash/" rel="nofollow external" class="bo">mobile market and HTML5</a>. <strong>Replacing JavaScript without breaking millions of Web pages is impossible</strong>, so our goal going forward should be to improve it. And no one is better suited for the job than <a href="http://www.ecma-international.org/memento/TC39.htm" rel="nofollow external" class="bo">Technical Committee 39</a> of ECMA.</p>
    <p>Sure, alternatives to JavaScript are born every day, like <a href="http://coffeescript.org" rel="nofollow external" class="bo">CoffeeScript</a>, <a href="http://www.typescriptlang.org" rel="nofollow external" class="bo">TypeScript</a> and the <a href="https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS" rel="nofollow external" class="bo">millions of languages that compile to JavaScript</a>. These alternatives might be useful for development stages (<a href="http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/" rel="nofollow external" class="bo">via source maps</a>), but they will fail to supplant JavaScript in the long run for two reasons: Their communities will never be bigger, and their best features will be adopted by ECMAScript (i.e. JavaScript). JavaScript is not an assembly language: It’s a high-level programming language with source code that you can understand — so, you <em>should</em> understand it.</p>
    <h3>End-to-End JavaScript: Node.js And MongoDB</h3>
    <p>We’ve covered the reasons to use JavaScript. Next, we’ll look at JavaScript as a reason to use Node.js and MongoDB.</p>
    <h4>Node.js</h4>
    <p><a href="http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js" rel="nofollow external" class="bo">Node.js</a> is a platform for building fast and scalable network applications — that’s pretty much what the Node.js website says. But Node.js is more than that: It’s the hottest JavaScript runtime environment around right now, used by a ton of applications and libraries — <strong>even browser libraries are now running on Node.js</strong>. More importantly, this fast server-side execution allows developers to focus on more complex problems, such as <a href="https://github.com/NaturalNode/natural" rel="nofollow external" class="bo">Natural</a> for <a href="http://en.wikipedia.org/wiki/Natural_language_processing" rel="nofollow external" class="bo">natural language processing</a>. Even if you don’t plan to write your main server application with Node.js, you can use tools built on top of Node.js to improve your development process; for example, <a href="http://bower.io/" rel="nofollow external" class="bo">Bower</a> for front-end package management, <a href="http://visionmedia.github.io/mocha/" rel="nofollow external" class="bo">Mocha</a> for unit testing, <a href="http://gruntjs.com" rel="nofollow external" class="bo">Grunt</a> for automated build tasks and even <a href="http://brackets.io" rel="nofollow external" class="bo">Brackets</a> for full-text code editing.</p>
    <p>So, if you’re going to write JavaScript applications for the server or the client, you should become familiar with Node.js, because you will need it daily. Some interesting <a href="http://vertx.io/" rel="nofollow external" class="bo">alternatives</a> exist, but none have even 10% of Node.js’ community.</p>
    <h4>MongoDB</h4>
    <p><a href="http://www.mongodb.org" rel="nofollow external" class="bo">MongoDB</a> is a <a href="https://en.wikipedia.org/wiki/NoSQL" rel="nofollow external" class="bo">NoSQL</a> document-based database that uses JavaScript as its query language (but is not written in JavaScript), thus completing our end-to-end JavaScript platform. But that’s not even the main reason to choose this database.</p>
    <p>MongoDB is <a href="http://blog.mongodb.org/post/119945109/why-schemaless" rel="nofollow external" class="bo">schema-less</a>, <strong>enabling you to persist objects in a flexible way</strong> and, thus, adapt quickly to changes in requirements. Plus, it’s highly <a href="http://siliconangle.com/blog/2013/06/21/mongodb-brings-speed-scalability-and-performance-to-handling-unstructured-data-mongodbdays/" rel="nofollow external" class="bo">scalable</a> and <a href="http://docs.mongodb.org/manual/core/map-reduce/" rel="nofollow external" class="bo">based on map-reduce</a>, making it suitable for big data applications. MongoDB is so flexible that it can be used as a schema-less document database, a relational data store (although it <a href="http://docs.mongodb.org/manual/faq/fundamentals/" rel="nofollow external" class="bo">lacks</a> <a href="http://en.wikipedia.org/wiki/Database_transaction" rel="nofollow external" class="bo">transactions</a>, which can only be <a href="http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/" rel="nofollow external" class="bo">emulated</a>) and even as a key-value store for caching responses, like <a href="http://memcached.org" rel="nofollow external" class="bo">Memcached</a> and <a href="http://redis.io" rel="nofollow external" class="bo">Redis</a>.</p>
    <h3>Server Componentization With Express</h3>
    <p>Server-side componentization is never easy. But with <a href="http://expressjs.com" rel="nofollow external" class="bo">Express</a> (and <a href="http://www.senchalabs.org/connect/" rel="nofollow external" class="bo">Connect</a>) came the idea of “middleware.” In my opinion, middleware is the best way to define components on the server. If you want to compare it to a known pattern, it’s pretty close to pipes and filters.</p>
    <p><strong>The basic idea is that your component is part of a pipeline.</strong> The pipeline processes a request (i.e. the input) and generates a response (i.e. the output), but your component isn’t responsible for the entire response. Instead, it modifies only what it needs to and then delegates to the next piece in the pipeline. When the last piece of the pipeline finishes processing, the response is sent back to the client.</p>
    <p>We refer to these pieces of the pipeline as middleware. Clearly, we can create two kinds of middleware:</p>
    <ul>
    <li>
    <strong>Intermediates</strong><br>
    An intermediate processes the request and the response but is not fully responsible for the response itself and so delegates to the next middleware.</li>
    <li>
    <strong>Finals</strong><br>
    A final has full responsibility over the final response. It processes and modifies the request and the response but doesn’t need to delegate to the next middleware. In practice, delegating to the next middleware anyway will allow for architectural flexibility (i.e. for adding more middleware later), even if that middleware doesn’t exist (in which case, the response would go straight to the client).
    </li>
    </ul>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/user-manager-large-opt.png" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/11/user-manager-500-opt.png" alt="user-manager-500-opt" width="500" height="307" style="max-width: 100%; height: auto;"></a><br>
    <em>(<a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/user-manager-large-opt.png" rel="nofollow external" class="bo">Large view</a>)</em></p>
    <p>As a concrete example, <strong>consider a “user manager” component on the server</strong>. In terms of middleware, we’d have both finals and intermediates. For our finals, we’d have such features as creating a user and listing users. But before we can perform those actions, we need our intermediates for authentication (because we don’t want unauthenticated requests coming in and creating users). Once we’ve created these authentication intermediates, we can just plug them in anywhere that we want to turn a previously unauthenticated feature into an authenticated feature.</p>
    <h3>Single-Page Applications</h3>
    <p>When working with full-stack JavaScript, you’ll often focus on creating <a href="http://en.wikipedia.org/wiki/Single-page_application" rel="nofollow external" class="bo">single-page applications</a> (SPAs). Most Web developers are tempted more than once to try their hand at SPAs. I’ve built several (mostly proprietary), and I believe that they are simply the <a href="https://medium.com/tech-talk/fb44da86dc1f" rel="nofollow external" class="bo">future of Web applications</a>. Have you ever compared an SPA to a regular Web app on a mobile connection? The <strong>difference in responsiveness</strong> is in the order of tens of seconds.</p>
    <p>(Note: Others might disagree with me. Twitter, for example, <a href="https://blog.twitter.com/2012/improving-performance-twittercom" rel="nofollow external" class="bo">rolled back its SPA approach</a>. Meanwhile, large websites such as <a href="http://techcrunch.com/2012/11/30/why-enterprise-apps-are-moving-to-single-page-design/" rel="nofollow external" class="bo">Zendesk</a> are moving towards it. I’ve seen enough evidence of the benefits of SPAs to believe in them, but experiences vary.)</p>
    <p>If SPAs are so great, why build your product in a legacy form? A common argument I hear is that people are worried about SEO. But if you handle things correctly, this shouldn’t be an issue: You can take different approaches, from <a href="https://vickev.com/#!/article/easily-index-your-single-page-application-thanks-to-phantomjs" rel="nofollow external" class="bo">using a headless browser</a> (such as <a href="http://phantomjs.org/" rel="nofollow external" class="bo">PhantomJS</a>) to render the HTML when a Web crawler is detected to performing <a href="http://www.youtube.com/watch?v=sGpHDHAIpYE" rel="nofollow external" class="bo">server-side rendering</a> with the help of existing frameworks.</p>
    <h3>Client Side MV* With Backbone.js, Marionette And Twitter Bootstrap</h3>
    <p>Much has been said about <a href="http://blog.stevensanderson.com/2012/08/01/rich-javascript-applications-the-seven-frameworks-throne-of-js-2012/" rel="nofollow external" class="bo">MV* frameworks for SPAs</a>. It’s a tough choice, but I’d say that the top three are <a href="http://backbonejs.org" rel="nofollow external" class="bo">Backbone.js</a>, <a href="http://emberjs.com" rel="nofollow external" class="bo">Ember</a> and <a href="http://angularjs.org" rel="nofollow external" class="bo">AngularJS</a>.</p>
    <p>All three are very well regarded. But <a href="http://todomvc.com" rel="nofollow external" class="bo">which is best for you</a>?</p>
    <p>Unfortunately, I must admit that I have limited experience with AngularJS, so I’ll leave it out of the discussion. Now, Ember and Backbone.js represent two different ways of attacking the same problem.</p>
    <p><a href="http://www.toptal.com/backbone-js/" rel="nofollow external" class="bo">Backbone.js</a> is minimal and offers just enough for you to create a simple SPA. Ember, on the other hand, is a complete and professional framework for creating SPAs. It has more bells and whistles, but also a steeper learning curve. (You can read <a href="http://coding.smashingmagazine.com/2013/11/07/an-in-depth-introduction-to-ember-js/" rel="nofollow external" class="bo">more about Ember.js here</a>.)</p>
    <p>Depending on the size of your application, the decision could be as easy as <strong>looking at the “features used” to “features available” ratio</strong>, which will give you a big hint.</p>
    <p>Styling is a challenge as well, but again, we can count on frameworks to bail us out. For CSS, <a href="http://twitter.github.io/bootstrap/" rel="nofollow external" class="bo">Twitter Bootstrap</a> is a good choice because it offers a complete set of styles that are both ready to use out of the box and <a href="http://coding.smashingmagazine.com/2013/03/12/customizing-bootstrap/" rel="nofollow external" class="bo">easy to customize</a>.</p>
    <p>Bootstrap was created in the <a href="http://lesscss.org/" rel="nofollow external" class="bo">LESS</a> language, and it’s open source, so we can modify it if need be. It comes with a ton of UX controls that are <a href="http://twitter.github.io/bootstrap/components.html" rel="nofollow external" class="bo">well documented</a>. Plus, a <a href="http://twitter.github.io/bootstrap/customize.html" rel="nofollow external" class="bo">customization model</a> enables you to create your own. It is definitely the right tool for the job.</p>
    <h3>Best Practices: Grunt, Mocha, Chai, RequireJS and CoverJS</h3>
    <p>Finally, we should define some best practices, as well as mention how to implement and maintain them. Typically, my solution centers on several tools, which themselves are based on Node.js.</p>
    <h4>Mocha and Chai</h4>
    <p>These tools enable you to improve your development process by applying <a href="http://www.agiledata.org/essays/tdd.html" rel="nofollow external" class="bo">test-driven development</a> (TDD) or <a href="http://dannorth.net/introducing-bdd/" rel="nofollow external" class="bo">behavior-driven development</a> (BDD), creating the infrastructure to organize your unit tests and a runner to automatically run them.</p>
    <p><a href="http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#JavaScript" rel="nofollow external" class="bo">Plenty</a> of unit test frameworks exist for JavaScript. Why use Mocha? The short answer is that it’s flexible and complete.</p>
    <p>The long answer is that it has two important features (interfaces and reporters) and one significant absence (assertions). Allow me to explain:</p>
    <ul>
    <li>
    <strong>Interfaces</strong><br>
    Maybe you’re used to TDD concepts of suites and unit tests, or perhaps you prefer BDD ideas of behavior specifications with <code>describe</code> and <code>should</code>. Mocha lets you use both approaches.</li>
    <li>
    <strong>Reporters</strong><br>
    Running your test will generate reports of the results, and you can format these results using various reporters. For example, if you need to feed a continuous integration server, you’ll find a reporter to do just that.</li>
    <li>
    <strong>Lack of an assertion library</strong><br>
    Far from being a problem, Mocha was designed to let you use the assertion library of your choice, giving you even more flexibility. You have <a href="http://stackoverflow.com/questions/10472152/standalone-assertion-libraries#answer-10480546" rel="nofollow external" class="bo">plenty of options</a>, and this is where Chai comes into play.</li>
    </ul>
    <p>Chai is a flexible assertion library that lets you use any of the three major assertion styles:</p>
    <ul>
    <li>
    <code>assert</code><br>
    This is the classic assertion style from old-school TDD. For example:
    <pre><code>&#x000A;    assert.equal(variable, "value");&#x000A;    </code></pre>
    </li>
    <li>
    <code>expect</code><br>
    This chainable assertion style is most commonly used in BDD. For example:
    <pre><code>&#x000A;    expect(variable).to.equal("value");&#x000A;    </code></pre>
    </li>
    <li>
    <code>should</code><br>
    This is also used in BDD, but I prefer <code>expect</code> because <code>should</code> often sounds repetitive (i.e. with the behavior specification of “it (should do something…)”). For example:
    <pre><code>&#x000A;    variable.should.equal("value");&#x000A;    </code></pre>
    </li>
    </ul>
    <p>Chai combines perfectly with Mocha. Using just these two libraries, you can write your tests in TDD, BDD or any style imaginable.</p>
    <h4>Grunt</h4>
    <p>Grunt enables you to automate build tasks, anything including simple copying-and-pasting and concatenation of files, template precompilation, style language (i.e. SASS and LESS) compilation, unit testing (with Mocha), linting and code minification (for example, with <a href="https://github.com/mishoo/UglifyJS" rel="nofollow external" class="bo">UglifyJS</a> or <a href="https://developers.google.com/closure/compiler/" rel="nofollow external" class="bo">Closure Compiler</a>). You can add your own automated task to Grunt or <a href="http://gruntjs.com/plugins" rel="nofollow external" class="bo">search the registry</a>, where hundreds of plugins are available (once again, using a tool with a great community behind it pays off). Grunt can also <a href="https://github.com/gruntjs/grunt-contrib-watch" rel="nofollow external" class="bo">monitor your files</a> and trigger actions when any are modified.</p>
    <h4>RequireJS</h4>
    <p>RequireJS might sound like just another way to load modules with the <a href="https://github.com/amdjs/amdjs-api/wiki/AMD" rel="nofollow external" class="bo">AMD</a> API, but I assure you that it is much more than that. With RequireJS, you can define dependencies and hierarchies on your modules and let the RequireJS library load them for you. It also <strong>provides an easy way to avoid global variable space pollution</strong> by defining all of your modules inside functions. This makes the modules reusable, unlike <a href="http://www.kenneth-truyers.net/2013/04/27/javascript-namespaces-and-modules/" rel="nofollow external" class="bo">namespaced modules</a>. Think about it: If you define a module like <code>Demoapp.helloWordModule</code> and you want to port it to <code>Firstapp.helloWorldModule</code>, then you would need to change every reference to the <code>Demoapp</code> namespace in order to make it portable.</p>
    <p>RequireJS will also help you embrace the <a href="http://merrickchristensen.com/articles/javascript-dependency-injection.html" rel="nofollow external" class="bo">dependency injection</a> pattern. Suppose you have a component that needs an instance of the main application object (a singleton). From using RequireJS, you realize that you shouldn’t use a global variable to store it, and you can’t have an instance as a RequireJS dependency. So, instead, you need to require this dependency in your module constructor. Let’s see an example.</p>
    <p>In <code>main.js</code>:</p>
    <pre><code>&#x000A;      define(&#x000A;          ["App","module"],&#x000A;          function(App, Module){&#x000A;              var app = new App();&#x000A;    &#x000A;              var module = new Module({&#x000A;                  app: app&#x000A;              })&#x000A;    &#x000A;              return app;&#x000A;          }&#x000A;      );&#x000A;    </code></pre>
    <p>In <code>module.js</code>:</p>
    <pre><code>&#x000A;      define([],&#x000A;          function(){&#x000A;              var module = function(options){&#x000A;                  this.app = options.app;&#x000A;              };&#x000A;              module.prototype.useApp = function(){&#x000A;                  this.app.performAction();&#x000A;              };&#x000A;              return module&#x000A;          }&#x000A;      );&#x000A;    </code></pre>
    <p>Note that we cannot define the module with a dependency to <code>main.js</code> without creating a circular reference.</p>
    <h4>CoverJS</h4>
    <p><a href="https://en.wikipedia.org/wiki/Code_coverage" rel="nofollow external" class="bo">Code coverage</a> is a metric for evaluating your tests. As the name implies, it tells you how much of your code is covered by your current test suite. CoverJS measures your tests’ code coverage by instrumenting statements (instead of lines of code, like <a href="http://siliconforks.com/jscoverage/" rel="nofollow external" class="bo">JSCoverage</a>) in your code and generating an instrumented version of the code. It can also generate reports to feed your <a href="http://martinfowler.com/articles/continuousIntegration.html" rel="nofollow external" class="bo">continuous integration</a> server.</p>
    <h3>Conclusion</h3>
    <p>Full-stack JavaScript isn’t the answer to every problem. But its community and technology will carry you a long way. With JavaScript, you can create scalable, maintainable applications, unified under a single language. There’s no doubt, it’s a force to be reckoned with.</p>
    <p><em>(al, ea)</em></p>
    <hr>
    <p><small>© Alejandro Hernandez for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        Nowadays, with any Web app you build, you have dozens of architectural decisions to make. And you want to make the right ones: You want to use technologies that allow for rapid...</Summary>
<Website>http://www.smashingmagazine.com/2013/11/21/an-introduction-to-full-stack-javascript/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38687/guest@my.umbc.edu/f1b1b44f8a2f5ba6a5861f1a0a50b49e/api/pixel</TrackingUrl>
<Tag>coding</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</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>Thu, 21 Nov 2013 10:36:22 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="122948" important="false" status="posted" url="https://my3.my.umbc.edu/posts/122948">
<Title>Support Men&#8217;s Soccer on the Road to Victory!</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img width="150" height="150" src="https://umbc.edu/wp-content/uploads/2022/02/mens-soccer-150x150.jpg" alt="" style="max-width: 100%; height: auto;"><div>
    <div>
    <p><a href="http://umbcgiving.files.wordpress.com/2013/11/mens-soccer.jpg" rel="nofollow external" class="bo"><img alt="men's soccer" src="http://umbcgiving.files.wordpress.com/2013/11/mens-soccer.jpg?w=640" width="640" height="236" style="max-width: 100%; height: auto;"></a>On Saturday, November 16, the UMBC men’s soccer team made the Retriever family proud as they clinched the America East Championship with a 4-0 win over third-seeded Hartford. The team is unbeaten in nine straight contests and you can help them continue their winning streak!</p>
    <h3>How can you help?</h3>
    <div>
    <p><em>Make a gift:</em> Celebrate our 2013 men’s soccer team members and coaching staff. <a href="https://givecorps.com/en/umbc/projects/874-umbc-athletics-umbc-men-s-soccer" rel="nofollow external" class="bo">Make a gift today to show your pride</a> and help the team on the road to victory!</p>
    </div>
    <p><em>Buy a ticket:</em> Join us on Sunday, Nov. 24, at 5 p.m. as UMBC takes the field for an NCAA tournament game. <a href="http://alumni.umbc.edu/s/1325/UMBC-template-social.aspx?sid=1325&amp;pgid=1053&amp;gid=1&amp;cid=2114&amp;ecid=2114&amp;post_id=0" rel="nofollow external" class="bo">Get your tickets now</a>!</p>
    </div>
    </div>
    <p> </p>
    <p> </p>
    </div>
]]>
</Body>
<Summary>On Saturday, November 16, the UMBC men’s soccer team made the Retriever family proud as they clinched the America East Championship with a 4-0 win over third-seeded Hartford. The team is unbeaten...</Summary>
<Website>https://umbc.edu/stories/support-mens-soccer-on-the-road-to-victory/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/122948/guest@my.umbc.edu/744854520d3790657b0ad7d647f75b99/api/pixel</TrackingUrl>
<Tag>impact</Tag>
<Tag>ncaa</Tag>
<Tag>soccer</Tag>
<Tag>umbc</Tag>
<Tag>umbcgrit</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 21 Nov 2013 10:01:22 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38691" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38691">
<Title>Corner Office: Jess Lee of Polyvore, on the Value of Simplicity</Title>
<Body>
<![CDATA[
    <div class="html-content">The C.E.O. and co-founder of the fashion and style website talks about doing a few things well and streamlining the office culture.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F11%2F22%2Fbusiness%2Fjess-lee-of-polyvore-on-the-value-of-simplicity.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Jess+Lee+of+Polyvore%2C+on+the+Value+of+Simplicity" 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.nytimes.com%2F2013%2F11%2F22%2Fbusiness%2Fjess-lee-of-polyvore-on-the-value-of-simplicity.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Jess+Lee+of+Polyvore%2C+on+the+Value+of+Simplicity" 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.nytimes.com%2F2013%2F11%2F22%2Fbusiness%2Fjess-lee-of-polyvore-on-the-value-of-simplicity.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Jess+Lee+of+Polyvore%2C+on+the+Value+of+Simplicity" 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.nytimes.com%2F2013%2F11%2F22%2Fbusiness%2Fjess-lee-of-polyvore-on-the-value-of-simplicity.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Jess+Lee+of+Polyvore%2C+on+the+Value+of+Simplicity" 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.nytimes.com%2F2013%2F11%2F22%2Fbusiness%2Fjess-lee-of-polyvore-on-the-value-of-simplicity.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Corner+Office%3A+Jess+Lee+of+Polyvore%2C+on+the+Value+of+Simplicity" 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/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/sc/1/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264716905/u/0/f/640387/c/34625/s/33f2f9d6/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The C.E.O. and co-founder of the fashion and style website talks about doing a few things well and streamlining the office culture.      </Summary>
<Website>http://www.nytimes.com/2013/11/22/business/jess-lee-of-polyvore-on-the-value-of-simplicity.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38691/guest@my.umbc.edu/b037aa4c870ed02a29a4affae41d6c83/api/pixel</TrackingUrl>
<Tag>executives-and-management-theory</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>hiring-and-promotion</Tag>
<Tag>jess-lee</Tag>
<Tag>new</Tag>
<Tag>polyvore</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>Thu, 21 Nov 2013 09:47:51 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38686" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38686">
<Title>Doris Duke Conservation Scholars Program</Title>
<Tagline>Great Opportunity at University of Washington in Seattle!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <strong>The University of Washington is thrilled to announce a new program, the Doris Duke Conservation Scholars Program (DDCSP@UW).</strong><span>  The goal of this multi-year conservation immersion program is to broaden participation within conservation, and diversify what it means to be a “conservation professional.” </span><div><span><br></span></div>
    <div>
    <p><strong>We’re looking for 20-25 freshmen and sophomores to join us for an 8 week immersion course this summer.  Our program starts in Seattle (3 weeks) and travels to various landscapes across the state (4 weeks) before returning to the UW campus at the end of the summer (1 week).</strong>  Scholars don’t have to be environmental science, or even science, majors, but should demonstrate a commitment to the environment and to diversity, and be curious, creative and enthusiastic – incipient change-makers. </p>
    <p>Conservation Scholars will:</p>
    <ul>
    <li><span>Explore conservation across urban, managed, and protected environments</span></li>
    <li><span>Connect conservation to cultural heritage and environmental justice</span></li>
    <li><span>Understand conservation in the context of food, water, biodiversity and climate</span></li>
    <li><span>Network with conservation professionals from agencies, NGOs, and academic institutions</span></li>
    </ul>
    <p>The Year 1 experience, <em>Classroom in the Field</em>, starts on June 23rd, 2014. Doris Duke Conservation Scholars will have all travel, insurance, food and lodging paid during their 8-week summer experience and will receive a weekly stipend of $500. Year 1 Scholars may be invited to join a <em>Conservation Solutions Team</em>, or receive a prestigious <em>Conservation Internship</em> in subsequent summers.</p>
    </div>
    </div>
]]>
</Body>
<Summary>The University of Washington is thrilled to announce a new program, the Doris Duke Conservation Scholars Program (DDCSP@UW).  The goal of this multi-year conservation immersion program is to...</Summary>
<Website>http://www.uwconservationscholars.org</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38686/guest@my.umbc.edu/433eca16c1bcb012e42104c7b1694b31/api/pixel</TrackingUrl>
<Tag>research</Tag>
<Tag>summer</Tag>
<Group token="undergradresearch">Undergraduate Research</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/undergradresearch</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xsmall.png?1600355057</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/original.jpg?1600355057</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xxlarge.png?1600355057</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xlarge.png?1600355057</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/large.png?1600355057</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/medium.png?1600355057</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/small.png?1600355057</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xsmall.png?1600355057</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xxsmall.png?1600355057</AvatarUrl>
<Sponsor>Undergraduate Research</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/xxlarge.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/xlarge.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/large.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/medium.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/small.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/xsmall.jpg?1385040942</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/686/79304cca1ad8a247a9bafffd5f4db436/xxsmall.jpg?1385040942</ThumbnailUrl>
<PawCount>4</PawCount>
<CommentCount>1</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 21 Nov 2013 08:35:58 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38729" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38729">
<Title>Ultra HD Wallpapers</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>This is Gallery image<img src="http://www.htmlgoodies.com/uploadedfiles/gallery/gallery-1385040005.jpg" style="max-width: 100%; height: auto;"></p></div>
]]>
</Body>
<Summary>This is Gallery image</Summary>
<Website>http://www.htmlgoodies.com/HTML5/gallery/ultra-hd-wallpapers-131121052505.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38729/guest@my.umbc.edu/319e44d1f2b6e053bc9320c586668f43/api/pixel</TrackingUrl>
<Tag>html</Tag>
<Tag>htmlgoodies</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>Thu, 21 Nov 2013 08:20:06 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38685" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38685">
<Title>Inside the Winbot 730, a Robotic Window Cleaner</Title>
<Body>
<![CDATA[
    <div class="html-content">The cleaning device figures out the size of your window mirror and then cleans the surface on its own.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2Finteractive%2F2013%2F11%2F21%2Ftechnology%2Fhow-a-winbot-730-robotic-window-cleaner-works.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Inside+the+Winbot+730%2C+a+Robotic+Window+Cleaner" 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.nytimes.com%2Finteractive%2F2013%2F11%2F21%2Ftechnology%2Fhow-a-winbot-730-robotic-window-cleaner-works.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Inside+the+Winbot+730%2C+a+Robotic+Window+Cleaner" 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.nytimes.com%2Finteractive%2F2013%2F11%2F21%2Ftechnology%2Fhow-a-winbot-730-robotic-window-cleaner-works.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Inside+the+Winbot+730%2C+a+Robotic+Window+Cleaner" 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.nytimes.com%2Finteractive%2F2013%2F11%2F21%2Ftechnology%2Fhow-a-winbot-730-robotic-window-cleaner-works.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Inside+the+Winbot+730%2C+a+Robotic+Window+Cleaner" 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.nytimes.com%2Finteractive%2F2013%2F11%2F21%2Ftechnology%2Fhow-a-winbot-730-robotic-window-cleaner-works.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Inside+the+Winbot+730%2C+a+Robotic+Window+Cleaner" 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/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/sc/15/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264721000/u/0/f/640387/c/34625/s/33f18e2d/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The cleaning device figures out the size of your window mirror and then cleans the surface on its own.      </Summary>
<Website>http://www.nytimes.com/interactive/2013/11/21/technology/how-a-winbot-730-robotic-window-cleaner-works.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38685/guest@my.umbc.edu/1daa7abb39a74126b6a8bc75dcd3e575/api/pixel</TrackingUrl>
<Tag>new</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>Thu, 21 Nov 2013 07:39:57 -0500</PostedAt>
<EditAt>Thu, 21 Nov 2013 13:16:59 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="38683" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38683">
<Title>Support Men&#8217;s Soccer on the Road to Victory!</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <div>
    <div>
    <p><a href="http://umbcgiving.files.wordpress.com/2013/11/mens-soccer.jpg" rel="nofollow external" class="bo"><img alt="men's soccer" src="http://umbcgiving.files.wordpress.com/2013/11/mens-soccer.jpg?w=640&amp;h=236" width="640" height="236" style="max-width: 100%; height: auto;"></a>On Saturday, November 16, the UMBC men’s soccer team made the Retriever family proud as they clinched the America East Championship with a 4-0 win over third-seeded Hartford. The team is unbeaten in nine straight contests and you can help them continue their winning streak!</p>
    <h3>How can you help?</h3>
    <div>
    <p><em>Make a gift:</em> Celebrate our 2013 men’s soccer team members and coaching staff. <a href="https://givecorps.com/en/umbc/projects/874-umbc-athletics-umbc-men-s-soccer" rel="nofollow external" class="bo">Make a gift today to show your pride</a> and help the team on the road to victory!</p>
    </div>
    <p><em>Buy a ticket:</em> Join us on Sunday, Nov. 24, at 5 p.m. as UMBC takes the field for an NCAA tournament game. <a href="http://alumni.umbc.edu/s/1325/UMBC-template-social.aspx?sid=1325&amp;pgid=1053&amp;gid=1&amp;cid=2114&amp;ecid=2114&amp;post_id=0" rel="nofollow external" class="bo">Get your tickets now</a>!</p>
    </div>
    </div>
    <p> </p>
    <p> </p>
    <br>   </div>
]]>
</Body>
<Summary>On Saturday, November 16, the UMBC men’s soccer team made the Retriever family proud as they clinched the America East Championship with a 4-0 win over third-seeded Hartford. The team is unbeaten...</Summary>
<Website>http://umbcgiving.wordpress.com/2013/11/21/support-mens-soccer-on-the-road-to-victory/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38683/guest@my.umbc.edu/ed14e89db048b37187eacb5e0e468996/api/pixel</TrackingUrl>
<Tag>athletics</Tag>
<Tag>colleges-and-programs</Tag>
<Tag>ncaa</Tag>
<Tag>soccer</Tag>
<Tag>umbc</Tag>
<Tag>umbcgrit</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="retired-548">UMBC Giving</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-548</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/images/avatars/group/11/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/images/avatars/group/11/original.png?1785165141</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/images/avatars/group/11/xxlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/images/avatars/group/11/xlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/images/avatars/group/11/large.png?1785165141</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/images/avatars/group/11/medium.png?1785165141</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/images/avatars/group/11/small.png?1785165141</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/images/avatars/group/11/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/images/avatars/group/11/xxsmall.png?1785165141</AvatarUrl>
<Sponsor>UMBC Giving</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 21 Nov 2013 05:01:22 -0500</PostedAt>
</NewsItem>

</News>
