<?xml version="1.0"?>
<News hasArchived="true" page="8258" pageCount="10833" pageSize="10" timestamp="Wed, 23 Sep 2026 00:33:41 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8258&amp;range=2">
<NewsItem contentIssues="true" id="37263" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37263">
<Title>Forrst announces major relaunch</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/10/thumbnail28.jpg" width="200" height="160" style="max-width: 100%; height: auto;">Design and development community, <a href="https://forrst.com/" rel="nofollow external" class="bo">Forrst</a>, has announced a completely new and improved website experience.</p> <p>Originally created by Kyle Bragger, the site was acquired by <a href="http://zurb.com/" rel="nofollow external" class="bo">Zurb</a> at the beginning of this year and the company has wasted no time building on and improving Forrst’s unique social feedback systems.</p> <p>Forrst is similar to sites like Dribbble, which allow designers to post ideas and ask for feedback. What makes it stand out is that, in addition to visual concepts, members can also post code. A less tangible, but probably more important difference is the site’s commitment to facilitating detailed feedback and fostering an active community of web design and development peers.</p> <p>Zurb has been transparent about their ideas for Forrst, posting plans for site updates and new features on their blog. About a month ago, they began a private release to iron out final details before making the changes public.</p> <p>To make good on their promise to “turn Forrst into a place of active learning so that Forrsters can get actionable and contextual feedback,” the team has introduced:</p> <ul> <li>annotations (incorporating <a href="http://www.notableapp.com/" rel="nofollow external" class="bo">Notable</a>, Zurb’s own feedback app);</li> <li>a new, less vertical design for the site;</li> <li>mobile-first functionality.</li> </ul> <p>Annotations allow members to give detailed contextual feedback by highlighting areas of a post and adding sticky-like notes. For now, annotations can only be added from a desktop browser, but you will be able to read them from your mobile device.</p> <p>The focus of the site design changes has been improving readability and discovery of posts. If you’re a longtime Forrst member, you’ll see the difference as soon as you land.</p> <p>The mobile-first functionality is off to a good start, relying on Zurb’s existing <a href="http://foundation.zurb.com/" rel="nofollow external" class="bo">Foundation 4</a> framework. At the moment, this means members can browse posts and leave feedback from just about anywhere.</p> <p>More features are in the pipeline, including increased functionality for annotations, a re-think of the Forrst Leaderboard and a significant update to perks for Pro supporters.</p> <p>If you are new to Forrst, you can sign up as a Scout. You become a full-fledged member once a Forrster has voted you in.</p> <p> </p> <p><em><strong>Do you use Forrst? Is Zurb acquiring Forrst a positive move for the community? Let us know in the comments.</strong></em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/macdojo.html?ref=inwidget" rel="nofollow external" class="bo"><strong>MacDojo’s Mac Shortcuts Pro Course – only $27!</strong></a> </td> <td> <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br> <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="Forrst announces major relaunch" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/10/forrst-announces-major-relaunch/" rel="nofollow external" class="bo">Source</a> <br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fforrst-announces-major-relaunch%2F&amp;t=Forrst+announces+major+relaunch" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fforrst-announces-major-relaunch%2F&amp;t=Forrst+announces+major+relaunch" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fforrst-announces-major-relaunch%2F&amp;t=Forrst+announces+major+relaunch" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fforrst-announces-major-relaunch%2F&amp;t=Forrst+announces+major+relaunch" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fforrst-announces-major-relaunch%2F&amp;t=Forrst+announces+major+relaunch" 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/176966558170/u/49/f/661066/c/35285/s/32b8b86a/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176966558170/u/49/f/661066/c/35285/s/32b8b86a/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Design and development community, Forrst, has announced a completely new and improved website experience.   Originally created by Kyle Bragger, the site was acquired by Zurb at the beginning of...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/32b8b86a/sc/4/l/0L0Swebdesignerdepot0N0C20A130C10A0Cforrst0Eannounces0Emajor0Erelaunch0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37263/guest@my.umbc.edu/92b48cd58e59c3305a39c84c7766cf8d/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>design-resources</Tag>
<Tag>design-showcases</Tag>
<Tag>development</Tag>
<Tag>forrst</Tag>
<Tag>foundation</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>new-sites</Tag>
<Tag>news</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>relaunches</Tag>
<Tag>sql</Tag>
<Tag>zurb</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, 21 Oct 2013 10:15:41 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 10:15:41 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37288" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37288">
<Title>DealBook: U.S. Exchanges Set to Compete for Alibaba I.P.O.</Title>
<Body>
<![CDATA[
    <div class="html-content">The New York Stock Exchange and the Nasdaq both have said they would accept a structure in which Alibaba’s founders and top executives would nominate a majority of board members.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F21%2Fu-s-exchanges-set-to-compete-for-alibaba-i-p-o%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+U.S.+Exchanges+Set+to+Compete+for+Alibaba+I.P.O." rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F21%2Fu-s-exchanges-set-to-compete-for-alibaba-i-p-o%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+U.S.+Exchanges+Set+to+Compete+for+Alibaba+I.P.O." rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F21%2Fu-s-exchanges-set-to-compete-for-alibaba-i-p-o%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+U.S.+Exchanges+Set+to+Compete+for+Alibaba+I.P.O." rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F21%2Fu-s-exchanges-set-to-compete-for-alibaba-i-p-o%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+U.S.+Exchanges+Set+to+Compete+for+Alibaba+I.P.O." rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fdealbook.nytimes.com%2F2013%2F10%2F21%2Fu-s-exchanges-set-to-compete-for-alibaba-i-p-o%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=DealBook%3A+U.S.+Exchanges+Set+to+Compete+for+Alibaba+I.P.O." rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    </div>
]]>
</Body>
<Summary>The New York Stock Exchange and the Nasdaq both have said they would accept a structure in which Alibaba’s founders and top executives would nominate a majority of board members.      </Summary>
<Website>http://dealbook.nytimes.com/2013/10/21/u-s-exchanges-set-to-compete-for-alibaba-i-p-o/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37288/guest@my.umbc.edu/0a94d03a06487487bce71ccc69fef5e2/api/pixel</TrackingUrl>
<Tag>alibaba-com</Tag>
<Tag>corporate-governance</Tag>
<Tag>i-p-o-offerings</Tag>
<Tag>initial-public-offerings</Tag>
<Tag>nasdaq-stock-market</Tag>
<Tag>new</Tag>
<Tag>new-york-stock-exchange</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, 21 Oct 2013 10:01:32 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37265" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37265">
<Title>Working With IndexedDB &#8211; Part 2</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35355&amp;c=1751448651" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35355&amp;c=1751448651" alt="" style="max-width: 100%; height: auto;"></a><p>Welcome to the second part of my IndexedDB article. I <em>strongly</em> recommend reading the <a href="http://net.tutsplus.com/tutorials/javascript-ajax/working-with-indexeddb/" rel="nofollow external" class="bo">first article</a> in this series, as I’ll be assuming you are familiar with all the concepts covered so far. In this article, we’re going to wrap up the CRUD aspects we didn’t finish before (specifically updating and deleting content), and then demonstrate a real world application that we will use to demonstrate other concepts in the final article.</p>
    <p></p>
    <hr>
    <h2>Updating Records</h2>
    <p>Let’s start off by discussing how to update a record with IndexedDB. If you remember, adding data was pretty simple:</p>
    <pre>//Define a person&#x000A;    var person = {&#x000A;        name:name,&#x000A;        email:email,&#x000A;        created:new Date()&#x000A;    }&#x000A;    &#x000A;    //Perform the add&#x000A;    var request = store.add(person);&#x000A;    </pre>
    <p>Updating a record is just as simple. Assuming that you have defined a property called <code>id</code> as your key for your object store, you can simply use the <code>put</code> method instead of <code>add</code>.</p>
    <pre>var person = {&#x000A;        name:name,&#x000A;        email:email,&#x000A;        created:new Date(),&#x000A;        id:someId&#x000A;    }&#x000A;    &#x000A;    //Perform the update&#x000A;    var request = store.put(person);&#x000A;    </pre>
    <p>Like the <code>add</code> method, you can assign methods to handle the asynchronous results of the operation.</p>
    <hr>
    <h2>Deleting Records</h2>
    <p>Deleting records is done via the delete method. (Big surprise there.) You simply pass in the unique identifer of the record you want to remove. Here is a simple example:</p>
    <pre>var t = db.transaction(["people"], "readwrite");&#x000A;    var request = t.objectStore("people").delete(thisId);&#x000A;    </pre>
    <p>And like every other aspect of IndexedDB, you can add your handles for the asynchronous results.</p>
    <p>So, as I said, not terribly exciting, which is probably good. You want your APIs simple, boring, and unsurprising. Now let’s take what we’ve learned and bring it together to create a real, if simple, application.</p>
    <hr>
    <h2>The Note App</h2>
    <p>Ok, finally we have all (well, most) of the parts we need to build a real application. Since it hasn’t been done before (<em>ahem</em>), we are going to build a simple note taking application. Let’s look at a few screen shots and then I’ll show you the code behind it. On launch, the application initializes an IndexedDB for the application and renders an empty table. Initially, all you can do with the application is add a new note. (We could make this a bit more user friendly perhaps.)</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/shot1.png" alt="Note App" width="600" height="383" style="max-width: 100%; height: auto;"><br> <p>Clicking the <strong>Add Note</strong> button opens a form:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/shot2.png" alt="Note App - Add Form" width="600" height="383" style="max-width: 100%; height: auto;"><br> <p>After entering some data in the form, you can then save the note:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/shot3.png" alt="Note App - Saved Note" width="600" height="383" style="max-width: 100%; height: auto;"><br> <p>As you can see, you have the option to edit and delete notes. Finally, if you click the row itself, you can read the note:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/10/shot4.png" alt="Note App - Note View" width="600" height="383" style="max-width: 100%; height: auto;"><br> <p>So not exactly rocket science, but a full working example of the IndexedDB specification. The notes written here will persist. You can close your browser, restart your machine, take a few years off to contemplate life and poetry, and when you open the browser again your data will still be there. Let’s take a look at the code now.</p>
    <p>First – a disclaimer. This application would have been a perfect candidate for one of the many JavaScript frameworks. I’m sure those of you who use Backbone or Angular can already imagine how you would set this up. However – I made the bold decision here to <em>not</em> use a framework. I was worried both about the people who may use a different framework and those who use none. I wanted our focus here to be on the IndexedDB aspects alone. I fully expect some people to disagree with that decision, but let’s hash it out in the comments.</p>
    <p>Our first template is the HTML file. We’ve only got one and most of it is boilerplate Bootstrap:</p>
    <pre>&lt;!DOCTYPE html&gt;&#x000A;    &lt;html lang="en"&gt;&#x000A;      &lt;head&gt;&#x000A;        &lt;meta charset="utf-8"&gt;&#x000A;        &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;&#x000A;    &#x000A;        &lt;title&gt;Note Database&lt;/title&gt;&#x000A;    &#x000A;        &lt;link href="bootstrap/css/bootstrap.css" rel="stylesheet"&gt;&#x000A;        &lt;link href="css/app.css" rel="stylesheet"&gt;&#x000A;    &#x000A;      &lt;/head&gt;&#x000A;    &#x000A;      &lt;body&gt;&#x000A;    &#x000A;        &lt;div class="navbar navbar-inverse navbar-fixed-top"&gt;&#x000A;          &lt;div class="container"&gt;&#x000A;            &lt;div class="navbar-header"&gt;&#x000A;              &lt;a class="navbar-brand" href="#"&gt;Note Database&lt;/a&gt;&#x000A;            &lt;/div&gt;&#x000A;          &lt;/div&gt;&#x000A;        &lt;/div&gt;&#x000A;    &#x000A;        &lt;div class="container"&gt;&#x000A;    &#x000A;            &lt;div id="noteList"&gt;&lt;/div&gt;&#x000A;            &lt;div class="pull-right"&gt;&lt;button id="addNoteButton" class="btn btn-success"&gt;Add Note&lt;/button&gt;&lt;/div&gt;&#x000A;            &lt;div id="noteDetail"&gt;&lt;/div&gt;&#x000A;    &#x000A;            &lt;div id="noteForm"&gt;&#x000A;                &lt;h2&gt;Edit Note&lt;/h2&gt;&#x000A;                &lt;form role="form" class="form-horizontal"&gt;&#x000A;                &lt;input type="hidden" id="key"&gt;&#x000A;                &lt;div class="form-group"&gt;&#x000A;                    &lt;label for="title" class="col-lg-2 control-label"&gt;Title&lt;/label&gt;&#x000A;                    &lt;div class="col-lg-10"&gt;&#x000A;                    &lt;input type="text" id="title" required class="form-control"&gt;&#x000A;                    &lt;/div&gt;&#x000A;                &lt;/div&gt;&#x000A;                &lt;div class="form-group"&gt;&#x000A;                    &lt;label for="body" class="col-lg-2 control-label"&gt;Body&lt;/label&gt;   &#x000A;                    &lt;div class="col-lg-10"&gt;&#x000A;                    &lt;textarea id="body" required class="form-control"&gt;&lt;/textarea&gt;&#x000A;                    &lt;/div&gt;&#x000A;                &lt;/div&gt;&#x000A;                &lt;div class="form-group"&gt;&#x000A;                    &lt;div class="col-lg-offset-2 col-lg-10"&gt;&#x000A;                        &lt;button id="saveNoteButton" class="btn btn-default"&gt;Save Note&lt;/button&gt;&#x000A;                    &lt;/div&gt;&#x000A;                &lt;/div&gt;&#x000A;                &lt;/form&gt;&#x000A;            &lt;/div&gt;&#x000A;    &#x000A;        &lt;/div&gt;&#x000A;    &#x000A;        &lt;script src="js/jquery-2.0.0.min.js"&gt;&lt;/script&gt;&#x000A;        &lt;script src="bootstrap/js/bootstrap.min.js"&gt;&lt;/script&gt;&#x000A;        &lt;script src="js/app.js"&gt;&lt;/script&gt;&#x000A;      &lt;/body&gt;&#x000A;    &lt;/html&gt;&#x000A;    </pre>
    <p>As mentioned above, a good size portion of this file is template code for Bootstrap. The parts we care about are the <code>noteList</code> div, the <code>noteDetail</code> div, and the <code>noteForm</code>. You can probably guess that these are the DIVs we’ll be updating as the user clicks around in the application.</p>
    <h3>Coding Our Core App File</h3>
    <p>Now let’s take a look at <code>app.js</code>, the core file that handles the logic for our application.</p>
    <pre>/* global console,$,document,window,alert */&#x000A;    var db;&#x000A;    &#x000A;    function dtFormat(input) {&#x000A;        if(!input) return "";&#x000A;        var res = (input.getMonth()+1) + "/" + input.getDate() + "/" + input.getFullYear() + " ";&#x000A;        var hour = input.getHours();&#x000A;        var ampm = "AM";&#x000A;        if(hour === 12) ampm = "PM";&#x000A;        if(hour &gt; 12){&#x000A;            hour-=12;&#x000A;            ampm = "PM";&#x000A;        }&#x000A;        var minute = input.getMinutes()+1;&#x000A;        if(minute &lt; 10) minute = "0" + minute;&#x000A;        res += hour + ":" + minute + " " + ampm;&#x000A;        return res;&#x000A;    }&#x000A;    </pre>
    <p>You can ignore the first function as it is simply a format utility for dates. Let’s skip ahead to the jQuery document ready block.</p>
    <h3>Checking for Browser Support</h3>
    <pre>$(document).ready(function() {&#x000A;    &#x000A;        if(!("indexedDB" in window)) {&#x000A;            alert("IndexedDB support required for this demo!");&#x000A;            return;&#x000A;        }&#x000A;    &#x000A;        var $noteDetail = $("#noteDetail");&#x000A;        var $noteForm = $("#noteForm");&#x000A;    &#x000A;        var openRequest = window.indexedDB.open("nettuts_notes_1",1);&#x000A;    &#x000A;        openRequest.onerror = function(e) {&#x000A;            console.log("Error opening db");&#x000A;            console.dir(e);&#x000A;        };&#x000A;    &#x000A;        openRequest.onupgradeneeded = function(e) {&#x000A;    &#x000A;            var thisDb = e.target.result;&#x000A;            var objectStore;&#x000A;    &#x000A;            //Create Note OS&#x000A;            if(!thisDb.objectStoreNames.contains("note")) {&#x000A;                console.log("I need to make the note objectstore");&#x000A;                objectStore = thisDb.createObjectStore("note", { keyPath: "id", autoIncrement:true });  &#x000A;            }&#x000A;    &#x000A;        };&#x000A;    &#x000A;        openRequest.onsuccess = function(e) {&#x000A;            db = e.target.result;&#x000A;    &#x000A;            db.onerror = function(event) {&#x000A;              // Generic error handler for all errors targeted at this database's&#x000A;              // requests!&#x000A;              alert("Database error: " + event.target.errorCode);&#x000A;              console.dir(event.target);&#x000A;            };&#x000A;    &#x000A;            displayNotes();&#x000A;    &#x000A;        };&#x000A;    </pre>
    <p>Our very first action is to check for IndexedDB support. If the user’s browser isn’t compatible, we use an alert and abort the function. It would probably be better to relocate them to a page that fully explains why they can’t use the application. (And to be clear, we could also build an application that made use of WebSQL as a backup. But again – my focus here is on simplicity.)</p>
    <p>After caching a few jQuery selectors, that we’ll use throughout the app, we then open up our IndexedDB database. The database is fairly simple. In the <code>onupgradeneeded</code> handler you can see one object store called <code>notes</code> being created. Once everything is done, the <code>onsuccess</code> handler will fire off a call to <code>displayNotes</code>.</p>
    <h3>The <code>displayNotes</code> Function</h3>
    <pre>    function displayNotes() {&#x000A;    &#x000A;            var transaction = db.transaction(["note"], "readonly");  &#x000A;            var content="&lt;table class='table table-bordered table-striped'&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Title&lt;/th&gt;&lt;th&gt;Updated&lt;/th&gt;&lt;th&gt;&amp;amp;nbsp;&lt;/td&gt;&lt;/thead&gt;&lt;tbody&gt;";&#x000A;    &#x000A;            transaction.oncomplete = function(event) {&#x000A;                $("#noteList").html(content);&#x000A;            };&#x000A;    &#x000A;            var handleResult = function(event) {  &#x000A;              var cursor = event.target.result;  &#x000A;              if (cursor) {  &#x000A;                content += "&lt;tr data-key=\""+cursor.key+"\"&gt;&lt;td class=\"notetitle\"&gt;"+cursor.value.title+"&lt;/td&gt;";&#x000A;                content += "&lt;td&gt;"+dtFormat(cursor.value.updated)+"&lt;/td&gt;";&#x000A;    &#x000A;                content += "&lt;td&gt;&lt;a class=\"btn btn-primary edit\"&gt;Edit&lt;/a&gt; &lt;a class=\"btn btn-danger delete\"&gt;Delete&lt;/a&gt;&lt;/td&gt;";&#x000A;                content +="&lt;/tr&gt;";&#x000A;                cursor.continue();  &#x000A;              }  &#x000A;              else {  &#x000A;                content += "&lt;/tbody&gt;&lt;/table&gt;";&#x000A;              }  &#x000A;            };&#x000A;    &#x000A;            var objectStore = transaction.objectStore("note");&#x000A;    &#x000A;            objectStore.openCursor().onsuccess = handleResult;&#x000A;    &#x000A;        }&#x000A;    </pre>
    <p>The <code>displayNotes</code> function does what you expect – get all the data and display it. We discussed how to get all rows of data in the previous entry, but I want to point out something slightly different about this example. Note that we have a new event handler, <code>oncomplete</code>, that we’ve tied to the transaction itself. Previously, we’ve used events just within the actions, <em>inside</em> the transaction, but IndexedDB lets us do it at the top level as well. This becomes especially useful in a case like this. We have a giant string, our HTML table, that we build up over each iteration of our data. We can use the transaction’s <code>oncomplete</code> handler to wrap up the display portion and write it out using a simple jQuery call.</p>
    <h3>The <code>Delete</code>, <code>Edit</code>, and <code>Add</code> Functions</h3>
    <pre>    $("#noteList").on("click", "a.delete", function(e) {&#x000A;            var thisId = $(this).parent().parent().data("key");&#x000A;    &#x000A;            var t = db.transaction(["note"], "readwrite");&#x000A;            var request = t.objectStore("note").delete(thisId);&#x000A;            t.oncomplete = function(event) {&#x000A;                displayNotes();&#x000A;                $noteDetail.hide();&#x000A;                $noteForm.hide();&#x000A;            };&#x000A;            return false;&#x000A;        });&#x000A;    &#x000A;        $("#noteList").on("click", "a.edit", function(e) {&#x000A;            var thisId = $(this).parent().parent().data("key");&#x000A;    &#x000A;            var request = db.transaction(["note"], "readwrite")  &#x000A;                            .objectStore("note")  &#x000A;                            .get(thisId);  &#x000A;            request.onsuccess = function(event) {  &#x000A;                var note = request.result;&#x000A;                $("#key").val(note.id);&#x000A;                $("#title").val(note.title);&#x000A;                $("#body").val(note.body);&#x000A;                $noteDetail.hide();&#x000A;                $noteForm.show();&#x000A;            };&#x000A;    &#x000A;            return false;&#x000A;        });&#x000A;    &#x000A;        $("#noteList").on("click", "td", function() {&#x000A;            var thisId = $(this).parent().data("key");&#x000A;            var transaction = db.transaction(["note"]);  &#x000A;            var objectStore = transaction.objectStore("note");  &#x000A;            var request = objectStore.get(thisId);&#x000A;    &#x000A;            request.onsuccess = function(event) {  &#x000A;                var note = request.result;&#x000A;                $noteDetail.html("&lt;h2&gt;"+note.title+"&lt;/h2&gt;&lt;p&gt;"+note.body+"&lt;/p&gt;").show();&#x000A;                $noteForm.hide();&#x000A;            };  &#x000A;        });&#x000A;    &#x000A;        $("#addNoteButton").on("click", function(e) {&#x000A;            $("#title").val("");&#x000A;            $("#body").val("");&#x000A;            $("#key").val("");&#x000A;            $noteDetail.hide();&#x000A;            $noteForm.show();       &#x000A;        });&#x000A;    </pre>
    <p>Our next two methods (<code>delete</code> and <code>edit</code>) is another example of this same principal. Since none of the IndexedDB calls here are new, we won’t bother going over them. Most of the “meat” here ends up being simple DOM manipulation to handle the particular actions. The handler for clicking the add button is exactly that, so we’ll skip over that as well.</p>
    <h3>The <code>Save</code> Function</h3>
    <pre>    $("#saveNoteButton").on("click",function() {&#x000A;    &#x000A;            var title = $("#title").val();&#x000A;            var body = $("#body").val();&#x000A;            var key = $("#key").val();&#x000A;    &#x000A;            var t = db.transaction(["note"], "readwrite");&#x000A;    &#x000A;            if(key === "") {&#x000A;                t.objectStore("note")&#x000A;                                .add({title:title,body:body,updated:new Date()});&#x000A;            } else {&#x000A;                t.objectStore("note")&#x000A;                                .put({title:title,body:body,updated:new Date(),id:Number(key)});&#x000A;            }&#x000A;    &#x000A;            t.oncomplete = function(event) {&#x000A;                $("#key").val("");&#x000A;                $("#title").val("");&#x000A;                $("#body").val("");&#x000A;                displayNotes();&#x000A;                $noteForm.hide();           &#x000A;            };&#x000A;    &#x000A;            return false;&#x000A;        });&#x000A;    &#x000A;    });&#x000A;    </pre>
    <p>The next interesting tidbit is the <code>save</code> method. It has to use a bit of logic to determine if we are adding or updating, but even that is rather simple. And that’s it! A complete, if simple, IndexedDB application. You can play around with this demo yourself by downloading the attached source code.</p>
    <hr>
    <h2>In Conclusion</h2>
    <p>That’s it for part two! The third article will take this application and begin adding additional features including search and array based properties.</p>
    </div>
]]>
</Body>
<Summary>Welcome to the second part of my IndexedDB article. I strongly recommend reading the first article in this series, as I’ll be assuming you are familiar with all the concepts covered so far. In...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/l0adVcF14qc/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37265/guest@my.umbc.edu/8750fb004f3dcb725a2112fc803e1562/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>javascript-and-ajax</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 21 Oct 2013 10:00:49 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 10:00:49 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="37255" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37255">
<Title>Change to some UMBC userpages permissions</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>As many of you know, UMBC has had a large number of phishing attacks in the past few weeks.  This has resulted in a number of compromised accounts which the attackers are using to setup fake web pages and send out large volumes of spam.  In an attempt to better protect accounts from fake web pages, DoIT will be removing permissions from user AFS web volumes for accounts not currently using their web space (<a href="http://userpages.umbc.edu/~username" rel="nofollow external" class="bo">http://userpages.umbc.edu/~username</a>).  </p>
    <p><br></p>
    <p>This will not affect anyone who currently has a web page or stop anyone from creating a web page, but will stop automated attacks and make it more difficult for attackers to setup web pages on people’s accounts.  The permission change is minor, and can be easily reversed by anyone wishing to use their web space moving forward.  </p>
    <p><br></p>
    <p>Directions for how to re-enable your web directory, as well as general information regarding using userpages, can be found at <a href="https://wiki.umbc.edu/pages/viewpage.action?pageId=31195980" rel="nofollow external" class="bo">https://wiki.umbc.edu/pages/viewpage.action?pageId=31195980</a>.  If you have questions or concerns please contact the Technology Support Center (x53838) and they will be happy to assist you.</p>
    <div><br></div>
    <div>Thanks!</div>
    <div>Tim Champ</div>
    <div>Coordinator of Unix Infrastructure</div>
    <div>UMBC - Division of Information Technology</div>
    </div>
]]>
</Body>
<Summary>As many of you know, UMBC has had a large number of phishing attacks in the past few weeks.  This has resulted in a number of compromised accounts which the attackers are using to setup fake web...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37255/guest@my.umbc.edu/7459b36bed2c7ca8e74235e7059cbbbc/api/pixel</TrackingUrl>
<Group token="doit">Division of Information Technology (DoIT)</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/doit</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/xsmall.png?1727453227</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/original.JPG?1727453227</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/xxlarge.png?1727453227</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/xlarge.png?1727453227</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/large.png?1727453227</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/medium.png?1727453227</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/small.png?1727453227</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/xsmall.png?1727453227</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/021/d27760c5de12c74b73faec8d0e631acf/xxsmall.png?1727453227</AvatarUrl>
<Sponsor>Division of Information Technology</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 21 Oct 2013 09:53:31 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37257" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37257">
<Title>Real People Profile: Tarrin Morgan</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <em><span>We're asking some of the people you might encounter on the UMBC campus, including students, faculty, staff and alumni, to answer a few questions about themselves and their experiences. These are their responses.</span></em><br><span><strong><br></strong></span><div><a href="http://2.bp.blogspot.com/-BGdAHjtufzQ/UmUtF4iUpUI/AAAAAAAADUw/ckzW0MQUHhw/s1600/Tarrin+Morgan.PNG" rel="nofollow external" class="bo"><span><img src="http://2.bp.blogspot.com/-BGdAHjtufzQ/UmUtF4iUpUI/AAAAAAAADUw/ckzW0MQUHhw/s1600/Tarrin+Morgan.PNG" height="320" width="282" style="max-width: 100%; height: auto;"></span></a></div>
    <span><span><strong>Name: </strong></span>Tarrin Morgan</span><br><span><span><span><strong><br></strong></span></span><span><span><strong>Hometown: </strong></span></span>Neptune, New Jersey</span><br><span><br></span><strong><span>Q: How long have you been at UMBC?</span></strong><br><div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><span><span>A: </span>Since June 2013.</span></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><strong><span>Q: What is your current title (job or student organization position)?</span></strong></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div>
    <div><div><div><div><div><div><div><div><span><span>A: </span>Community Director of Walker Avenue Apartments.</span></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><span><strong>Q: In 12 words or less, what role(s) do you play on campus?</strong> </span></div></div></div></div></div></div></div></div>
    </div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div>
    <div><span><span>A: </span>I ensure that Walker residents have a safe and comfortable environment.</span></div>
    <div><span><span><br></span></span></div>
    </div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><strong><span>Q: What aspect of your UMBC role(s) do you enjoy most?</span></strong></div></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div>
    <div><span><br></span></div>
    <div><span><span>A: </span>I enjoy the chance to have candid interactions with students.  These moments are more genuine to me.</span></div>
    </div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div>
    <div><div><div><div><div><div><div><div>
    <strong><span>Q: What is the most important or memorable thing you learned in college/have learned at UMBC?</span></strong><br><div><strong></strong></div>
    </div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div>
    <div><span><br></span></div>
    <div><span><span>A: </span>I have learned that "paying it forward" is a crucial part of my life.</span></div>
    </div></div></div></div></div></div></div>
    </div>
    <div><div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div></div>
    <div>
    <div><div><div><div><div><div><div><div><strong><span>Q: Complete this sentence: "I am a big fan of __________"</span></strong></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div><div><span><br></span></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div><div>
    <div><span><span>A: </span>Reese's Peanut Butter Cups.</span></div>
    <div><span><br></span></div>
    </div></div></div></div></div></div></div>
    </div>
    <div><div><div><div><div><div><div><div><strong><span>Q: Do you have any UMBC stories, little-known facts about UMBC, favorite spots on campus, or anything else you’d like to share?</span></strong></div></div></div></div></div></div></div></div>
    <div><div><div><div><div><div>
    <div>
    <div><span><br></span></div>
    <span><span>A: </span>I'm always walking somewhere around campus so if you see me say hi, I surely will if you don't!</span>
    </div>
    <div>
    <span><br></span><div><div><em><span><a href="http://cocreateumbc.blogspot.com/" rel="nofollow external" class="bo">Co-Create UMBC</a> is a blog for and about UMBC, written by David Hoffman and Craig Berger from the Office of Student Life. Join the <a href="http://my.umbc.edu/groups/co-create" rel="nofollow external" class="bo">Co-Create UMBC group</a> on MyUMBC. Like <a href="https://www.facebook.com/cocreateumbc" rel="nofollow external" class="bo">Co-Create UMBC on Facebook</a>. And follow <a href="https://twitter.com/CoCreateUMBC" rel="nofollow external" class="bo">David</a> and <a href="https://twitter.com/CraigBerger" rel="nofollow external" class="bo">Craig</a> on Twitter.</span></em></div></div>
    </div>
    </div></div></div></div></div></div>
    </div>
    </div>
]]>
</Body>
<Summary>We're asking some of the people you might encounter on the UMBC campus, including students, faculty, staff and alumni, to answer a few questions about themselves and their experiences. These are...</Summary>
<Website>http://cocreateumbc.blogspot.com/2013/10/real-people-profile-tarrin-morgan.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37257/guest@my.umbc.edu/bfca1b2566e2f21493c1ad2719fcac25/api/pixel</TrackingUrl>
<Tag>real-people-profiles</Tag>
<Group token="co-create">Co-Create UMBC</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/co-create</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/xsmall.png?1499890363</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/original.jpg?1499890363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/xxlarge.png?1499890363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/xlarge.png?1499890363</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/large.png?1499890363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/medium.png?1499890363</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/small.png?1499890363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/xsmall.png?1499890363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/002/5b8f025dafb56cb8d3088b7259aadcfb/xxsmall.png?1499890363</AvatarUrl>
<Sponsor>Co-Create UMBC</Sponsor>
<PawCount>17</PawCount>
<CommentCount>3</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 21 Oct 2013 09:35:00 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 09:35:00 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37253" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37253">
<Title>Bits Blog: Gaming the Future With EA&#8217;s Frank Gibeau</Title>
<Body>
<![CDATA[
    <div class="html-content">Frank Gibeau, an Electronic Arts gaming executive, talks about the challenge of repositioning gaming for mobile, and why devout gaming fans are like sailors on a ship.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F21%2Fone-on-one-gaming-the-future-with-frank-gibeau%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Gaming+the+Future+With+EA%E2%80%99s+Frank+Gibeau" 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%2F2013%2F10%2F21%2Fone-on-one-gaming-the-future-with-frank-gibeau%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Gaming+the+Future+With+EA%E2%80%99s+Frank+Gibeau" 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%2F2013%2F10%2F21%2Fone-on-one-gaming-the-future-with-frank-gibeau%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Gaming+the+Future+With+EA%E2%80%99s+Frank+Gibeau" 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%2F2013%2F10%2F21%2Fone-on-one-gaming-the-future-with-frank-gibeau%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Gaming+the+Future+With+EA%E2%80%99s+Frank+Gibeau" 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%2F2013%2F10%2F21%2Fone-on-one-gaming-the-future-with-frank-gibeau%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Gaming+the+Future+With+EA%E2%80%99s+Frank+Gibeau" 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/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176969098677/u/0/f/640387/c/34625/s/32b8272a/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Frank Gibeau, an Electronic Arts gaming executive, talks about the challenge of repositioning gaming for mobile, and why devout gaming fans are like sailors on a ship.      </Summary>
<Website>http://bits.blogs.nytimes.com/2013/10/21/one-on-one-gaming-the-future-with-frank-gibeau/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37253/guest@my.umbc.edu/f53a9eaf68ac23118c868c27545022da/api/pixel</TrackingUrl>
<Tag>computer-and-video-games</Tag>
<Tag>electronic-arts-inc</Tag>
<Tag>electronic-arts-inc-erts-nasdaq</Tag>
<Tag>gaming</Tag>
<Tag>intellectual-property</Tag>
<Tag>new</Tag>
<Tag>pincus-mark</Tag>
<Tag>silicon-valley-calif</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Tag>zynga-inc</Tag>
<Tag>zynga-inc-znga-nasdaq</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, 21 Oct 2013 09:05:08 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 22:02:00 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37250" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37250">
<Title>Bits Blog: Mark Zuckerberg Starts Spending His Billion-Dollar Charitable Fund</Title>
<Body>
<![CDATA[
    <div class="html-content">The Facebook co-founder is beginning to direct money to various causes, including a contribution to a group promoting computer science education in schools.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F21%2Fmark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Mark+Zuckerberg+Starts+Spending+His+Billion-Dollar+Charitable+Fund" 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%2F2013%2F10%2F21%2Fmark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Mark+Zuckerberg+Starts+Spending+His+Billion-Dollar+Charitable+Fund" 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%2F2013%2F10%2F21%2Fmark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Mark+Zuckerberg+Starts+Spending+His+Billion-Dollar+Charitable+Fund" 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%2F2013%2F10%2F21%2Fmark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Mark+Zuckerberg+Starts+Spending+His+Billion-Dollar+Charitable+Fund" 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%2F2013%2F10%2F21%2Fmark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Mark+Zuckerberg+Starts+Spending+His+Billion-Dollar+Charitable+Fund" 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/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176968703022/u/0/f/640387/c/34625/s/32b75cb3/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The Facebook co-founder is beginning to direct money to various causes, including a contribution to a group promoting computer science education in schools.      </Summary>
<Website>http://bits.blogs.nytimes.com/2013/10/21/mark-zuckerberg-starts-spending-his-billion-dollar-charitable-fund/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37250/guest@my.umbc.edu/53d8420cbfa907032ae1f2aaa0cb6031/api/pixel</TrackingUrl>
<Tag>chan-priscilla</Tag>
<Tag>code-org</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>education-k-12</Tag>
<Tag>facebook-inc</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>internet</Tag>
<Tag>new</Tag>
<Tag>philanthropy</Tag>
<Tag>silicon-valley-community-foundation</Tag>
<Tag>start-ups</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Tag>zuckerberg-mark-e</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, 21 Oct 2013 07:30:48 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 14:09:28 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37249" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37249">
<Title>Twitter Bootstrap 3 CSS Overview</Title>
<Body>
<![CDATA[
    <div class="html-content">In this tutorial we have discussed salient points of the Twitter Bootstrap 3 CSS. This tutorial will help you to understand several key aspect of how Bootstrap 3 works.</div>
]]>
</Body>
<Summary>In this tutorial we have discussed salient points of the Twitter Bootstrap 3 CSS. This tutorial will help you to understand several key aspect of how Bootstrap 3 works.</Summary>
<Website>http://feedproxy.google.com/~r/w3resource/~3/wlv5KfBj_y4/CSS-overview.php</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37249/guest@my.umbc.edu/184d55a0f4adb67be7ec4d89a7b49ae1/api/pixel</TrackingUrl>
<Tag>backend</Tag>
<Tag>css</Tag>
<Tag>frontend</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>javascript</Tag>
<Tag>nosql</Tag>
<Tag>sql</Tag>
<Tag>xhtml</Tag>
<Tag>xml</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, 21 Oct 2013 07:16:43 -0400</PostedAt>
<EditAt>Thu, 15 May 2014 09:16:23 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37248" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37248">
<Title>Master responsive design with Modernizr</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/10/thumbnail24.jpg" width="200" height="160" style="max-width: 100%; height: auto;">As you know, there is a lot more to building responsive websites than width. You need sensors that give you feedback to adjust sites based on other factors.</p> <p>The best way to improve our feedback from your user’s sensor, or browser, is by using a JavaScript library called <a href="http://modernizr.com/" rel="nofollow external" class="bo">Modernizr.</a> In this article I’ll explain why, when you go beyond width, Modernizr is such an invaluable tool.</p> <p>In front-end development, developers used to adjust a site to fit the constraints of the layout engine used by a particular browser. In 2003, there were only three browsers: Netscape, Internet Explorer, and Opera. Firefox, Safari, and the first mobile browser, Opera Mini, were released by 2005. Chrome wasn’t released until 2008.</p> <p>Currently there are five major browsers, each with its own mobile version. Across that array of browsers, there are also older versions that users haven’t upgraded. In the same way that creating multiple layouts for multiple screen sizes eventually becomes a zero sum game, so does building multiple front-ends for multiple browsers.</p> <p>We’re using responsive web design to accommodate new, cutting edge mobile browsers. But, while accommodating new browsers, it’s important not to do so at the expense of older browsers.</p> <p>Historically, optimization has come as a product of building a site for the most popular browsers and then tweaking to ensure the site looks the same on a set of popular browsers. Designs would have to accommodate the capabilities of all browsers.</p> <p>Progressive enhancement is one strategy to cope with browsers’ failure to support modern features. There is a temptation to build for the most up-to-date features, but, in a responsive web, the design of a site is contextual to the frame that it’s being viewed through. Responsive web design has become popular because it resolves the most obvious changing context — the size of the frame — but the context of a browser runs much deeper than it’s viewport size.</p> <p>SVG makes for a great solution for high-resolution displays, but what about its support in older browsers? It’s not supported in IE 8 or older, so you have to build in a fallback if you support that browser. You could identify the browser and serve alternative styles against that browser but then you would have to serve those same alternative styles for every browser that doesn’t support SVG.</p> <p>Wouldn’t it be easier if you could just write a style that would be used against every browser that didn’t support SVG? That way, you wouldn’t have to keep up with bug reports from the users of older versions. You could just set the fallback once and forget it.</p> <p>Traditionally, feature detection has been accomplished by detecting the browser’s user agent. This is done through JavaScript, using the navigator object. The navigator object dates back to the Netscape days and used to be a developer’s best tool in cross-browser compatibility.</p> <p>If you have Chrome and have enabled DevTools, open your browser’s web inspector by right-clicking on a page and selecting Inspect Element. Then, click on Console and, after the caret, type “navigator.userAgent” and hit Enter. This will return your current browser’s user-agent, which is a string of text used to identify the browser in use. Chrome returns the following:</p> <pre>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.35 (KHTML, like Gecko) Chrome/27.0.1443.2 Safari/537.35</pre> <p>In a lot of ways, the navigator object is the one of the best sensors we have available to us to inform our system about what our user is capable of; however, it’s not very future friendly. It bases your site’s actuators on a lot of assumptions about what the browser does and does not support. It also is unreliable because users can configure it to access sites that the browser might not be able to support.</p> <p> </p> <h1>What Modernizr does</h1> <p>Modernizr is a JavaScript library used to detect features in the browser. It’s loaded in the head of your page and runs during a page load. Adding it to your site is as simple as adding any other JavaScript library, such as jQuery, but, once added, Modernizer gives you an incredible amount of control in rendering your page and ensuring that every user is served a quality experience.</p> <p>Having been loaded, Modernizr runs a series of checks against the user’s browser to determine what features the browser supports and creates a JavaScript object that you can use to test against. Modernizr doesn’t create support for these features; it simply gives you a way to provide fallback support for modern features. For example, in the case of SVG, Modernizr enables us to provide a fallback image for browsers that lack SVG support.</p> <p>Modernizr also applies a set of classes to the HTML tag, giving you the ability to modify the page’s CSS using the corresponding CSS classes. These CSS classes allow you to use CSS systems to build actuators that will adjust your pages to allow the progressive enhancements available for a page.</p> <p>As opposed to using the User Agent, Modernizr detects features directly by running a series of JavaScript tests that return boolean (true or false) values. This dictates the classes that are set to the html tag and gives you the ability to use JavaScript to detect whether a feature is available.</p> <p> </p> <h1>Installing Modernizr</h1> <p>Installing Modernizr is as simple as linking to the JavaScript library in the head of your page, but where the installation process gets complicated is creating the version that you need. <a href="http://modernizr.com/" rel="nofollow external" class="bo">Modernizr is available for download in two versions,</a> the development version and the production version.</p> <p>The development version is a full 42 KB, uncompressed file. This version is great if you’re well versed in JavaScript and want to make some tweaks to the tests it performs. Because it’s uncompressed, it’s easy to read and augment but it’s best left to developers with a firm understanding of JavaScript.</p> <p>For those of you who might not be completely adept at JavaScript, or would like to quickly build a customized version of Modernizr, this is where the production version of the library comes into play. The production version building tool on the site gives you the ability to create a version with only the tests you require.</p> <p>This comes in handy when you know you only need a certain set of tests. For instance, your site might not take advantage of CSS box-shadows, but it might need to support CSS gradients. Using the build tool, you can include the tests you need and exclude the ones you don’t need, keeping the source code trim and your user’s total load time down.</p> <p>For our example, I’ll be working of the development version. I find that when I’m building a site, it’s best to work with the full version and then once you know what features you’ll be using in your site, trim the version down.</p> <p> </p> <h1>Using Modernizr for cross-browser CSS</h1> <p>Let’s do some simple feature detection with Modernizr. We’ll start with a raw sample site.</p> <pre>&lt;!doctype html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>&lt;meta charset="utf-8"&gt;<br>&lt;script type="text/javascript" src="js/modernizr.min.js"&gt;&lt;/script&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre> <p>Let’s use this small test to detect whether or not our browser is capable of supporting SVG. For the sake of simplicity we’ll just add two span tags to the page to detect support.</p> <pre>&lt;!doctype html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>&lt;meta charset="utf-8"&gt;<br>&lt;script type="text/javascript" src="js/modernizr.min.js"&gt;&lt;/script&gt;<br>&lt;style type="text/css"&gt;<br>.yes{color:green;}<br>.no{color:red;}<br>span{display:none;}<br>.svg .yes{display:inline;}<br>.no-svg .no{display:inline;}<br>&lt;/style&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;div&gt;<br>&lt;span class='yes'&gt;Huzzah! You have SVG support.&lt;/span&gt;<br>&lt;span class='no'&gt;BOO! You don't have SVG support.&lt;/span&gt;<br>&lt;/div&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre> <p>If you test this in a browser that supports SVG, you’ll see the message “Huzzah! You have SVG support.” whereas if you have a browser that fails to support SVG, you’ll find the “BOO! You don’t have SVG support.” message.</p> <p>This example is pretty rudimentary, but it displays the core idea of using Modernizr to fix cross browser issues. If we were doing this same fix using the old user agent method, we would have to have a style sheet for each browser that doesn’t support SVG and change our CSS for each one. (For anyone interested, the only major browsers lacking SVG support are Internet Explorer 7 and under.)</p> <p>By adding the svg/no-svg class to the html on the page, your CSS now has a selector that can be used to override existing CSS rules. Because it’s on the parent-most tag, it can used to override other classes on the page.</p> <p>So, in this case, both span tags are given display:none;. If there is no SVG support, the display:inline declaration on the span tag with the .no class overrides the display:hidden thanks to the no-svg rule on the html tag.</p> <p>Let’s try a more useful example of the same idea. We might want to have an SVG background image on the page, which falls back to a PNG if the browser doesn’t support SVG. By default we’ll use the PNG image. This way, the SVG isn’t served unless it’s needed and becomes a progressive enhancement.</p> <pre>&lt;!doctype html&gt;<br>&lt;html lang="en"&gt;<br>&lt;head&gt;<br>&lt;meta charset="utf-8"&gt;<br>&lt;script type="text/javascript" src="js/modernizr.min.js"&gt;&lt;/script&gt;<br>&lt;style type="text/css"&gt;<br>.skull{<br>width:300px;<br>height:300px;<br>background-image:url(images/skull.png);<br>background-size:100% auto;<br>background-repeat: no-repeat;<br>}<br>.svg .skull{background-image:url(images/skull.svg);}<br>&lt;/style&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;div class='skull'&gt;&lt;/div&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</pre> <p>Now we have an awesome SVG skull that will look awesome and crisp for users with high-resolution displays, and still look good for users with older browsers.</p> <p> </p> <h1>Summary</h1> <p>There is a great wealth of information to be learned about Modernizr. We showed you how it does the work of cross-browser capability without having to remember or maintain a running list of which browsers support SVG.</p> <p>It functions exceptionally as a system with which to serve your user actuators to create speedy and highly functional websites.</p> <p> </p> <p><em><strong>Do you use Modernizr in your projects? What other methods have you used for serving responsive content? Let us know in the comments.</strong></em></p> <p><em>Featured image/thumbnail, <a href="http://www.shutterstock.com/pic-72832432/stock-photo-acceleration-of-the-motion-on-the-night-road.html" rel="nofollow external" class="bo">divergent lines image</a> via Shutterstock.</em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/macdojo.html?ref=inwidget" rel="nofollow external" class="bo"><strong>MacDojo’s Mac Shortcuts Pro Course – only $27!</strong></a> </td> <td> <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br> <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="Master responsive design with Modernizr" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/10/master-responsive-design-with-modernizr/" rel="nofollow external" class="bo">Source</a> <br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fmaster-responsive-design-with-modernizr%2F&amp;t=Master+responsive+design+with+Modernizr" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fmaster-responsive-design-with-modernizr%2F&amp;t=Master+responsive+design+with+Modernizr" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fmaster-responsive-design-with-modernizr%2F&amp;t=Master+responsive+design+with+Modernizr" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fmaster-responsive-design-with-modernizr%2F&amp;t=Master+responsive+design+with+Modernizr" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F10%2Fmaster-responsive-design-with-modernizr%2F&amp;t=Master+responsive+design+with+Modernizr" 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/176969087174/u/49/f/661066/c/35285/s/32b62fc2/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/176969087174/u/49/f/661066/c/35285/s/32b62fc2/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>As you know, there is a lot more to building responsive websites than width. You need sensors that give you feedback to adjust sites based on other factors.   The best way to improve our feedback...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/32b62fc2/sc/4/l/0L0Swebdesignerdepot0N0C20A130C10A0Cmaster0Eresponsive0Edesign0Ewith0Emodernizr0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37248/guest@my.umbc.edu/c0d25690b1b58fcd77ddea972c357ede/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>browser-detection</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>responsive-content</Tag>
<Tag>responsive-design</Tag>
<Tag>responsive-web-design</Tag>
<Tag>sql</Tag>
<Tag>using-modernizr</Tag>
<Tag>using-svg</Tag>
<Tag>web-development</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, 21 Oct 2013 06:15:37 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 06:15:37 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="37261" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37261">
<Title>Coordinates: The Umbilical Link of Man to Robot</Title>
<Body>
<![CDATA[
    <div class="html-content">A December contest held by a Pentagon agency will show how far technology has come, and how far it has to go to catch up to sci-fi movie depictions.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F22%2Fscience%2Frobot-games-a-challenge-for-the-machines-and-the-controllers.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Coordinates%3A+The+Umbilical+Link+of+Man+to+Robot" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F22%2Fscience%2Frobot-games-a-challenge-for-the-machines-and-the-controllers.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Coordinates%3A+The+Umbilical+Link+of+Man+to+Robot" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F22%2Fscience%2Frobot-games-a-challenge-for-the-machines-and-the-controllers.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Coordinates%3A+The+Umbilical+Link+of+Man+to+Robot" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F22%2Fscience%2Frobot-games-a-challenge-for-the-machines-and-the-controllers.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Coordinates%3A+The+Umbilical+Link+of+Man+to+Robot" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F22%2Fscience%2Frobot-games-a-challenge-for-the-machines-and-the-controllers.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Coordinates%3A+The+Umbilical+Link+of+Man+to+Robot" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    </div>
]]>
</Body>
<Summary>A December contest held by a Pentagon agency will show how far technology has come, and how far it has to go to catch up to sci-fi movie depictions.      </Summary>
<Website>http://www.nytimes.com/2013/10/22/science/robot-games-a-challenge-for-the-machines-and-the-controllers.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37261/guest@my.umbc.edu/c776645d94e1fbf027b8098ca0a25b08/api/pixel</TrackingUrl>
<Tag>atlas-robot</Tag>
<Tag>defense-advanced-research-projects-agency</Tag>
<Tag>honda-motor-co-ltd-hmc-nyse</Tag>
<Tag>new</Tag>
<Tag>research</Tag>
<Tag>robots-and-robotics</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, 21 Oct 2013 06:00:11 -0400</PostedAt>
<EditAt>Mon, 21 Oct 2013 06:00:11 -0400</EditAt>
</NewsItem>

</News>
