<?xml version="1.0"?>
<News hasArchived="true" page="7912" pageCount="10750" pageSize="10" timestamp="Fri, 14 Aug 2026 05:21:23 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7912">
<NewsItem contentIssues="true" id="40074" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40074">
<Title>Tickets on Sale at the CIC!</Title>
<Tagline>Event Tickets Remaining on January 9th, 2014</Tagline>
<Body>
<![CDATA[
    <div class="html-content"><div><div>
    <div><strong>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!</strong></div>
    <div><br></div>
    <div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/21555" rel="nofollow external" class="bo">Tubing Bus Trip (seb)</a></strong></div>
    <div><em>     Friday, January 17th</em></div>
    <div><em>     Bus Departs: Commons Loop @ 6:15pm</em></div>
    <div><em>     All Guests = $15.00</em></div>
    <div><em><strong>     We are on Ticket 9 of 49</strong></em></div>
    <div><br></div>
    </div>
    <div>
    <span><span><div><strong>Also, don't forget to check out these events happening this week!</strong></div></span></span><div><span><br></span></div>
    <div>
    <span><strong><a href="http://my.umbc.edu/events/21183" rel="nofollow external" class="bo">Women's Basketball vs. UMass Lowell</a></strong> - Saturday, January 11th. </span><span>Women's Basketball takes on UMass Lowell in the RAC arena at 1pm.</span>
    </div>
    <div><span><br></span></div>
    <div>
    <span><strong><a href="http://my.umbc.edu/events/21194" rel="nofollow external" class="bo">Men's Basketball vs. Maine</a></strong> - Saturday, January 11th. </span><span>Men's Basketball takes on Maine in the RAC Arena at 3:30pm.</span>
    </div>
    </div>
    </div></div></div>
]]>
</Body>
<Summary>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!      Tubing Bus Trip (seb)       Friday, January 17th       Bus Departs: Commons Loop @ 6:15pm       All...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40074/guest@my.umbc.edu/bbfd763892263a363f5a5234c7e2b055/api/pixel</TrackingUrl>
<Group token="cic">Campus Information Center (CIC)</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/cic</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/original.png?1318518699</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/large.png?1318518699</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/medium.png?1318518699</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/small.png?1318518699</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxsmall.png?1318518699</AvatarUrl>
<Sponsor>Campus Information Center (CIC)</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/xxlarge.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/xlarge.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/large.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/medium.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/small.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/xsmall.jpg?1389296160</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/040/074/081c243a74472af67b65145cff5221c7/xxsmall.jpg?1389296160</ThumbnailUrl>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 14:36:57 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="109874" important="false" status="posted" url="https://my3.my.umbc.edu/posts/109874">
<Title>Jason Hughes &#8217;15, Gary Kachadourian &#8217;12, IMDA, Present Work in &#8220;Love&#8221;</Title>
<Body>
<![CDATA[
    <div class="html-content">This Saturday, January 11, Jason Hughes ’15 and Gary Kachadourian ’12, imaging and digital arts, will present work in Baltimore Artists + WPA + Mera Rubell = Love, an exclusive preview that displays the artwork of those chosen for SELECT 2014 — an art auction curated by Mera Rubell, co-founder of the Rubell Family Collection. Baltimore Artists + WPA + Mera Rubell = Love is presented by the Washington Project for the arts, and will be on display January 11 through 8, at the Marianne Boesky Gallery‘s uptown space: 118 E 64th Street New York, NY 10065 The gallery is open Tuesday – Saturday: 10am – 6pm. …</div>
]]>
</Body>
<Summary>This Saturday, January 11, Jason Hughes ’15 and Gary Kachadourian ’12, imaging and digital arts, will present work in Baltimore Artists + WPA + Mera Rubell = Love, an exclusive preview that...</Summary>
<Website>https://news.umbc.edu/jason-hughes-15-gary-kachadourian-12-imda-present-work-in-love/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/109874/guest@my.umbc.edu/9eb4db515f1fc1ab7bf8472f31c60fdc/api/pixel</TrackingUrl>
<Tag>arts-and-culture</Tag>
<Tag>cahss</Tag>
<Tag>engage</Tag>
<Tag>visualarts</Tag>
<Group token="umbc-news">UMBC News</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xsmall.png?1632921809</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/original.png?1632921809</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xxlarge.png?1632921809</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xlarge.png?1632921809</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/large.png?1632921809</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/medium.png?1632921809</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/small.png?1632921809</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xsmall.png?1632921809</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xxsmall.png?1632921809</AvatarUrl>
<Sponsor>UMBC News</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 14:32:05 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="40081" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40081">
<Title>Motherlode Blog: The Memi Smart Bracelet: Wearable Tech That Lets You Disconnect</Title>
<Body>
<![CDATA[
    <div class="html-content">A smart bracelet without a screen, speaker or stylus is exactly what this gadget lover wants.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fparenting.blogs.nytimes.com%2F2014%2F01%2F09%2Fthe-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Motherlode+Blog%3A+The+Memi+Smart+Bracelet%3A+Wearable+Tech+That+Lets+You+Disconnect" 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%2Fparenting.blogs.nytimes.com%2F2014%2F01%2F09%2Fthe-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Motherlode+Blog%3A+The+Memi+Smart+Bracelet%3A+Wearable+Tech+That+Lets+You+Disconnect" 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%2Fparenting.blogs.nytimes.com%2F2014%2F01%2F09%2Fthe-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Motherlode+Blog%3A+The+Memi+Smart+Bracelet%3A+Wearable+Tech+That+Lets+You+Disconnect" 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%2Fparenting.blogs.nytimes.com%2F2014%2F01%2F09%2Fthe-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Motherlode+Blog%3A+The+Memi+Smart+Bracelet%3A+Wearable+Tech+That+Lets+You+Disconnect" 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%2Fparenting.blogs.nytimes.com%2F2014%2F01%2F09%2Fthe-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Motherlode+Blog%3A+The+Memi+Smart+Bracelet%3A+Wearable+Tech+That+Lets+You+Disconnect" 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>A smart bracelet without a screen, speaker or stylus is exactly what this gadget lover wants.      </Summary>
<Website>http://parenting.blogs.nytimes.com/2014/01/09/the-memi-smart-bracelet-wearable-tech-that-lets-you-disconnect/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40081/guest@my.umbc.edu/d26ca2c4f37e3a2100a46eb8fbb24476/api/pixel</TrackingUrl>
<Tag>highlights</Tag>
<Tag>international-consumer-electronics-show</Tag>
<Tag>new</Tag>
<Tag>parenting</Tag>
<Tag>smartphones</Tag>
<Tag>technology</Tag>
<Tag>text-messaging</Tag>
<Tag>wearable-computing</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 14:15:57 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="40068" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40068">
<Title>Call for Review: RDF 1.1 advances to Proposed Recommendation</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The <a href="http://www.w3.org/2011/rdf-wg/" rel="nofollow external" class="bo">RDF Working Group</a> has published today a set of eight Resource Description Framework (RDF) 1.1 specifications (6 Proposed Recommendations and 2 Proposed Edited Recommendations).</p>
    <ul>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-rdf11-concepts-20140109/" rel="nofollow external" class="bo">RDF 1.1 Concepts and Abstract Syntax</a> defines an abstract syntax (a data model) which serves to link all RDF-based languages and specifications. The abstract syntax has two key data structures: RDF graphs are sets of subject-predicate-object triples, where the elements may be IRIs, blank nodes, or datatyped literals. They are used to express descriptions of resources. RDF datasets are used to organize collections of RDF graphs, and comprise a default graph and zero or more named graphs.</li>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-rdf11-mt-20140109/" rel="nofollow external" class="bo">RDF 1.1 Semantics</a> describes a precise semantics for the Resource Description Framework 1.1 and RDF Schema, and defines a number of distinct entailment regimes and corresponding patterns of entailment.</li>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-turtle-20140109/" rel="nofollow external" class="bo">RDF 1.1 Turtle</a> defines a textual syntax for RDF called Turtle that allows an RDF graph to be completely written in a compact and natural text form, with abbreviations for common usage patterns and datatypes. Turtle provides levels of compatibility with the N-Triples format as well as the triple pattern syntax of the SPARQL W3C Recommendation.</li>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-trig-20140109/" rel="nofollow external" class="bo">RDF 1.1 TriG – RDF Dataset Language</a> defines a textual syntax for RDF called TriG that allows an RDF dataset to be completely written in a compact and natural text form, with abbreviations for common usage patterns and datatypes. TriG is an extension of the Turtle format. </li>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-n-triples-20140109/" rel="nofollow external" class="bo">RDF 1.1 N-Triples</a> is a line-based, plain text format for encoding an RDF graph. </li>
    <li>
    <a href="http://www.w3.org/TR/2014/PR-n-quads-20140109/" rel="nofollow external" class="bo">RDF 1.1 N-Quads</a> is a line-based, plain text format for encoding an RDF dataset. </li>
    <li>
    <a href="http://www.w3.org/TR/2014/PER-rdf-schema-20140109/" rel="nofollow external" class="bo">RDF Schema 1.1</a> (Proposed Edited Recommendations) provides a data-modelling vocabulary for RDF data. RDF Schema is an extension of the basic RDF vocabulary. </li>
    <li>
    <a href="http://www.w3.org/TR/2014/PER-rdf-syntax-grammar-20140109/" rel="nofollow external" class="bo">RDF 1.1 XML Syntax</a> (Proposed Edited Recommendations) defines an XML syntax for RDF called RDF/XML in terms of Namespaces in XML, the XML Information Set and XML Base.</li>
    </ul>
    <p>Comments are welcome by <strong>9 February 2014</strong>. Learn more about the <a href="https://www.w3.org/2013/data/" rel="nofollow external" class="bo">Data Activity</a>.</p>
    </div>
]]>
</Body>
<Summary>The RDF Working Group has published today a set of eight Resource Description Framework (RDF) 1.1 specifications (6 Proposed Recommendations and 2 Proposed Edited Recommendations).     RDF 1.1...</Summary>
<Website>http://www.w3.org/blog/news/archives/3568</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40068/guest@my.umbc.edu/1447ce0112e8c6fb540f109dc7a92946/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>publication</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>Thu, 09 Jan 2014 13:52:54 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="40072" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40072">
<Title>Creating a Photo Tag Wall With Twilio Picture Messaging &amp; PHP</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35369&amp;c=749984945" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35369&amp;c=749984945" alt="" style="max-width: 100%; height: auto;"></a><p><a href="http://www.twilio.com/" rel="nofollow external" class="bo">Twilio’s</a> recently announced Picture Messaging has vastly opened up what we can do with text messaging, now we can attach photos to our text messages and have them get used in different ways.</p>
    <p>In our case, we are going to build a Photo Tag Wall, which will contain photos linked to tags that will be displayed on a website.</p>
    <p></p>
    <p>This can be handy for events, or parties, or just about anything where you want to associate photos and tags.</p>
    <p>To process our photos, we’ll be doing a few different things; We’re going to store them locally, and then resize them to display on our screens nicer.</p>
    <p>We’re going to use the <a href="http://joltframework.com/" rel="nofollow external" class="bo">Jolt</a> Microframework for PHP, and <a href="https://github.com/j4mie/idiorm" rel="nofollow external" class="bo">Idiorm</a> and <a href="https://github.com/j4mie/paris" rel="nofollow external" class="bo">Paris</a> for our MySql handling.</p>
    <hr>
    <h2>Getting Started</h2>
    <p>Ok, first let’s set up our database:</p>
    <pre>&#x000A;    CREATE TABLE `tag`(&#x000A;    &#x000A;    `id` bigint(20) NOT NULL AUTO_INCREMENT,&#x000A;    &#x000A;    `name` varchar(255) NOT NULL DEFAULT '',&#x000A;    &#x000A;    `slug` varchar(255) NOT NULL DEFAULT '',&#x000A;    &#x000A;    PRIMARY KEY (`id`),&#x000A;    &#x000A;    KEY `name` (`name`),&#x000A;    &#x000A;    KEY `slug` (`slug`)&#x000A;    &#x000A;    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;&#x000A;    &#x000A;    CREATE TABLE `photo`(&#x000A;    &#x000A;    `id` bigint(20) NOT NULL AUTO_INCREMENT,&#x000A;    &#x000A;    `tag_id` bigint(20) NOT  NULL DEFAULT '0',&#x000A;    &#x000A;    `file` varchar(255) NOT NULL DEFAULT '',&#x000A;    &#x000A;    `from` varchar(255) NOT NULL DEFAULT '',&#x000A;    &#x000A;    `country` varchar(255) NOT NULL DEFAULT '',&#x000A;    &#x000A;    `datetime` timestamp DEFAULT CURRENT_TIMESTAMP,&#x000A;    &#x000A;    PRIMARY KEY (`id`),&#x000A;    &#x000A;    KEY `tag_id` (`tag_id`),&#x000A;    &#x000A;    KEY `file` (`file`)&#x000A;    &#x000A;    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;&#x000A;    &#x000A;    </pre>
    <p>We’re setting up two tables, one to store the tag, and one for the photos and the id to the tag they are associated with.</p>
    <p>This table will store the tag, the image, and some meta data about the phone number that sent the photo.</p>
    <p>We’re also going to need to download the Jolt framework, the Twilio PHP Library, and Idiorm and Paris.</p>
    <p>The first thing you’ll want to do is grab these packages from their respective websites:</p>
    <ul>
    <li><a href="https://github.com/freekrai/jolt/" rel="nofollow external" class="bo">Jolt (Stable Release)</a></li>
    <li>
    <a href="https://github.com/j4mie/paris" rel="nofollow external" class="bo">Paris</a> and <a href="https://github.com/j4mie/idiorm" rel="nofollow external" class="bo">Idiorm</a>
    </li>
    <li><a href="https://github.com/twilio/twilio-php" rel="nofollow external" class="bo">Twilio PHP Library</a></li>
    </ul>
    <p>Now that you have all the packages downloaded to your computer, it’s time to setup your directory structure. We’ll be putting the files into our site’s root folder.</p>
    <p>We’re putting the web services related files inside the <code>Services</code> folder, since it helps us watch where things are.</p>
    <p>Ok, let’s set up our <code>config.ini</code> file, open up <code>config.ini</code> in your editor and modify the following settings:</p>
    <pre>&#x000A;    ;site settings&#x000A;    &#x000A;    site.name = my site&#x000A;    &#x000A;    site.url = <a href="http://mysiteurl.com">http://mysiteurl.com</a>&#x000A;    &#x000A;    ; rendering vars&#x000A;    &#x000A;    views.root = views&#x000A;    &#x000A;    views.layout = layout&#x000A;    &#x000A;    ; session vars&#x000A;    &#x000A;    cookies.secret = IeNj0yt0sQu33zeflUFfym0nk1e&#x000A;    &#x000A;    cookies.flash = _F&#x000A;    &#x000A;    ; db stuff&#x000A;    &#x000A;    db.enabled = true&#x000A;    &#x000A;    db.host = MY DATABASE HOST&#x000A;    &#x000A;    db.name = MY DATABASE NAME&#x000A;    &#x000A;    db.user = MY DATABASE USER&#x000A;    &#x000A;    db.pass = MY DATABASE PASSWORD&#x000A;    &#x000A;    ; twilio stuff&#x000A;    &#x000A;    twilio.accountsid = MY TWILIO ACCOUNT SID&#x000A;    &#x000A;    twilio.authtoken = MY TWILIO AUTH TOKEN&#x000A;    &#x000A;    twilio.from = MY TWILIO FROM NUMBER&#x000A;    &#x000A;    </pre>
    <p>You can see what you’ll have to fill in here, your site name, and URL, your database info and your Twilio info.</p>
    <hr>
    <h2>Now for the Coding!</h2>
    <p>To get started, let’s set up our models. We’ll create a file inside the <code>system</code> folder called <code>models.php</code>:</p>
    <pre>&#x000A;    &lt;?php&#x000A;    &#x000A;    class Tag extends Model{&#x000A;    &#x000A;    	public function photos(){&#x000A;    &#x000A;    		return $this-&gt;has_many('Photo');&#x000A;    &#x000A;    	}&#x000A;    &#x000A;    }&#x000A;    &#x000A;    class Photo extends Model {&#x000A;    &#x000A;    	public function tag(){&#x000A;    &#x000A;    		return $this-&gt;belongs_to('Tag');&#x000A;    &#x000A;    	}&#x000A;    &#x000A;    }&#x000A;    &#x000A;    ?&gt;&#x000A;    &#x000A;    </pre>
    <p>This is a pretty basic model layout, but one nice thing about it, is that we’re using Paris to establish a relationship with the <code>tag</code> table. In fact, because we’ve previously built our database to have a <code>tag_id</code> field in the <code>photo</code> table, this model knows to associate all photos with the <code>tag_id</code>, where <code>tag_id</code> is the table name and the primary key field in the <code>tag</code> table.</p>
    <p>The same is true for the <code>Photo</code> class, where we’ve set it to belong to a tag as specified in the <code>tag()</code> function.</p>
    <p>This is handy for building a quick model system without a lot of overhead.</p>
    <p>We also want to create our <code>functions.php</code> file, which we will also keep inside the <code>system</code> folder:</p>
    <pre>&#x000A;    &lt;?php&#x000A;    &#x000A;    function slugify( $string ){&#x000A;    &#x000A;    	$string = strtolower( trim($string) );&#x000A;    &#x000A;    	$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);&#x000A;    &#x000A;    	return $slug;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    function cropResize($img,$out='',$dSize=170){&#x000A;    &#x000A;    	$x = @getimagesize($img);&#x000A;    &#x000A;    	$sw = $x[0];&#x000A;    &#x000A;    	$sh = $x[1];&#x000A;    &#x000A;    	$yOff = 0;&#x000A;    &#x000A;    	$xOff = 0;&#x000A;    &#x000A;    	if($sw &lt; $sh) {&#x000A;    &#x000A;    		$scale = $dSize / $sw;&#x000A;    &#x000A;    		$yOff = $sh/2 - $dSize/$scale/2;&#x000A;    &#x000A;    	} else {&#x000A;    &#x000A;    		$scale = $dSize / $sh;&#x000A;    &#x000A;    		$xOff = $sw/2 - $dSize/$scale/2;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    $im = @ImageCreateFromJPEG ($img) or // Read JPEG Image&#x000A;    &#x000A;    $im = @ImageCreateFromPNG ($img) or // or PNG Image&#x000A;    &#x000A;    $im = @ImageCreateFromGIF ($img) or // or GIF Image&#x000A;    &#x000A;    $im = false; // If image is not JPEG, PNG, or GIF&#x000A;    &#x000A;    if (!$im) {&#x000A;    &#x000A;    	readfile ($img);&#x000A;    &#x000A;    } else {&#x000A;    &#x000A;    	$thumb = @ImageCreateTrueColor ($dSize,$dSize);&#x000A;    &#x000A;    	imagecopyresampled($thumb, $im,&#x000A;    &#x000A;    	0, 0,&#x000A;    &#x000A;    	$xOff,$yOff,&#x000A;    &#x000A;    	$dSize, $dSize,&#x000A;    &#x000A;    	$dSize / $scale ,$dSize / $scale);&#x000A;    &#x000A;    }&#x000A;    &#x000A;    if( $out == '' ){&#x000A;    &#x000A;    	header('content-type:image/jpeg');&#x000A;    &#x000A;    	imagejpeg($thumb);&#x000A;    &#x000A;    }else{&#x000A;    &#x000A;    	imagejpeg($thumb, $out);&#x000A;    &#x000A;    }&#x000A;    &#x000A;    }&#x000A;    &#x000A;    </pre>
    <p><code>functions.php</code> will contain two core functions, one function, <code>slugify()</code>, will convert tag names into slugs, and the <code>cropResize()</code> function will take the image we pass to it, and save it within new dimensions.</p>
    <p>We’ll be using these functions quite a lot coming up.</p>
    <p>Most of our code will be stored inside <code>index.php</code>, so let’s set up the bare bones for it:</p>
    <pre>&#x000A;    &lt;?php&#x000A;    &#x000A;    include("system/jolt.php");&#x000A;    &#x000A;    require 'system/idiorm.php';&#x000A;    &#x000A;    require 'system/paris.php';&#x000A;    &#x000A;    require 'system/models.php';&#x000A;    &#x000A;    require 'Services/Twilio.php';&#x000A;    &#x000A;    require 'system/functions.php';&#x000A;    &#x000A;    </pre>
    <p>Ok, we’ve included our files, and nothing happened. Now, let’s get Jolt up and running:</p>
    <pre>&#x000A;    $app = new Jolt();&#x000A;    &#x000A;    $app-&gt;option('source', 'config.ini');&#x000A;    &#x000A;    </pre>
    <p>The above code just sets up Jolt and tells it to read the <code>config.ini</code> file and set our configuration settings, now let’s connect to our database:</p>
    <pre>&#x000A;    if( $app-&gt;option('db.enabled') != false ){&#x000A;    &#x000A;    	ORM::configure('mysql:host='.$app-&gt;option('db.host').';dbname='.$app-&gt;option('db.name'));&#x000A;    &#x000A;    	ORM::configure('username', $app-&gt;option('db.user') );&#x000A;    &#x000A;    	ORM::configure('password', $app-&gt;option('db.pass') );&#x000A;    &#x000A;    }&#x000A;    &#x000A;    </pre>
    <p>Our final piece of bootstrapping, we want to set up our Twilio client:</p>
    <pre>&#x000A;    $client = new Services_Twilio($app-&gt;option('twilio.accountsid'), $app-&gt;option('twilio.authtoken') );&#x000A;    &#x000A;    $fromNumber = $app-&gt;option('twilio.from');&#x000A;    &#x000A;    $app-&gt;store('client',$client);&#x000A;    &#x000A;    </pre>
    <p>This is our bootstrap section, so far all we’ve done is included our files, set up our Jolt app, connected to our database and initialized our Twilio client.</p>
    <p>Right now, if you run your app, you’ll get a few errors. This is fine, we’ll be taking care of those errors next.</p>
    <hr>
    <h2>Routing</h2>
    <p>Now we have to set up our routes and tell our app what to do based on certain rules. These rules will be either <code>get</code> or <code>post</code>.</p>
    <p>Our initial rules will be the home page, the tag page, and the listener:</p>
    <pre>&#x000A;    $app-&gt;get('/',function(){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    });&#x000A;    &#x000A;    $app-&gt;get('/tag/:tag',function($tag){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    });&#x000A;    &#x000A;    $app-&gt;post('/listener',function($tag){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    });&#x000A;    &#x000A;    $app-&gt;listen();&#x000A;    &#x000A;    </pre>
    <p>We’ve just set up the initial bare bones actions for our homepage, which is represented by the <code>'/'</code>, our tag page, and our listener.</p>
    <p>You’ll notice the listener is a <code>post</code> rather than a <code>get</code>, that is because this is the handler from Twilio when new messages are received.</p>
    <p>Lastly, you’ll see the <code>$app-&gt;listen();</code> method call. This is the most important method call we have, as it tells the app to start running.</p>
    <hr>
    <h2>There’s No Place Like Home</h2>
    <p>Let’s set up the home page, and build the view that we’ll be displaying for everybody.</p>
    <p>Replace the original homepage route with this one:</p>
    <pre>&#x000A;    $app-&gt;get('/', function(){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    $tags = Model::factory('Tag')-&gt;count();&#x000A;    &#x000A;    if( isset($tags) ){&#x000A;    &#x000A;    	$images = Model::factory('Photo')-&gt;count();&#x000A;    &#x000A;    	$tagList = Model::factory('Tag')-&gt;find_many();&#x000A;    &#x000A;    }else{&#x000A;    &#x000A;    	$tags = 0;&#x000A;    &#x000A;    	$images = 0;&#x000A;    &#x000A;    	$tagList = array();&#x000A;    &#x000A;    }&#x000A;    &#x000A;    $app-&gt;render( 'home',array(&#x000A;    &#x000A;    	'tags'=&gt;$tags,&#x000A;    &#x000A;    	'tagList' =&gt; $tagList,&#x000A;    &#x000A;    	'fromNumber' =&gt; $app-&gt;option('twilio.from'),&#x000A;    &#x000A;    	'images'=&gt;$images&#x000A;    &#x000A;    	));&#x000A;    &#x000A;    });&#x000A;    &#x000A;    </pre>
    <p>You’ll also notice that we tell it to render something called ‘<code>home</code>‘, in the <code>views</code> folder, there is a <code>home.php</code> file, open it up and edit it as follows:</p>
    <pre>&#x000A;    &lt;p &gt;Text &lt;span&gt;&lt;?php echo $fromNumber ?&gt;&lt;/span&gt; a picture with the name of a tag.  Your image will be displayed on that tag.&lt;/p&gt;&#x000A;    &#x000A;    &lt;div&gt;&#x000A;    &#x000A;    	&lt;div&gt;&#x000A;    &#x000A;    		&lt;p&gt;Number of Tags: &lt;?php echo $tags; ?&gt;&lt;/p&gt;&#x000A;    &#x000A;    		&lt;p&gt;Number of Images: &lt;?php echo $images; ?&gt;&lt;/p&gt;&#x000A;    &#x000A;    	&lt;/div&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;hr /&gt;&#x000A;    &#x000A;    &lt;h3&gt;Tags&lt;/h3&gt;&#x000A;    &#x000A;    &lt;ul&gt;&#x000A;    &#x000A;    &lt;?php   foreach($tagList as $tag){  ?&gt;&#x000A;    &#x000A;    	&lt;li&gt;&#x000A;    &#x000A;    	&lt;a href="&lt;?php echo $uri?&gt;/tag/&lt;?php echo $tag-&gt;slug?&gt;"&gt;&lt;?php echo $tag-&gt;name?&gt;&lt;/a&gt;&#x000A;    &#x000A;    	&lt;/li&gt;&#x000A;    &#x000A;    &lt;?php   }   ?&gt;&#x000A;    &#x000A;    &lt;/ul&gt;&#x000A;    &#x000A;    </pre>
    <p>This file will take the variables we pass from the <code>$app-&gt;render()</code> function and make use of them here.</p>
    <p>We’re going to display a count of total tags, along with total images, and a list of tags that a visitor can click on.</p>
    <p>The actual page layout is controlled by a file called <code>layout.php</code>. Let’s go ahead and update that file now:</p>
    <pre>&#x000A;    &lt;html&gt;&#x000A;    &#x000A;    	&lt;head&gt;&#x000A;    &#x000A;    		&lt;title&gt;&lt;?=$pageTitle?&gt;&lt;/title&gt;&#x000A;    &#x000A;    		&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;&#x000A;    &#x000A;    		&lt;link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"&gt;&#x000A;    &#x000A;    		&lt;link href="&lt;?=$uri?&gt;/style.css" rel="stylesheet"&gt;&#x000A;    &#x000A;    		&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"&gt;&lt;/script&gt;&#x000A;    &#x000A;    		&lt;script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"&gt;&lt;/script&gt;&#x000A;    &#x000A;    	&lt;/head&gt;&#x000A;    &#x000A;    	&lt;body&gt;&#x000A;    &#x000A;    		&lt;div&gt;&#x000A;    &#x000A;    			&lt;div&gt;&#x000A;    &#x000A;    				&lt;ul&gt;&#x000A;    &#x000A;    					&lt;li&gt;&lt;a href="&lt;?=$uri?&gt;"&gt;Home&lt;/a&gt;&lt;/li&gt;&#x000A;    &#x000A;    				&lt;/ul&gt;&#x000A;    &#x000A;    				&lt;h3&gt;Photo Wall&lt;/h3&gt;&#x000A;    &#x000A;    			&lt;/div&gt;&#x000A;    &#x000A;    		&lt;hr /&gt;&#x000A;    &#x000A;    		&lt;section&gt;&#x000A;    &#x000A;    			&lt;?=$pageContent?&gt;&#x000A;    &#x000A;    		&lt;/section&gt;&#x000A;    &#x000A;    		&lt;/div&gt;&#x000A;    &#x000A;    	&lt;/body&gt;&#x000A;    &#x000A;    &lt;/html&gt;&#x000A;    &#x000A;    </pre>
    <p>This is pretty bare bones HTML, but it covers what we’re needing. All output gets sent to the <code>$pageContent</code> variable in <code>layout.php</code>.</p>
    <hr>
    <h2>Picture Messaging!</h2>
    <p>Ok, now let’s handle the actual uploading of pictures from Twilio.</p>
    <p>Log into your Twilio account and point a phone number to <code><a href="http://MYSITEURL/listener">http://MYSITEURL/listener</a></code> for SMS messages, where <code>MYSITEURL</code> is the address where you’ve uploaded your app.</p>
    <p>We’re going to replace our listener route with this one:</p>
    <pre>&#x000A;    $app-&gt;post('/listener', function(){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    if ( isset($_POST['NumMedia']) &amp;&amp; $_POST['NumMedia'] &gt; 0 ){&#x000A;    &#x000A;    	//  let's find out what tag this is for.. or create a new one..&#x000A;    &#x000A;    	$thetag = slugify( $_POST['Body'] );&#x000A;    &#x000A;    	$tag  = Model::factory('Tag')-&gt;where_equal( 'slug', $thetag )-&gt;find_one();&#x000A;    &#x000A;    	if( isset($tag-&gt;id) &amp;&amp; !empty($tag-&gt;id) ){&#x000A;    &#x000A;    		$tag_id = $tag-&gt;id;&#x000A;    &#x000A;    	}else{&#x000A;    &#x000A;    		//  no tag already exists...&#x000A;    &#x000A;    		$tag                    = Model::factory('Tag')-&gt;create();&#x000A;    &#x000A;    		$tag-&gt;name              = $_POST['Body'];&#x000A;    &#x000A;    		$tag-&gt;slug              = slugify( $_POST['Body'] );&#x000A;    &#x000A;    		$tag-&gt;save();&#x000A;    &#x000A;    		$tag_id = $tag-&gt;id();&#x000A;    &#x000A;    	}&#x000A;    &#x000A;    	for ($i = 0; $i &lt; $_POST['NumMedia']; $i++){&#x000A;    &#x000A;    	if (strripos($_POST['MediaContentType'.$i], 'image') === False){&#x000A;    &#x000A;    		continue;&#x000A;    &#x000A;    	}&#x000A;    &#x000A;    	$file = sha1($_POST['MediaUrl'.$i]).'.jpg';&#x000A;    &#x000A;    	file_put_contents('images/original/'.$file, file_get_contents($_POST['MediaUrl'.$i]));&#x000A;    &#x000A;    	chmod ('images/original/'.$file, 01777);&#x000A;    	// Edit image&#x000A;    &#x000A;    	$in = 'images/original/'.$file;&#x000A;    &#x000A;    	$out = 'images/processed/'.$file;&#x000A;    &#x000A;    	cropResize($in,$out,250);&#x000A;    &#x000A;    	chmod ('images/processed/'.$file, 01777);&#x000A;    	// Remove Original Image&#x000A;    &#x000A;    	unlink('images/original/'.$file);&#x000A;    &#x000A;    	$photo              =   Model::factory('Photo')-&gt;create();&#x000A;    &#x000A;    	$photo-&gt;tag_id      =   $tag_id;&#x000A;    &#x000A;    	$photo-&gt;file        =   $file;&#x000A;    &#x000A;    	$photo-&gt;from        =   $_POST['From'];&#x000A;    &#x000A;    	$photo-&gt;country     =   $_POST['FromCountry'];&#x000A;    &#x000A;    	$photo-&gt;save();&#x000A;    &#x000A;    	}&#x000A;    &#x000A;    	$message = $app-&gt;store('client')-&gt;account-&gt;messages-&gt;sendMessage(&#x000A;    &#x000A;    	$app-&gt;option('twilio.from'), // From a valid Twilio number&#x000A;    &#x000A;    	$_POST['From'], // Text this number&#x000A;    &#x000A;    	"Image(s) Added to &lt;".strtolower(trim($_POST['Body']))."&gt; Photo Wall Link: ".$app-&gt;option('site.url')."/tag/".strtolower(trim($_POST['Body']))&#x000A;    &#x000A;    	);&#x000A;    &#x000A;    	return true;&#x000A;    &#x000A;    }else{&#x000A;    &#x000A;    	if ( isset($_POST['From']) ){&#x000A;    &#x000A;    	$message = $app-&gt;store('client')-&gt;account-&gt;messages-&gt;sendMessage(&#x000A;    &#x000A;    	$app-&gt;option('twilio.from'), // From a valid Twilio number&#x000A;    &#x000A;    	$_POST['From'], // Text this number&#x000A;    &#x000A;    	"MMS error. Please try sending your image again."&#x000A;    &#x000A;    	);&#x000A;    &#x000A;    }&#x000A;    &#x000A;    header('HTTP/1.1 400 Bad Request', true, 400);&#x000A;    &#x000A;    return false;&#x000A;    &#x000A;    }&#x000A;    &#x000A;    });&#x000A;    &#x000A;    </pre>
    <p>There is no view associated with this action. Now, let’s go over what it does.</p>
    <p>This is only called during a <code>post</code>, hence the <code>$app-&gt;post()</code> statement.</p>
    <p>When it is activated by someone sending in a message, we check to see if there are any images attached, and if there are, then we cycle through them and save them in the database.</p>
    <p>First, we check to see if there are any tags already stored in our database that match the tag we attached to our image, and if there is, then we grab the <code>id</code> from the database, otherwise, we save a new record containing that tag’s information.</p>
    <p>Next, we cycle through the uploaded files and make sure they are images. Each image is downloaded locally and stored inside the <code>images/original</code> folder. We then resize and crop the images to be a more manageable size, and store the new files inside the <code>images/processed</code> folder.</p>
    <p>Finally, we store the images inside the database, along with some meta data on the call itself, and send a text message back to the sender to tell him or her to check out the tag page.</p>
    <p>If no images were attached, then we send them a message that there was an error.</p>
    <hr>
    <h2>The Photo Wall</h2>
    <p>Now, we’ve set up the home page, and we’ve set up the listener. What’s left, is to set up the photo wall itself.</p>
    <p>This will go inside the <code>$app-&gt;get(‘/tag/:tag')</code> call.</p>
    <p>Replace the original placeholder with the following code:</p>
    <pre>&#x000A;    // preload photos whenever a matching route has :tag in it&#x000A;    &#x000A;    $app-&gt;filter('tag_slug', function ($tag_slug){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    $tag = Model::factory('Tag')-&gt;where_equal('slug',$tag_slug)-&gt;find_one();&#x000A;    &#x000A;    $photos = $tag-&gt;photos()-&gt;find_many();&#x000A;    &#x000A;    $app-&gt;store('tag', $tag);&#x000A;    &#x000A;    $app-&gt;store('photos', $photos);&#x000A;    &#x000A;    });&#x000A;    &#x000A;    $app-&gt;get('/tag/:tag_slug', function($tag_slug){&#x000A;    &#x000A;    $app = Jolt::getInstance();&#x000A;    &#x000A;    $tag = $app-&gt;store('tag');&#x000A;    &#x000A;    $photos = $app-&gt;store('photos');&#x000A;    &#x000A;    $app-&gt;render( 'gallery', array(&#x000A;    &#x000A;    "pageTitle"=&gt;"viewing Photos for {$tag-&gt;name}",&#x000A;    &#x000A;    "tag"=&gt;$tag,&#x000A;    &#x000A;    "photos"=&gt;$photos&#x000A;    &#x000A;    ));&#x000A;    &#x000A;    });&#x000A;    &#x000A;    </pre>
    <p>Notice the <code>$app-&gt;filter()</code>, This is a handy method we can set up that will grab the tag and its photos each time the <code>$tag_slug</code> variable is passed, this lets us save on extra queries.</p>
    <p>Now, we need to set up a <code>gallery.php</code> page inside <code>views</code>:</p>
    <pre>&#x000A;    &lt;div&gt;&#x000A;    &#x000A;    	&lt;h1&gt;#&lt;?php echo $tag-&gt;name; ?&gt;&lt;/h1&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;hr /&gt;&#x000A;    &#x000A;    &lt;div&gt;&#x000A;    &#x000A;    	&lt;div&gt;&#x000A;    &#x000A;    		&lt;div id="container"&gt;&#x000A;    &#x000A;    			&lt;?php   foreach($photos as $photo){ ?&gt;&#x000A;    &#x000A;    			&lt;?php if (file_exists('images/processed/'.$photo-&gt;file)){ ?&gt;&#x000A;    &#x000A;    		&lt;div&gt;&#x000A;    &#x000A;    	&lt;div&gt;&#x000A;    &#x000A;    	&lt;a href="&lt;?php echo $uri?&gt;/images/processed/&lt;?php echo $photo-&gt;file ?&gt;" title="&lt;?php echo $photo-&gt;datetime ?&gt;" &gt;&#x000A;    	&lt;img src="&lt;?php echo $uri?&gt;/images/processed/&lt;?php echo $photo-&gt;file ?&gt;" /&gt;&lt;/a&gt;&#x000A;    &#x000A;    	&lt;p&gt;&lt;?php echo $photo-&gt;datetime?&gt;&lt;/p&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;?php } ?&gt;&#x000A;    &#x000A;    &lt;?php } ?&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;/div&gt;&#x000A;    &#x000A;    &lt;script src="//cdnjs.cloudflare.com/ajax/libs/masonry/3.1.1/masonry.pkgd.min.js"&gt;&lt;/script&gt;&#x000A;    &#x000A;    &lt;script type="text/javascript"&gt;&#x000A;    &#x000A;    var container = document.querySelector('#container');&#x000A;    &#x000A;    var msnry = new Masonry( container, {&#x000A;    &#x000A;    itemSelector: '.image'&#x000A;    &#x000A;    });&#x000A;    &#x000A;    &lt;/script&gt;&#x000A;    &#x000A;    </pre>
    <p>This will display the gallery, and use jQuery masonry to float all the images nicely.</p>
    <hr>
    <h2>In Conclusion</h2>
    <p>So that completes our app. You’ve now built a handy little photo wall that can be used to show photos from events. Be sure to checkout the links provided above to learn more about the libraries and frameworks used throughout this article. Thanks for reading.</p>
    </div>
]]>
</Body>
<Summary>Twilio’s recently announced Picture Messaging has vastly opened up what we can do with text messaging, now we can attach photos to our text messages and have them get used in different ways.  In...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/e_lFchyGYik/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40072/guest@my.umbc.edu/1ad9bd845c2815e45ed44c5e379c32e0/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>twilio</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>Thu, 09 Jan 2014 13:40:04 -0500</PostedAt>
<EditAt>Thu, 09 Jan 2014 13:40:04 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="40069" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40069">
<Title>W3C Invites Implementations of Media Source Extensions</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The <a href="http://www.w3.org/html/wg/" rel="nofollow external" class="bo">HTML Working Group</a> has published <a href="http://www.w3.org/TR/2014/CR-media-source-20140109/" rel="nofollow external" class="bo">Media Source Extensions</a> as a Candidate Recommendation. This specification extends HTMLMediaElement to allow JavaScript to generate media streams for playback. Allowing JavaScript to generate streams facilitates a variety of use cases like adaptive streaming and time shifting live streams. Comments and implementations are welcome by <strong>9 April 2014</strong>. Learn more about the <a href="http://www.w3.org/html/Activity.html" rel="nofollow external" class="bo">HTML Activity</a>.</p></div>
]]>
</Body>
<Summary>The HTML Working Group has published Media Source Extensions as a Candidate Recommendation. This specification extends HTMLMediaElement to allow JavaScript to generate media streams for playback....</Summary>
<Website>http://www.w3.org/blog/news/archives/3566</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40069/guest@my.umbc.edu/a1d480e54dd03bfef168e2b51f2c7441/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>publication</Tag>
<Tag>sql</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Tag>web-design-and-applications</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 13:36:28 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="40087" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40087">
<Title>E.U. Panel Invites Snowden to Testify on Privacy Breaches</Title>
<Body>
<![CDATA[
    <div class="html-content">A parliamentary committee asked Edward J. Snowden to speak via video about protecting citizens’ privacy.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2014%2F01%2F10%2Fworld%2Feurope%2Feu-panel-invites-snowden.html%3Fpartner%3Drss%26emc%3Drss&amp;t=E.U.+Panel+Invites+Snowden+to+Testify+on+Privacy+Breaches" 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%2F2014%2F01%2F10%2Fworld%2Feurope%2Feu-panel-invites-snowden.html%3Fpartner%3Drss%26emc%3Drss&amp;t=E.U.+Panel+Invites+Snowden+to+Testify+on+Privacy+Breaches" 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%2F2014%2F01%2F10%2Fworld%2Feurope%2Feu-panel-invites-snowden.html%3Fpartner%3Drss%26emc%3Drss&amp;t=E.U.+Panel+Invites+Snowden+to+Testify+on+Privacy+Breaches" 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%2F2014%2F01%2F10%2Fworld%2Feurope%2Feu-panel-invites-snowden.html%3Fpartner%3Drss%26emc%3Drss&amp;t=E.U.+Panel+Invites+Snowden+to+Testify+on+Privacy+Breaches" 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%2F2014%2F01%2F10%2Fworld%2Feurope%2Feu-panel-invites-snowden.html%3Fpartner%3Drss%26emc%3Drss&amp;t=E.U.+Panel+Invites+Snowden+to+Testify+on+Privacy+Breaches" 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>A parliamentary committee asked Edward J. Snowden to speak via video about protecting citizens’ privacy.      </Summary>
<Website>http://www.nytimes.com/2014/01/10/world/europe/eu-panel-invites-snowden.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40087/guest@my.umbc.edu/58e87a6cc45b25d961b274c7884e5940/api/pixel</TrackingUrl>
<Tag>classified-information-and-state-secrets</Tag>
<Tag>european-parliament</Tag>
<Tag>national-security-agency</Tag>
<Tag>new</Tag>
<Tag>snowden-edward-j</Tag>
<Tag>surveillance-of-citizens-by-government</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 13:32:13 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="40070" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40070">
<Title>Bits: A Way to Carrying Multiple Concealed Devices</Title>
<Body>
<![CDATA[
    <div class="html-content">TechSlinger’s products have a shoulder harness that suspends a tablet pocket with a quick-draw front opening on one side, and a phone holder and accessories bag on the other.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2014%2F01%2F09%2Fa-way-to-carrying-multiple-concealed-devices%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+A+Way+to+Carrying+Multiple+Concealed+Devices" 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%2Fbits.blogs.nytimes.com%2F2014%2F01%2F09%2Fa-way-to-carrying-multiple-concealed-devices%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+A+Way+to+Carrying+Multiple+Concealed+Devices" 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%2Fbits.blogs.nytimes.com%2F2014%2F01%2F09%2Fa-way-to-carrying-multiple-concealed-devices%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+A+Way+to+Carrying+Multiple+Concealed+Devices" 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%2Fbits.blogs.nytimes.com%2F2014%2F01%2F09%2Fa-way-to-carrying-multiple-concealed-devices%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+A+Way+to+Carrying+Multiple+Concealed+Devices" 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%2Fbits.blogs.nytimes.com%2F2014%2F01%2F09%2Fa-way-to-carrying-multiple-concealed-devices%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits%3A+A+Way+to+Carrying+Multiple+Concealed+Devices" 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/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/sc/15/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/186528510331/u/0/f/640387/c/34625/s/35b4cb4a/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>TechSlinger’s products have a shoulder harness that suspends a tablet pocket with a quick-draw front opening on one side, and a phone holder and accessories bag on the other.      </Summary>
<Website>http://bits.blogs.nytimes.com/2014/01/09/a-way-to-carrying-multiple-concealed-devices/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40070/guest@my.umbc.edu/cea752d1617fe5e54715779bce4b66b6/api/pixel</TrackingUrl>
<Tag>ces-2014</Tag>
<Tag>new</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 13:31:24 -0500</PostedAt>
<EditAt>Thu, 09 Jan 2014 14:59:38 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="40066" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40066">
<Title>Best Practices for Publishing Linked Data Published as First Public Working Group Note</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The <a href="http://www.w3.org/2011/gld/" rel="nofollow external" class="bo">Government Linked Data Working Group</a> has published a First Public Working Group Note of <a href="http://www.w3.org/TR/2014/NOTE-ld-bp-20140109/" rel="nofollow external" class="bo">Best Practices for Publishing Linked Data</a>. This document sets out a series of best practices designed to facilitate development and delivery of open government data as Linked Open Data. Linked Open Data makes the World Wide Web into a global database, sometimes referred to as the “Web of Data”. Using Linked Data Principles, developers can query Linked Data from multiple sources at once and combine it without the need for a single common schema that all data shares. Prior to international data exchange standards for data on the Web, it was time consuming and difficult to build applications using traditional data management techniques. As more open government data is published on the Web, best practices are evolving too. The goal of this document is to compile the most relevant data management practices for the publication and use of of high quality data published by governments around the world as Linked Open Data. Learn more about the <a href="http://www.w3.org/2013/data/" rel="nofollow external" class="bo">Data Activity</a>.</p></div>
]]>
</Body>
<Summary>The Government Linked Data Working Group has published a First Public Working Group Note of Best Practices for Publishing Linked Data. This document sets out a series of best practices designed to...</Summary>
<Website>http://www.w3.org/blog/news/archives/3564</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40066/guest@my.umbc.edu/baf2b2f3a9df76973c94cc367ae8b658/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>publication</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>Thu, 09 Jan 2014 13:22:47 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="40067" important="false" status="posted" url="https://my3.my.umbc.edu/posts/40067">
<Title>W3C Advisory Committee Elects Technical Architecture Group</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The W3C Advisory Committee has elected the following people to the <a href="/2001/tag/" rel="nofollow external" class="bo">W3C Technical Architecture Group (TAG)</a>: Domenic Denicola (Lab49) and David Herman (Mozilla Foundation). They join continuing participants Daniel Appelquist (Telefónica; co-Chair), Yehuda Katz (JQuery Foundation),
    Sergey Konstantinov (Yandex), Peter Linss (HP; co-Chair), Alex Russell (Google), and Jeni Tennison (ODI), as well as co-Chair Tim Berners-Lee. W3C thanks those TAG participants whose terms end this month for their contributions: Henry Thompson (U. of Edinburgh) and Anne van Kesteren (Mozilla Foundation). The mission of the TAG is to build consensus around principles of Web architecture and to interpret and clarify these principles when necessary, to resolve issues involving general Web architecture brought to the TAG, and to help coordinate cross-technology architecture developments inside and outside W3C. Learn more about the <a href="/2001/tag/" rel="nofollow external" class="bo">TAG</a>.</p></div>
]]>
</Body>
<Summary>The W3C Advisory Committee has elected the following people to the W3C Technical Architecture Group (TAG): Domenic Denicola (Lab49) and David Herman (Mozilla Foundation). They join continuing...</Summary>
<Website>http://www.w3.org/blog/news/archives/3570</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/40067/guest@my.umbc.edu/aa6022ecae3120ea3254fe80f357bdf0/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>sql</Tag>
<Tag>top-story</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Tag>web-architecture</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 09 Jan 2014 13:11:05 -0500</PostedAt>
</NewsItem>

</News>
