<?xml version="1.0"?>
<News hasArchived="true" page="8222" pageCount="10735" pageSize="10" timestamp="Tue, 28 Jul 2026 11:16:11 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8222">
<NewsItem contentIssues="true" id="36601" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36601">
<Title>Riff: When Meta Met Data</Title>
<Body>
<![CDATA[
    <div class="html-content">The advent of metadata shows us just how much — and how little — we truly know.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F06%2Fmagazine%2Fwhen-meta-met-data.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Riff%3A+When+Meta+Met+Data" 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%2F10%2F06%2Fmagazine%2Fwhen-meta-met-data.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Riff%3A+When+Meta+Met+Data" 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%2F10%2F06%2Fmagazine%2Fwhen-meta-met-data.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Riff%3A+When+Meta+Met+Data" 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%2F10%2F06%2Fmagazine%2Fwhen-meta-met-data.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Riff%3A+When+Meta+Met+Data" 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%2F10%2F06%2Fmagazine%2Fwhen-meta-met-data.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Riff%3A+When+Meta+Met+Data" 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>
    </div>
]]>
</Body>
<Summary>The advent of metadata shows us just how much — and how little — we truly know.      </Summary>
<Website>http://www.nytimes.com/2013/10/06/magazine/when-meta-met-data.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36601/guest@my.umbc.edu/838cfa6e056916bb627b082cdaa2acb3/api/pixel</TrackingUrl>
<Tag>computers-and-the-internet</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>metadata</Tag>
<Tag>new</Tag>
<Tag>statistics</Tag>
<Tag>technology</Tag>
<Tag>yahoo-inc-yhoo-nasdaq</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 10:38:24 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36568" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36568">
<Title>SURF (Summer Undergraduate Research Fellowship)</Title>
<Tagline>Great paid opportunity at NIST for STEM and other majors!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">Are you interested in physics, material science, chemistry, applied mathematics, computer science and/or engineering? SURF is an 11-week research opportunity for summer 2014 at the National Institute of Standards and Technology, home to three Nobel Prize winners and state-of-the-art laboratories. Participants connect with NIST scientists and engineers through a summer-long lecture series while taking part in groundbreaking research.<br><br>Students receive a $5500 stipend, plus travel and housing allowances.<br><br>If you are interested, please contact Janet McGlynn (<a href="mailto:mcglynn@umbc.edu">mcglynn@umbc.edu</a>) or Devon Fick (<a href="mailto:dfick1@umbc.edu">dfick1@umbc.edu</a>) immediately to be placed on the list to receive information about deadlines and application assistance. <br>
    </div>
]]>
</Body>
<Summary>Are you interested in physics, material science, chemistry, applied mathematics, computer science and/or engineering? SURF is an 11-week research opportunity for summer 2014 at the National...</Summary>
<Website>http://www.umbc.edu/undergrad_ed/research/opportunities/nist.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36568/guest@my.umbc.edu/ae3dc864b3986fc7a6f6e8615885feab/api/pixel</TrackingUrl>
<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://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/xxlarge.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/xlarge.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/large.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/medium.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/small.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/xsmall.jpg?1380896859</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/568/bf87121bf0375fe8077a415dbfe6fec8/xxsmall.jpg?1380896859</ThumbnailUrl>
<PawCount>15</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 10:35:24 -0400</PostedAt>
<EditAt>Mon, 07 Oct 2013 08:14:22 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="36572" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36572">
<Title>DealBook: As Twitter Opens Up, Employees Do, Too</Title>
<Body>
<![CDATA[
    <div class="html-content">As prospective investors pored over Twitter’s financial information, Twitter employees shared photographs and updates.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F04%2Fas-twitter-opens-up-employees-do-too%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+As+Twitter+Opens+Up%2C+Employees+Do%2C+Too" 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%2Fdealbook.nytimes.com%2F2013%2F10%2F04%2Fas-twitter-opens-up-employees-do-too%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+As+Twitter+Opens+Up%2C+Employees+Do%2C+Too" 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%2Fdealbook.nytimes.com%2F2013%2F10%2F04%2Fas-twitter-opens-up-employees-do-too%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+As+Twitter+Opens+Up%2C+Employees+Do%2C+Too" 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%2Fdealbook.nytimes.com%2F2013%2F10%2F04%2Fas-twitter-opens-up-employees-do-too%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+As+Twitter+Opens+Up%2C+Employees+Do%2C+Too" 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%2Fdealbook.nytimes.com%2F2013%2F10%2F04%2Fas-twitter-opens-up-employees-do-too%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+As+Twitter+Opens+Up%2C+Employees+Do%2C+Too" 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/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/sc/15/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176965348022/u/0/f/640387/c/34625/s/320e0c58/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>As prospective investors pored over Twitter’s financial information, Twitter employees shared photographs and updates.      </Summary>
<Website>http://dealbook.nytimes.com/2013/10/04/as-twitter-opens-up-employees-do-too/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36572/guest@my.umbc.edu/a030a6cc45ed2b4a6fd48f95c2903f6a/api/pixel</TrackingUrl>
<Tag>i-p-o-offerings</Tag>
<Tag>new</Tag>
<Tag>technology</Tag>
<Tag>top-headline-1</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 10:11:40 -0400</PostedAt>
<EditAt>Fri, 04 Oct 2013 10:58:51 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="36567" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36567">
<Title>Functional Programming in PHP</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35043&amp;c=612424797" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35043&amp;c=612424797" alt="" style="max-width: 100%; height: auto;"></a><p>The new hype in programming is all about functional programming paradigms. Functional languages are used more and more in greater and better applications. Scala, Haskel, etc. are thriving and other, more conservative languages like Java started to adopt some of the functional programming paradigms (see closures in Java7 and lazy eval for lists in Java8). However, what only few people know is that PHP is quite versatile when it comes to functional programming. All the main functional programming concepts can be expressed in PHP. So, if you are new to functional programming, be prepared to have your mind blown, and if you are already familiar with functional programming, be prepared to have great fun with this tutorial.</p>
    <p></p>
    <hr>
    <h2>Programming Paradigms</h2>
    <p>Without any programming paradigms we could do whatever we want in whatever way we want. While this would lead to extreme flexibility, it would also lead to impossible architectures and very bloated code. Thus, programming paradigms were invented to help us, programmers, to think in a specific way about a specific program and in this way, limit our ability to express our solution.</p>
    <p>Each programming paradigm takes away a freedom from us:</p>
    <ul>
    <li>
    <strong>Modular Programming</strong> takes away unlimited program size.</li>
    <li>
    <strong>Structured and Procedural Programming</strong> are taking away the “go-to” and limits the programmer to sequence, selection and iteration.</li>
    <li>
    <strong>Object Oriented Programming</strong> takes away pointers to functions.</li>
    <li>
    <strong>Functional Programming</strong> takes away assignment and mutable state.</li>
    </ul>
    <hr>
    <h2>Functional Programming Principles</h2>
    <blockquote><p>In functional programming, you have no data represented by variables.</p></blockquote>
    <p>In functional programming <em>everything is a function</em>. And I mean everything. For example a set, as in mathematics, can be represented as several functions. An array or list is also a function or a group of functions.</p>
    <p>In object oriented programming everything is an object. And an object is a collection of data and methods that do actions on those data. Objects have a state, a volatile, mutable state.</p>
    <p>In functional programming, you have no data represented by variables. There are no data containers. Data is not assigned to a variable. Some values may be defined and assigned. However, in most cases they are functions assigned to “variables”. I’ve put “variables” between quotes because in functional programming they are <em>immutable</em>. Even though most functional programming languages do not enforce immutability, in the same way most object oriented languages do not enforce objects, if you change the value after an assignment you are not doing pure functional programming any more.</p>
    <p>Because you don’t have values assigned to variables, in functional programming you have <em>no state</em>.</p>
    <p>Because of no state and no assignments, in functional programming <em>functions have no side effect.</em> And because of the three previous reasons, <em>functions are always predictable</em>. This basically means that if you call a function with the same parameters again and again and again… you will always have the same result. This is a huge advantage over object oriented programming and greatly reduces the complexity of multi-threaded and massively multi-threaded applications.</p>
    <p>But, if we want to express everything in functions, we need to be able to assign them to parameters or return them from other functions. Thus functional programming requires the support for <em>higher-order functions.</em> This basically means that a function can be assigned to a “variable”, sent in as a parameter to another function, and returned as a result of a function.</p>
    <p>Finally, because we have no values in variables, while and for loops are unusual to functional programming and are replaced with recursion.</p>
    <hr>
    <h2>Show Me the Code!</h2>
    <p>Enough talking and philosophy for one lesson. Let’s code!</p>
    <p>Set up a PHP project in your favorite IDE or code editor. Create in it a <code>"Tests"</code> folder. Create two files: <code>FunSets.php</code> in the project’s folder, and <code>FunSetsTest.php</code> in the Tests folder. We will create an application, with tests, that will represent the concept of sets.</p>
    <blockquote><p>In mathematics, a set is a collection of distinct objects, considered as an object in its own right. (wikipedia)</p></blockquote>
    <p>That basically means that sets are a bunch of things in a single place. These sets can be and are characterized by mathematical operations: unions, intersections, differences, etc. And by actionable properties like: contains.</p>
    <h3>Our Programming Limitations</h3>
    <p>So let’s code! But wait. How? Well, to respect the concepts of functional programming we will have to apply the following restrictions to our code:</p>
    <ul>
    <li>
    <strong>No assignments.</strong> – We are not allowed to assign values to variables. We are however allowed to assign functions to variables.</li>
    <li>
    <strong>No mutable state.</strong> – We are not allowed, in case of an assignment, to change the value of that assignment. We are also not allowed to change the value of any variable that had its value set as the parameter for the current function. So, no changing of parameters.</li>
    <li>
    <strong>No while and for loops.</strong> – We are not allowed to used PHP’s “while” and “for” commands. We, however, may define our own method to cycle through the elements of a set and call it foreach/for/while.</li>
    </ul>
    <p>No limitations apply to tests. Because of the nature of PHPUnit, we will use classic object oriented PHP code there. Also, to better accommodate our tests, we will wrap all our production code into a single class.</p>
    <h3>The Set’s Defining Function</h3>
    <p>If you are a seasoned programmer, but unfamiliar with functional programming, <em>now is the time to stop thinking as you do usually</em> and be ready to leave your comfort zone. Forget all your previous ways of reasoning about a problem and imagine all in functions.</p>
    <p>The defining function of a set is its “contains” method.</p>
    <pre>function contains($set, $elem) {&#x000A;    	return $set($elem);&#x000A;    }</pre>
    <p>OK… This is not that obvious, so let’s see how would we use it.</p>
    <pre>$set = function ($element) {return true;};&#x000A;    contains($set, 100);</pre>
    <p>Well, this explains it a little bit better. The function <code>"contains"</code> has two parameters:</p>
    <ul>
    <li>
    <code>$set</code> – represents a set defined as a function.</li>
    <li>
    <code>$elem</code> – represents an element defined as a value.</li>
    </ul>
    <p>In this context, all that <code>"contains"</code> has to do is to apply the function in <code>$set</code> with the parameter <code>$elem</code>. Let’s wrap all in a test.</p>
    <pre>class FunSetsTest extends PHPUnit_Framework_TestCase {&#x000A;    &#x000A;    	private $funSets;&#x000A;    &#x000A;    	protected function setUp() {&#x000A;    		$this-&gt;funSets = new FunSets();&#x000A;    	}&#x000A;    &#x000A;    	function testContainsIsImplemented() {&#x000A;    		// We caracterize a set by its contains function. It is the basic function of a set.&#x000A;    &#x000A;    		$set = function ($element) {return true;};&#x000A;    		$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($set, 100));&#x000A;    	}&#x000A;    }</pre>
    <p>And wrap our production code inside <code>FunSets.php</code> into a class:</p>
    <pre>class FunSets {&#x000A;    &#x000A;    	public function contains($set, $elem) {&#x000A;    		return $set($elem);&#x000A;    	}&#x000A;    }</pre>
    <p>You can actually run this test and it will pass. The set we defined for this test is just a function that always returns true. It is a “true set”.</p>
    <h3>The Singleton Set</h3>
    <p>If the previous chapter was a little bit confusing or looked useless in logic, this one will clarify it a little bit. We want to define a set with a single element, a singleton set. Remember, this has to be a function, and we will want to use it like in the test below.</p>
    <pre>function testSingletonSetContainsSingleElement() {&#x000A;    	// A singleton set is characterize by a function which passed to contains will return true for the single element&#x000A;    	// passed as its parameter. In other words, a singleton is a set with a single element.&#x000A;    &#x000A;    	$singleton = $this-&gt;funSets-&gt;singletonSet(1);&#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($singleton, 1));&#x000A;    }</pre>
    <p>We need to define a function called <code>"singeltonSet"</code> with a parameter representing an element of the set. In the test, that is the number one (1). Then, we expect our <code>contains</code> method, when called with a singleton function, to return <code>true</code> if the sent in parameter equals one. The code that makes the test pass is as follows:</p>
    <pre>public function singletonSet($elem) {&#x000A;    	return function ($otherElem) use ($elem) {&#x000A;    				return $elem == $otherElem;&#x000A;    			};&#x000A;    }</pre>
    <p>Wow! That’s crazy. So, the function <code>"singletonSet"</code> gets as a parameter an element as <code>$elem</code>. Then it returns another function which has a parameter <code>$otherElem</code> and this second function will compare <code>$elem</code> to <code>$otherElem</code>.</p>
    <p>So, how does this work? First, this line:</p>
    <pre>$singleton = $this-&gt;funSets-&gt;singletonSet(1);</pre>
    <p>is transformed into what <code>"singletonSet(1)"</code> returns:</p>
    <pre>$singleton = function ($otherElem) {&#x000A;    		return 1 == $otherElem;&#x000A;    	};</pre>
    <p>Then <code>"contains($singleton, 1)"</code> is called. Which, in turn calls whatever is in <code>$singleton</code>. So the code becomes:</p>
    <pre>$singleton(1)</pre>
    <p>Which actually executes the code in it with <code>$otherElem</code> having the value one.</p>
    <pre>return 1 == 1</pre>
    <p>Which is of course true and our test passes.</p>
    <p>Are you already smiling? Do you feel your brain starting to boil? I certainly did when I first wrote this example in Scala and I did again when I first wrote this example in PHP. I think this is extraordinary. We managed to define a set, with one element, with the ability to check that it contains the value we passed in to it. We did all these without a single assignment of value. We have no variable containing the value one or having a state of one. No state, no assignment, no mutability, no loops. We are on the right track here.</p>
    <hr>
    <h2>Union of Sets</h2>
    <p>Now that we can create a set with a single value, we need to be able to create a set with several values. The obvious way to do it is to define the union operation on our sets. The union of two singleton sets will represent another union with both values. I want you to take a minute and think about the solution before scrolling to the code, maybe take a peak on the tests below.</p>
    <pre>function testUnionContainsAllElements() {&#x000A;    	// A union is characterized by a function which gets 2 sets as parameters and contains all the provided sets&#x000A;    &#x000A;    	// We can only create singletons at this point, so we create 2 singletons and unite them&#x000A;    	$s1 = $this-&gt;funSets-&gt;singletonSet(1);&#x000A;    	$s2 = $this-&gt;funSets-&gt;singletonSet(2);&#x000A;    	$union = $this-&gt;funSets-&gt;union($s1, $s2);&#x000A;    &#x000A;    	// Now, check that both 1 and 2 are part of the union&#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($union, 1));&#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($union, 2));&#x000A;    	// ... and that it does not contain 3&#x000A;    	$this-&gt;assertFalse($this-&gt;funSets-&gt;contains($union, 3));&#x000A;    }</pre>
    <p>We want a function called <code>"union"</code> that gets two parameters, both sets. Remember, sets are just functions for us, so our <code>"union"</code> function will get two functions as parameters. Then, we want to be able to check with <code>"contains"</code> if the union contains an element or not. So, our <code>"union"</code> function must return another function that <code>"contains"</code> can use.</p>
    <pre>public function union($s1, $s2) {&#x000A;    	return function ($otherElem) use ($s1, $s2) {&#x000A;    				return $this-&gt;contains($s1, $otherElem) || $this-&gt;contains($s2, $otherElem);&#x000A;    			};&#x000A;    }</pre>
    <p>This is actually working quite well. And it is perfectly valid even when your union is called with another union plus a singleton. It calls <code>contains</code> inside itself for each parameter. If it’s a union, it will recurse. It’s that simple.</p>
    <hr>
    <h2>Intersect and Difference</h2>
    <p>We can apply the same one liner logic with minor changes to obtain the next two most important functions that characterize a set: intersection – contains only the common elements between two sets – and difference – contains only those elements from the first set that are not part of the second set.</p>
    <pre>public function intersect($s1, $s2) {&#x000A;    	return function ($otherElem) use ($s1, $s2) {&#x000A;    				return $this-&gt;contains($s1, $otherElem) &amp;&amp; $this-&gt;contains($s2, $otherElem);&#x000A;    			};&#x000A;    }&#x000A;    &#x000A;    public function diff($s1, $s2) {&#x000A;    	return function ($otherElem) use ($s1, $s2) {&#x000A;    				return $this-&gt;contains($s1, $otherElem) &amp;&amp; !$this-&gt;contains($s2, $otherElem);&#x000A;    			};&#x000A;    }</pre>
    <p>I won’t flood you with the test code for these two methods. The tests are written and you can check them if you look in the attached code.</p>
    <hr>
    <h2>Filter Set</h2>
    <p>Well, this is a bit more complicated, we won’t be able to solve this with a single line of code. A filter is a function that uses two parameters: a set and a filtering function. It applies the filtering function to a set and returns another set that contains only the elements that satisfy the filtering function. To better understand it, here is the test for it.</p>
    <pre>function testFilterContainsOnlyElementsThatMatchConditionFunction() {&#x000A;    	$u12 = $this-&gt;createUnionWithElements(1, 2);&#x000A;    	$u123 = $this-&gt;funSets-&gt;union($u12, $this-&gt;funSets-&gt;singletonSet(3));&#x000A;    &#x000A;    	// Filtering rule, find elements greater than 1 (meaning 2 and 3)&#x000A;    	$condition = function($elem) {return $elem &gt; 1;};&#x000A;    &#x000A;    	// Filtered set&#x000A;    	$filteredSet = $this-&gt;funSets-&gt;filter($u123, $condition);&#x000A;    &#x000A;    	// Verify filtered set does not contain 1&#x000A;    	$this-&gt;assertFalse($this-&gt;funSets-&gt;contains($filteredSet, 1), "Should not contain 1");&#x000A;    	// Check it contains 2 and 3&#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($filteredSet, 2), "Should contain 2");&#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;contains($filteredSet, 3), "Should contain 3");&#x000A;    }&#x000A;    &#x000A;    private function createUnionWithElements($elem1, $elem2) {&#x000A;    	$s1 = $this-&gt;funSets-&gt;singletonSet($elem1);&#x000A;    	$s2 = $this-&gt;funSets-&gt;singletonSet($elem2);&#x000A;    	return $this-&gt;funSets-&gt;union($s1, $s2);&#x000A;    }</pre>
    <p>We create a set with three elements: 1, 2, 3. And we place it into the variable <code>$u123</code> so it is easily identifiable in our tests. Then we define a function we want to apply to the test and place it into <code>$condition</code>. Finally, we call filter on our <code>$u123</code> set with <code>$condition</code> and place the resulting set into <code>$filteredSet</code>. Then we run assertions with <code>"contains"</code> to determine if the set looks how we want. Our condition function is simple, it will return true if the element is greater than one. So our final set should contain only the values two and three, and this is what we check in our assertions.</p>
    <pre>public function filter($set, $condition) {&#x000A;    	return function ($otherElem) use ($set, $condition) {&#x000A;    				if ($condition($otherElem))&#x000A;    					return $this-&gt;contains($set, $otherElem);&#x000A;    				return false;&#x000A;    			};&#x000A;    }</pre>
    <p>And here you go. We implemented filtering with just three lines of code. More precisely, if the condition applies to the provided element, we run a contains on the set for that element. If not, we just return <code>false</code>. That’s it.</p>
    <hr>
    <h2>Looping Over Elements</h2>
    <p>The next step is to create various looping functions. The first one, <em>“forall()”</em>, will take a <code>$set</code> and a <code>$condition</code> and return <code>true</code> if <code>$condition</code> applies to all the elements of the <code>$set</code>. This leads to the following test:</p>
    <pre>function testForAllCorrectlyTellsIfAllElementsSatisfyCondition() {&#x000A;    	$u123 = $this-&gt;createUnionWith123();&#x000A;    &#x000A;    	$higherThanZero = function($elem) { return $elem &gt; 0; };&#x000A;    	$higherThanOne = function($elem) { return $elem &gt; 1; };&#x000A;    	$higherThanTwo = function($elem) { return $elem &gt; 2; };&#x000A;    &#x000A;    	$this-&gt;assertTrue($this-&gt;funSets-&gt;forall($u123, $higherThanZero));&#x000A;    	$this-&gt;assertFalse($this-&gt;funSets-&gt;forall($u123, $higherThanOne));&#x000A;    	$this-&gt;assertFalse($this-&gt;funSets-&gt;forall($u123, $higherThanTwo));&#x000A;    }</pre>
    <p>We extracted the <code>$u123</code> creation from the previous test into a private method. Then we define three different conditions: higher than zero, higher than one, and higher than two. As our set contains the numbers one, two, and three, only the higher than zero condition should return true, the rest should be false. Indeed, we can make the test pass with the help of another recursive method use to iterate over all the elements.</p>
    <pre>private $bound = 1000;&#x000A;    &#x000A;    private function forallIterator($currentValue, $set, $condition) {&#x000A;    	if ($currentValue &gt; $this-&gt;bound)&#x000A;    		return true;&#x000A;    	elseif ($this-&gt;contains($set, $currentValue))&#x000A;    		return $condition($currentValue) &amp;&amp; $this-&gt;forallIterator($currentValue + 1, $set, $condition);&#x000A;    	else&#x000A;    		return $this-&gt;forallIterator($currentValue + 1, $set, $condition);&#x000A;    }&#x000A;    &#x000A;    public function forall($set, $condition) {&#x000A;    	return $this-&gt;forallIterator(-$this-&gt;bound, $set, $condition);&#x000A;    }</pre>
    <p>We start by defining some limits for our set. The values must be between -1000 and +1000. This is a reasonable limitation we impose in order to keep this example simple enough. The function <code>"forall"</code> will call the private method <code>"forallIterator"</code> with the necessary parameters to recursively decide if all elements respect the condition. In this function, we first test if we are out of bounds. If yes, return true. Then check if our set contains the current value and return the current value applied to the condition together with a logical “AND” with a recursive call to ourselves with the next value. Otherwise, just call ourselves with the next value and return the result.</p>
    <p>This works just fine, we can implement it in the same manner as <code>"exists()"</code>. This returns <code>true</code> if any of the elements satisfies the condition.</p>
    <pre>private function existsIterator($currentValue, $set, $condition) {&#x000A;    	if ($currentValue &gt; $this-&gt;bound)&#x000A;    		return false;&#x000A;    	elseif ($this-&gt;contains($set, $currentValue))&#x000A;    		return $condition($currentValue) || $this-&gt;existsIterator($currentValue + 1, $set, $condition);&#x000A;    	else&#x000A;    		return $this-&gt;existsIterator($currentValue + 1, $set, $condition);&#x000A;    }&#x000A;    &#x000A;    public function exists($set, $condition) {&#x000A;    	return $this-&gt;existsIterator(-$this-&gt;bound, $set, $condition);&#x000A;    }</pre>
    <p>The only difference is that we return <code>false</code> when out of bounds and we use “OR” instead of “AND” in the second if.</p>
    <p>Now, <code>"map()"</code> will be different, simpler and shorter.</p>
    <pre>public function map($set, $action) {&#x000A;    	return function ($currentElem) use ($set, $action) {&#x000A;    		return $this-&gt;exists($set, function($elem) use ($currentElem, $action) {&#x000A;    			return $currentElem == $action($elem);&#x000A;    		});&#x000A;    	};&#x000A;    }</pre>
    <p>Mapping means we apply an action to all the elements of a set. For map, we need no helper iterator, we can reuse <code>"exists()"</code> and return those elements of “exists” that satisfy the result of <code>$action</code> applied to <code>$element</code>. This may not be obvious at first site, so let’s see what is happening.</p>
    <ul>
    <li>We send the set <code>{ 1, 2 }</code> and the action <code>$element * 2 (double)</code> to map.</li>
    <li>It will return a function, obviously, which has a parameter as an element and uses the set and action from one level higher.</li>
    <li>This function will call <code>exists</code> with the set <code>{ 1, 2 }</code> and the condition function <code>$currentElement</code> equals <code>$elem * 2</code>.</li>
    <li>
    <code>exists()</code> will iterate over all the elements between -1000 and +1000, our bounds. When it finds an element, double of what comes from <code>"contains"</code> (the value of <code>$currentElement</code>) it will return <code>true</code>.</li>
    <li>In other words, the last comparison will return <code>true</code> for the call to contains with value two, when the value of the current multiplied by two, results in two. So for the first element of the set, one, it will return true on two. For the second element, two, on value four.</li>
    </ul>
    <hr>
    <h2>A Practical Example</h2>
    <p>Well, functional programming is fun but it is far from ideal in PHP. So, I do not recommend you to write whole applications this way. However, now that you’ve learned what PHP can do functionally, you can apply parts of this knowledge in your everyday projects. Here is an example authentication module. The <code>AuthPlugin</code> class provides a method that receives a user and password and does its magic to authenticate the user and set its permissions.</p>
    <pre>class AuthPlugin {&#x000A;    &#x000A;    	private $permissions = array();&#x000A;    &#x000A;    	function authenticate($username, $password) {&#x000A;    		$this-&gt;verifyUser($username, $password);&#x000A;    &#x000A;    		$adminModules = new AdminModules();&#x000A;    		$this-&gt;permissions[] = $adminModules-&gt;allowRead($username);&#x000A;    		$this-&gt;permissions[] = $adminModules-&gt;allowWrite($username);&#x000A;    		$this-&gt;permissions[] = $adminModules-&gt;allowExecute($username);&#x000A;    	}&#x000A;    &#x000A;    	private function verifyUser($username, $password) {&#x000A;    		// ... DO USER / PASS CHECKING&#x000A;    		// ... LOAD USER DETAILS, ETC.&#x000A;    	}&#x000A;    &#x000A;    }</pre>
    <p>Now, this may sound OK, but it has a huge problem. 80% of the <code>"authenticate()"</code> method uses information from the <code>"AdminModules"</code>. This creates a very strong dependency.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/AuthFanOut.png" alt="AuthFanOut" width="600" height="157" style="max-width: 100%; height: auto;"><br> <p>It would be much more reasonable to take the three calls and create a single method on <code>AdminModules</code>.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/AuthReducedDep.png" alt="AuthReducedDep" width="600" height="190" style="max-width: 100%; height: auto;"><br> <p>So, by moving the generation into <code>AdminModules</code> we managed to reduce three dependencies to just one. The public interface of <code>AdminModules</code> was also reduced from three to only a single method. However, we are not yet there. <code>AuthPlugin</code> still directly depends on <code>AdminModules</code>.</p>
    <h3>An Object Oriented Approach</h3>
    <p>If want our authentication plugin to be usable by any module, we need to define a common interface for these modules. Let’s inject the dependency and introduce an interface.</p>
    <pre>class AuthPlugin {&#x000A;    &#x000A;    	private $permissions = array();&#x000A;    	private $appModule;&#x000A;    &#x000A;    	function __construct(ApplicationModule $appModule) {&#x000A;    		$this-&gt;appModule = $appModule;&#x000A;    	}&#x000A;    &#x000A;    	function authenticate($username, $password) {&#x000A;    		$this-&gt;verifyUser($username, $password);&#x000A;    &#x000A;    		$this-&gt;permissions = array_merge(&#x000A;    				$this-&gt;permissions,&#x000A;    				$this-&gt;appModule-&gt;getPermissions($username)&#x000A;    		);&#x000A;    	}&#x000A;    &#x000A;    	private function verifyUser($username, $password) {&#x000A;    		// ... DO USER / PASS CHECKING&#x000A;    		// ... LOAD USER DETAILS, ETC.&#x000A;    	}&#x000A;    &#x000A;    }</pre>
    <p><code>AuthPlugin</code> got a constructor. It gets a parameter of type <code>ApplicationModule</code>, an interface, and calls <code>"getPermissions()"</code> on this injected object.</p>
    <pre>interface ApplicationModule {&#x000A;    &#x000A;    	public function getPermissions($username);&#x000A;    &#x000A;    }</pre>
    <p><code>ApplicationModule</code> defines a single public method, <code>"getPermissions()"</code>, with a username as a parameter.</p>
    <pre>class AdminModules implements ApplicationModule {&#x000A;    	// [ ... ]&#x000A;    }</pre>
    <p>Finally, <code>AdminModules</code> needs to implement the <code>ApplicationModule</code> interface.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/AuthAdminInterface.png" alt="AuthAdminInterface" width="600" height="261" style="max-width: 100%; height: auto;"><br> <p>Now, this is much better. Our <code>AuthPlugin</code> depends only on an interface. <code>AdminModules</code> depends on the same interface, so the <code>AuthPlugin</code> became module agnostic. We can create any number of modules, all implementing <code>ApplicationModule</code>, and <code>AuthPlugin</code> will be able to work with all of them.</p>
    <h3>A Functional Approach</h3>
    <p>Another way to reverse the dependency, and make <code>AdminModule</code>, or any other module, to use the <code>AuthPlugin</code> is to inject into these modules a dependency to <code>AuthPlugin</code>. <code>AuthPlugin</code> will provide a way to set the authentication function and each application will send in its own <code>"getPermission()"</code> function.</p>
    <pre>class AdminModules {&#x000A;    &#x000A;    	private $authPlugin;&#x000A;    &#x000A;    	function __construct(Authentitcation $authPlugin) {&#x000A;    		$this-&gt;authPlugin = $authPlugin;&#x000A;    	}&#x000A;    &#x000A;    	private function allowRead($username) {&#x000A;    		return "yes";&#x000A;    	}&#x000A;    &#x000A;    	private function allowWrite($username) {&#x000A;    		return "no";&#x000A;    	}&#x000A;    &#x000A;    	private function allowExecute($username) {&#x000A;    		return $username == "joe" ? "yes" : "no";&#x000A;    	}&#x000A;    &#x000A;    	private function authenticate() {&#x000A;    &#x000A;    		$this-&gt;authPlugin-&gt;setPermissions(&#x000A;    				function($username) {&#x000A;    					$permissions = array();&#x000A;    					$permissions[] = $this-&gt;allowRead($username);&#x000A;    					$permissions[] = $this-&gt;allowWrite($username);&#x000A;    					$permissions[] = $this-&gt;allowExecute($username);&#x000A;    					return $permissions;&#x000A;    				}&#x000A;    		);&#x000A;    		$this-&gt;authPlugin-&gt;authenticate();&#x000A;    	}&#x000A;    &#x000A;    }</pre>
    <p>We start with <code>AdminModule</code>. It does not implement anything anymore. However, it uses an injected object that has to implement Authentication. In <code>AdminModule</code> there will be an <code>"authenticate()"</code> method that will call <code>"setPermissions()"</code> on <code>AuthPlugin</code> and pass in the function that needs to be used.</p>
    <pre>interface Authentication {&#x000A;    &#x000A;    	function setPermissions($permissionGrantingFunction);&#x000A;    &#x000A;    	function authenticate();&#x000A;    &#x000A;    }</pre>
    <p>The Authentication interface simply defines the two methods.</p>
    <pre>class AuthPlugin implements Authentication {&#x000A;    &#x000A;    	private $permissions = array();&#x000A;    	private $appModule;&#x000A;    	private $permissionsFunction;&#x000A;    &#x000A;    	function __construct(ApplicationModule $appModule) {&#x000A;    		$this-&gt;appModule = $appModule;&#x000A;    	}&#x000A;    &#x000A;    	function authenticate($username, $password) {&#x000A;    		$this-&gt;verifyUser($username, $password);&#x000A;    		$this-&gt;permissions = $this-&gt;permissionsFunction($username);&#x000A;    	}&#x000A;    &#x000A;    	private function verifyUser($username, $password) {&#x000A;    		// ... DO USER / PASS CHECKING&#x000A;    		// ... LOAD USER DETAILS, ETC.&#x000A;    	}&#x000A;    &#x000A;    	public function setPermissions($permissionGrantingFunction) {&#x000A;    		$this-&gt;permissionsFunction = $permissionGrantingFunction;&#x000A;    	}&#x000A;    &#x000A;    }</pre>
    <p>Finally, <code>AuthPlugin</code> implements Authentication and sets the incoming function in a private class attribute. Then, <code>"authentication()"</code> becomes a dumb method. It just calls the function and then sets the return value. It is completely decoupled of whatever comes in.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/AuthAdminCallBack.png" alt="AuthAdminCallBack" width="600" height="258" style="max-width: 100%; height: auto;"><br> <p>If we look at the schema, there are two important changes:</p>
    <ul>
    <li>Instead of <code>AdminModule</code>, <code>AuthPlugin</code> is the one implementing the interface.</li>
    <li>
    <code>AuthPlugin</code> will “Call Back” <code>AdminModule</code>, or whatever other module sent in the permissions function.</li>
    </ul>
    <hr>
    <h2>Which One to Use?</h2>
    <p>There is no correct answer to this question. I would argue that if the process of determining the permissions is quite dependent on the application module, then the object oriented approach is more appropriate. However, if you think that each application module should be able to provide an authentication function, and your <code>AuthPlugin</code> is just a skeleton providing the authentication functionality but without knowing anything about users and procedures, then you can go with the functional approach.</p>
    <p>The functional approach makes your <code>AuthPlugin</code> very abstract and you can depend on it. However, if you plan to allow your <code>AuthPlugin</code> to do more and know more about users and your system, then it will became too concrete, and you don’t want to depend on it. In that case choose the object oriented way and let the concrete <code>AuthPlugin</code> depend on the more abstract application modules.</p>
    </div>
]]>
</Body>
<Summary>The new hype in programming is all about functional programming paradigms. Functional languages are used more and more in greater and better applications. Scala, Haskel, etc. are thriving and...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/q3RqvI9iJ4Q/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36567/guest@my.umbc.edu/29c0a7d11000524b1b06cf821ef95a8d/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>functional-programming</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 10:00:33 -0400</PostedAt>
<EditAt>Fri, 04 Oct 2013 10:00:33 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="36564" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36564">
<Title>Sustainable Events Today! Bikes, Food, Sustainability!</Title>
<Tagline>Lectures, Rides, Fundraiser, Meditation, Drum Circle &amp; more!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p><strong><span>11 AM to 1pm, Commons
    Breezeway</span></strong></p>
    <p><span><a href="http://my.umbc.edu/events/20283" rel="nofollow external" class="bo"><strong><span><u>PowerShift
    Bake Sale Fundraiser</u></span></strong></a></span></p>
    <p><span>Students for
    Environmental Awareness are raising funds to attend a youth climate and social
    change/ social justice conference: PowerShift</span></p>
    <p><span>.</span></p>
    <p><strong><span>Noon to 1:30pm, AOK
    Library Gallery</span></strong><span></span></p>
    <p><span><a href="http://my.umbc.edu/events/19976" rel="nofollow external" class="bo"><strong><span><u>Empowering
    Students to Transform the Food System</u></span></strong></a></span></p>
    <p><span>Anim Steele, founder and
    Director of the Real Food Challenge will speak about students leading change
    toward an ecological, humane and just food system.</span></p>
    <p><span>.</span></p>
    <p><strong><span>2pm to 3pm, Technology
    Research Center</span></strong><span><br>
    <a href="http://my.umbc.edu/events/18796" rel="nofollow external" class="bo"><strong><span><u>CUERE
    Lecture by Dr. Richard Feiock of Florida State University</u></span></strong></a><br>
    "The Influence of City Government Structure and Collaboration Networks on
    Adoption of Sustainability Programs"</span></p>
    <p><span>.</span></p>
    <p><strong><span>12pm, Environmental Task
    Force (community service student org) hike-</span></strong><span> <strong>meet at Math/Psych Building in front of room 104 then walk the
    CERA trail- Conservation and Environmental Research Area</strong><br>
    Environmental Task Force meeting will be taking place outside today. We will
    meet in front of MP 104 at 12pm and then head out to explore the CERA trail
    around 12:05pm! We will possibly be working on the CERA trail next semester so
    here's a great chance to check it out beforehand. </span></p>
    <p><span>.</span><span></span></p>
    <p><strong><span>6pm, Room 105, Public
    Policy Building </span></strong><span></span></p>
    <p><strong><span>UMBC Outdoor Recreation
    Club Weekly meeting</span></strong><span> </span></p>
    <p><span>The Outdoor Rec club
    meets weekly at 6PM in the Public Policy Building Lecture Hall (room PUP105) to
    plan hiking and camping trips.</span></p>
    <p><span>.</span></p>
    <p><strong><span>6pm, Meet in front of
    AOK Library and Gallery</span></strong><span></span></p>
    <p><span><a href="http://my.umbc.edu/events/20151" rel="nofollow external" class="bo"><strong><span><u>Friday
    Fun Ride (Oct 4)</u></span></strong></a> </span></p>
    <p><span>Join UMBC Cycling for a
    casual ride around campus and the surrounding neighborhoods. This is a social
    ride with a relaxed pace and plenty of rest.</span></p>
    <p><span>.</span></p>
    <p><strong><span>BONUS EVENTS! We're also
    excited about....</span></strong><span></span></p>
    <p><strong><span>.</span></strong><span></span></p>
    <p><strong><span>Noon to 1pm, UC Terrace
    (the steps in front of the University Center by Starbucks, on Academic Row)</span></strong><span></span></p>
    <p><span><a href="http://my.umbc.edu/events/20250" rel="nofollow external" class="bo"><strong><span><u>The Return of the UMBC Drum Circle!</u></span></strong></a></span><span></span></p>
    <p><span>Drummers and dancers are
    welcome every Friday by the UC for an improvisational jam. Bring a drum or
    drum-esque object and join us!</span><span></span></p>
    <p><span>.</span></p>
    <p><strong><span>1pm, Womens Center
    (Commons 004)</span></strong><span></span></p>
    <p><span><a href="http://my.umbc.edu/events/20016" rel="nofollow external" class="bo"><strong><span><u>Peace@UMBC Meditation Launches
    October 4th!</u></span></strong></a></span></p>
    <p><span>Weekly Meditation Hour
    for Faculty, Staff, and Students</span></p>
    <p><span><a href="mailto:Peace@UMBC" rel="nofollow external" class="bo"><span><u>Peace@UMBC</u></span></a> is a weekly meditation hour open to
    faculty, students, and staff who want to cultivate greater peace in their lives
    and relationships through the development of a meditation practice.</span></p>
    <p><span>.</span></p>
    <p><strong><span>3pm, Commons Room 331</span></strong><span></span></p>
    <p><span><a href="http://my.umbc.edu/events/20078" rel="nofollow external" class="bo"><strong><span><u>UMBC Vegetarians First Meeting of the
    Semester</u></span></strong></a></span></p>
    <p><span>Join UMBC Vegetarians
    for our first meeting of the semester! Everyone is welcome to come learn about
    our exciting plans for the upcoming year. We will be meeting on the third floor
    of The Commons Room 331.</span></p>
    <p><span>.</span></p>
    <p><span>Stay well and enjoy all
    that UMBC has to offer!</span></p>
    </div>
]]>
</Body>
<Summary>11 AM to 1pm, Commons Breezeway  PowerShift Bake Sale Fundraiser  Students for Environmental Awareness are raising funds to attend a youth climate and social change/ social justice conference:...</Summary>
<Website>http://sustainability.umbc.edu</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36564/guest@my.umbc.edu/b4dff2ef79593a9e0118a0cf335f69b7/api/pixel</TrackingUrl>
<Group token="sustainability">Sustainability Matters at UMBC</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/sustainability</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/xsmall.png?1586269437</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/original.png?1586269437</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/xxlarge.png?1586269437</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/xlarge.png?1586269437</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/large.png?1586269437</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/medium.png?1586269437</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/small.png?1586269437</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/xsmall.png?1586269437</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/086/91091ac32f525d88daa6d6b721420ac1/xxsmall.png?1586269437</AvatarUrl>
<Sponsor>Sustainability Matters @UMBC</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/xxlarge.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/xlarge.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/large.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/medium.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/small.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/xsmall.jpg?1380894749</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/036/564/fde4d164a6f20582854b04bb779f621d/xxsmall.jpg?1380894749</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>2</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 09:52:58 -0400</PostedAt>
<EditAt>Fri, 04 Oct 2013 10:11:13 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="36566" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36566">
<Title>Twitter&#8217;s I.P.O. Plan Has an International Focus</Title>
<Body>
<![CDATA[
    <div class="html-content">The social-networking service said in its stock filing that more than three-quarters of its recent users are outside the United States.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F05%2Fbusiness%2Ftwitters-ipo-plan-has-an-international-focus.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Twitter%E2%80%99s+I.P.O.+Plan+Has+an+International+Focus" 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%2F10%2F05%2Fbusiness%2Ftwitters-ipo-plan-has-an-international-focus.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Twitter%E2%80%99s+I.P.O.+Plan+Has+an+International+Focus" 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%2F10%2F05%2Fbusiness%2Ftwitters-ipo-plan-has-an-international-focus.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Twitter%E2%80%99s+I.P.O.+Plan+Has+an+International+Focus" 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%2F10%2F05%2Fbusiness%2Ftwitters-ipo-plan-has-an-international-focus.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Twitter%E2%80%99s+I.P.O.+Plan+Has+an+International+Focus" 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%2F10%2F05%2Fbusiness%2Ftwitters-ipo-plan-has-an-international-focus.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Twitter%E2%80%99s+I.P.O.+Plan+Has+an+International+Focus" 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>
    </div>
]]>
</Body>
<Summary>The social-networking service said in its stock filing that more than three-quarters of its recent users are outside the United States.      </Summary>
<Website>http://www.nytimes.com/2013/10/05/business/twitters-ipo-plan-has-an-international-focus.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36566/guest@my.umbc.edu/928866befdbf4b84cf87692c2015e58f/api/pixel</TrackingUrl>
<Tag>computers-and-the-internet</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>initial-public-offerings</Tag>
<Tag>new</Tag>
<Tag>social-media</Tag>
<Tag>technology</Tag>
<Tag>twitter</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 09:14:48 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36562" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36562">
<Title>Design-Based Media Queries</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>In the beginning, the device-specific media queries we’ve been using in our websites served us just fine because we just needed a quick-and-dirty responsive design solution to accomodate the iPhone and similar-sized smartphones.</p>
    <p>But with the constantly expanding amount of devices being put out in the market, it’s time to rethink the <a href="http://css-tricks.com/snippets/css/media-queries-for-standard-devices/" title="Media Queries for Standard Devices - csstricks.com" rel="nofollow external" class="bo">common responsive design breakpoints</a> we’re employing in our designs. Why? Because this approach isn’t sustainable. We also have to change the underlying reasons and motivating factors behind why we’re setting our responsive design breakpoints at these particular points.</p>
    <p></p>
    <p>I’ll discuss the idea of design-based media queries (as opposed to the more prevalent way of basing our media queries on common mobile devices). This approach to responsive web design could help us make our sites as future-proof and device-agnostic as possible.</p>
    <h3>Why Our Media Queries Need to Change </h3>
    <p>The media queries we are using are typically based on the screen dimensions of currently popular mobile devices.</p>
    <p>At first, when the web design community started getting serious about <a href="http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/" title="Understanding the Elements of Responsive Web Design" rel="nofollow external" class="bo">responsive web design</a>, the popular mobile devices were the iPhone and Android smartphones.</p>
    <p>So, to start, media queries for mobile devices looked something conceptually similar to this:</p>
    <pre><strong>/* iPhone and other smartphones (portrait) */</strong>&#x000A;    @media screen and (max-device-width: 320px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone and other smartphones (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 480px) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>As technology moved forward — and in particular with the rise of tablets and retina displays — the range of screen sizes and resolutions broadened. So we decided to extend our media queries for these new mobile devices.</p>
    <p>To accommodate the new crop of gadgets, media queries would now look something similar to this:</p>
    <pre><strong>/* iPhone and other smartphones (portrait) */</strong>&#x000A;    @media screen and (max-device-width: 320px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone and other smartphones (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 480px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPad and other tablets (portrait) */</strong>&#x000A;    @media screen and (max-device-width: 768px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPad and other tablets (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 1024px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone 5 (portrait) */&#x000A;    </strong>@media screen and (max-device-width: 568px) and (orientation: portrait) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone 5 (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 568px) and (orientation: landscape) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>Samsung Galaxy is really popular too, so we might as well add it to our growing collection of media queries:</p>
    <pre><strong>/* Samsung Galaxy (portrait) */</strong>&#x000A;    @media screen and (max-width: 385px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* Samsung Galaxy (landscape) */</strong>&#x000A;    @media screen and (max-width: 690px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone and other smartphones (portrait) */</strong>&#x000A;    @media screen and (max-device-width: 320px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone and other smartphones (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 480px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPad and other tablets (portrait) */</strong>&#x000A;    @media screen and (max-device-width: 768px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPad and other tablets (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 1024px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone 5 (portrait) */&#x000A;    </strong>@media screen and (max-device-width: 568px) and (orientation: portrait) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* iPhone 5 (landscape) */</strong>&#x000A;    @media screen and (max-device-width: 568px) and (orientation: landscape) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>What about Kindle? Or the iPad mini?</p>
    <p>Not to worry, there’s <a href="http://code-tricks.com/css-media-queries-for-common-devices/" rel="nofollow external" class="bo">a list of media queries</a> for Kindle (and other devices) and <a href="http://www.stephentgilbert.com/mediaqueries/" rel="nofollow external" class="bo">there’s a list</a> of Apple-product-specific media queries for the iPad mini, iPhone 2G, etc. to help us extend our media queries collection.</p>
    <p>The reason for showing you all of this is to illustrate how this approach to responsive web design <strong>does not work.</strong></p>
    <p>This way of designing websites contradicts one of the key principles of web design that we need to always work towards: There should be no strong distinction between <em>Desktop Web</em> and <em>Mobile Web.</em> And, ideally, there should only be one universal Web.</p>
    <p>By setting our media queries based on the dimensions of a few specific devices, we’re effectively creating not just a separate <em>Mobile Web</em>, but also an <em>iPhone Web</em>, an <em>Android Web</em>, a <em>Blackberry Web</em> and so forth.</p>
    <p>This approach to responsive web design can lead us to a place where we’re unintentionally creating designs based on decisions made for us by the companies that produce these mobile devices, a scenario that’s <a href="http://sixrevisions.com/web-technology/mobile-browser-wars/" title="Will the Browser Wars Invade the Mobile Web?" rel="nofollow external" class="bo">frighteningly similar to the Browser Wars.</a></p>
    <p>For each responsive design we build, instead of asking for a <a href="http://stackoverflow.com/questions/7587854/is-there-a-list-of-screen-resolutions-for-all-android-based-phones-and-tablets" rel="nofollow external" class="bo">list of Android screen sizes</a> or what the <a href="http://stackoverflow.com/questions/16443380/common-css-media-queries-break-points" rel="nofollow external" class="bo">popular responsive design breakpoints are right now</a> we should really be asking another question:</p>
    <p><em>What should the breakpoints be for <strong>this particular design</strong> I’m working on?</em></p>
    <p>If our web designs are to be future-proof — and perhaps, more importantly, if the Web is to remain universal — our media queries need to be based on our web design, not on the presently prevalent mobile devices.</p>
    <h3>Why the Old Breakpoints Aren’t Working</h3>
    <p>Through a real-world example, let’s look at how setting media queries based on specific devices can fail.</p>
    <p>In order to have a responsive web design, my company’s website, <a href="http://compass-design.co.uk/" rel="nofollow external" class="bo">Compass Design</a>, was originally built using three media queries:</p>
    <pre><strong>/* iPad (portrait) */</strong>&#x000A;    @media screen and (max-width: 760px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* Smartphones (landscape) */</strong>&#x000A;    @media screen and (max-width: 480px) {&#x000A;    &#x000A;    }&#x000A;    &#x000A;    <strong>/* Smartphones (portrait) */</strong>&#x000A;    @media screen and (max-width: 320px) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>These media queries were defined a few years back, when the vast majority of people using mobile devices were using an iPhone 4 or similar (320x480px) or an iPad (760x1024px). And, on these devices, the web design worked fine.</p>
    <p>The desktop layout is fairly standard, a horizontal navigation menu with a sidebar to the right of the content:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-01_design-based_media_queries_desktop_example.jpg" width="550" height="454" style="max-width: 100%; height: auto;"></p>
    <p>The layout designed for tablets is more unusual. The navigation menu’s layout changes to fit all of its content in the available space for tablets in portrait orientation:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-02_design-based_media_queries_tablet_portrait_example.jpg" width="550" height="632" style="max-width: 100%; height: auto;"></p>
    <p>And the layout intended for smartphones is different too, this time with a link to the navigation menu which is responsively moved to the bottom of the page:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-03_design-based_media_queries_smartphone_example.jpg" width="320" height="486" style="max-width: 100%; height: auto;"></p>
    <h4>"My responsive design stopped working!"</h4>
    <p>Since the time the site was designed, the range of devices used to access it has grown quite rapidly.</p>
    <p>For example:</p>
    <ul>
    <li>The iPhone 5 is 568px wide in landscape mode</li>
    <li>Many Android smartphones have large screens (such as the Samsung Galaxy, which is 380x685px) </li>
    <li>Smaller tablets have been released since the time my site was originally designed, tablets with a 7” screen and not a 10” screen (although some of these, such as the iPad mini, still work as if they have the same pixel dimensions as their larger counterparts)</li>
    </ul>
    <p>Let’s have a look at the site on iPhone 5. Because iPhone 5 is wider than 480px in landscape mode, the smartphone is using the layout designed for tablets, which renders a broken navigation menu:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-04_design-based_media_queries_phone5_broken.jpg" width="550" height="311" style="max-width: 100%; height: auto;"></p>
    <p>This demonstrates the point I’m trying to make: Using devices as the guide for our web design’s responsiveness doesn’t work. It especially doesn’t work if we care about future-proofing our work.</p>
    <p>As the number of devices continue to grow, it will be impossible to predict what our designs will be viewed on. And not only is it impossible to predict what new devices are going to enter the market, it <em>should be</em> unnecessary to do so anyways when it comes to our web designs.</p>
    <p>What we need to do instead is identify the points at which our web design stops to work the way we want it to, and then set our responsive breakpoints there.</p>
    <h3>Design-Based Media Queries in Action</h3>
    <p>The new media queries for my site are based on <em>two guiding principles:</em></p>
    <ol>
    <li>The content layout needs to adapt to whatever the device width is, so that the content is easier to read.</li>
    <li>On touchscreens and mobile devices: Navigation menu items need to be large enough so that users can easily interact with them. </li>
    </ol>
    <p>The desktop layout includes a full-width navigation menu. This layout works down to <em>1005px,</em> at which point some of the navigation menu items start to stray below each other, as shown below:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-05_design-based_media_queries_example_desktop.jpg" width="550" height="486" style="max-width: 100%; height: auto;"></p>
    <p>Because this particular web design breaks at exactly <em>1005px</em> due to the amount and lengths of its navigation menu items, I’ll set the breakpoint there:</p>
    <pre><strong>/* Breakpoint #1 for medium-sized screens */</strong>&#x000A;    @media screen and (max-width: 1005px) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>Note that in my stylesheet comments and also in my two guiding principles, I have removed any references to any particular mobile device.</p>
    <p>Working down in width, the layout breaks again at <em>745px</em>, as you can see in this screenshot:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-06_design-based_media_queries_example_medium.jpg" width="550" height="653" style="max-width: 100%; height: auto;"></p>
    <p>So I set another media query breakpoint at <em>745px:</em></p>
    <pre><strong>/* Breakpoint #2 for small-sized screens */</strong>&#x000A;    @media screen and (max-width: 745px) {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>The layout now works at 745px wide:</p>
    <p><img src="http://cdn.sixrevisions.com/0381-07_design-based_media_queries_example_small.jpg" width="550" height="690" style="max-width: 100%; height: auto;"></p>
    <p>The site now has a set of breakpoints which are completely device-agnostic and ensure that the design will adapt the best way possible to any device.</p>
    <p>The specific technique for design-based media queries I showed you just now needs refinement, especially for sites that continually update their navigation menu and content.</p>
    <p> <strong>The important idea is this:</strong> We should choose media queries based on the design, not based on specific devices.</p>
    <h3>Moving Towards a Universal Web</h3>
    <p>The idea of design-based media queries is a very simple one. And adopting the concept in a web design project can be as rudimentary as resizing your browser window to the point where the layout breaks, and then setting the media queries at that point, as in my case.</p>
    <p>The "standard" media queries we’re currently using <em>conveniently</em> ignore the growing range of devices that don’t conform to the dimensions Apple, Samsung, Sony, and other device vendors have chosen for us. Media queries based on specific devices won’t allow us to build sites that are future-proof and device-agnostic.</p>
    <p>If we want to continue to uphold the essence of what’s great about the Web, to continue to create a Web that is universal — a Web that isn’t being driven and led by a particular mobile device, or web browser, or company — then one of the things we can do is  move away from device-specific media queries.</p>
    <h3>Related Content</h3>
    <ul>
    <li><a href="http://sixrevisions.com/mobile/responsive-web-design-not-the-future/" rel="nofollow external" class="bo">Responsive Web Design is Not the Future</a></li>
    <li><a href="http://sixrevisions.com/web_design/understanding-the-elements-of-responsive-web-design/" rel="nofollow external" class="bo">Understanding the Elements of Responsive Web Design</a></li>
    <li><a href="http://sixrevisions.com/web_design/are-current-web-design-trends-pushing-us-back-to-1999/" rel="nofollow external" class="bo">Are Current Web Design Trends Pushing Us Back to 1999?</a></li>
    <li>
    <strong>Related categories:</strong> <a href="http://sixrevisions.com/category/web_design/" rel="nofollow external" class="bo">Web Design</a> and <a href="http://sixrevisions.com/category/css/" rel="nofollow external" class="bo">CSS</a>
    </li>
    </ul>
    <h3>About the Author</h3>
    <p><img src="http://cdn.sixrevisions.com/authors/rachel_mccollin_small.jpg" alt="" width="80" height="80" style="max-width: 100%; height: auto;"><span><strong>Rachel McCollin</strong> is a freelance web designer specializing in WordPress and responsive design. She’s written three <a href="http://www.amazon.com/Rachel-McCollin/e/B008GUEHSW/" rel="nofollow external" class="bo">books on WordPress.</a> Connect with her on Twitter <a href="https://twitter.com/rachelmccollin" rel="nofollow external" class="bo">@rachelmccollin</a> and visit her site at <a href="http://rachelmccollin.co.uk/" rel="nofollow external" class="bo">rachelmccollin.co.uk.</a></span></p>
    <p>The post <a href="http://sixrevisions.com/web_design/design-based-media-queries/" rel="nofollow external" class="bo">Design-Based Media Queries</a> appeared first on <a href="http://sixrevisions.com" rel="nofollow external" class="bo">Six Revisions</a>.</p>
    </div>
]]>
</Body>
<Summary>In the beginning, the device-specific media queries we’ve been using in our websites served us just fine because we just needed a quick-and-dirty responsive design solution to accomodate the...</Summary>
<Website>http://feedproxy.google.com/~r/SixRevisions/~3/s9zmEpp_QIo/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36562/guest@my.umbc.edu/ec5edacd1f52b6cae5a6dc983a7fe483/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>database</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Tag>web-design</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 06:00:38 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36561" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36561">
<Title>40 really creative business card templates</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="40 Business card templates" src="http://netdna.webdesignerdepot.com/uploads/2013/07/thumbnail20.jpg" width="200" height="160" style="max-width: 100%; height: auto;"></p> <p>If you’re not in the position to photograph your work, product mockups can be a great alternative to showcase your designs. They’re inexpensive, easy to use and relatively hassle-free. The only problem is that finding quality resources takes time.</p> <p>Luckily for you guys, we’ve decided to do the hard work for you and put together a collection of the best templates, both free and premium, that we could find. Check them out below:</p> <h1>Free business card mockup (free)</h1> <p><a href="http://freegraphicdesign.net/work/free-business-card-mock-up/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup1.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free card mockups (free)</h1> <p><a href="http://giallo86.deviantart.com/art/Free-Card-Flyer-mock-ups-Psd-files-in-high-res-333842674?ga_submit=10:1350954399" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup2.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free business card mockup (free)</h1> <p><a href="http://dribbble.com/shots/1080035-Free-Mockup" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup3.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Vertical business card mockups (free)</h1> <p><a href="http://www.psdfolder.com/verticle-business-cards-mockup/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup4.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free PSD: business cards mockup (free)</h1> <p><a href="http://www.psdfolder.com/business-cards-mockup/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup5.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free business card mockup (free)</h1> <p><a href="http://www.psdfolder.com/free-business-card-mockup/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup6.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>PSD business card mockup (free)</h1> <p><a href="http://www.pixeden.com/psd-mock-up-templates/psd-business-card-mock-up-vol-2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup7.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>PSD business card mockup (free)</h1> <p><a href="http://www.pixeden.com/psd-mock-up-templates/psd-business-card-mock-up-vol-1" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup8.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockups (free)</h1> <p><a href="http://designmoo.com/5788/business-card-mockups/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup9.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup designs (free)</h1> <p><a href="http://rcandesign.blogspot.co.uk/2013/05/business-card-mockup-designs-in-psd.html" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup10.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Realistic business card mockup (free)</h1> <p><a href="http://graphicburger.com/realistic-business-card-mock-up/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup11.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free business cards mockup (free)</h1> <p><a href="http://creativepaths.net/biz_cards-prez" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup12.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card template &amp; mockup (free)</h1> <p><a href="http://www.graphicsfuel.com/2013/01/business-card-template-mockup-psd/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup13.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Free business card mockup (free)</h1> <p><a href="http://travistmoore.com/2013/06/17/new-logo/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup14.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business cards mockup (free)</h1> <p><a href="http://creativepaths.net/business-cards-mockup-2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup15.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Card realistic PSD mockups ($8)</h1> <p><a href="https://creativemarket.com/Giallo/1020-Flyer-Card-Realistic-PSD-Mock-ups" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup16.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup ($3)</h1> <p> <a href="https://creativemarket.com/vladedimovski/850-Business-Card-Mock-Up-Vol.-1" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup17.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Letterpress business cards mockup ($4)</h1> <p><a href="https://creativemarket.com/itembridge/3002-Letterpress-Business-Cards-Mockup" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup18.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Letterpress business cards mockup ($4)</h1> <p><a href="https://creativemarket.com/itembridge/3181-Letterpress-Business-Cards-Mockup-2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup20.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockups ($5)</h1> <p><a href="https://creativemarket.com/stefusilviu/6492-Business-Card-Mockups-pack-2" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup19.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockups ($5)</h1> <p><a href="https://creativemarket.com/stefusilviu/1163-Business-Card-Mockups-pack-1" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup21.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Photorealistic business card mockup ($4)</h1> <p><a href="https://creativemarket.com/CleanLines/3198-Photorealistic-Business-Card-Mock-Up" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup22.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockups ($4)</h1> <p><a href="https://creativemarket.com/banks/4259-Business-Card-Mockups" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup23.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup pack ($7)</h1> <p><a href="http://graphicriver.net/item/great-business-card-mockup-pack-4-styles/114970?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=artbees" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup24.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup smart template pack ($7)</h1> <p><a href="http://graphicriver.net/item/business-card-mockup-smart-template-pack/118210?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=ranfirefly" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup25.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockups ($5)</h1> <p><a href="http://graphicriver.net/item/business-card-mockups/237496?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=ninetofive" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup26.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup big bundle ($13)</h1> <p><a href="http://graphicriver.net/item/business-card-mockup-big-bundle/2004852?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=BlueMonkeyLab" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup27.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>The ultimate business card mockup pack ($6)</h1> <p><a href="http://graphicriver.net/item/the-ultimate-business-card-mockup-pack/166741?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=kamarashev" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup28.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Photorealistic business card mockup ($5)</h1> <p><a href="http://graphicriver.net/item/photoreal-business-card-mockup/759489?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=Lipruva" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup29.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Stack business cards mockup ($10)</h1> <p><a href="http://graphicriver.net/item/stack-business-cards-mockup/3063488?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=InfoStyle" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup30.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/business-card-mockup-2/1702997?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=BlueMonkeyLab" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup31.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Photorealistic business card mockups ($8)</h1> <p><a href="http://graphicriver.net/item/photo-real-business-card-mockups/3130057?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=CodeID" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup32.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Die cut business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/die-cut-business-card-mockup-/2372236?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=artbees" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup33.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/business-card-mockup/1854829?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=aish" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup34.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Realistic business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/realistic-business-card-mockup/2506978?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=kotulsky" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup35.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Textured business card mockup ($9)</h1> <p><a href="http://graphicriver.net/item/textured-business-card-mockup/4481265?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=Zeisla" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup36.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Photorealistic business card mockup Template ($8)</h1> <p><a href="http://graphicriver.net/item/photorealistic-business-card-mockup-template/922715?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=xdkd" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup37.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Business cards studio mockup ($8)</h1> <p><a href="http://graphicriver.net/item/business-cards-studio-mockup/3892218?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=InfoStyle" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup38.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Realistic business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/realistic-business-card-mockup/3441462?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=HELIOSMEDIA" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup39.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Clean business card mockup ($7)</h1> <p><a href="http://graphicriver.net/item/clean-business-card-mockup/2685635?WT.ac=search_item&amp;WT.seg_1=search_item&amp;WT.z_author=TinyFoot" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/07/cardmockup40.jpg" width="650" alt="40 really creative business card templates" style="max-width: 100%; height: auto;"></a></p> <p> </p> <p><em><strong>How do you prefer to present business card designs? Can mockups replace photographing work? 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/lunchbox-font.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Quirky Lunchbox Typeface (1,500+ glyphs) – only $17!</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="40 really creative business card templates" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/10/40-really-creative-business-card-templates/" 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%2F10%2F40-really-creative-business-card-templates%2F&amp;t=40+really+creative+business+card+templates" 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%2F10%2F40-really-creative-business-card-templates%2F&amp;t=40+really+creative+business+card+templates" 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%2F10%2F40-really-creative-business-card-templates%2F&amp;t=40+really+creative+business+card+templates" 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%2F10%2F40-really-creative-business-card-templates%2F&amp;t=40+really+creative+business+card+templates" 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%2F10%2F40-really-creative-business-card-templates%2F&amp;t=40+really+creative+business+card+templates" 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/176965362935/u/49/f/661066/c/35285/s/320b2ea0/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176965362935/u/49/f/661066/c/35285/s/320b2ea0/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>If you’re not in the position to photograph your work, product mockups can be a great alternative to showcase your designs. They’re inexpensive, easy to use and relatively hassle-free. The only...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/320b2ea0/sc/4/l/0L0Swebdesignerdepot0N0C20A130C10A0C40A0Ereally0Ecreative0Ebusiness0Ecard0Etemplates0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36561/guest@my.umbc.edu/131893f3079b98eff0f218e796eb3315/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>business-card-mockups</Tag>
<Tag>business-cards</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>free-downloads</Tag>
<Tag>free-resources</Tag>
<Tag>how-to-present-business-cards</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>resources</Tag>
<Tag>sql</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 05:15:05 -0400</PostedAt>
<EditAt>Fri, 04 Oct 2013 05:15:05 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="36560" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36560">
<Title>W3C Workshop Report: RDF Validation: Practical Assurances for Quality RDF Data</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>W3C today published the <a href="http://www.w3.org/2012/12/rdf-val/report" rel="nofollow external" class="bo">final report</a> of the <a href="http://www.w3.org/2012/12/rdf-val/" rel="nofollow external" class="bo">Workshop on RDF Validation: Practical Assurances for Quality RDF Data</a> that was held 10-11 September 2013 in Cambridge.</p>
    <p>The goal of the Workshop was to identify use cases, requirements, and candidate technologies to address the need for interface definition and validation for RDF documents and messages. The 20 <a href="http://www.w3.org/2012/12/rdf-val/agenda" rel="nofollow external" class="bo">presentations</a> focused on current and future requirements and solutions. Discussion sessions focused on consensus-building around scope and next steps.</p>
    <p>This workshop laid the groundwork for W3C to develop a human and machine-readable description of the “shape” of the RDF graphs that a service produces or consumes. This description should be usable for validation, form-generation, as well as human-readable documentation. The participants further agreed that the solution must provide a declarative way of describing simple integrity constraints along with an extension mechanism that allows using technologies such as SPARQL to specify more complex constraints.</p>
    </div>
]]>
</Body>
<Summary>W3C today published the final report of the Workshop on RDF Validation: Practical Assurances for Quality RDF Data that was held 10-11 September 2013 in Cambridge.   The goal of the Workshop was to...</Summary>
<Website>http://www.w3.org/blog/news/archives/3291</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36560/guest@my.umbc.edu/bc1bd273149fb563c2047023fec076ec/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>rdfdata</Tag>
<Tag>semantic-web</Tag>
<Tag>sql</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 04:33:32 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36559" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36559">
<Title>HTC Reports Its First Loss, but Samsung Shows Vigor</Title>
<Body>
<![CDATA[
    <div class="html-content">Samsung Electronics probably benefited from memory chip sales, analysts said, while HTC said it would lose about $101 million after its flagship smartphone failed to catch on.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F05%2Ftechnology%2Fhtc-suffers-first-quarterly-loss-as-samsung-soars.html%3Fpartner%3Drss%26emc%3Drss&amp;t=HTC+Reports+Its+First+Loss%2C+but+Samsung+Shows+Vigor" 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%2F10%2F05%2Ftechnology%2Fhtc-suffers-first-quarterly-loss-as-samsung-soars.html%3Fpartner%3Drss%26emc%3Drss&amp;t=HTC+Reports+Its+First+Loss%2C+but+Samsung+Shows+Vigor" 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%2F10%2F05%2Ftechnology%2Fhtc-suffers-first-quarterly-loss-as-samsung-soars.html%3Fpartner%3Drss%26emc%3Drss&amp;t=HTC+Reports+Its+First+Loss%2C+but+Samsung+Shows+Vigor" 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%2F10%2F05%2Ftechnology%2Fhtc-suffers-first-quarterly-loss-as-samsung-soars.html%3Fpartner%3Drss%26emc%3Drss&amp;t=HTC+Reports+Its+First+Loss%2C+but+Samsung+Shows+Vigor" 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%2F10%2F05%2Ftechnology%2Fhtc-suffers-first-quarterly-loss-as-samsung-soars.html%3Fpartner%3Drss%26emc%3Drss&amp;t=HTC+Reports+Its+First+Loss%2C+but+Samsung+Shows+Vigor" 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/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176967984596/u/0/f/640387/c/34625/s/320a1cc5/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Samsung Electronics probably benefited from memory chip sales, analysts said, while HTC said it would lose about $101 million after its flagship smartphone failed to catch on.      </Summary>
<Website>http://www.nytimes.com/2013/10/05/technology/htc-suffers-first-quarterly-loss-as-samsung-soars.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36559/guest@my.umbc.edu/726f6b038f480fcdcff4d161061bf72a/api/pixel</TrackingUrl>
<Tag>apple-inc-aapl-nasdaq</Tag>
<Tag>company-reports</Tag>
<Tag>gartner-inc-it-nyse</Tag>
<Tag>htc-corp</Tag>
<Tag>new</Tag>
<Tag>samsung-electronics-co</Tag>
<Tag>smartphones</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 04 Oct 2013 03:22:49 -0400</PostedAt>
<EditAt>Fri, 04 Oct 2013 14:38:21 -0400</EditAt>
</NewsItem>

</News>
