<?xml version="1.0"?>
<News hasArchived="true" page="8974" pageCount="10742" pageSize="10" timestamp="Wed, 05 Aug 2026 17:17:19 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8974">
<NewsItem contentIssues="false" id="42636" important="false" status="posted" url="https://my3.my.umbc.edu/posts/42636">
<Title>Digital Societies and Social Technologies Summer Institute, UMCP</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://www.csee.umbc.edu/wp-content/uploads/2013/03/cropped-cropped-new-header.png" rel="nofollow external" class="bo"><img alt="CASCI: Center for the Advanced Study of Communities and Information" height="147" src="//www.csee.umbc.edu/wp-content/uploads/2013/03/cropped-cropped-new-header.png" width="700" style="max-width: 100%; height: auto;"></a></p>
    <p>Doctoral students, postdocs and established researchers working in the intersection of technology and social systems might consider applying to the 2013 <a href="http://bit.ly/DSST13" rel="nofollow external" class="bo">Digital Societies and Social Technologies Summer Institute</a>, 7/28 to 8/1 at the University of Maryland College Park.</p>
    <blockquote><p>"MOOCs, Education and learning; personal health and well-being; open innovation, eScience, and citizen science; co-production, open source, and new forms of work; cultural heritage and information access; energy management and climate change; civic hacking, engagement and government; disaster response; cybersecurity and privacy – these are just a few problem domains where effective design and robust understanding of complex sociotechnical systems is critical. To meet these challenges a trans-disciplinary community of scholars has come together from fields as wide ranging as CSCW, HCI, social computing, organization studies, information visualization, social informatics, sociology, information systems, medical informatics, computer science, ICT for development, education, learning science, journalism, and political science."</p></blockquote>
    <p>Lodging, meals, and other onsite costs will be covered for all Summer Institute participants. Applications are due by April 5.</p>
    </div>
]]>
</Body>
<Summary>Doctoral students, postdocs and established researchers working in the intersection of technology and social systems might consider applying to the 2013 Digital Societies and Social Technologies...</Summary>
<Website>http://www.csee.umbc.edu/2013/03/digital-societies-and-social-technologies-summer-institute-umcp/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=digital-societies-and-social-technologies-summer-institute-umcp</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/42636/guest@my.umbc.edu/5e9943091ce3d94087e301df876d300d/api/pixel</TrackingUrl>
<Tag>fyi</Tag>
<Tag>graduate</Tag>
<Group token="csee">Computer Science and Electrical Engineering</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/csee</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/original.png?1314043393</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/large.png?1314043393</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/medium.png?1314043393</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/small.png?1314043393</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxsmall.png?1314043393</AvatarUrl>
<Sponsor>Computer Science and Electrical Engineering</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 10:29:27 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="26176" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26176">
<Title>Writing Your Own jQuery Plugins</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://jquery.com" rel="nofollow external" class="bo">jQuery</a> is great. It’s cross-browser, easy to learn, and makes adding interactivity to your website a breeze. It also comes with plenty of <a href="http://plugins.jquery.com/" rel="nofollow external" class="bo">plugins</a> to do almost whatever you need it to do.</p>
    <p>But what if you can’t find just the right plugin to suit your needs? Or you’re just looking to keep your project <a href="http://en.wikipedia.org/wiki/Don't_repeat_yourself" rel="nofollow external" class="bo">DRY</a> by combining some oft-used functionality into one nice, neat package? The solution might be to roll your own plugin to meet exactly your needs.</p>
    <p>Writing your own jQuery plugin isn’t as hard as it might seem at first. This tutorial will go through the process of writing a simple plugin, adding some options, and even perform a callback.</p>
    <h2>Setting Up</h2>
    <p>We’ll start with the old chesnut of programming tutorials, a “Hello, World!” plugin. Before we can do anything, we need to establish our file and link it to our HTML document. First, we’ll create our plugin file and put it in the “js” directory of our website. It’s traditional to start our filename with “jquery,” followed by the actual plugin name, so we’ll call this “jquery.hello-world.js”.</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/finder.png" rel="nofollow external" class="bo"><img alt="Our web directory." src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/finder.png" width="760" height="448" style="max-width: 100%; height: auto;"></a><p>Our “Hello, World!” plugin, snuggly next to our jQuery core file.</p>
    </div>
    <p>Next, we’ll need to make sure our plugin file, as well as it’s jQuery core big brother, are linked in our HTML file, so place the following two lines at the bottom of your HTML document, just before the closing <code>&lt;/body&gt;</code> tag:</p>
    <pre><code>&lt;script src="js/jquery-1.9.1.min.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="js/jquery.hello-world.js"&gt;&lt;/script&gt;&#x000A;    </code></pre>
    <h2>The jQuery Plugin Structure</h2>
    <p>jQuery comes with all the necessary hooks to build your plugin file easily. But we still want to be mindful of good JavaScript practices, and make sure we keep everything inside a local scope. We’ll start with the very basic shell of a traditional jQuery plugin:</p>
    <pre><code>(function($) {&#x000A;    &#x000A;        $.fn.helloWorld = function() {&#x000A;    &#x000A;            // Future home of "Hello, World!"&#x000A;    &#x000A;        }&#x000A;    &#x000A;    }(jQuery));&#x000A;    </code></pre>
    <p>Let’s take a quick moment to understand what’s going on. By including everything in the <code>(function() {})</code> self-enclosed JavaScript pattern, we’re making sure that all the variables in our plugin will stay safely outside of the global namespace. We don’t want to cause any collisions with any other JavaScript used on the page, after all.</p>
    <p>The other thing you might notice is that we’re defining our plugin as if jQuery was in it’s “no-conflict” mode. Again, we’re seeking to avoid colliding with other JavaScript on the page, and thus we want to make sure that our plugin isn’t reliant on the default <code>$</code>, which could be used by another library.</p>
    <p>Finally, <code>$.fn</code> is jQuery’s way of allowing you to define your plugin, which we’ve named <code>helloWorld</code>. With all of our pieces in place, let’s actually do something!</p>
    <h2>Making Our Plugin Do Something</h2>
    <p>For our plugin, we’re going to do something pretty silly, but also simple enough for our demonstration purposes, and that is to change all the text for the acted upon elements with (what else?) the text “Hello, World!”.</p>
    <pre><code>(function($) {&#x000A;    &#x000A;        $.fn.helloWorld = function() {&#x000A;    &#x000A;            this.each( function() {&#x000A;                $(this).text("Hello, World!");&#x000A;            });&#x000A;    &#x000A;        }&#x000A;    &#x000A;    }(jQuery));&#x000A;    </code></pre>
    <p>When we’re invoking the plugin by attaching it to a jQuery selector, the object we’re acting upon is already a jQuery object, so we don’t need to wrap it in the <code>$(this)</code> structure you’re used to. However, once we start looping through each instance of the matching selector, we use the <code>$(this)</code> structure as we would any time we ran our selectors through <code>$.each()</code>.</p>
    <p>Suppose we wanted to change the text of all of our <code>&lt;h2&gt;</code> headers on the following page:</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/before.png" rel="nofollow external" class="bo"><img alt='A screenshot of our web page before we run our "Hello, World!" plugin.' src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/before.png" width="760" height="443" style="max-width: 100%; height: auto;"></a><p>Our web page, ripe for the text swapping via jQuery.</p>
    </div>
    <p>We would invoke the plugin as you’re already familiar, like so:</p>
    <pre><code>&lt;script&gt;&#x000A;    $(document).ready( function() {&#x000A;        $('h2').helloWorld();&#x000A;    });&#x000A;    &lt;/script&gt;&#x000A;    </code></pre>
    <p>To yield this:</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/after.png" rel="nofollow external" class="bo"><img alt='A screenshot of our webpage with the &lt;h2&gt; headers swapped out with "Hello, World!"' src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/after.png" width="760" height="443" style="max-width: 100%; height: auto;"></a><p>Seems silly, I know, but we’ve now replaced all the &lt;h2&gt; headers with “Hello, World!”</p>
    </div>
    <p>We’re not quite done yet. While our plugin technically <em>works</em>, it’s living in its own little isolated world. That is, if you try and <em>chain</em> another jQuery action onto it, nothing’s going to happen because our plugin has led to a dead end. To fix this, be sure to <em>return</em> the results of the plugin as it loops through the DOM elements:</p>
    <pre><code>(function($) {&#x000A;    &#x000A;        $.fn.helloWorld = function() {&#x000A;    &#x000A;            return this.each( function() {&#x000A;                $(this).text("Hello, World!");&#x000A;            });&#x000A;    &#x000A;        }&#x000A;    &#x000A;    }(jQuery));&#x000A;    </code></pre>
    <p>And congratulations! You’ve just written you’re first jQuery plugin!</p>
    <h2>But Wait, There’s More!</h2>
    <p>Now that you’re all happy that you’ve built your jQuery plugin, your boss comes back and says that they need to be able to translate the site into Spanish. Uh oh, what do we do now?</p>
    <p>Well, we could start by just adding an argument. Let’s take our plugin above, and instead of hard-coding the text into the plugin, we can replace it with a variable and pass that along when we invoke the plugin.</p>
    <pre><code>(function($) {&#x000A;    &#x000A;        $.fn.helloWorld = function( customText ) {&#x000A;    &#x000A;            return this.each( function() {&#x000A;                $(this).text( customText );&#x000A;            });&#x000A;    &#x000A;        }&#x000A;    &#x000A;    }(jQuery));&#x000A;    </code></pre>
    <p>There, now we can pass any text we’d like to our plugin. Our offices in Madrid have given us the Spanish translation we need, which we now use as the parameter of our plugin:</p>
    <pre><code>&lt;script&gt;&#x000A;    $(document).ready( function() {&#x000A;        $('h2').helloWorld('¡Hola, mundo!');&#x000A;    });&#x000A;    &lt;/script&gt;&#x000A;    </code></pre>
    <p>Our web page now looks like this:</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/despues.png" rel="nofollow external" class="bo"><img alt='Screenshot of our "Hello, World!" plugin in Spanish.' src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/despues.png" width="760" height="443" style="max-width: 100%; height: auto;"></a><p>Our plugin, with “Hello, World!” translated into Spanish.</p>
    </div>
    <h2>Complete Customization FTW</h2>
    <p>But already we’re a little nervous. What if no text was passed when we called the plugin? As it’s written, the plugin would simply blank out the text of our matched elements, and we probably don’t want <em>that</em>. Also, our boss has already come back to us once asking to make a variable. What if he wants more customization options? Simply adding options <em>ad infinitum</em> isn’t going to work in the long term. A more future-proof solution is the <code>options</code> object.</p>
    <p>We already know that the specific text needs to be customizable. Now our boss is asking that the text color and font style be customizable as well. (Yes, I know these are simple options to chain onto our selector via built-in jQuery functions, but go with me here.) Let’s add an options object to our plugin, along with some sensible defaults using the <code>$.extend</code> method:</p>
    <pre><code>(function($) {&#x000A;    &#x000A;        $.fn.helloWorld = function( options ) {&#x000A;    &#x000A;            // Establish our default settings&#x000A;            var settings = $.extend({&#x000A;                text         : 'Hello, World!',&#x000A;                color        : null,&#x000A;                fontStyle    : null&#x000A;            }, options);&#x000A;    &#x000A;            return this.each( function() {&#x000A;                // We'll get back to this in a moment&#x000A;            });&#x000A;    &#x000A;        }&#x000A;    &#x000A;    }(jQuery));&#x000A;    </code></pre>
    <p>Now we have a <code>settings</code> object that, when the plugin is invoked devoid of any parameters, will use what we’ve established as the default text. We also have two other properties of our <code>settings</code> object, “color” and “fontStyle”, that have no default beyond <code>null</code>. For this plugin, we don’t <em>need</em> to establish any color or font style beyond what is laid out in our CSS, but they’re there for the overriding if we want. We just have to make use of them:</p>
    <pre><code>return this.each( function() {&#x000A;        $(this).text( settings.text );&#x000A;    &#x000A;        if ( settings.color ) {&#x000A;            $(this).css( 'color', settings.color );&#x000A;        }&#x000A;    &#x000A;        if ( settings.fontStyle ) {&#x000A;            $(this).css( 'font-style', settings.fontStyle );&#x000A;        }&#x000A;    });&#x000A;    </code></pre>
    <p>Since the purpose of this plugin is to replace text, it makes sense to <em>always</em> replace the text with whatever is provided, which is why it also makes sense to provide a default value so that <em>something</em> appears if the plugin is invoked without any options. But the color and font style options are tested for and only acted upon if they are provided.</p>
    <p>Our boss has come back and says now they’re going to translate the site into French, and beyond that they want the text to be blue and italic. Fortunately, our plugin can now handle all these requests:</p>
    <pre><code>$('h2').helloWorld({&#x000A;        text        : 'Salut, le monde!',&#x000A;        color       : '#005dff',&#x000A;        fontStyle   : 'italic'&#x000A;    });&#x000A;    </code></pre>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/apres.png" rel="nofollow external" class="bo"><img alt="A screenshot of our web page, now in French with blue, italic text." src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/apres-1024x597.png" width="584" height="340" style="max-width: 100%; height: auto;"></a><p>With several options available to us, our plugin can now speak French, and even change the appearance of the text.</p>
    </div>
    <p><em>Et voilà</em>! We now have a plugin with a number of possible objects, and the ability to easily add more (or subtract what’s there) in the future without impacting legacy users of the plugin. Hooray for maintainability!</p>
    <p>But our boss has come back with yet another request: once the plugin has completed whatever task it was called to do, it should sound an alert informing us of that fact. For this, we have two options: either quit because our boss has obviously never heard of a requirements document, or go the less drastic route and give our plugin the ability to handle <em>callbacks</em>.</p>
    <p>Callbacks are options to JavaScript functions that are themselves JavaScript functions. They’re also not unique to jQuery. Again, it may seem like it would be a complicated thing to do, but actually it’s quite simple.</p>
    <p>All we need is to establish one more variable in our options object:</p>
    <pre><code>// Establish our default settings&#x000A;    var settings = $.extend({&#x000A;        text         : 'Hello, World!',&#x000A;        color        : null,&#x000A;        fontStyle    : null,&#x000A;        complete     : null&#x000A;    }, options);&#x000A;    </code></pre>
    <p>Now we have a “complete” variable to perform an action when, well, our plugin completes its action. To invoke it, we’ll want to make sure that what we’re given is actually a function. Fortunately, jQuery helps us with this with the <code>$.isFunction</code> test:</p>
    <pre><code>return this.each( function() {&#x000A;        // Our plugin so far&#x000A;    &#x000A;        if ( $.isFunction( settings.complete ) ) {&#x000A;            settings.complete.call( this );&#x000A;        }&#x000A;    });&#x000A;    </code></pre>
    <p>On the invocation side, our code becomes:</p>
    <pre><code>$('h2').helloWorld({&#x000A;        text        : 'Salut, le monde!',&#x000A;        color       : '#005dff',&#x000A;        fontStyle   : 'italic',&#x000A;        complete    : function() { alert( 'Done!' ) }&#x000A;    });&#x000A;    </code></pre>
    <p>And as a result, we see our callback as our plugin is executed:</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/complete.png" rel="nofollow external" class="bo"><img alt="Screenshot of our web page displaying an alert." src="http://blog.teamtreehouse.com/wp-content/uploads/2013/03/complete.png" width="760" height="444" style="max-width: 100%; height: auto;"></a><p>Our plugin now displays an alert every time it executes, thanks to our callback.</p>
    </div>
    <h2>Conclusion</h2>
    <p>Custom jQuery plugins are a great option when you know you’re going to be doing a lot of the same things over and over in your JavaScript. By writing your own jQuery plugin, you’re both keeping your code DRY and your global namespace nice and clean.</p>
    <p>If you’d like to play around with the code from this example, you can grab it from <a href="https://github.com/taupecat/jquery-plugin" rel="nofollow external" class="bo">my GitHub</a>.</p>
    <p>The post <a href="http://blog.teamtreehouse.com/writing-your-own-jquery-plugins" rel="nofollow external" class="bo">Writing Your Own jQuery Plugins</a> appeared first on <a href="http://blog.teamtreehouse.com" rel="nofollow external" class="bo">Treehouse Blog</a>.</p>
    </div>
]]>
</Body>
<Summary>jQuery is great. It’s cross-browser, easy to learn, and makes adding interactivity to your website a breeze. It also comes with plenty of plugins to do almost whatever you need it to do.   But...</Summary>
<Website>http://feedproxy.google.com/~r/teamtreehouse/~3/UdMS0Tsyxiw/writing-your-own-jquery-plugins</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26176/guest@my.umbc.edu/aeb71140ef1f97670db347042915f481/api/pixel</TrackingUrl>
<Tag>android</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>ios</Tag>
<Tag>javascript</Tag>
<Tag>jquery</Tag>
<Tag>jquery-plugins-tutorial</Tag>
<Tag>jquery-tutorials</Tag>
<Tag>learn-to-code</Tag>
<Tag>responsive</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 09:30:39 -0400</PostedAt>
<EditAt>Mon, 18 Mar 2013 09:30:39 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="26165" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26165">
<Title>How can I find primary sources?</Title>
<Body>
<![CDATA[
    <div class="html-content"><div>    <p>
            Page
                <strong>edited</strong> by
                        <a href="https://wiki.umbc.edu/display/~jhack" rel="nofollow external" class="bo">Janet Hack</a>
                </p>
            <div>
            <h2><span>Answer</span></h2>
    <p>Primary sources are original accounts of historical events. Primary sources may include diaries, letters, newspaper articles, speeches, interviews, oral histories, and other sources.</p>
    <p>See our <a href="http://lib.guides.umbc.edu/content.php?pid=376476&amp;sid=3083674" rel="nofollow external" class="bo">History Subject Guide</a> for more information on locating primary sources.</p>
    <br><p><strong><br></strong></p>
    <hr>
    <h4>Need further assistance?</h4>
    <p><strong>Phone: 410-455-2346</strong><br><strong><a href="http://aok.lib.umbc.edu/askus/chat.php" rel="nofollow external" class="bo">Chat with a Librarian</a></strong></p>
    <h2>Rate this Article</h2>
    <p>
    
    
    
    
    <strong>Was this helpful?</strong>
    <a href="https://apps-my.umbc.edu/apps/rt-track/script.php?u=http://wiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31196778&amp;q=0&amp;v=1&amp;s=faq&amp;l=research+primary-resources" rel="nofollow external" class="bo">Yes</a>
     | <a href="https://docs.google.com/a/umbc.edu/spreadsheet/viewform?formkey=dEpyOEZxa29QY05BaVpBVzZSYmRMM0E6MA&amp;entry_15=http%3A%2F%2Fwiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31196778" rel="nofollow external" class="bo">No</a>
     | <a href="https://docs.google.com/a/umbc.edu/spreadsheet/viewform?formkey=dEpyOEZxa29QY05BaVpBVzZSYmRMM0E6MA&amp;entry_15=http%3A%2F%2Fwiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31196778" rel="nofollow external" class="bo">Correct or Suggest an Article</a>
     | <a href="https://apps-my.umbc.edu/apps/rt-track/script.php?u=http://wiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31196778&amp;q=0&amp;v=0&amp;s=faq&amp;l=research+primary-resources" rel="nofollow external" class="bo">Request Help</a></p>
    <div><table><tbody>
    <tr>
    <th><p>Page Information</p></th>
    <th><p> </p></th>
    </tr>
    <tr>
    <td><p>Tiny URL</p></td>
    <td><a href="https://wiki.umbc.edu/x/agbcAQ" rel="nofollow external" class="bo">https://wiki.umbc.edu/x/agbcAQ</a></td>
    </tr>
    <tr>
    <td><p>Email this Page</p></td>
    <td><p><a href="https://wiki.umbc.edu/pages/mailpage/mailpage.action?pageId=31196778" rel="nofollow external" class="bo">Email</a></p></td>
    </tr>
    </tbody></table></div>
        </div>
            <div>
           <a href="https://wiki.umbc.edu/pages/viewpage.action?pageId=31196778" rel="nofollow external" class="bo">View Online</a>
                  ·
           <a href="https://wiki.umbc.edu/pages/diffpagesbyversion.action?pageId=31196778&amp;revisedVersion=4&amp;originalVersion=3" rel="nofollow external" class="bo">View Changes Online</a>       
                      </div>
    </div></div>
]]>
</Body>
<Summary>Page             edited by                     Janet Hack                                  Answer  Primary sources are original accounts of historical events. Primary sources may include diaries,...</Summary>
<Website>https://wiki.umbc.edu/pages/viewpage.action?pageId=31196778</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26165/guest@my.umbc.edu/743267cbd00fa7195e180b4dd6b23734/api/pixel</TrackingUrl>
<Tag>faq</Tag>
<Tag>primary-resources</Tag>
<Tag>research</Tag>
<Group token="retired-428">UMBC FAQ</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-428</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/images/avatars/group/1/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/images/avatars/group/1/original.png?1785165141</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/1/xxlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/images/avatars/group/1/xlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/images/avatars/group/1/large.png?1785165141</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/images/avatars/group/1/medium.png?1785165141</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/images/avatars/group/1/small.png?1785165141</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/images/avatars/group/1/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/images/avatars/group/1/xxsmall.png?1785165141</AvatarUrl>
<Sponsor>UMBC FAQ</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 09:23:07 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="26166" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26166">
<Title>Where is the Writing Center?</Title>
<Body>
<![CDATA[
    <div class="html-content"><div>    <p>
            Page
                <strong>edited</strong> by
                        <a href="https://wiki.umbc.edu/display/~jhack" rel="nofollow external" class="bo">Janet Hack</a>
                </p>
            <div>
            <h2>Answer</h2>
    <p><span>The Writing Center is located on the first floor of the library, past the Technology Support Center. When entering the library, make a sharp right after passing the Security Desk.</span></p>
    <p> </p>
    <hr>
    <p> </p>
    <h2>Need further assistance?</h2>
    <p><strong>Phone: 410-455-2346</strong><br><strong><a href="http://aok.lib.umbc.edu/askus/chat.php" rel="nofollow external" class="bo">Chat with a Librarian</a></strong></p>
    <h2>Rate this Article</h2>
    <p>
    
    
    
    
    <strong>Was this helpful?</strong>
    <a href="https://apps-my.umbc.edu/apps/rt-track/script.php?u=http://wiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31197546&amp;q=0&amp;v=1&amp;s=faq&amp;l=study+writing-center" rel="nofollow external" class="bo">Yes</a>
     | <a href="https://docs.google.com/a/umbc.edu/spreadsheet/viewform?formkey=dEpyOEZxa29QY05BaVpBVzZSYmRMM0E6MA&amp;entry_15=http%3A%2F%2Fwiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31197546" rel="nofollow external" class="bo">No</a>
     | <a href="https://docs.google.com/a/umbc.edu/spreadsheet/viewform?formkey=dEpyOEZxa29QY05BaVpBVzZSYmRMM0E6MA&amp;entry_15=http%3A%2F%2Fwiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31197546" rel="nofollow external" class="bo">Correct or Suggest an Article</a>
     | <a href="https://apps-my.umbc.edu/apps/rt-track/script.php?u=http://wiki.umbc.edu%2Fpages%2Fviewpage.action%3FpageId%3D31197546&amp;q=0&amp;v=0&amp;s=faq&amp;l=study+writing-center" rel="nofollow external" class="bo">Request Help</a></p>
    <div><table><tbody>
    <tr>
    <th><p>Page Information</p></th>
    <th><p> </p></th>
    </tr>
    <tr>
    <td><p>Tiny URL</p></td>
    <td><a href="https://wiki.umbc.edu/x/agncAQ" rel="nofollow external" class="bo">https://wiki.umbc.edu/x/agncAQ</a></td>
    </tr>
    <tr>
    <td><p>Email this Page</p></td>
    <td><p><a href="https://wiki.umbc.edu/pages/mailpage/mailpage.action?pageId=31197546" rel="nofollow external" class="bo">Email</a></p></td>
    </tr>
    </tbody></table></div>
        </div>
            <div>
           <a href="https://wiki.umbc.edu/pages/viewpage.action?pageId=31197546" rel="nofollow external" class="bo">View Online</a>
                  ·
           <a href="https://wiki.umbc.edu/pages/diffpagesbyversion.action?pageId=31197546&amp;revisedVersion=3&amp;originalVersion=2" rel="nofollow external" class="bo">View Changes Online</a>       
                      </div>
    </div></div>
]]>
</Body>
<Summary>Page             edited by                     Janet Hack                                  Answer  The Writing Center is located on the first floor of the library, past the Technology Support...</Summary>
<Website>https://wiki.umbc.edu/pages/viewpage.action?pageId=31197546</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26166/guest@my.umbc.edu/ffafb0269320215419efb17e293a7eb5/api/pixel</TrackingUrl>
<Tag>faq</Tag>
<Tag>study</Tag>
<Tag>writing-center</Tag>
<Group token="retired-428">UMBC FAQ</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-428</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/images/avatars/group/1/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/images/avatars/group/1/original.png?1785165141</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/images/avatars/group/1/xxlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/images/avatars/group/1/xlarge.png?1785165141</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/images/avatars/group/1/large.png?1785165141</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/images/avatars/group/1/medium.png?1785165141</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/images/avatars/group/1/small.png?1785165141</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/images/avatars/group/1/xsmall.png?1785165141</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/images/avatars/group/1/xxsmall.png?1785165141</AvatarUrl>
<Sponsor>UMBC FAQ</Sponsor>
<PawCount>1</PawCount>
<CommentCount>1</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 09:18:16 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="26161" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26161">
<Title>Responsively Retrofitting An Existing Site With RWD Retrofit</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>Since the introduction of the iPhone in 2007, touchscreen mobile devices have exploded in popularity. They have introduced new problems, new solutions, new interactions, new ways of thinking and, of course, new costs to our clients.</p>
    <p>The most important question on everyone’s mind — clients and developers alike — is, “How can we provide a great Web experience to our users on mobile?”</p>
    <h3>It All Started With iPhone</h3>
    <p>The mobile Web was rarely considered before the iPhone (mostly because mobile browsers were so bad). But after the phone’s release, clients jumped on the bandwagon and were clamouring for “mobile-friendly” websites so that they didn’t appear to be behind the times. However, mobile-specific — or, worse, iPhone-only — websites also introduced <strong>new issues and frustrations</strong> for users, often “breaking” the Web with broken links, infinite redirects and missing content.</p>
    <p>Fast forward three years, when we find Ethan Marcotte writing about his revolutionary principle of “<a href="http://www.alistapart.com/articles/responsive-web-design/" rel="nofollow external" class="bo">responsive Web design</a>” (RWD), which changed the Web — and the way Web developers think — forever.</p>
    <p>We’ve told our clients about all of the benefits of RWD and about why they shouldn’t build a separate mobile website. The world should have lived happily ever after. But clients who had already spent thousands of dollars on a fixed-width desktop website were less than pleased.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/03/create-first-iphone-app-500.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/03/create-first-iphone-app-500.jpg" alt="create-first-iphone-app-500" width="500" height="316" style="max-width: 100%; height: auto;"></a><br><em>Can your clients afford a mobile-first responsive build? (<a href="http://mobile.smashingmagazine.com/2009/08/11/how-to-create-your-first-iphone-application/" rel="nofollow external" class="bo">Image Source</a>)</em></p>
    <p>Then, around the time that Marcotte’s article was published, the iPad was released. Clients who had already gone down the path of a separate mobile website then wanted their iPad users to get their current desktop website. So, we did it — with user-agent sniffing, once again <strong>straying further from the RWD methodology</strong>, even though we knew we shouldn’t.</p>
    <p>Our fear of not being future-friendly was further exposed when Android tablets hit the market. Because there is no single unique identifier in their user agents to identify them as tablets, all Android devices, regardless of size, are generally served mobile websites, which, from the forums I frequent, frustrates most users. There are some services for detecting Android tablets, as outlined in “<a href="http://mobile.smashingmagazine.com/2012/09/24/server-side-device-detection-history-benefits-how-to/" rel="nofollow external" class="bo">Server-Side Device Detection: History, Benefits and How-To</a>,” however, as an Android user, I regularly see more mobile than desktop websites.</p>
    <p>In fact, the issue got so bad that in Android 4.0 (Ice Cream Sandwich), <strong>Google added a “Request desktop site” option</strong> to its browser. But depending on how a website’s detection is written, it doesn’t always work, and you still have to suffer the pain of loading the mobile website first.</p>
    <p>So, we have a few issues:</p>
    <ol>
    <li>Clients with an existing “desktop” website can’t afford to rebuild from scratch using a responsive methodology.</li>
    <li>They still need a more optimized experience for mobile devices.</li>
    <li>Rightly or wrongly, they still want tablets to load their desktop website.</li>
    </ol>
    <h3>What’s The Solution?</h3>
    <p><a href="https://github.com/izilla/RWD-Retrofit" rel="nofollow external" class="bo">RWD Retrofit</a> is a small, vanilla JavaScript “plugin” that gives developers the option to allow an existing “desktop” website to coexist with a new responsive version, with minimal modification to the original website.</p>
    <p>It implements <strong>dynamic viewport switching</strong> to ensure that the correct version of the website is shown according to the viewport’s width (both on loading and on resizing or orientation change), and it provides an object that contains the media queries required for responding to the breakpoints with JavaScript.</p>
    <p>I wrote it at <a href="http://izilla.com.au" rel="nofollow external" class="bo">Izilla</a>, which helps clients to address the issues mentioned above, and I have already used it in a number of projects.</p>
    <p>Although I’m obviously biased, I think it’s a great technique to help you quickly and efficiently improve a client’s mobile presence in a cost-effective way.</p>
    <p>Keep in mind that RWD Retrofit isn’t a magic bullet that will instantly transform your website into a responsive website out of the box. You still need to build the responsive version.</p>
    <h3>Is It The Only Solution?</h3>
    <p>Absolutely not. Developers have <strong>three other options</strong> available to them: a dedicated mobile website, a desktop-down responsive reskinning, and a complete rebuild with mobile-first responsiveness.</p>
    <p>Let’s look quickly at the pros and cons of each, and of RWD Retrofit.</p>
    <h4>A Dedicated Mobile Website</h4>
    <p><strong>Pros:</strong></p>
    <ul>
    <li>Because it’s completely separate from the existing website, you essentially have a blank canvas to work on — dealing with a legacy code base is not really an issue.</li>
    <li>Supporting fewer devices results in a more focused, streamlined implementation, because the “minimum requirements” of the website are easier to define and develop for.</li>
    <li>By analyzing your users’ habits and data, you’re better able to target the user’s intent and context.</li>
    <li>The cost to develop is reasonable.</li>
    </ul>
    <p><strong>Cons:</strong></p>
    <ul>
    <li>A separate code base could result in more expensive maintenance and content costs.</li>
    <li>Supporting a subset of devices is not future-friendly.</li>
    <li>User-agent detection is fragile because it can, and will, be spoofed.</li>
    <li>Be wary of assumptions of user intent based on device alone. A lot of “mobile” usage is done at home.</li>
    <li>There is the possibility of broken links and missing content for existing desktop pages that don’t exist on the mobile website.</li>
    </ul>
    <p>Dedicated mobile websites are suitable for when content parity is not an issue, or you’re absolutely certain of the user’s goals on mobile, or the client wants a more app-like experience. I have used them successfully for targeted micro-sites that are separate from the main website.</p>
    <h4>A Desktop-Down Responsive Reskinning</h4>
    <p><strong>Pros:</strong></p>
    <ul>
    <li>Uses your existing code base, making for more efficient maintenance and content updates.</li>
    <li>Supports a wide variety of devices based on screen size.</li>
    </ul>
    <p><strong>Cons:</strong></p>
    <ul>
    <li>It might not suit your existing code base. Success relies largely on using CSS3 to style, so adapting old websites that primarily use fixed-width CSS background images for presentation might be difficult.</li>
    <li>Performance overhead and inefficiencies are incurred from existing redundant code on breakpoints that don’t match.</li>
    <li>Requires extensive retesting of a previously functional desktop website.</li>
    <li>Cost to develop is moderate to high, depending on the code base.</li>
    </ul>
    <p>This approach is better suited to simple websites that already use modern Web standards as their underlying technology. Marcotte used this approach in his <a href="http://www.abookapart.com/products/responsive-web-design" rel="nofollow external" class="bo"><em>Responsive Web Design</em></a> book, but that was before “mobile first” became the favored approach.</p>
    <h4>A Mobile-First, Responsive Rebuild</h4>
    <p><strong>Pros:</strong></p>
    <ul>
    <li>A completely fresh, considered, optimized and progressively enhanced code base.</li>
    <li>A consistent, seamless experience for all users.</li>
    <li>Supports the widest variety of devices based on screen size and features, including large desktops and TVs.</li>
    <li>You’re future-friendly!</li>
    <li>Your work will hopefully be shared and admired in social media.</li>
    </ul>
    <p><strong>Cons:</strong></p>
    <ul>
    <li>Planning, prototyping, development and testing could require substantial effort.</li>
    <li>The cost to develop is very high.</li>
    </ul>
    <p>This will hopefully become the de facto standard for all new projects and redesigns. If approached correctly, your website should support as many different kinds of devices as possible for the foreseeable future, including <a href="http://www.stuffandnonsense.co.uk/blog/about/device_viewport_widths_reference_on_google_docs" rel="nofollow external" class="bo">Android-powered, Internet-enabled refrige-toasters</a>.</p>
    <h4>RWD Retrofit</h4>
    <p><strong>Pros:</strong></p>
    <ul>
    <li>Uses your existing code base, making for more efficient maintenance and content updates.</li>
    <li>A completely separate style sheet ensures that the retrofit will not interfere with existing desktop styles.</li>
    <li>Minimal overhead or changes to existing website.</li>
    <li>Supports a wide variety of devices based on screen size.</li>
    <li>The cost to develop is reasonable.</li>
    </ul>
    <p><strong>Cons:</strong></p>
    <ul>
    <li>The existing markup might not be flexible or optimized enough to be repurposed for small screens.</li>
    <li>Depending on how far the retrofit is taken, the transition from the largest responsive breakpoint to the desktop breakpoint could potentially be disjointed for users, but that would only really affect users who resize their browser’s window.</li>
    <li>On mobile devices, the desktop version might not initially be zoomed out fully on load or on rotation.</li>
    </ul>
    <p>A retrofit is a good compromise of ideas and techniques, taking the best bits from the various other solutions to provide a cost-effective solution to your existing clients.</p>
    <h3>Which Is The Best Solution?</h3>
    <p>The “best” depends on the context and budget. Obviously, the best solution you could give to your clients would be a complete mobile-first responsive build. That would provide the optimal experience for users, using a single code base that’s cost-effective to maintain. I absolutely urge you to recommend this approach if feasible.</p>
    <p>However, many of my clients can’t afford to do this, and because their websites predate the use of CSS3 for things such as rounded corners and gradients, the “best” solution for them is to use RWD Retrofit.</p>
    <p>RWD Retrofit is also useful for both clients and developers who are in a transitional phase to responsiveness. If your client wants to rebuild using the mobile-first philosophy but can’t afford to just yet, push to retrofit their website. Generally speaking, <strong>having some kind of mobile optimization is better than nothing</strong>. Also, remember that practice makes perfect. Attempting a small-scale responsive website first will equip you with the skills needed for when you come to do the “real” thing.</p>
    <h3>How Does RWD Retrofit Work?</h3>
    <p>Here goes:</p>
    <ol>
    <li>When the page starts to load, the script checks to see whether the user is on a mobile device that supports touch events.</li>
    <li>If they are, it checks whether you’ve set to override the desktop breakpoint on mobile, and then changes the breakpoint accordingly.</li>
    <li>It then checks to see whether you’ve set the viewport width for the desktop version to be anything other than the default of 980 pixels, and sets that accordingly. The article “<a href="http://webdesignerwall.com/tutorials/viewport-meta-tag-for-non-responsive-design" rel="nofollow external" class="bo">Viewport Meta Tag For Non-Responsive Design</a>” explains why you may want to do this.</li>
    <li>A function is called that compares the width of the document to the desktop media query, and if it’s equal or larger, it alters the viewport to the desktop one.</li>
    <li>This same function is called on a resize or orientation change (depending on what the device supports) to see whether it needs to switch over to the mobile viewport, and vice versa.</li>
    <li>Finally, it returns the responsive and desktop media queries in a JavaScript object for you to test against in other scripts, so that:
    <ol>
    <li>you don’t have to write your media queries in both the markup and JavaScript;</li>
    <li>if you did override the desktop breakpoint on mobile devices, you’ll always have the correct media query.</li>
    </ol>
    </li>
    </ol>
    <p>At its core, RWD Retrofit should be thought of as <strong>a technique, not a solution</strong>. If you don’t plan to change the breakpoint that the desktop website is served at on mobile, or you don’t plan to change the desktop viewport’s width when it is served, or you don’t mind duplicating media queries in your JavaScript, then the RWD Retrofit JavaScript itself isn’t required. The technique will still work, allowing you to achieve similar results.</p>
    <h3>Implementing RWD Retrofit</h3>
    <p>Below is the process I use to retrofit a website.</p>
    <h4>Initial Set-Up</h4>
    <ol>
    <li>Open the index (i.e. main) page, which has your global <code>&lt;head&gt;</code> section.</li>
    <li>Add
    <pre><code>&lt;meta name="viewport" content="width=device-width, initial-scale=1" /&gt;</code></pre>
    <p> as one of the first children of <code>&lt;head&gt;</code>.</p>
    </li>
    <li>Find the link to the current desktop style sheet, and change its media attribute to <code>media="all and (min-width: <strong>X</strong>px)"</code>, where <code><strong>X</strong></code> is the current width of the desktop website, which will result in something like this:
    <pre><code>&#x000A;    &lt;link href="/css/desktop.css" rel="stylesheet" media="all and (min-width: 980px)" /&gt;</code></pre>
    <p>If you currently have multiple style sheets at runtime, I strongly recommend that you combine and minify them into one to improve performance.</p>
    </li>
    <li>Go through your JavaScript functions and, for the time being, comment out any that won’t apply to the responsive version of the website. (Again, if you currently have multiple JavaScript files at runtime, I strongly recommend that you combine and minify them into one to improve performance — excluding any jQuery, which is best served from a CDN.)</li>
    <li>Create a new responsive style sheet, and link to it with a <code>max-width</code> media query that is 1 pixel less than the desktop one, like so:
    <pre><code>&lt;link href="/css/rwd.css" rel="stylesheet" media="all and (max-width: 979px)" /&gt;&#x000A;    </code></pre>
    <p>If you now open this in a Web browser with a narrow window, you’ll have an unstyled document — the clean slate that we want.</p>
    </li>
    </ol>
    <h4>Creating the Responsive Version</h4>
    <p>Building a responsive style sheet is a massive topic on its own, and because a lot of <a href="http://mobilewebbestpractices.com" rel="nofollow external" class="bo">good resources are already online</a>, I’ll just provide some pointers.</p>
    <ol>
    <li>Begin with a mobile-first philosophy. Resize your browser window to a “mobile” size. I actually prefer to go smaller than the standard 320 pixels because feature phones are often forgotten. To help with this, Firefox introduced a pretty cool <a href="http://www.youtube.com/watch?v=t07cLJhJkjQ" rel="nofollow external" class="bo">Responsive Design View</a> mode in version 15. Or you can use the <a href="http://chrispederick.com/work/web-developer/" rel="nofollow external" class="bo">Web Developer Toolbar</a> extension, available for both Firefox and Chrome.</li>
    <li>Although undertaking a truly mobile-first responsive rebuild wouldn’t be a best practice, elements in your markup may be suitable for the original desktop website but need to be hidden on smaller screens. Use an accessible method to do this. Chris Coyier <a href="http://css-tricks.com/places-its-tempting-to-use-display-none-but-dont/" rel="nofollow external" class="bo">rounds up approaches</a> to doing this.</li>
    <li>As you develop and write the CSS, increase your browser’s width to see how the new responsive layout reacts and adapts as you approach the desktop’s breakpoint. If you need to insert more media queries, do it directly in the responsive style sheet to keep them nicely contained. (To help you obtain the viewport’s current width to use as a new breakpoint, I’ve written <a href="https://github.com/stowball/Viewport-Genie" rel="nofollow external" class="bo">Viewport Genie</a>, which is available as both a <a href="http://mattstow.com/git/viewport-genie/bookmarklet.html" rel="nofollow external" class="bo">bookmarklet</a> and a <a href="https://raw.github.com/stowball/Viewport-Genie/master/viewport.genie.min.js" rel="nofollow external" class="bo">tiny JavaScript include</a>. You can also use Firefox’s Responsive Design View mode.)</li>
    <li>When you’re happy with the basic styling on desktop browsers, start testing some real devices. Things will need adjusting, and issues will arise that don’t appear on the desktop. (Both Safari on iOS and Chrome on Android allow you to use remote debugging from your browser to preview your website on the device. Alternatively, you could use Adobe’s <a href="http://html.adobe.com/edge/inspect/" rel="nofollow external" class="bo">Edge Inspect</a>, which is available for both iOS and Android, or Viljami Salminen’s <a href="http://viljamis.com/blog/2012/remote-preview/" rel="nofollow external" class="bo">Remote Preview</a>.)</li>
    </ol>
    <h4>Implementing RWD Retrofit</h4>
    <p>Now it’s time to drop in the RWD Retrofit JavaScript and its dependencies.</p>
    <ol>
    <li>Download the <a href="https://github.com/izilla/RWD-Retrofit" rel="nofollow external" class="bo">minified RWD Retrofit from GitHub</a>, and reference it immediately below your style sheets.</li>
    <li>Optionally, <a href="http://modernizr.com/download/" rel="nofollow external" class="bo">download a custom build of Modernizr</a> and include that underneath RWD Retrofit. At a minimum, I recommend that your build contain Modernizr.load and Add CSS Classes. You may also want to include other feature tests depending on how you plan to style the responsive version. If your markup doesn’t use any of the HTML5 layout elements, then you won’t need html5shiv. (I recommend combining the two JavaScripts above into one <code>base.min.js</code> resource.)</li>
    <li>Download the <a href="https://github.com/izilla/matchMedia.js" rel="nofollow external" class="bo">minified version of the matchMedia polyfill from my fork on GitHub</a>, and include it before your other custom JavaScripts, which should hopefully be immediately before the closing <code>&lt;/body&gt;</code> tag to prevent rendering blocking. (The matchMedia polyfill is required for <a href="http://caniuse.com/#feat=matchmedia" rel="nofollow external" class="bo">older browsers</a> that don’t support this API natively.)</li>
    <li>Download the <a href="http://wickynilliams.github.com/enquire.js/" rel="nofollow external" class="bo">minified version of Enquire.js</a>, and reference it beneath the matchMedia polyfill. (Enquire.js is a lightweight pure JavaScript library for responding to CSS media queries.)</li>
    <li>Give your desktop style sheet’s <code>&lt;link&gt;</code> a class of <code>"rwdretrofit-desktop"</code>.</li>
    <li>Give your responsive style sheet’s <code>&lt;link&gt;</code> a class of <code>"rwdretrofit-mobile"</code>.</li>
    <li>Add an optional <code>data-breakpoint-width="X"</code> attribute to the desktop style sheet’s <code>&lt;link&gt;</code>, where <code>X</code> is the pixel width of the desktop breakpoint on mobile devices (for example, 768 for iPads and other large tablets).</li>
    <li>Add an optional <code>data-viewport-width="X"</code> attribute to the desktop style sheet’s <code>&lt;link&gt;</code>, where <code>X</code> is the pixel width that the desktop viewport will be set to on mobile devices.</li>
    <li>Add an optional <code>data-debug="true"</code> attribute to the desktop style sheet’s <code>&lt;link&gt;</code>, which forces desktop and non-touch-enabled browsers to use RWD Retrofit. (If you’ve specified a custom <code>data-breakpoint-width</code>, ensure that you remove the <code>data-debug</code> attribute before going live, or else your desktop breakpoint will trigger at the wrong size on desktops.)</li>
    </ol>
    <p>If you’ve added the optional <code>data-</code> attributes, you will now be able to <strong>test these breakpoint and viewport changes</strong> on mobile devices, or by setting your browser to emulate touch events. At the time of writing, Chrome is the only browser able to do this through its Developer Tools (in <code>Settings → Overrides</code>).</p>
    <p>Because I don’t serve the responsive version to users of IE 8 and below, I also reference the desktop style sheet in a conditional comment beneath the others, like so:</p>
    <pre><code>&#x000A;    &lt;!--[if lt IE 9 ]&gt;&#x000A;       &lt;link href="/css/desktop.css" rel="stylesheet" type="text/css" media="all" /&gt;&#x000A;    &lt;![endif]--&gt;&#x000A;    </code></pre>
    <p>If you wanted these users to have a responsive experience, you should be able to use <a href="https://github.com/scottjehl/Respond" rel="nofollow external" class="bo">Scott Jehl’s Respond.js media query polyfill</a> instead, although I haven’t tested it.</p>
    <h4>Modifying Your JavaScript Functions</h4>
    <p>No doubt, you will have JavaScript functions that should be fired on the desktop version but not on mobile — such as a lightbox script (for example, <a href="http://www.jacklmoore.com/colorbox" rel="nofollow external" class="bo">Jack Moore’s ColorBox</a>).</p>
    <p>Keep in mind that there is no one process to achieve this (because everybody writes their JavaScript functions differently), however, <strong>here’s how I’d modify a lightbox function</strong>:</p>
    <ol>
    <li>First, let’s assume that we have one JavaScript file named <code>main.js</code>, in which everything is wrapped in a function that executes when the DOM is fully loaded, whereupon we call ColorBox on all links with a class of <code>lightbox</code>, like so:
    <pre><code>&#x000A;    $(document).ready(function() {&#x000A;       // Call ColorBox on appropriate links&#x000A;       $('a.lightbox').colorbox();&#x000A;    });&#x000A;    </code></pre>
    </li>
    <li>Because the lightbox function can now be called multiple times, let’s instead create a variable that stores the lightbox links for counting and improved performance (because jQuery won’t need to query the DOM each time):
    <pre><code>&#x000A;    var $lightboxLinks = $('a.lightbox');&#x000A;    </code></pre>
    </li>
    <li>We now need to convert the call to ColorBox into a function, so that we can use it whenever the desktop media query is matched. I prefer to create them as methods of a literal object:
    <pre><code>&#x000A;    var lightbox = {&#x000A;       initialize: function() {&#x000A;          // If the number of links to be ColorBox'd is greater than 0&#x000A;          if ($lightboxLinks.length &gt; 0) {&#x000A;             $lightboxLinks.colorbox();&#x000A;          }&#x000A;       },&#x000A;    };&#x000A;    </code></pre>
    </li>
    <li>We also need to remove any ColorBox’d links for when our responsive retrofit media query is matched. So, we create a function to do that after our <code>initialize</code> method:
    <pre><code>&#x000A;    destroy: function() {&#x000A;          // Remove all traces of ColorBox&#x000A;          $.colorbox.remove();&#x000A;          // Remove the click event handlers that ColorBox added&#x000A;          $lightboxLinks.off('click');&#x000A;       }&#x000A;    </code></pre>
    </li>
    <li>Now, we need to add in the conditional tests by using the two media-query objects that RWD Retrofit exposes (<code>rwdRetrofit.desktop</code> and <code>rwdRetrofit.mobile</code>) and Enquire.js:
    <pre><code>&#x000A;    // If rwdRetrofit is loaded&#x000A;    if (rwdRetrofit) {&#x000A;       // Use enquire.js to test the media queries&#x000A;       // Test for the desktop media query&#x000A;       enquire.register(rwdRetrofit.desktop, {&#x000A;          // If it matches&#x000A;          match: function() {&#x000A;             lightbox.initialize();&#x000A;          },&#x000A;          // If it doesn't&#x000A;          unmatch: function() {&#x000A;             lightbox.destroy();&#x000A;          }&#x000A;       // Immediately start testing for the media queries&#x000A;       }).listen();&#x000A;    }&#x000A;    </code></pre>
    <p>(I could have just as easily tested for <code>rwdRetrofit.mobile</code> and reversed the <code>match</code> and <code>unmatch</code> functions, but logically that wouldn’t make as much sense.)</p>
    </li>
    </ol>
    <p>And that’s as simple as it can be to modify existing JavaScripts to work “responsively.” You just need to follow a similar pattern, creating <code>initialize()</code> and <code>destroy()</code> functions for other code that should be selectively used or that should behave differently depending on the media query matched.</p>
    <p><strong>But let’s take it further.</strong> Because ColorBox isn’t used in our responsive version, we’re punishing our “mobile” users by making them download the script. So, we can use Modernizr’s asynchronous, conditional resource loader to load it only when the desktop breakpoint is matched.</p>
    <ol>
    <li>Modify the <code>lightbox.initialize()</code> function to conditionally load the ColorBox script:
    <pre><code>&#x000A;    initialize: function() {&#x000A;       // If the number of links to be ColorBox'd is greater than 0&#x000A;       if ($lightboxLinks.length &gt; 0) {&#x000A;          Modernizr.load({&#x000A;             // Load the minified ColorBox script&#x000A;             load: '/js/jquery.colorbox-min.js',&#x000A;             // When it's loaded, apply ColorBox to the links.&#x000A;             // This will also be triggered if the script has previously been loaded&#x000A;             complete: function() {&#x000A;                $lightboxLinks.colorbox();&#x000A;             }&#x000A;          });&#x000A;       }&#x000A;    }&#x000A;    </code></pre>
    </li>
    <li>Modify the <code>lightbox.destroy()</code> function to first check whether ColorBox has loaded:
    <pre><code>&#x000A;    destroy: function() {&#x000A;       if (typeof($.colorbox) != 'undefined') {&#x000A;          // Remove all traces of ColorBox&#x000A;          $.colorbox.remove();&#x000A;          // Remove the click event handlers that ColorBox added&#x000A;          $lightboxLinks.off('click');&#x000A;       }&#x000A;    }&#x000A;    </code></pre>
    </li>
    </ol>
    <p>Putting it all together will give you this:</p>
    <pre><code>&#x000A;    $(document).ready(function() {&#x000A;       var $lightboxLinks = $('a.lightbox');&#x000A;    &#x000A;       var lightbox = {&#x000A;          initialize: function() {&#x000A;             // If the number of links to be ColorBox'd is greater than 0&#x000A;             if ($lightboxLinks.length &gt; 0) {&#x000A;                Modernizr.load({&#x000A;                   // Load the minified ColorBox script&#x000A;                   load: '/js/jquery.colorbox-min.js',&#x000A;                   // When it's loaded, apply ColorBox to the links&#x000A;                   // This will also be triggered if the script has previously been loaded&#x000A;                   complete: function() {&#x000A;                      $lightboxLinks.colorbox();&#x000A;                   }&#x000A;                });&#x000A;             }&#x000A;          },&#x000A;          destroy: function() {&#x000A;             if (typeof($.colorbox) != 'undefined') {&#x000A;                // Remove all traces of ColorBox&#x000A;                $.colorbox.remove();&#x000A;                // Remove the click event handlers that ColorBox added&#x000A;                $lightboxLinks.off('click');&#x000A;             }&#x000A;          }&#x000A;       };&#x000A;       &#x000A;       // If rwdRetrofit is loaded&#x000A;       if (rwdRetrofit) {&#x000A;          // Use enquire.js to test the media queries&#x000A;          // Test for the desktop media query&#x000A;          enquire.register(rwdRetrofit.desktop, {&#x000A;             // If it matches&#x000A;             match: function() {&#x000A;                lightbox.initialize();&#x000A;             },&#x000A;             // If it doesn't&#x000A;             unmatch: function() {&#x000A;                lightbox.destroy();&#x000A;             }&#x000A;          // Immediately start testing for the media queries&#x000A;          }).listen();&#x000A;       }&#x000A;    });&#x000A;    </code></pre>
    <p>Because modifying the DOM when breakpoints match comes with a performance hit, if an <code>initialize()</code> function creates elements in the DOM that should be removed in the other “version” of the website, you could just hide it in the appropriate style sheet instead, which adds slightly extra bloat to your CSS, but would be more performant and better on the device’s battery, for example.</p>
    <p>I’ve created a <a href="http://rwdretrofit.izilla.com.au" rel="nofollow external" class="bo">one-page demo website</a>, and the <a href="https://github.com/izilla/RWD-Retrofit-Demo" rel="nofollow external" class="bo">code for it is on GitHub</a>, too.</p>
    <p>The demo goes further than the example above, by adding extra selective JavaScript functions, such as a toggle navigation on small screens and an accessible carousel and tabs.</p>
    <h3>In Conclusion</h3>
    <p>If you can’t convince your clients to start from scratch with a mobile-first philosophy, I hope this gives you the knowledge, impetus and tools that you need to retrofit their websites!</p>
    <p><em>(al)</em></p>
    <hr>
    <p><small>© Matt Stow for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        Since the introduction of the iPhone in 2007, touchscreen mobile devices have exploded in popularity. They have introduced new problems, new solutions, new interactions, new ways of...</Summary>
<Website>http://www.smashingmagazine.com/2013/03/18/responsively-retrofitting-an-existing-site-with-rwd-retrofit/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26161/guest@my.umbc.edu/ce785639a4c69ec68f6ee42d53a27167/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mobile</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 09:12:20 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="26173" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26173">
<Title>Tim Berners-Lee, Marc Andreessen, Vinton Cerf, Robert Kahn, and Louis Pouzin Awarded 2013 Queen Elizabeth Prize for Engineering</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>
    <a href="/People/Berners-Lee/" rel="nofollow external" class="bo"><img src="http://www.w3.org/2011/02/scarpetta_photos/.small/TIM_0072.png" alt="Tim Berners-Lee" style="max-width: 100%; height: auto;"></a> The Royal Academy of Engineering <a href="http://qeprize.org/latestnews/" rel="nofollow external" class="bo">announced</a> today that <a href="/People/Berners-Lee/" rel="nofollow external" class="bo">Tim Berners-Lee</a>, 
    <a href="http://en.wikipedia.org/wiki/Marc_Andreessen" rel="nofollow external" class="bo">Marc Andreessen</a>,
    <a href="http://en.wikipedia.org/wiki/Vint_Cerf" rel="nofollow external" class="bo">Vinton Cerf</a>, <a href="http://en.wikipedia.org/wiki/Bob_Kahn" rel="nofollow external" class="bo">Robert Kahn</a>, and <a href="http://en.wikipedia.org/wiki/Louis_Pouzin" rel="nofollow external" class="bo">Louis Pouzin</a> are
    the recipients of the new <a href="http://qeprize.org/" rel="nofollow external" class="bo">Queen
    Elizabeth Prize for Engineering</a>, which recognizes "outstanding
    advances in engineering that have changed the world and benefited
    humanity." The award is shared by Berners-Lee for his invention of the
    Web, Andreessen for his work on the Mosaic browser, and Pouzin, Cerf, and Kahn for their pioneering work on fundamental Internet protocols.</p>
    
    <p>"The prize recognises what has been a roller-coaster ride of wonderful international collaboration," said Berners-Lee. "Bob and Vint’s work on building the internet was re-enforced by Louis’ work on datagrams and that enabled me to invent the Web. Marc’s determined and perceptive work built on these platforms a product which became widely deployed across nations and computing platforms. I am honoured to receive this accolade and humbled to share it with them. I want the Web to inspire and empower new generations of engineers --boys and, especially, girls-- who will build, in turn, their own platforms, to improve our global society. I hope the message behind this award, along with the work we are doing with the World Wide Web Foundation and W3C, will assist in achieving the vision of a web that is open, accessible and of value to all."</p>
    
    <p>Learn more about how the Web is expanding into a full-fledged
    programming environment for rich applications, documents, and data:
    the <a href="/standards/" rel="nofollow external" class="bo">Open Web Platform</a>.
    </p>
    </div>
]]>
</Body>
<Summary>The Royal Academy of Engineering announced today that Tim Berners-Lee,  Marc Andreessen, Vinton Cerf, Robert Kahn, and Louis Pouzin are the recipients of the new Queen Elizabeth Prize for...</Summary>
<Website>http://www.w3.org/News/2013.html#entry-9763</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26173/guest@my.umbc.edu/e023c08cc346c02478b6cfa29581a7d8/api/pixel</TrackingUrl>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>top-story</Tag>
<Tag>w3</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, 18 Mar 2013 08:26:09 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="26159" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26159">
<Title>30 favourite web design podcasts</Title>
<Body>
<![CDATA[
    <div class="html-content">2013 has seen the launch of a slew of interesting new web design podcasts. We asked some leading web designers and developers to tell us about their favourites<div><table border="0"><tbody><tr>
    <td><a href="http://share.feedsportal.com/viral/sendEmail.cfm?lang=en&amp;title=30+favourite+web+design+podcasts&amp;link=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2F30-favourite-web-design-podcasts" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/images/emailthis2.gif" style="max-width: 100%; height: auto;"></a></td>
    <td><a href="http://res.feedsportal.com/viral/bookmark.cfm?title=30+favourite+web+design+podcasts&amp;link=http%3A%2F%2Fwww.netmagazine.com%2Ffeatures%2F30-favourite-web-design-podcasts" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/images/bookmark.gif" style="max-width: 100%; height: auto;"></a></td>
    </tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/159490955389/u/49/f/502346/c/32632/s/29b241e8/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/159490955389/u/49/f/502346/c/32632/s/29b241e8/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>2013 has seen the launch of a slew of interesting new web design podcasts. We asked some leading web designers and developers to tell us about their favourites</Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/wpGGaWtc36c/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26159/guest@my.umbc.edu/29b40885c1bbe388c7aa867c07f3cacc/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 06:30:38 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="26154" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26154">
<Title>10 Startup Events and News to Watch This Week</Title>
<Body>
<![CDATA[
    <div class="html-content">Twitter turns 7, Facebook to launch hashtags, Penn State wants you to startup, Rio heats up as the Global Entrepreneurship Congress rolls into town, mapping out success with a business plan, Vengo founders share their journey, AT&amp;T offers up a new BlackBerry… this week’s notable news and startup events for young treps.</div>
]]>
</Body>
<Summary>Twitter turns 7, Facebook to launch hashtags, Penn State wants you to startup, Rio heats up as the Global Entrepreneurship Congress rolls into town, mapping out success with a business plan, Vengo...</Summary>
<Website>http://feedproxy.google.com/~r/YoungentrepreneurcomBlog/~3/9jtPZoiwp0Q/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26154/guest@my.umbc.edu/1a53ce9b5fbc4af9adf893b6cafd8ce5/api/pixel</TrackingUrl>
<Tag>apps</Tag>
<Tag>business-plans</Tag>
<Tag>conferences</Tag>
<Tag>entrepreneurship</Tag>
<Tag>jack-dorsey</Tag>
<Tag>networking-events</Tag>
<Tag>new-york-city</Tag>
<Tag>startup-news</Tag>
<Tag>tech-startups</Tag>
<Tag>twitter</Tag>
<Group token="entrepreneurship">Alex. Brown Center for Entrepreneurship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/entrepreneurship</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/original.jpg?1771000363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/large.png?1771000363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/medium.png?1771000363</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/small.png?1771000363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxsmall.png?1771000363</AvatarUrl>
<Sponsor>The Alex. Brown Center for Entrepreneurship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 06:00:29 -0400</PostedAt>
<EditAt>Mon, 18 Mar 2013 06:00:29 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="26157" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26157">
<Title>Not Your Traditional Incubator: Rokk3r Labs, a Hybrid Investor-Accelerator</Title>
<Body>
<![CDATA[
    <div class="html-content">Miami-based venture creates fast time-to-market recipe<br><br><a href="http://da.feedsportal.com/r/159490952004/u/49/f/625555/c/34343/s/29b11330/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/159490952004/u/49/f/625555/c/34343/s/29b11330/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Miami-based venture creates fast time-to-market recipe</Summary>
<Website>http://feedproxy.google.com/~r/entrepreneur/startingabusiness/~3/zAclCVBNQHw/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26157/guest@my.umbc.edu/46fff4fa9d9c4fb003f631a4418da20c/api/pixel</TrackingUrl>
<Group token="entrepreneurship">Alex. Brown Center for Entrepreneurship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/entrepreneurship</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/original.jpg?1771000363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/large.png?1771000363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/medium.png?1771000363</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/small.png?1771000363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxsmall.png?1771000363</AvatarUrl>
<Sponsor>The Alex. Brown Center for Entrepreneurship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 06:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="26152" important="false" status="posted" url="https://my3.my.umbc.edu/posts/26152">
<Title>Fresh Harvest Internship w/the Franciscan Center of Balto.</Title>
<Tagline>Track the Impact of Community Supported Agriculture (CSA)</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p><strong>Summer/Fall
    Internship at the Franciscan Center of Baltimore</strong></p>
    
    
    
    <p><strong>Track the Impact of
    Community Supported Agriculture (CSA) Shares on Economically Disadvantaged
    Populations at the Franciscan Center</strong></p>
    
    
    
    <p>The Franciscan Center is a nonprofit organization dedicated
    to <span>providing emergency assistance and
    supportive outreach to persons who are economically disadvantaged in an effort
    to assist them in realizing their self-worth and dignity as people of God. </span></p>
    
    
    
    <p><span>The Franciscan
    Center is looking for a volunteer intern to assist with a CSA project </span>in
    collaboration with the United Way of Central Maryland, University of Maryland
    Extension, and JHU’s Center for a Livable Future that focuses on the
    correlation between economically disadvantaged people and their desire for a
    healthier lifestyle. The intern will interview, track, and instruct participants
    who receive weekly CSA “shares” of fresh produce throughout the duration of the
    growing season (May through November 2013). The intern will provide
    administrative assistance to the Project Coordinator. Through weekly
    questionnaires, the student will collect data and measure the progress of every
    participant. <br></p>
    <p>This internship requires a commitment of six to ten hours per week
    beginning in May and continuing through the summer semester with the
    possibility of extending through the fall semester. Interest in social services
    and/or healthy food initiatives required. <br></p>
    <p>When applying, include a copy of <span>your resume, cover letter</span> and <span>available times</span> to discuss the
    project. Contact Christian Metzger at <a href="mailto:info@franciscancenterbaltimore.org" rel="nofollow external" class="bo">info@franciscancenterbaltimore.org</a>
    <span> </span>to apply with “Fresh Harvest Internship”
    and your name in the subject line. </p>
    
    </div>
]]>
</Body>
<Summary>Summer/Fall Internship at the Franciscan Center of Baltimore      Track the Impact of Community Supported Agriculture (CSA) Shares on Economically Disadvantaged Populations at the Franciscan...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/26152/guest@my.umbc.edu/079fab542ec185af6e729d7458129863/api/pixel</TrackingUrl>
<Group token="shriver">The Shriver Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/shriver</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/original.jpg?1441293069</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/large.png?1441293069</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/medium.png?1441293069</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/small.png?1441293069</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxsmall.png?1441293069</AvatarUrl>
<Sponsor>Shriver Center:Intern, Co-op, Research &amp; Service-Learning</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/xxlarge.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/xlarge.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/large.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/medium.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/small.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/xsmall.jpg?1363600496</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/026/152/b8df2222fc55ee587a2efd7b5577d91b/xxsmall.jpg?1363600496</ThumbnailUrl>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Mar 2013 05:55:12 -0400</PostedAt>
</NewsItem>

</News>
