<?xml version="1.0"?>
<News hasArchived="true" page="7730" pageCount="10778" pageSize="10" timestamp="Mon, 31 Aug 2026 11:22:51 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7730&amp;range=2">
<NewsItem contentIssues="true" id="42261" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42261">
<Title>Bits Blog: Snowden Urges Tech Industry to Protect Customers</Title>
<Body>
<![CDATA[
    <div class="html-content">Edward J. Snowden discussed spying by the National Security Agency via videoconference at South by Southwest, and told attendees that they were “the folks who can fix this.”<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%2F03%2F10%2Fat-sxsw-snowden-speaks-about-n-s-a-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Snowden+Urges+Tech+Industry+to+Protect+Customers" 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%2F03%2F10%2Fat-sxsw-snowden-speaks-about-n-s-a-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Snowden+Urges+Tech+Industry+to+Protect+Customers" 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%2F03%2F10%2Fat-sxsw-snowden-speaks-about-n-s-a-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Snowden+Urges+Tech+Industry+to+Protect+Customers" 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%2F03%2F10%2Fat-sxsw-snowden-speaks-about-n-s-a-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Snowden+Urges+Tech+Industry+to+Protect+Customers" 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%2F03%2F10%2Fat-sxsw-snowden-speaks-about-n-s-a-spying%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Snowden+Urges+Tech+Industry+to+Protect+Customers" 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/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386607/u/0/f/640387/c/34625/s/3801da38/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Edward J. Snowden discussed spying by the National Security Agency via videoconference at South by Southwest, and told attendees that they were “the folks who can fix this.”      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/3801da38/sc/21/l/0Lbits0Bblogs0Bnytimes0N0C20A140C0A30C10A0Cat0Esxsw0Esnowden0Espeaks0Eabout0En0Es0Ea0Espying0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42261/guest@my.umbc.edu/0393b5777d27a60c70445f1119774d5d/api/pixel</TrackingUrl>
<Tag>national-security-agency</Tag>
<Tag>new</Tag>
<Tag>security</Tag>
<Tag>snowden-edward-j</Tag>
<Tag>south-by-southwest</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>Mon, 10 Mar 2014 12:47:13 -0400</PostedAt>
<EditAt>Wed, 12 Mar 2014 18:52:15 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="42257" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42257">
<Title>Possible Visitor at FA This Week</Title>
<Tagline>Please comment with your opinions/concerns!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">Hi everyone.<div>I have just been contacted by a student who is interested in going to this week's Freedom Alliance meeting for a blogging assignment about a campus group meeting. I have been assured that no names would be used (they would be changed) and that nothing said would be specifically quoted. I don't want to give the go-ahead unless everyone who will be present will be completely okay with this, so please comment and let me know how you feel. You can also message me if you have any concerns at all. Again, I'm not going to invite the student to the meeting unless everyone is completely okay with it. I will also ask again at the beginning of the meeting to make sure that everyone present knows about the visitor and feels comfortable. T<span>hey would also be bringing a friend who has been to FA in the past and is familiar with the contingencies inherent to our meetings.</span><div><span><br></span></div>
    <div><span>Feel free to contact me (sarspi1@umbc) if you have any concerns at all. </span></div>
    </div>
    </div>
]]>
</Body>
<Summary>Hi everyone. I have just been contacted by a student who is interested in going to this week's Freedom Alliance meeting for a blogging assignment about a campus group meeting. I have been assured...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42257/guest@my.umbc.edu/a5260b37bd96abc3046ff98f43f7a0a4/api/pixel</TrackingUrl>
<Group token="retired-814">LGBTQ Student Union</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-814</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/xsmall.png?1652995534</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/original.png?1652995534</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/xxlarge.png?1652995534</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/xlarge.png?1652995534</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/large.png?1652995534</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/medium.png?1652995534</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/small.png?1652995534</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/xsmall.png?1652995534</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/814/fc1f2fc90d6a8d4da9d43ddb9a1c67e8/xxsmall.png?1652995534</AvatarUrl>
<Sponsor>Freedom Alliance</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 12:14:59 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42262" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42262">
<Title>DealBook: EBay Rejects Icahn&#8217;s Nominees for Its Board</Title>
<Body>
<![CDATA[
    <div class="html-content">The company said that it had rejected Carl C. Icahn’s two nominees for its board and instead chose to renominate every director up for re-election this year.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2014%2F03%2F10%2Febay-rejects-icahns-nominees-for-its-board%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+EBay+Rejects+Icahn%E2%80%99s+Nominees+for+Its+Board" 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%2F2014%2F03%2F10%2Febay-rejects-icahns-nominees-for-its-board%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+EBay+Rejects+Icahn%E2%80%99s+Nominees+for+Its+Board" 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%2F2014%2F03%2F10%2Febay-rejects-icahns-nominees-for-its-board%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+EBay+Rejects+Icahn%E2%80%99s+Nominees+for+Its+Board" 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%2F2014%2F03%2F10%2Febay-rejects-icahns-nominees-for-its-board%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+EBay+Rejects+Icahn%E2%80%99s+Nominees+for+Its+Board" 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%2F2014%2F03%2F10%2Febay-rejects-icahns-nominees-for-its-board%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+EBay+Rejects+Icahn%E2%80%99s+Nominees+for+Its+Board" 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/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/sc/21/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/191801386606/u/0/f/640387/c/34625/s/3801da3d/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The company said that it had rejected Carl C. Icahn’s two nominees for its board and instead chose to renominate every director up for re-election this year.      </Summary>
<Website>http://rss.nytimes.com/c/34625/f/640387/s/3801da3d/sc/21/l/0Ldealbook0Bnytimes0N0C20A140C0A30C10A0Cebay0Erejects0Eicahns0Enominees0Efor0Eits0Eboard0C0Dpartner0Frss0Gemc0Frss/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42262/guest@my.umbc.edu/6143824e6b25abfd61eae7a5dd6ef69d/api/pixel</TrackingUrl>
<Tag>andreessen-marc-l</Tag>
<Tag>boards-of-directors</Tag>
<Tag>cook-scott</Tag>
<Tag>corporate-governance</Tag>
<Tag>donahoe-john-j</Tag>
<Tag>ebay-inc</Tag>
<Tag>ebay-inc-ebay-nasdaq</Tag>
<Tag>hedge-funds</Tag>
<Tag>icahn-carl-c</Tag>
<Tag>microsoft-corporation</Tag>
<Tag>microsoft-corporation-msft-nasdaq</Tag>
<Tag>new</Tag>
<Tag>paypal</Tag>
<Tag>skype-technologies</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>Mon, 10 Mar 2014 11:40:16 -0400</PostedAt>
<EditAt>Mon, 10 Mar 2014 21:32:17 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42255" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42255">
<Title>Lockheed Martin Corporate Visibility Day</Title>
<Tagline>Commons 329 on 3/12 from 11am-2pm, Stop by when you can</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <span><span>This Wednesday, March 12</span></span>,
     representatives from Lockheed Martin will be on campus hosting a 
    Corporate Visibility Day.  The event will take place in Commons 329, <span><span>11am - 2pm</span></span>.
    
    
    <div><br></div>
    <div>
    <span>We would like to ask you to encourage students to attend this program. Students can d</span>rop
     in throughout the day to speak with Lockheed Martin leaders in a group 
    or one-on-one setting.  The Keynote Speaker, Julian Warrick, is the 
    Director of Engineering &amp; Technology for a variety of Information 
    Technology fields. They include Big Data Analytics, Healthcare, 
    Biometrics, Air Traffic Management Systems, Cyber, Cloud, and Genomics. 
     Keynote Speaker presentations will be held at <span><span>12:00pm and 12:30pm</span></span>.</div>
    
    
    <div><br></div>
    <div>Headquartered in Bethesda, Maryland, Lockheed Martin
     is a global security and aerospace company that employs about 115,000 
    people worldwide and is principally engaged in the research, design, 
    development, manufacture, integration and sustainment of advanced 
    technology systems, products and services.  The Office of Institutional 
    Advancement and Career Services Center are working to increase Lockheed 
    Martin's commitment to hiring our students and to the University as a 
    whole.</div>
    </div>
]]>
</Body>
<Summary>This Wednesday, March 12,  representatives from Lockheed Martin will be on campus hosting a  Corporate Visibility Day.  The event will take place in Commons 329, 11am - 2pm.       We would like to...</Summary>
<Website>http://careers.umbc.edu/news_events/corpvis/reader.php?id=d4c296c08ffb39bfbc0382b1564b5173&amp;file=infosessions</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42255/guest@my.umbc.edu/f2afa3ff206a1634ed02783e5bcb616f/api/pixel</TrackingUrl>
<Group token="cwitaffiliates">CWIT Affiliates</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/cwitaffiliates</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/xsmall.png?1724681280</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/original.png?1724681280</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/xxlarge.png?1724681280</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/xlarge.png?1724681280</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/large.png?1724681280</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/medium.png?1724681280</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/small.png?1724681280</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/xsmall.png?1724681280</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/215/ed0dde28b964e06263b6aa35dc2ee277/xxsmall.png?1724681280</AvatarUrl>
<Sponsor>CWIT Affiliates</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/xxlarge.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/xlarge.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/large.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/medium.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/small.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/xsmall.jpg?1394465953</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/255/2ba26b01250c77738e68650b3f72924c/xxsmall.jpg?1394465953</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 11:39:26 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42256" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42256">
<Title>Remaking Movies</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://usdemocrazy.net/wp-content/uploads/2014/03/mr_pea10.jpg" rel="nofollow external" class="bo"><img alt="" src="http://usdemocrazy.net/wp-content/uploads/2014/03/mr_pea10.jpg" width="560" height="350" style="max-width: 100%; height: auto;"></a></p>
    <p>Sure, there are series like <a title="House of Cards" href="https://www.facebook.com/HouseofCards" rel="nofollow external" class="bo">House of Cards</a> or <a title="Orange is the New Black" href="https://www.facebook.com/OITNB" rel="nofollow external" class="bo">Orange is the New Black</a> on Netflix, but sometimes nothing beats a good old fashioned trip to the local cinema.</p>
    <p>Although ticket sales have shown a recent decline, the industry is still thriving and as glamorous as always. Special effects are better than ever ( just go see any action movie if you think otherwise) and quality storylines can still be found.</p>
    <p>There is one interesting Hollywood phenomena of note, that is the “remake”. This includes the recent resurrection of classic pop culture stars such as “The Smurfs” and “Mr.Peabody and Sherman”.</p>
    <p>This is slightly different to another kind of Hollywood ”remake”: <strong>the sequel</strong> – <a href="http://www.movie-moron.com/?page_id=612" rel="nofollow external" class="bo">where established movie brands are rehashed until extinction.</a></p>
    <p>The remake we refer to is a six letter word for nostalgia.</p>
    <p>Let’s look at “Mr.Peabody and Sherman” or as it was originally “<a href="http://en.wikipedia.org/wiki/Peabody%27s_Improbable_History" rel="nofollow external" class="bo">Peabody’s Improbable History</a>“. The series first came in to existence during the 1960′s. Many current parents of young children can remember watching and enjoying reruns of the animated cartoon in their youth.</p>
    <p>This is an interesting calculus on Hollywood’s part. They grab a piece of the Baby boomers childhood and repackage it for their kids (and grand kids). The hope is to get multiple generations buying the same product. But does it work?</p>
    <p>Other movie remakes of cartoon classics like <a href="http://www.rottentomatoes.com/m/1016534-popeye/" rel="nofollow external" class="bo">Popeye</a>, <a href="http://www.rottentomatoes.com/m/1077847-george_of_the_jungle/" rel="nofollow external" class="bo">George of the Jungle </a>and <a href="http://www.rottentomatoes.com/m/dudley_doright/" rel="nofollow external" class="bo">Dudley Do-right</a> were done wrong and now wallow in the dustbin of movie shlock.</p>
    <p>We at <a href="www.usdemocrazy.com" rel="nofollow external" class="bo">U.S. Democrazy</a> hope “Mr.Peabody and Sherman” bucks the trend. We like the idea that a part one generation’s childhood can be shared the generations that follow. Sure, maybe it is just a Hollywood ploy to get bottoms on seats in cinemas… but we still hope the movie delivers. What’s better than families sharing a good laugh together?</p>
    <p>Speaking of movies delivering… the remake of “Godzilla” looks totally badass and deserves a much better rendition than what Hollywood dished out in 1998!</p>
    <p>What <a href="http://www.movie-moron.com/?page_id=612" rel="nofollow external" class="bo">remake movies</a> are you looking forward to seeing in 2014?</p>
    <p> </p>
    </div>
]]>
</Body>
<Summary>Sure, there are series like House of Cards or Orange is the New Black on Netflix, but sometimes nothing beats a good old fashioned trip to the local cinema.   Although ticket sales have shown a...</Summary>
<Website>http://usdemocrazy.net/remaking-movies/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42256/guest@my.umbc.edu/fe3c78ba798d81eaa5eafd2be67f75ce/api/pixel</TrackingUrl>
<Tag>current</Tag>
<Tag>democracy</Tag>
<Tag>news</Tag>
<Tag>politics</Tag>
<Tag>uncategorized</Tag>
<Tag>us</Tag>
<Tag>usdemocrazy</Tag>
<Group token="retired-12">USDemocrazy</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-12</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/xsmall.png?1279120129</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/original.jpg?1279120129</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/xxlarge.png?1279120129</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/xlarge.png?1279120129</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/large.png?1279120129</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/medium.png?1279120129</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/small.png?1279120129</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/xsmall.png?1279120129</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/012/f0935e4cd5920aa6c7c996a5ee53a70f/xxsmall.png?1279120129</AvatarUrl>
<Sponsor>USDemocrazy</Sponsor>
<PawCount>20</PawCount>
<CommentCount>4</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 11:22:40 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42253" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42253">
<Title>Laravel Unwrapped: Session, Auth and Cache</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>In recent years, <a href="http://laravel.com/" rel="nofollow external" class="bo">Laravel</a> has become one of the most prominent frameworks software engineers use for building their web applications. Similar to the popularity that <a href="http://ellislab.com/codeigniter" rel="nofollow external" class="bo">CodeIgniter</a> enjoyed in its heyday, Laravel has been lauded for its ease-of-use, friendliness to beginners and its adherence to industry standards.</p>
    
    <h2>Introduction</h2>
    
    <p>One thing though that not a lot of programmers take advantage of is Laravel's component-based system. Since its conversion to composer-powered components, Laravel 4 has become a very modular system, similar to the verbosity of more mature frameworks like Symfony. This is called the <code>Illuminate</code> group of components, which in my opinion, is not the actual framework itself, but is a compilation of libraries that a framework can potentially use. Laravel's actual framework is represented by the Laravel skeleton application (found on the <code>laravel/laravel</code> <a href="https://github.com/laravel/laravel" rel="nofollow external" class="bo">GitHub repository</a>) that makes use of these components to build a web application.</p>
    
    <p>In this tutorial, we'll be diving into a group of these components, learning how they work, how they're used by the framework, and how we can extend their functionality.</p>
    
    <h2>The Session Component</h2>
    
    <p>The Laravel Session component handles sessions for the web application. It makes use of a driver-based system called the Laravel Manager, which acts as both a factory and a wrapper for whichever driver is set in the configuration file. As of this writing, the Session component has drivers for:</p>
    
    <ul>
    <li>
    <code>file </code>- a file-based session driver where session data is saved in an encrypted file.</li>
    <li>
    <code>cookie </code>- a cookie-based session driver where session data is encrypted in the user's cookies.</li>
    <li>
    <code>database </code>- session data is saved in whichever database is configured for the application.</li>
    <li>
    <code>apc </code>- session data is saved in APC.</li>
    <li>
    <code>memcached </code>- session data is saved in Memcached.</li>
    <li>
    <code>redis </code>- session data is saved in Redis.</li>
    <li>
    <code>array </code>- session data is saved in a PHP array. Take note that the array session driver does not support persistence and is usually only used in console commands.</li>
    </ul>
    
    <h3>Service Providers</h3>
    
    <p>Most Laravel users don't realize but a big part of how Laravel works, is within its service providers. They are essentially bootstrap files for each component and they are abstracted enough so users can bootstrap any components, in any way.</p>
    
    <p>A rough explanation of how this works is below:</p>
    
    <ol>
    <li>The Laravel Application component is initiated. This is the main driver of the whole framework, responsible for handling the HTTP Request, running the service providers, as well as acting as a dependency container for the framework.</li>
    <li>Once a service provider is ran, its <code>register</code> method is called. This allows us to instantiate whichever component we want.
    
    <ul><li>Keep in mind that all service providers have access to the main Laravel application (via <code>$this-&gt;app</code>), which would let service providers push instances of the resolved classes into the dependency container.</li></ul>
    </li>
    <li>Once these dependencies are loaded, we should be free to use them by calling on the container, for example, via Laravel's Facade system, <code>App::make</code>.</li>
    </ol>
    
    <p>Going back to Sessions, let's take a quick look at the <code>SessionServiceProivider</code>:</p>
    
    <pre> /**&#x000A;         * Register the session manager instance.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	protected function registerSessionManager()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('session', function($app)&#x000A;    		{&#x000A;    			return new SessionManager($app);&#x000A;    		});&#x000A;    	}&#x000A;    &#x000A;    	/**&#x000A;    	 * Register the session driver instance.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	protected function registerSessionDriver()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('session.store', function($app)&#x000A;    		{&#x000A;    			// First, we will create the session manager which is responsible for the&#x000A;    			// creation of the various session drivers when they are needed by the&#x000A;    			// application instance, and will resolve them on a lazy load basis.&#x000A;    			$manager = $app['session'];&#x000A;    &#x000A;    			return $manager-&gt;driver();&#x000A;    		});&#x000A;    	}</pre>
    
    <p>These two methods are called by the <code>register()</code> function. The first one, <code>registerSessionManager()</code>, is called to initially register the <code>SessionManager</code>. This class extends the <code>Manager</code> that I mentioned on top. The second one, <code>registerSessionDriver()</code> registers a session handler for the manager, based on what we have configured. This eventually calls this method in the <code>Illuminate\Support\Manager</code> class:</p>
    
    <pre>/**&#x000A;         * Create a new driver instance.&#x000A;    	 *&#x000A;    	 * @param  string  $driver&#x000A;    	 * @return mixed&#x000A;    	 *&#x000A;    	 * @throws \InvalidArgumentException&#x000A;    	 */&#x000A;    	protected function createDriver($driver)&#x000A;    	{&#x000A;    		$method = 'create'.ucfirst($driver).'Driver';&#x000A;    &#x000A;    		// We'll check to see if a creator method exists for the given driver. If not we&#x000A;    		// will check for a custom driver creator, which allows developers to create&#x000A;    		// drivers using their own customized driver creator Closure to create it.&#x000A;    		if (isset($this-&gt;customCreators[$driver]))&#x000A;    		{&#x000A;    			return $this-&gt;callCustomCreator($driver);&#x000A;    		}&#x000A;    		elseif (method_exists($this, $method))&#x000A;    		{&#x000A;    			return $this-&gt;$method();&#x000A;    		}&#x000A;    &#x000A;    		throw new \InvalidArgumentException("Driver [$driver] not supported.");&#x000A;    	}</pre>
    
    <p>From here, we can see that based on the name of the driver, from the configuration file, a specific method is called. So, if we have it configured to use the <code>file</code> session handler, it will call this method in the <code>SessionManager</code> class:</p>
    
    <pre>/**&#x000A;         * Create an instance of the file session driver.&#x000A;    	 *&#x000A;    	 * @return \Illuminate\Session\Store&#x000A;    	 */&#x000A;    	protected function createFileDriver()&#x000A;    	{&#x000A;    		return $this-&gt;createNativeDriver();&#x000A;    	}&#x000A;    &#x000A;    	/**&#x000A;    	 * Create an instance of the file session driver.&#x000A;    	 *&#x000A;    	 * @return \Illuminate\Session\Store&#x000A;    	 */&#x000A;    	protected function createNativeDriver()&#x000A;    	{&#x000A;    		$path = $this-&gt;app['config']['session.files'];&#x000A;    &#x000A;    		return $this-&gt;buildSession(new FileSessionHandler($this-&gt;app['files'], $path));&#x000A;    	}</pre>
    
    <p>The driver class is then injected into a <code>Store</code> class, which is responsible for calling the actual session methods. This lets us actually separate the implementation of the <code>SessionHandlerInterface</code> from the SPL into the drivers, the <code>Store</code> class facilitates it.</p>
    
    <h3>Creating Our Own Session Handler</h3>
    
    <p>Let's create our own Session Handler, a MongoDB Session handler. First off, we'll need to create a <code>MongoSessionHandler</code> inside a newly installed Laravel project instance. (We'll be borrowing heavily from <code>Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler</code>).:</p>
    
    <pre>&lt;?php namespace Illuminate\Session;&#x000A;    &#x000A;        use Mongo;&#x000A;        use MongoDate;&#x000A;        use MongoBinData;&#x000A;    &#x000A;        class MongoSessionHandler implements \SessionHandlerInterface&#x000A;        {&#x000A;            /**&#x000A;             * Mongo db config&#x000A;             *&#x000A;             * @var array&#x000A;             */&#x000A;            protected $config;&#x000A;    &#x000A;            /**&#x000A;             * Mongo db connection&#x000A;             * &#x000A;             * @var \Mongo&#x000A;             */&#x000A;            protected $connection;&#x000A;    &#x000A;            /**&#x000A;             * Mongodb collection&#x000A;             * &#x000A;             * @var \MongoCollection&#x000A;             */&#x000A;            protected $collection;&#x000A;            /**&#x000A;             * Create a new Mongo driven handler instance.&#x000A;             *&#x000A;             * @param  array $config&#x000A;             *  - $config['host']       Mongodb host&#x000A;             *  - $config['username']   Mongodb username&#x000A;             *  - $config['password']   Mongodb password&#x000A;             *  - $config['database']     Mongodb database&#x000A;             *  - $config['collection'] Mongodb collection&#x000A;             * @return void&#x000A;             */&#x000A;            public function __construct(array $config)&#x000A;            {&#x000A;                $this-&gt;config = $config;&#x000A;    &#x000A;                $connection_string = '<a href="mongodb://">mongodb://</a>';&#x000A;    &#x000A;                if (!empty($this-&gt;config['username']) &amp;&amp; !empty($this-&gt;config['password'])) {&#x000A;                    $connection_string .= "{$this-&gt;config['user']}:{$this-&gt;config['password']}@";&#x000A;                }&#x000A;    &#x000A;                $connection_string .= "{$this-&gt;config['host']}";&#x000A;    &#x000A;                $this-&gt;connection = new Mongo($connection_string);&#x000A;    &#x000A;                $this-&gt;collection = $this-&gt;connection-&gt;selectCollection($this-&gt;config['database'], $this-&gt;config['collection']);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function open($savePath, $sessionName)&#x000A;            {&#x000A;                return true;&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function close()&#x000A;            {&#x000A;                return true;&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function read($sessionId)&#x000A;            {&#x000A;                $session_data = $this-&gt;collection-&gt;findOne(array(&#x000A;                    '_id' =&gt; $sessionId,&#x000A;                ));&#x000A;    &#x000A;                if (is_null($session_data)) {&#x000A;                    return '';&#x000A;                } else {&#x000A;                    return $session_data['session_data']-&gt;bin;&#x000A;                }&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function write($sessionId, $data)&#x000A;            {&#x000A;                $this-&gt;collection-&gt;update(&#x000A;                    array(&#x000A;                        '_id' =&gt; $sessionId&#x000A;                    ),&#x000A;                    array(&#x000A;                        '$set' =&gt; array(&#x000A;                            'session_data' =&gt; new MongoBinData($data, MongoBinData::BYTE_ARRAY),&#x000A;                            'timestamp' =&gt; new MongoDate(),&#x000A;                        )&#x000A;                    ),&#x000A;                    array(&#x000A;                        'upsert' =&gt; true,&#x000A;                        'multiple' =&gt; false&#x000A;                    )&#x000A;                );&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function destroy($sessionId)&#x000A;            {&#x000A;                $this-&gt;collection-&gt;remove(array(&#x000A;                    '_id' =&gt; $sessionId&#x000A;                ));&#x000A;    &#x000A;                return true;&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * {@inheritDoc}&#x000A;             */&#x000A;            public function gc($lifetime)&#x000A;            {&#x000A;                $time = new MongoDate(time() - $lifetime);&#x000A;    &#x000A;                $this-&gt;collection-&gt;remove(array(&#x000A;                    'timestamp' =&gt; array('$lt' =&gt; $time),&#x000A;                ));&#x000A;    &#x000A;                return true;&#x000A;            }&#x000A;        }&#x000A;    </pre>
    
    <p>You should save this in the <code>vendor/laravel/framework/src/Illuminate/Session</code> folder. For the purposes of this project, we'll put it here, but ideally this file should be within its own library namespace. </p>
    
    <p>Next, we need to make sure that the <code>Manager</code> class can call this driver. We can do this by utilizing the <code>Manager::extend</code> method. Open <code>vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php</code> and add the following code. Ideally, we should be extending the service provider, but that is outside the scope of this tutorial.</p>
    
    <pre>/**&#x000A;         * Setup the Mongo Driver callback&#x000A;    	 *&#x000A;    	 * @return  void&#x000A;    	 */&#x000A;    	public function setupMongoDriver()&#x000A;    	{&#x000A;    		$manager = $this-&gt;app['session'];&#x000A;    &#x000A;    		$manager-&gt;extend('mongo', function($app) {&#x000A;    		    return new MongoSessionHandler(array(&#x000A;    		        'host'       =&gt; $app['config']-&gt;get('session.mongo.host'),&#x000A;    		        'username'   =&gt; $app['config']-&gt;get('session.mongo.username'),&#x000A;    		        'password'   =&gt; $app['config']-&gt;get('session.mongo.password'),&#x000A;    		        'database'   =&gt; $app['config']-&gt;get('session.mongo.database'),&#x000A;    		        'collection' =&gt; $app['config']-&gt;get('session.mongo.collection')&#x000A;    		    ));&#x000A;    		});&#x000A;    	}</pre>
    
    <p>Make sure to update the <code>register()</code> method to call this method:</p>
    
    <pre>/**&#x000A;         * Register the service provider.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	public function register()&#x000A;    	{&#x000A;    		$this-&gt;setupDefaultDriver();&#x000A;    &#x000A;    		$this-&gt;registerSessionManager();&#x000A;    &#x000A;    		$this-&gt;setupMongoDriver();&#x000A;    &#x000A;    		$this-&gt;registerSessionDriver();&#x000A;    	}</pre>
    
    <p>Next, we need to define the Mongo DB configuration. Open <code>app/config/session.php</code> and define the following configuration settings:</p>
    
    <pre>/**&#x000A;         * Mongo DB settings&#x000A;    	 */&#x000A;    	'mongo' =&gt; array(&#x000A;    		'host' =&gt; '127.0.0.1',&#x000A;    		'username' =&gt; '',&#x000A;    		'password' =&gt; '',&#x000A;    		'database' =&gt; 'laravel',&#x000A;    		'collection' =&gt; 'laravel_session_collection'&#x000A;    	)</pre>
    
    <p>While we're on this file, we should also update the <code>driver </code>configuration up top:</p>
    
    <pre>'driver' =&gt; 'mongo'</pre>
    
    <p>Now, try and access the main page (usually, <code>localhost/somefolder/public</code>). If this page loads without showing the <code>WHOOPS</code> page, then congratulations, we've successfully created a brand new session driver! Test it out by setting some dummy data on the session, via <code>Session::set()</code> and then echoing it back via <code>Session::get()</code>.</p>
    
    <h2>The Auth Component</h2>
    
    <p>The Laravel Auth component handles user authentication for the framework, as well as password management. What the Laravel component has done here is to create an abstract interpretation of the typical user-management system which is usable in most web applications, which in turn helps the programmer easily implement a login system. Like the Session component, it also makes use of the Laravel Manager. Currently, the Auth component has drivers for:</p>
    
    <ul>
    <li>
    <code>eloquent</code> - this makes use of Laravel's built-in ORM called <code>Eloquent</code>. It also utilizes the pre-made <code>User.php</code> class inside the <code>models</code> folder.</li>
    <li>
    <code>database</code> - this uses whichever database connection is configured by default. It makes use of a <code>GenericUser</code> class for accessing the user data.</li>
    </ul>
    
    <p>Since this follows the same implementation as the <code>Session</code> component, the service provider is very similar to what we've seen on top:</p>
    
    <pre>/**&#x000A;         * Register the service provider.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	public function register()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('auth', function($app)&#x000A;    		{&#x000A;    			// Once the authentication service has actually been requested by the developer&#x000A;    			// we will set a variable in the application indicating such. This helps us&#x000A;    			// know that we need to set any queued cookies in the after event later.&#x000A;    			$app['auth.loaded'] = true;&#x000A;    &#x000A;    			return new AuthManager($app);&#x000A;    		});&#x000A;    	}</pre>
    
    <p>Here, we can see that it basically creates an <code>AuthManager</code> class that wraps around whichever driver we're using, as well as acting as a factory for it. Inside the <code>AuthManager</code>, it again creates the appropriate driver, wrapped around a <code>Guard</code> class, which acts the same way as the <code>Store</code> class from <code>Session</code>.</p>
    
    <h3>Creating Our Own Auth Handler</h3>
    
    <p>Like before, let's start by creating a <code>MongoUserProvider</code>:</p>
    
    <pre>&lt;?php namespace Illuminate\Auth;&#x000A;    &#x000A;        use Mongo;&#x000A;        use Illuminate\Hashing\HasherInterface;&#x000A;    &#x000A;        class MongoUserProvider implements UserProviderInterface {&#x000A;    &#x000A;            /**&#x000A;             * The mongo instance&#x000A;             *&#x000A;             * @param  \Mongo&#x000A;             */&#x000A;            protected $connection;&#x000A;    &#x000A;            /**&#x000A;             * The mongo connection instance&#x000A;             *&#x000A;             * @param  \MongoConnection&#x000A;             */&#x000A;            protected $collection;&#x000A;    &#x000A;            /**&#x000A;             * The Mongo config array&#x000A;             *&#x000A;             * @var array&#x000A;             */&#x000A;            protected $config;&#x000A;    &#x000A;            /**&#x000A;             * Create a new Mongo user provider.&#x000A;             *&#x000A;             * @param  array $config&#x000A;             *     - $config['host']       Mongodb host&#x000A;             *     - $config['username']   Mongodb username&#x000A;             *     - $config['password']   Mongodb password&#x000A;             *     - $config['database']   Mongodb database&#x000A;             *     - $config['collection'] Mongodb collection&#x000A;             * @return void&#x000A;             */&#x000A;            public function __construct(array $config)&#x000A;            {&#x000A;                $this-&gt;config = $config;&#x000A;    &#x000A;                $connection_string = '<a href="mongodb://">mongodb://</a>';&#x000A;    &#x000A;                if (!empty($this-&gt;config['username']) &amp;&amp; !empty($this-&gt;config['password'])) {&#x000A;                    $connection_string .= "{$this-&gt;config['user']}:{$this-&gt;config['password']}@";&#x000A;                }&#x000A;    &#x000A;                $connection_string .= "{$this-&gt;config['host']}";&#x000A;    &#x000A;                $this-&gt;connection = new Mongo($connection_string);&#x000A;    &#x000A;                $this-&gt;collection = $this-&gt;connection-&gt;selectCollection($this-&gt;config['database'], $this-&gt;config['collection']);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Retrieve a user by their unique identifier.&#x000A;             *&#x000A;             * @param  mixed  $identifier&#x000A;             * @return \Illuminate\Auth\UserInterface|null&#x000A;             */&#x000A;            public function retrieveById($identifier)&#x000A;            {&#x000A;                $user_data = $this-&gt;collection-&gt;findOne(array(&#x000A;                    '_id' =&gt; $identifier,&#x000A;                ));&#x000A;    &#x000A;                if (!is_null($user_data)) {&#x000A;                    return new GenericUser((array) $user_data);&#x000A;                }&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Retrieve a user by the given credentials.&#x000A;             *&#x000A;             * @param  array  $credentials&#x000A;             * @return \Illuminate\Auth\UserInterface|null&#x000A;             */&#x000A;            public function retrieveByCredentials(array $credentials)&#x000A;            {&#x000A;                // Attempt to look for the user first regardless of password&#x000A;                // We'll do that in the validateCredentials method&#x000A;                if (isset($credentials['password'])) {&#x000A;                    unset($credentials['password']);&#x000A;                }&#x000A;    &#x000A;                $user_data = $this-&gt;collection-&gt;findOne($credentials);&#x000A;    &#x000A;                if (!is_null($user_data)) {&#x000A;                    return new GenericUser((array) $user_data);&#x000A;                }&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Validate a user against the given credentials.&#x000A;             *&#x000A;             * @param  \Illuminate\Auth\UserInterface  $user&#x000A;             * @param  array  $credentials&#x000A;             * @return bool&#x000A;             */&#x000A;            public function validateCredentials(UserInterface $user, array $credentials)&#x000A;            {&#x000A;                if (!isset($credentials['password'])) {&#x000A;                    return false;&#x000A;                }&#x000A;                &#x000A;                return ($credentials['password'] === $user-&gt;getAuthPassword());&#x000A;            }&#x000A;        }</pre>
    
    <p>It's important to take note here that I'm not checking against a hashed password, this was done for simplicity's sake to make it easier on our part to create dummy data and test this later. In production code, you need to make sure to hash the password. Check out the <code>Illuminate\Auth\DatabaseUserProvider</code> class for a great example on how to do this.</p>
    
    <p>Afterwards, we need to register our custom driver callback on the <code>AuthManager</code>. To do so, we need to update the service provider's <code>register</code> method:</p>
    
    <pre>/**&#x000A;         * Register the service provider.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	public function register()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('auth', function($app)&#x000A;    		{&#x000A;    			// Once the authentication service has actually been requested by the developer&#x000A;    			// we will set a variable in the application indicating such. This helps us&#x000A;    			// know that we need to set any queued cookies in the after event later.&#x000A;    			$app['auth.loaded'] = true;&#x000A;    &#x000A;    			$auth_manager = new AuthManager($app);&#x000A;    &#x000A;    			$auth_manager-&gt;extend('mongo', function($app) {&#x000A;    				return new MongoUserProvider(&#x000A;    					array(&#x000A;    						'host'       =&gt; $app['config']-&gt;get('auth.mongo.host'),&#x000A;    				        'username'   =&gt; $app['config']-&gt;get('auth.mongo.username'),&#x000A;    				        'password'   =&gt; $app['config']-&gt;get('auth.mongo.password'),&#x000A;    				        'database'   =&gt; $app['config']-&gt;get('auth.mongo.database'),&#x000A;    				        'collection' =&gt; $app['config']-&gt;get('auth.mongo.collection')&#x000A;    					)&#x000A;    				);&#x000A;    			});&#x000A;    &#x000A;    			return $auth_manager;&#x000A;    		});&#x000A;    	}</pre>
    
    <p>Lastly, we also need to update the <code>auth.php</code> configuration file to make use of the Mongo driver, as well as provide it the proper Mongo configuration values:</p>
    
    <pre>'driver' =&gt; 'mongo',&#x000A;        ...&#x000A;        ...&#x000A;        ...&#x000A;        /**&#x000A;         * Mongo DB settings&#x000A;    	 */&#x000A;    	'mongo' =&gt; array(&#x000A;    		'host' =&gt; '127.0.0.1',&#x000A;    		'username' =&gt; '',&#x000A;    		'password' =&gt; '',&#x000A;    		'database' =&gt; 'laravel',&#x000A;    		'collection' =&gt; 'laravel_auth_collection'&#x000A;    	)</pre>
    
    <p>Testing this is a little trickier, to do so, use the Mongo DB CLI to insert a new user into the collection:</p>
    
    <pre>mongo&#x000A;    &#x000A;        &gt; use laravel_auth&#x000A;        switched to db laravel_auth&#x000A;        &gt; db.laravel_auth_collection.insert({id: 1, email:"<a href="mailto:nikko@nikkobautista.com">nikko@nikkobautista.com</a>", password:"test_password"})&#x000A;        &gt; db.laravel_auth_collection.find()&#x000A;        &gt; { "_id" : ObjectId("530c609f2caac8c3a8e4814f"), "id" 1, "email" : "<a href="mailto:nikko@emailtest.com">nikko@emailtest.com</a>", "password" : "test_password" }</pre>
    
    <p>Now, test it out by trying an <code>Auth::validate</code> method call:</p>
    
    <pre>var_dump(Auth::validate(array('email' =&gt; '<a href="mailto:nikko@emailtest.com">nikko@emailtest.com</a>', 'password' =&gt; 'test_password')));</pre>
    
    <p>This should dump a <code>bool(true)</code>. If it does, then we've successfully created our own Auth driver!</p>
    
    <h2>The Cache Component</h2>
    
    <p>The Laravel Cache component handles caching mechanisms for use in the framework. Like both of the components that we've discussed, it also makes use of the Laravel Manager (Are you noticing a pattern?). The Cache component has drivers for:</p>
    
    <ul>
    <li><code>apc</code></li>
    <li><code>memcached</code></li>
    <li><code>redis</code></li>
    <li>
    <code>file</code> - a file-based cache. Data is saved into the <code>app/storage/cache</code> path.</li>
    <li>
    <code>database</code> - database-based cache. Data is saved into rows into the database. The database schema is described in the <a href="http://laravel.com/docs/cache" rel="nofollow external" class="bo">Laravel Documentation</a>.</li>
    <li>
    <code>array</code> - data is "cached" in an array. Keep in mind that the <code>array</code> cache is not persistent and is cleared on every page load.</li>
    </ul>
    
    <p>Since this follows the same implementation as both components that we've discussed, you can safely assume that the service provider is fairly similar:</p>
    
    <pre>/**&#x000A;         * Register the service provider.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	public function register()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('cache', function($app)&#x000A;    		{&#x000A;    			return new CacheManager($app);&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;app-&gt;bindShared('cache.store', function($app)&#x000A;    		{&#x000A;    			return $app['cache']-&gt;driver();&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;app-&gt;bindShared('memcached.connector', function()&#x000A;    		{&#x000A;    			return new MemcachedConnector;&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;registerCommands();&#x000A;    	}</pre>
    
    <p>The <code>register()</code> method here creates a <code>CacheManager</code>, that again acts as a wrapper and factory for the drivers. Within the manager, it wraps the driver around a <code>Repository</code> class, similar to the <code>Store</code> and <code>Guard</code> classes.</p>
    
    <h3>Creating Our Own Cache Handler</h3>
    
    <p>Create the <code>MongoStore</code>, which should extend the <code>Illuminate\Cache\StoreInterface</code>:</p>
    
    <pre>&lt;?php namespace Illuminate\Cache;&#x000A;    &#x000A;        use Mongo;&#x000A;    &#x000A;        class MongoStore implements StoreInterface&#x000A;        {&#x000A;            /**&#x000A;             * The mongo instance&#x000A;             *&#x000A;             * @param  \Mongo&#x000A;             */&#x000A;            protected $connection;&#x000A;    &#x000A;            /**&#x000A;             * The mongo connection instance&#x000A;             *&#x000A;             * @param  \MongoConnection&#x000A;             */&#x000A;            protected $collection;&#x000A;    &#x000A;            /**&#x000A;             * The Mongo config array&#x000A;             *&#x000A;             * @var array&#x000A;             */&#x000A;            protected $config;&#x000A;    &#x000A;            /**&#x000A;             * Create a new Mongo cache store.&#x000A;             *&#x000A;             * @param  array $config&#x000A;             *     - $config['host']       Mongodb host&#x000A;             *     - $config['username']   Mongodb username&#x000A;             *     - $config['password']   Mongodb password&#x000A;             *     - $config['database']   Mongodb database&#x000A;             *     - $config['collection'] Mongodb collection&#x000A;             * @return void&#x000A;             */&#x000A;            public function __construct(array $config)&#x000A;            {&#x000A;                $this-&gt;config = $config;&#x000A;    &#x000A;                $connection_string = '<a href="mongodb://">mongodb://</a>';&#x000A;    &#x000A;                if (!empty($this-&gt;config['username']) &amp;&amp; !empty($this-&gt;config['password'])) {&#x000A;                    $connection_string .= "{$this-&gt;config['user']}:{$this-&gt;config['password']}@";&#x000A;                }&#x000A;    &#x000A;                $connection_string .= "{$this-&gt;config['host']}";&#x000A;    &#x000A;                $this-&gt;connection = new Mongo($connection_string);&#x000A;    &#x000A;                $this-&gt;collection = $this-&gt;connection-&gt;selectCollection($this-&gt;config['database'], $this-&gt;config['collection']);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Retrieve an item from the cache by key.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @return mixed&#x000A;             */&#x000A;            public function get($key)&#x000A;            {&#x000A;                $cache_data = $this-&gt;getObject($key);&#x000A;    &#x000A;                if (!$cache_data) {&#x000A;                    return null;&#x000A;                }&#x000A;    &#x000A;                return unserialize($cache_data['cache_data']);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Return the whole object instead of just the cache_data&#x000A;             * &#x000A;             * @param  string  $key&#x000A;             * @return array|null&#x000A;             */&#x000A;            protected function getObject($key)&#x000A;            {&#x000A;                $cache_data = $this-&gt;collection-&gt;findOne(array(&#x000A;                    'key' =&gt; $key,&#x000A;                ));&#x000A;    &#x000A;                if (is_null($cache_data)) {&#x000A;                    return null;&#x000A;                }&#x000A;    &#x000A;                if (isset($cache_data['expire']) &amp;&amp; time() &gt;= $cache_data['expire']) {&#x000A;                    $this-&gt;forget($key);&#x000A;                    return null;&#x000A;                }&#x000A;    &#x000A;                return $cache_data;&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Store an item in the cache for a given number of minutes.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @param  mixed   $value&#x000A;             * @param  int     $minutes&#x000A;             * @return void&#x000A;             */&#x000A;            public function put($key, $value, $minutes)&#x000A;            {&#x000A;                $expiry = $this-&gt;expiration($minutes);&#x000A;    &#x000A;                $this-&gt;collection-&gt;update(&#x000A;                    array(&#x000A;                        'key' =&gt; $key&#x000A;                    ),&#x000A;                    array(&#x000A;                        '$set' =&gt; array(&#x000A;                            'cache_data' =&gt; serialize($value),&#x000A;                            'expiry' =&gt; $expiry,&#x000A;                            'ttl' =&gt; ($minutes * 60)&#x000A;                        )&#x000A;                    ),&#x000A;                    array(&#x000A;                        'upsert' =&gt; true,&#x000A;                        'multiple' =&gt; false&#x000A;                    )&#x000A;                );&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Increment the value of an item in the cache.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @param  mixed   $value&#x000A;             * @return void&#x000A;             *&#x000A;             * @throws \LogicException&#x000A;             */&#x000A;            public function increment($key, $value = 1)&#x000A;            {&#x000A;                $cache_data = $this-&gt;getObject($key);&#x000A;    &#x000A;                if (!$cache_data) {&#x000A;                    $new_data = array(&#x000A;                        'cache_data' =&gt; serialize($value),&#x000A;                        'expiry' =&gt; $this-&gt;expiration(0),&#x000A;                        'ttl' =&gt; $this-&gt;expiration(0)&#x000A;                    );&#x000A;                } else {&#x000A;                    $new_data = array(&#x000A;                        'cache_data' =&gt; serialize(unserialize($cache_data['cache_data']) + $value),&#x000A;                        'expiry' =&gt; $this-&gt;expiration((int) ($cache_data['ttl']/60)),&#x000A;                        'ttl' =&gt; $cache_data['ttl']&#x000A;                    );&#x000A;                }&#x000A;    &#x000A;                $this-&gt;collection-&gt;update(&#x000A;                    array(&#x000A;                        'key' =&gt; $key&#x000A;                    ),&#x000A;                    array(&#x000A;                        '$set' =&gt; $new_data&#x000A;                    ),&#x000A;                    array(&#x000A;                        'upsert' =&gt; true,&#x000A;                        'multiple' =&gt; false&#x000A;                    )&#x000A;                );&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Decrement the value of an item in the cache.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @param  mixed   $value&#x000A;             * @return void&#x000A;             *&#x000A;             * @throws \LogicException&#x000A;             */&#x000A;            public function decrement($key, $value = 1)&#x000A;            {&#x000A;                $cache_data = $this-&gt;getObject($key);&#x000A;    &#x000A;                if (!$cache_data) {&#x000A;                    $new_data = array(&#x000A;                        'cache_data' =&gt; serialize((0 - $value)),&#x000A;                        'expiry' =&gt; $this-&gt;expiration(0),&#x000A;                        'ttl' =&gt; $this-&gt;expiration(0)&#x000A;                    );&#x000A;                } else {&#x000A;                    $new_data = array(&#x000A;                        'cache_data' =&gt; serialize(unserialize($cache_data['cache_data']) - $value),&#x000A;                        'expiry' =&gt; $this-&gt;expiration((int) ($cache_data['ttl']/60)),&#x000A;                        'ttl' =&gt; $cache_data['ttl']&#x000A;                    );&#x000A;                }&#x000A;    &#x000A;                $this-&gt;collection-&gt;update(&#x000A;                    array(&#x000A;                        'key' =&gt; $key&#x000A;                    ),&#x000A;                    array(&#x000A;                        '$set' =&gt; $new_data&#x000A;                    ),&#x000A;                    array(&#x000A;                        'upsert' =&gt; true,&#x000A;                        'multiple' =&gt; false&#x000A;                    )&#x000A;                );&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Store an item in the cache indefinitely.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @param  mixed   $value&#x000A;             * @return void&#x000A;             */&#x000A;            public function forever($key, $value)&#x000A;            {&#x000A;                return $this-&gt;put($key, $value, 0);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Remove an item from the cache.&#x000A;             *&#x000A;             * @param  string  $key&#x000A;             * @return void&#x000A;             */&#x000A;            public function forget($key)&#x000A;            {&#x000A;                $this-&gt;collection-&gt;remove(array(&#x000A;                    'key' =&gt; $key&#x000A;                ));&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Remove all items from the cache.&#x000A;             *&#x000A;             * @return void&#x000A;             */&#x000A;            public function flush()&#x000A;            {&#x000A;                $this-&gt;collection-&gt;remove();&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Get the expiration time based on the given minutes.&#x000A;             *&#x000A;             * @param  int  $minutes&#x000A;             * @return int&#x000A;             */&#x000A;            protected function expiration($minutes)&#x000A;            {&#x000A;                if ($minutes === 0) return 9999999999;&#x000A;    &#x000A;                return time() + ($minutes * 60);&#x000A;            }&#x000A;    &#x000A;            /**&#x000A;             * Get the cache key prefix.&#x000A;             *&#x000A;             * @return string&#x000A;             */&#x000A;            public function getPrefix()&#x000A;            {&#x000A;                return '';&#x000A;            }&#x000A;        }</pre>
    
    <p>We'll also need to add the Mongo callback again to the manager:</p>
    
    <pre>/**&#x000A;         * Register the service provider.&#x000A;    	 *&#x000A;    	 * @return void&#x000A;    	 */&#x000A;    	public function register()&#x000A;    	{&#x000A;    		$this-&gt;app-&gt;bindShared('cache', function($app)&#x000A;    		{&#x000A;    			$cache_manager = new CacheManager($app);&#x000A;    &#x000A;    			$cache_manager-&gt;extend('mongo', function($app) {&#x000A;    				return new MongoStore(&#x000A;    					array(&#x000A;    						'host'       =&gt; $app['config']-&gt;get('cache.mongo.host'),&#x000A;    				        'username'   =&gt; $app['config']-&gt;get('cache.mongo.username'),&#x000A;    				        'password'   =&gt; $app['config']-&gt;get('cache.mongo.password'),&#x000A;    				        'database'   =&gt; $app['config']-&gt;get('cache.mongo.database'),&#x000A;    				        'collection' =&gt; $app['config']-&gt;get('cache.mongo.collection')&#x000A;    					)&#x000A;    				);&#x000A;    			});&#x000A;    &#x000A;    			return $cache_manager;&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;app-&gt;bindShared('cache.store', function($app)&#x000A;    		{&#x000A;    			return $app['cache']-&gt;driver();&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;app-&gt;bindShared('memcached.connector', function()&#x000A;    		{&#x000A;    			return new MemcachedConnector;&#x000A;    		});&#x000A;    &#x000A;    		$this-&gt;registerCommands();&#x000A;    	}</pre>
    
    <p>Lastly, we'll need to update the <code>cache.php</code> config file:</p>
    
    <pre>'driver' =&gt; 'mongo',&#x000A;        ...&#x000A;        ...&#x000A;        ...&#x000A;        /**&#x000A;    	 * Mongo DB settings&#x000A;    	 */&#x000A;    	'mongo' =&gt; array(&#x000A;    		'host' =&gt; '127.0.0.1',&#x000A;    		'username' =&gt; '',&#x000A;    		'password' =&gt; '',&#x000A;    		'database' =&gt; 'laravel',&#x000A;    		'collection' =&gt; 'laravel_cache_collection'&#x000A;    	)</pre>
    
    <p>Now, attempt to use the <code>Cache::put()</code> and <code>Cache::get()</code> methods. If done correctly, we should be able to use MongoDB to cache the data!</p>
    
    <h2>Conclusion</h2>
    
    <p>In this tutorial, we learned about the following:</p>
    
    <ul>
    <li>Laravel's component-based system called <code>Illuminate</code>, which is used by the Laravel framework.</li>
    <li>Laravel Service Providers and a little bit about how they work.</li>
    <li>Laravel's Manager system, which acts as both a wrapper and factory for the drivers.</li>
    <li>Session, Auth and Cache components and how to create new drivers for each.</li>
    <li>Store, Guard and Repository libraries which utilize these drivers.</li>
    </ul>
    
    <p>Hopefully this helps programmers create their own drivers and extend the current functionality of the Laravel framework.</p>
    </div>
]]>
</Body>
<Summary>In recent years, Laravel has become one of the most prominent frameworks software engineers use for building their web applications. Similar to the popularity that CodeIgniter enjoyed in its...</Summary>
<Website>http://code.tutsplus.com/tutorials/laravel-unwrapped-session-auth-and-cache--cms-19952</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42253/guest@my.umbc.edu/5b52d881d9e896e675bc2e7bb55bc464/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 11:00:01 -0400</PostedAt>
<EditAt>Mon, 10 Mar 2014 11:00:01 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42250" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42250">
<Title>RecycleMania is in full swing</Title>
<Tagline>Competition ends March 29th!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Do you like competing? Do you love being green? Do you love recycling? If you answered yes to any of these questions, you’ll love RecycleMania!</p>
    
    <p><strong>What is RecycleMania? </strong></p>
    
    <p>It is an annual 8-week competition between universities to see who can recycle the most! Sounds fun right? So go around and grab all your
    recyclables (and your friends) and help our school win!</p>
    
    <p>RecycleMania is not just a competition; it’s also a great
    way to educate people about recycling. There are plenty of events to attend
    like the RecycleMania Parade and “Regames” which feature giveaways and musical
    performances! </p>
    
    <p>For more information on events and scheduling, visit <a href="http://my.umbc.edu/groups/sustainability/news/39998" rel="nofollow external" class="bo">http://my.umbc.edu/groups/sustainability/news/39998</a>
    . If you still are not interested, maybe checking out their website will help?
    Just give it a try and recycle when you can!</p>
    
    </div>
]]>
</Body>
<Summary>Do you like competing? Do you love being green? Do you love recycling? If you answered yes to any of these questions, you’ll love RecycleMania!    What is RecycleMania?     It is an annual 8-week...</Summary>
<Website>http://recyclemaniacs.org/</Website>
<AttachmentKind>Flyer</AttachmentKind>
<AttachmentUrl>https://assets4-my.umbc.edu/system/shared/attachments/7942096e37463e607365e1a0a0ef530e/6a959c4b/news/000/042/250/65ddf8fc40f919eba2239c13c19bead4/Recyclemania Calendar 2014.pdf?1394462401</AttachmentUrl>
<Attachments>
<Attachment kind="Flyer" url="https://my3.my.umbc.edu/posts/42250/attachments/12809"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42250/guest@my.umbc.edu/b3e22ffa97ab5e4da2325d0e67e71101/api/pixel</TrackingUrl>
<Group token="ocss">Commuter Connections </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/ocss</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/xsmall.png?1770828767</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/original.png?1770828767</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/xxlarge.png?1770828767</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/xlarge.png?1770828767</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/large.png?1770828767</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/medium.png?1770828767</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/small.png?1770828767</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/xsmall.png?1770828767</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/369/e9220286d22558b24422af119b418d0c/xxsmall.png?1770828767</AvatarUrl>
<Sponsor>Off-Campus Student Services</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/xxlarge.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/xlarge.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/large.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/medium.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/small.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/xsmall.jpg?1394462356</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/250/b3e03ec5d08d7b1bb34bb1d75121badc/xxsmall.jpg?1394462356</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 10:47:22 -0400</PostedAt>
<EditAt>Mon, 10 Mar 2014 11:15:39 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="42252" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42252">
<Title>Tom Beck interviewed on Maryland Morning</Title>
<Tagline>Tom discusses N. Jay Jaffee exhibition at Library Gallery</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <span>The work of photographer N. Jay Jaffee is on display at UMBC.  Tom Hall takes a tour with curator Thomas Beck, who discusses Jaffee's spontaneous style of working.</span><div>
    <span><br></span><div><p>Jaffee worked in the printing industry as a career, but Beck says it was photography that was his passion. "I suspect when he went out it was to be among people, near the buildings, and it was more spontaneous than [Ansel] Adams would have conceived.</p></div>
    </div>
    </div>
]]>
</Body>
<Summary>The work of photographer N. Jay Jaffee is on display at UMBC.  Tom Hall takes a tour with curator Thomas Beck, who discusses Jaffee's spontaneous style of working.    Jaffee worked in the printing...</Summary>
<Website>http://wypr.org/post/photographer-n-jay-jaffee-captured-spontaneous</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42252/guest@my.umbc.edu/7cc86f59cbacc26836805c313364e2fa/api/pixel</TrackingUrl>
<Group token="circa">CIRCA</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/circa</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xsmall.png?1762367739</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/original.jpg?1762367739</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xxlarge.png?1762367739</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xlarge.png?1762367739</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/large.png?1762367739</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/medium.png?1762367739</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/small.png?1762367739</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xsmall.png?1762367739</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/746/c82b5d452621302114ac215d91fcf846/xxsmall.png?1762367739</AvatarUrl>
<Sponsor>CIRCA</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 10:40:10 -0400</PostedAt>
<EditAt>Mon, 10 Mar 2014 10:40:25 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="42251" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42251">
<Title>New Tickets on Sale at the CIC!</Title>
<Tagline>Orioles Game Bus Trip &amp; Hershey Park!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <div><strong>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!</strong></div>
    <div><em><strong><br></strong></em></div>
    <div><strong>MGC Showcase</strong></div>
    <div><em>     Friday, February 14th </em></div>
    <div><em>     University Center Ballroom @ 7pm</em></div>
    <div><em>     UMBC ID = Free</em></div>
    <div><em>     General Admission = $5.00</em></div>
    <div><em><strong>     Postponed!!!</strong></em></div>
    <div><em><strong><br></strong></em></div>
    <div><strong><a href="http://my.umbc.edu/events/22407" rel="nofollow external" class="bo">SEB DC Trip - Cherry Blossom Festival</a></strong></div>
    <div><em>     Saturday, March 29th</em></div>
    <div><em>     Bus Departs: Commons Loop @ 10am</em></div>
    <div><em>     All Guests = $10.00</em></div>
    <div><em><strong>     We are Sold Out!!!</strong></em></div>
    <div><em><strong><br></strong></em></div>
    <div><span><span><div><span><a href="http://my.umbc.edu/events/22490" rel="nofollow external" class="bo"><strong>SEB Captain America Midnight Premiere</strong></a></span></div>
    <div><span><em>     Thursday, April 3rd</em></span></div>
    <div><span><em>     Bus Departs: Commons Loop @ 11pm</em></span></div>
    <div><span><em>     All Guests = $5.00</em></span></div>
    <div><span><span><em><strong>     We are on Ticket 45 of 250</strong></em></span></span></div>
    <div><em><strong><br></strong></em></div>
    <div><span><a href="http://my.umbc.edu/events/22491" rel="nofollow external" class="bo"><strong>SEB Sky Zone Trampoline Park</strong></a></span></div>
    <div><span><em>     Friday, April 4th</em></span></div>
    <div><span><em>     Bus Departs: Commons Loop @ 5pm</em></span></div>
    <div><span><em>     All Guests = $10.00</em></span></div>
    <div><span><span><em><strong>     We are on Ticket 45 of 49</strong></em></span></span></div>
    <div><span><span><br></span></span></div>
    <div><span><span><span><span><div><span><span><div><span><strong><a href="http://my.umbc.edu/groups/seb/events/22482" rel="nofollow external" class="bo">SEB Orioles Game Bus Trip</a></strong></span></div>
    <div><span>     <em>Friday, April 11th</em></span></div>
    <div><span>     <em>Bus Departs: Commons Loop @ 6pm</em></span></div>
    <div><span>     <em>All Guests = $10.00</em></span></div>
    <div><span>     <strong><em>We are on Ticket 1 of 49</em></strong></span></div>
    <div><span><br></span></div>
    <div><span><strong><a href="http://my.umbc.edu/groups/seb/events/22998" rel="nofollow external" class="bo">SEB Hershey Park Bus Trip</a></strong></span></div>
    <div><span>     <em>Saturday, April 19th</em></span></div>
    <div><em>     Bus Departs: Commons Loop @ 8am</em></div>
    <div><em>     All Guests = $35.00</em></div>
    <div><em>     <strong>We are on Ticket 1 of 49</strong></em></div>
    <div><span><br></span></div>
    <div><span><strong><a href="http://my.umbc.edu/events/22530" rel="nofollow external" class="bo">SEB Quadmania: Capital Cities</a></strong></span></div>
    <div><span><em>     Sunday, April 27th</em></span></div>
    <div><span><em>     The RAC @ 8pm</em></span></div>
    <div><span><em>     All Guests = $12.00</em></span></div>
    <div><span><span><em><strong>     We are on Ticket 688 of 2500</strong></em></span></span></div>
    <div><span><span><br></span></span></div>
    <div><span><span><div><span><strong>SEB Individual Weekly Movie Tickets</strong></span></div>
    <div><span><span><em>     All Guests = $2.00</em></span></span></div>
    <div><span><span><br></span></span></div>
    <div><span><strong>SEB Semester Movie Pass</strong></span></div>
    <div><span><em>     All Guests = $10.00</em></span></div></span></span></div></span></span></div></span></span></span></span></div></span></span></div>
    </div>
]]>
</Body>
<Summary>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!     MGC Showcase       Friday, February 14th        University Center Ballroom @ 7pm       UMBC ID = Free...</Summary>
<Website>https://www.facebook.com/UMBC.CIC</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42251/guest@my.umbc.edu/fef888810519429b9a68cec6b499ea7d/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://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/xxlarge.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/xlarge.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/large.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/medium.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/small.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/xsmall.jpg?1394462327</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/251/0a0f319f4d1b7acc7a879809f0f1063f/xxsmall.jpg?1394462327</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 10:39:37 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="42246" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42246">
<Title>RecycleMania is in full swing</Title>
<Tagline>Competition ends March 29th!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Do you like competing? Do you love being green? Do you love recycling? If you answered yes to any of these questions, you’ll love RecycleMania!</p>
    
    <p><strong>What is RecycleMania? </strong></p>
    
    <p>It is an annual 8-week competition between universities to see who can recycle the most! Sounds fun right? So go around and grab all your recyclables (and your friends) and help our school win!</p>
    
    <p>RecycleMania is not just a competition; it’s also a great
    way to educate people about recycling. There are plenty of events to attend
    like the RecycleMania Parade and “Regames” which feature giveaways and musical
    performances! </p>
    
    <p>For more information on events and scheduling, visit <a href="http://my.umbc.edu/groups/sustainability/news/39998" rel="nofollow external" class="bo">http://my.umbc.edu/groups/sustainability/news/39998</a>
    . If you still are not interested, maybe checking out their website will help?
    Just give it a try and recycle when you can!</p>
    
    </div>
]]>
</Body>
<Summary>Do you like competing? Do you love being green? Do you love recycling? If you answered yes to any of these questions, you’ll love RecycleMania!    What is RecycleMania?     It is an annual 8-week...</Summary>
<Website>http://recyclemaniacs.org/</Website>
<AttachmentKind>Flyer</AttachmentKind>
<AttachmentUrl>https://assets4-my.umbc.edu/system/shared/attachments/d5da4baa51bdc71e53fba6561865289c/6a959c4b/news/000/042/246/b82b80956cfbe75101bd223fe6319dec/Recyclemania Calendar 2014.pdf?1394461781</AttachmentUrl>
<Attachments>
<Attachment kind="Flyer" url="https://my3.my.umbc.edu/posts/42246/attachments/12805"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42246/guest@my.umbc.edu/8849c380c5ae2aa3e52ff7fc10533ee7/api/pixel</TrackingUrl>
<Group token="transit">UMBC Transit </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/transit</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/xsmall.png?1448285304</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/original.png?1448285304</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/xxlarge.png?1448285304</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/xlarge.png?1448285304</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/large.png?1448285304</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/medium.png?1448285304</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/small.png?1448285304</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/xsmall.png?1448285304</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/592/23ec211d0365be0665abf1354689014d/xxsmall.png?1448285304</AvatarUrl>
<Sponsor>UMBC Transit</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/xxlarge.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/xlarge.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/large.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/medium.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/small.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/xsmall.jpg?1394461247</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/042/246/34ff462c2eca7365339aa7b238a9c143/xxsmall.jpg?1394461247</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 10 Mar 2014 10:31:38 -0400</PostedAt>
<EditAt>Mon, 10 Mar 2014 11:17:46 -0400</EditAt>
</NewsItem>

</News>
