<?xml version="1.0"?>
<News hasArchived="true" page="7820" pageCount="10793" pageSize="10" timestamp="Sat, 05 Sep 2026 00:28:39 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=7820&amp;range=2">
<NewsItem contentIssues="true" id="41496" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41496">
<Title>How to Use The HTML5 Sectioning Elements</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>HTML5 has seen the introduction of a number of sectioning elements that can be used to mark up your web pages. Using these elements gives more <em>semantic meaning</em> to your pages, allowing computer programs to better understand your content.</p>
    <p>In this post you’ll learn how to use these sectioning elements in your own web sites. I’ll be explaining when you should use certain elements over others, as well as when it’s best to stick to a good old <code>&lt;div&gt;</code>.</p>
    <p>Lets get started.</p>
    <h2>The main Element</h2>
    <p>The <code>&lt;main&gt;</code> element should contain the main content for your web page. All of this content should be unique to the individual page, and should not appear elsewhere on the site. Any content that is repeated on multiple pages (logos, search boxes, footer links, etc.) should not be placed within the <code>&lt;main&gt;</code> element.</p>
    <p>The example below uses a <code>&lt;main&gt;</code> element to represent the main content for the page</p>
    <pre><code>&lt;body&gt;&#x000A;      &lt;header&gt;&#x000A;        &lt;div id="logo"&gt;Rocking Stone&lt;/div&gt;&#x000A;        &lt;nav&gt;...&lt;/nav&gt;&#x000A;      &lt;/header&gt;&#x000A;      &lt;main role="main"&gt;&#x000A;        &lt;h1&gt;Guitars&lt;/h1&gt;&#x000A;        &lt;p&gt;The greatest guitars ever built.&lt;/p&gt;&#x000A;    &#x000A;        &lt;article&gt;&#x000A;          &lt;h2&gt;Gibson SG&lt;/h2&gt;&#x000A;          &lt;p&gt;...&lt;/p&gt;&#x000A;        &lt;/article&gt;&#x000A;    &#x000A;        &lt;article&gt;&#x000A;          &lt;h2&gt;Fender Telecaster&lt;/h2&gt;&#x000A;          &lt;p&gt;...&lt;/p&gt;&#x000A;        &lt;/article&gt;&#x000A;      &lt;/main&gt;&#x000A;    &lt;/body&gt;</code></pre>
    <hr>
    <p><strong>Note</strong>: We’ve used the ARIA <code>role=”main”</code> attribute here is it indicates the significance of this element to programs that don’t yet support the <code>&lt;main&gt;</code> element (such as some screen readers).</p>
    <hr>
    <p>You should only use <strong>one</strong> <code>&lt;main&gt;</code> element on a page, and it shouldn’t be placed within an <code>&lt;article&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;header&gt;</code>, <code>&lt;footer&gt;</code>, or <code>&lt;nav&gt;</code> element.</p>
    <h2>The article Element</h2>
    <p>The <code>&lt;article&gt;</code> element should contain a piece of self-contained content that could be distributed outside the context of the page. This includes things like news articles, blog posts, or user comments.</p>
    <pre><code>&lt;article&gt;&#x000A;      &lt;header&gt;&#x000A;        &lt;h1&gt;Blog Post Title&lt;/h1&gt;&#x000A;        &lt;p&gt;Posted 13th February 2014&lt;/p&gt;&#x000A;      &lt;/header&gt;&#x000A;      &lt;p&gt;&#x000A;        ...&#x000A;      &lt;/p&gt;&#x000A;    &lt;/article&gt;</code></pre>
    <p>You can nest <code>&lt;article&gt;</code> elements within one another. In this case it’s implied that the nested elements are related to the outer <code>&lt;article&gt;</code> element.</p>
    <pre><code>&lt;article&gt;&#x000A;      &lt;header&gt;&#x000A;        &lt;h1&gt;Blog Post Title&lt;/h1&gt;&#x000A;        &lt;p&gt;Posted 13th February 2014&lt;/p&gt;&#x000A;      &lt;/header&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;section&gt;&#x000A;        &lt;h2&gt;Comments&lt;/h2&gt;&#x000A;        &lt;article&gt;&#x000A;          &lt;footer&gt;&#x000A;            &lt;p&gt;Posted by: Joe Balochio&lt;/p&gt;&#x000A;          &lt;/footer&gt;&#x000A;          &lt;p&gt;This was a great article&lt;/p&gt;&#x000A;        &lt;/article&gt;&#x000A;        &lt;article&gt;&#x000A;          &lt;footer&gt;&#x000A;            &lt;p&gt;Posted by: Casey Brock&lt;/p&gt;&#x000A;          &lt;/footer&gt;&#x000A;          &lt;p&gt;How do you think this applies to the plan for world domination?&lt;/p&gt;&#x000A;        &lt;/article&gt;&#x000A;      &lt;/section&gt;&#x000A;    &lt;/article&gt;</code></pre>
    <p>In this example we’ve used <code>&lt;article&gt;</code> elements to mark up the blog post, and each of the comments. This nesting pattern implies that the comments are related to the topic of the main blog post.</p>
    <h2>The section Element</h2>
    <p>The <code>&lt;section&gt;</code> element is used to represent a group of related content. This is similar to the purpose of an <code>&lt;article&gt;</code> element with the main difference being that the content within a <code>&lt;section&gt;</code> element doesn’t necessarily need to make sense out of the context of the page.</p>
    <p>It’s advisable to use a heading element (<code>&lt;h1&gt;</code> – <code>&lt;h6&gt;</code>) to define the topic for the section.</p>
    <p>Using this blog post as an example, you could have <code>&lt;section&gt;</code> elements that represent each of the individual parts within the post.</p>
    <pre><code>&lt;article&gt;&#x000A;      &lt;h1&gt;How to use HTML5 Sectioning Elements&lt;/h1&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;    &#x000A;      &lt;section&gt;&#x000A;        &lt;h2&gt;The &lt;main&gt; Element&lt;/h2&gt;&#x000A;        &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;/section&gt;&#x000A;      &lt;section&gt;&#x000A;        &lt;h2&gt;The &lt;article&gt; Element&lt;/h2&gt;&#x000A;        &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;/section&gt;&#x000A;      &lt;section&gt;&#x000A;        &lt;h2&gt;The &lt;section&gt; Element&lt;/h2&gt;&#x000A;        &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;/section&gt;&#x000A;      ...&#x000A;    &lt;/article&gt;</code></pre>
    <p>Here we’ve used an <code>&lt;article&gt;</code> element to represent the post as a whole, and then multiple <code>&lt;section&gt;</code> elements to represent each of the sub-topics discussed in the post.</p>
    <p>If you just need to group content together for styling purposes you should use a <code>&lt;div&gt;</code> element rather than a <code>&lt;section&gt;</code>.</p>
    <h2>The nav Element</h2>
    <p>The <code>&lt;nav&gt;</code> element is used to mark up a collection of links to external pages or sections within the current page. As well as being used for the main website navigation, the <code>&lt;nav&gt;</code> element is also a good fit for things like a table of contents, or a blogroll.</p>
    <pre><code>&lt;nav&gt;&#x000A;      &lt;ul&gt;&#x000A;        &lt;li&gt;&lt;a href="#chapter-one"&gt;Chapter One&lt;/a&gt;&#x000A;        &lt;li&gt;&lt;a href="#chapter-two"&gt;Chapter Two&lt;/a&gt;&#x000A;        &lt;li&gt;&lt;a href="#chapter-three"&gt;Chapter Three&lt;/a&gt;&#x000A;      &lt;/ul&gt;&#x000A;    &lt;/nav&gt;</code></pre>
    <p>Marking up your links within a list will often make your navigation easier to use, however this is not a requirement when using a <code>&lt;nav&gt;</code> element.</p>
    <h2>The aside Element</h2>
    <p>The <code>&lt;aside&gt;</code> element is used to represent content that is tangibly related to the content surrounding it, but could be considered separate. This includes things like sidebars (like those you might find in a book), groups of <code>&lt;nav&gt;</code> elements, figures and pull quotes.</p>
    <pre><code>&lt;article&gt;&#x000A;      &lt;header&gt;&#x000A;        &lt;h1&gt;Google Buys Nest&lt;/h1&gt;&#x000A;        &lt;p&gt;Posted at 11:34am 13th January 2014&lt;/p&gt;&#x000A;      &lt;/header&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;    &#x000A;      &lt;aside&gt;&#x000A;        &lt;h1&gt;Google (GOOG)&lt;/h1&gt;&#x000A;        &lt;p&gt;Google was founded in 1998 by Larry Page and Sergey Brin. The company...&lt;/p&gt;&#x000A;      &lt;/aside&gt;&#x000A;    &lt;/article&gt;</code></pre>
    <p>In this example we’ve used an <code>&lt;aside&gt;</code> element to mark up information about Google within a news article. The company information in the <code>&lt;aside&gt;</code> could be considered useful by the reader but it’s not directly related to the news story.</p>
    <h2>The header Element</h2>
    <p>The <code>&lt;header&gt;</code> element is used to represent the introductory content to an article or web page. This will usually contain a heading element as well as some metadata that’s relevant to the content, such as the post date of a news article for example. It could also contain a table of contents (within a <code>&lt;nav&gt;</code> element) for a longer document.</p>
    <p>A <code>&lt;header&gt;</code> element will be associated with the nearest sectioning element, usually it’s direct parent in the page structure.</p>
    <pre><code>&lt;header&gt;&#x000A;      &lt;h1&gt;Google buys Nest&lt;/h1&gt;&#x000A;      &lt;p&gt;Posted at 11:34am 13th January 2014&lt;/p&gt;&#x000A;    &lt;/header&gt;</code></pre>
    <p>In this example the <code>&lt;header&gt;</code> element contains the title and posted date for a news article.</p>
    <h2>The footer Element</h2>
    <p>The <code>&lt;footer&gt;</code> element is used to represent information about a section such as the author, copyright information, or links to related web pages.</p>
    <pre><code>&lt;footer&gt;&#x000A;    Copyright Matt West 2014&#x000A;    &lt;/footer&gt;</code></pre>
    <p>As with <code>&lt;header&gt;</code>, the <code>&lt;footer&gt;</code> element is associated with the nearest sectioning element.</p>
    <h2>The address Element</h2>
    <p>The <code>&lt;address&gt;</code> element is one of the most commonly misunderstood HTML elements. This element is not for marking up postal address, but rather for representing the contact information for an article or web page. This could be a link to the author’s website or their email address.</p>
    <pre><code>&lt;address&gt;&#x000A;      Contact &lt;a href="mailto:<a href="mailto:matt@example.com">matt@example.com</a>"&gt;Matt West&lt;/a&gt;&#x000A;    &lt;/address&gt;</code></pre>
    <p>This element is often used within the <code>&lt;footer&gt;</code> for an <code>&lt;article&gt;</code>.</p>
    <pre><code>&lt;article&gt;&#x000A;      &lt;header&gt;&#x000A;        &lt;h1&gt;Google buys Nest&lt;/h1&gt;&#x000A;        &lt;p&gt;Posted at 11:34am 13th January 2014&lt;/p&gt;&#x000A;      &lt;/header&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;p&gt;...&lt;/p&gt;&#x000A;      &lt;footer&gt;&#x000A;        &lt;address&gt;&#x000A;          By &lt;a href="mailto:<a href="mailto:matt@example.com">matt@example.com</a>"&gt;Matt West&lt;/a&gt;&#x000A;        &lt;/address&gt;&#x000A;        &lt;p&gt;Copyright Matt West 2014&lt;/p&gt;&#x000A;      &lt;/footer&gt;&#x000A;    &lt;/article&gt;</code></pre>
    <h2>Final Thoughts on the Sectioning Elements</h2>
    <p>In this post you’ve learned how to use the HTML5 sectioning elements when marking up your web pages. Using these elements has a number of benefits. One of the biggest being that it gives certain areas of your page more semantic meaning, allowing computer programs to identify key elements like the main content and page navigation. This information is extremely useful to applications like screen readers.</p>
    <hr>
    <p><strong>Note:</strong> Not all screen readers have support for these semantic elements yet. You may want to continue using <a href="http://alistapart.com/article/aria-and-progressive-enhancement/" rel="nofollow external" class="bo">ARIA roles</a> just to be safe.</p>
    <hr>
    <p>Using these sectioning elements also has the benefit of making developers think more about the structure of their web pages. Selecting which element to use for a piece of content isn’t always obvious, but it raises important questions about the purpose of that content, and whether it belongs on the page at all. This is an example of where web standards are not only helping to improve the quality of our markup, but the quality of our web pages as a whole.</p>
    <p>I’m interested to hear your thoughts on the HTML5 sectioning elements. Share your views in the comments below.</p>
    <h2>Useful Links</h2>
    <ul>
    <li><a href="http://www.w3.org/html/wg/drafts/html/master/sections.html#the-article-element" rel="nofollow external" class="bo">W3C HTML5 Spec</a></li>
    </ul>
    <p>The post <a href="http://blog.teamtreehouse.com/use-html5-sectioning-elements" rel="nofollow external" class="bo">How to Use The HTML5 Sectioning Elements</a> appeared first on <a href="http://blog.teamtreehouse.com" rel="nofollow external" class="bo">Treehouse Blog</a>.</p>
    </div>
]]>
</Body>
<Summary>HTML5 has seen the introduction of a number of sectioning elements that can be used to mark up your web pages. Using these elements gives more semantic meaning to your pages, allowing computer...</Summary>
<Website>http://feedproxy.google.com/~r/teamtreehouse/~3/N-mxGI6S6Yk/use-html5-sectioning-elements</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41496/guest@my.umbc.edu/c1413cfab92ce99505c9adca47131e9c/api/pixel</TrackingUrl>
<Tag>android</Tag>
<Tag>articles</Tag>
<Tag>code</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>footer</Tag>
<Tag>header</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>ios</Tag>
<Tag>javascript</Tag>
<Tag>learn-to-code</Tag>
<Tag>main</Tag>
<Tag>make-a-website</Tag>
<Tag>nav</Tag>
<Tag>responsive</Tag>
<Tag>section</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>Tue, 18 Feb 2014 11:00:34 -0500</PostedAt>
<EditAt>Tue, 18 Feb 2014 11:00:34 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="41495" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41495">
<Title>W3C Showcases the Open Web Platform and Web 25th Anniversary at Mobile World Congress 2014</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="/2014/MWC/" rel="nofollow external" class="bo"><img src="/2014/02/mwc2014-shot-sm.png" width="250" height="99" alt="MWC14 W3C logo" style="max-width: 100%; height: auto;"></a> The World Wide Web Consortium (W3C) invites media, analysts, and other attendees of Mobile World Congress to meet with us in <strong>App Planet, Stand 8.1G15</strong> and learn how the Open Web Platform is transforming industry.
     <a href="/2014/MWC/bios" rel="nofollow external" class="bo">CEO Jeff Jaffe, W3C staff</a>, and
    participating W3C Members will be available as expert resources for
    media stories and analyst reports on how the Web is impacting mobile,
    television, advertising, publishing, automotive, health care, and
    other industries.</p>
    <p>We will showcase many <a href="/2014/MWC/#demos" rel="nofollow external" class="bo">Open Web Platform demonstrations</a> from Baidu, Ericsson, Espial, Igalia, Intel, Klickfilm, Kolor, Mozilla, Opera, and Zaragoza. Be sure to check W3C’s up-to-the-minute <a href="/2014/MWC/#schedule" rel="nofollow external" class="bo">demo schedule</a>.</p>
    <p>This year we also invite everyone to help us mark two special occasions: the Web’s 25th anniversary and W3C’s 20th anniversary.</p>
    <p>Read the <a href="/2014/02/mwc2014.html.en" rel="nofollow external" class="bo">full press release</a> and come meet with us at the booth.</p>
    </div>
]]>
</Body>
<Summary>The World Wide Web Consortium (W3C) invites media, analysts, and other attendees of Mobile World Congress to meet with us in App Planet, Stand 8.1G15 and learn how the Open Web Platform is...</Summary>
<Website>http://www.w3.org/blog/news/archives/3674</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41495/guest@my.umbc.edu/54438ca0528aa56df09df040bf3bad97/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>sql</Tag>
<Tag>top-story</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<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>Tue, 18 Feb 2014 10:28:30 -0500</PostedAt>
<EditAt>Tue, 18 Feb 2014 10:28:30 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="41494" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41494">
<Title>CSS-Tricks Chronicle XVI</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>It's been too long since I've done a <a href="http://css-tricks.com/category/chronicle/" rel="nofollow external" class="bo">Chronicle</a>. I'm going to try and get in the habit again.</p>
    <p></p>
    <hr>
    <p>It's been a pretty rough winter here in Wisconsin. Relentlessly cold and plenty of snow. It's been my first winter back in a number of years and it's as much of a slog as I remember it being. There was some crazy days with a high of like -15°F. I hope to plan more escapes next year than I did this year. My only escape so far has been out to Bend, Oregon for skiing, which was incredibly fun but it sure wasn't much warmer.</p>
    <hr>
    <p>Fortunately next week I get an escape. I'm headed down for my third trip to <a href="http://www.hhhealth.com/" rel="nofollow external" class="bo">Hilton Head Health</a> to keep the weight loss going. I'm kind hoping this will be the last time for me as some much healthier habits are starting to take hold. This time I'm going with my dad, and I hope this kicks off a good journey for him too.</p>
    <hr>
    <p>After that, the next time I get on a plane will be to <a href="http://aneventapart.com/event/seattle-2014" rel="nofollow external" class="bo">An Event Apart Seattle</a>. I've been working on a new talk for this, which I'll use in the rest of my <a href="http://chriscoyier.net/speaking/" rel="nofollow external" class="bo">handful of talks in 2014</a>, refining it along the way. It's going to be all about SVG and the simple and practical ways I've been using it.</p>
    <hr>
    <p>ShopTalk has been going strong this year. We had our 100th episode! We didn't do anything super special, but <a href="http://shoptalkshow.com/episodes/100-rachel-andrew/" rel="nofollow external" class="bo">had Rachel Andrew on</a> and she was a great guest. The next week <a href="http://shoptalkshow.com/episodes/101-john-resig/" rel="nofollow external" class="bo">we had John Resig on</a> and people <em>loved</em> that one.</p>
    <p>We have guests and sponsors lined up for months to come so chug'a'lug.</p>
    <hr>
    <p>As always my primary job is working on CodePen. We've been steadily working on that and have crossed <a href="http://blog.codepen.io/2014/01/31/million/" rel="nofollow external" class="bo">some notable milestones</a> like 100k registered users. We have <strong>so many</strong> ideas for CodePen. They will all happen in time. I'm finding it interesting how much more effort it takes to maintain software than to build it. Truth be told, new features slow down a bit when so much of our time is spent on maintenance and as those new features touch so many other aspects of the app.</p>
    <p>We've released plenty of stuff recently though, including <a href="http://blog.codepen.io/2014/01/21/wordpress-plugin-embedded-pens/" rel="nofollow external" class="bo">a WordPress plugin</a>, an infastructural change we call <a href="http://blog.codepen.io/2014/01/27/boomerang/" rel="nofollow external" class="bo">Boomerang</a> that helped fix a slew of bugs, and a feature to <a href="http://blog.codepen.io/2014/02/18/view-details-comments-editor/" rel="nofollow external" class="bo">see details</a> right from the editor.</p>
    <hr>
    <p>Here on CSS-Tricks, I've actually started tinkering with a new design. Like most design iterations around here (but unlike the last huge one), it will be very incremental. Mostly a simplification both of content presentation and aesthetic. I'd guess I'll have it out within a month or two. Stay tuned!</p>
    <hr>
    
    <p><small><a href="http://css-tricks.com/css-tricks-chronicle-xvi/" rel="nofollow external" class="bo">CSS-Tricks Chronicle XVI</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>It's been too long since I've done a Chronicle. I'm going to try and get in the habit again.       It's been a pretty rough winter here in Wisconsin. Relentlessly cold and plenty of snow. It's...</Summary>
<Website>http://css-tricks.com/css-tricks-chronicle-xvi/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41494/guest@my.umbc.edu/22c548b3150fd0eca38ec99789d5bea6/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</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>Tue, 18 Feb 2014 09:48:38 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41492" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41492">
<Title>Good Practices for Capability URLs Draft Published</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The <a href="http://www.w3.org/2001/tag/" rel="nofollow external" class="bo">Technical Architecture Group</a> has published a Working Draft of <a href="http://www.w3.org/TR/2014/WD-capability-urls-20140218/" rel="nofollow external" class="bo">Good Practices for Capability URLs</a>. Capability URLs grant access to a resource to anyone who has the URL. There are times when this is useful, for example one-shot password reset URLs, but overuse can be problematic as URLs cannot generally be kept secret. This document provides some good practices for web developers who wish to incorporate capability URLs into their applications. Learn more about the <a href="http://www.w3.org/2001/tag/" rel="nofollow external" class="bo">Technical Architecture Group</a>.</p></div>
]]>
</Body>
<Summary>The Technical Architecture Group has published a Working Draft of Good Practices for Capability URLs. Capability URLs grant access to a resource to anyone who has the URL. There are times when...</Summary>
<Website>http://www.w3.org/blog/news/archives/3672</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41492/guest@my.umbc.edu/b6403574f2053aa924b06018912669fe/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>publication</Tag>
<Tag>sql</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Tag>web-architecture</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 09:48:19 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41493" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41493">
<Title>Encrypted Media Extensions Draft Published</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The <a href="http://www.w3.org/html/wg/" rel="nofollow external" class="bo">HTML Working Group</a> has published a Working Draft of <a href="http://www.w3.org/TR/2014/WD-encrypted-media-20140218/" rel="nofollow external" class="bo">Encrypted Media Extensions</a>. This proposal extends HTMLMediaElement providing APIs to control playback of protected content. The API supports use cases ranging from simple clear key decryption to high value video (given an appropriate user agent implementation). License/key exchange is controlled by the application. This specification does not define a content protection or Digital Rights Management system. Rather, it defines a common API that may be used to discover, select and interact with such systems as well as with simpler content encryption systems. Learn more about the <a href="http://www.w3.org/MarkUp/Activity" rel="nofollow external" class="bo">HTML Activity</a>.</p></div>
]]>
</Body>
<Summary>The HTML Working Group has published a Working Draft of Encrypted Media Extensions. This proposal extends HTMLMediaElement providing APIs to control playback of protected content. The API supports...</Summary>
<Website>http://www.w3.org/blog/news/archives/3670</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41493/guest@my.umbc.edu/207e0ff098efd988b25cca3c1d620be0/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>publication</Tag>
<Tag>sql</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Tag>web-design-and-applications</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 09:35:14 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41489" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41489">
<Title>CSS Regions Module Level 1 Draft Published</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>The <a href="http://www.w3.org/Style/CSS/members" rel="nofollow external" class="bo">Cascading Style Sheets (CSS) Working Group</a> has published a Working Draft of <a href="http://www.w3.org/TR/2014/WD-css3-regions-20140218/" rel="nofollow external" class="bo">CSS Regions Module Level 1</a>. The CSS Regions module allows content from one or more elements to flow through one or more boxes called CSS Regions, fragmented as defined in CSS3-BREAK. This module also defines CSSOM to expose both the inputs and outputs of this fragmentation. Learn more about the <a href="http://www.w3.org/Style/" rel="nofollow external" class="bo">Style Activity</a>.</p></div>
]]>
</Body>
<Summary>The Cascading Style Sheets (CSS) Working Group has published a Working Draft of CSS Regions Module Level 1. The CSS Regions module allows content from one or more elements to flow through one or...</Summary>
<Website>http://www.w3.org/blog/news/archives/3668</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41489/guest@my.umbc.edu/c8afe79f60d3a4d8d5878630ee9a14b9/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>home-page-stories</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>publication</Tag>
<Tag>sql</Tag>
<Tag>w3</Tag>
<Tag>web</Tag>
<Tag>web-design-and-applications</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 09:21:10 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="41490" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41490">
<Title>JavaScript Animation that Works (Part 4 of 4)</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>
    In the <a href="http://net.tutsplus.com/?p=35205" rel="nofollow external" class="bo">first part of this series</a>, we introduced the idea of using <em>spriting</em> as an easy, cross-browser way of having interactive animation for the web. In the <a href="http://net.tutsplus.com/?p=35237" rel="nofollow external" class="bo">second part</a>, we got some animation working, and in the <a href="http://code.tutsplus.com/tutorials/javascript-animation-that-works-part-3-of-4--net-35248" rel="nofollow external" class="bo">third</a> we cleaned up our code and made it ready for the web.</p>
    <p></p>
    <h2>Introduction</h2>
    <p>
    Now, in our final part today, we will walk through setting up <em>event handlers</em> so that instead of responding to clicked buttons, our robots will follow the mouse around the screen. In the process, we will also talk about making the code cross-browser friendly and touch screen enabled.</p>
    <p>
    If you take a look at our <a href="http://cdn.tutsplus.com/net/uploads/2013/10/spriting3.html" rel="nofollow external" class="bo">code</a> from last time, you will see that while the code runs well (and with multiple robots), there isn't a very easy way to tell the code to run.</p>
    <h2>Event Handlers</h2>
    <p>
    <em>Event handlers</em> are commands that tell certain code to run when certain events are triggered. For example, you could have <code>my_function()</code> run whenever a user clicks on your <code>div</code> with the id <code>'my_div'</code>. Or, you could have <code>my_other_function()</code> run whenever a user moves their mouse over <code>'my_other_div'</code>.</p>
    <p>
    In theory, this is a pretty simple and straightforward idea. Unfortunately, once you start getting different browsers involved, this can get a bit confusing. In an ideal world, every web browser would interpret the same code and HTML in the same way, and developers would write code one time and it would work the same for every user. In the real world, different browsers may have completely different commands to do the same thing (<em>*cough* *cough* Internet Explorer</em>), and so sometimes trying to get a single piece of code to run the same on all browsers can feel like herding cats. Recently, the situation has been getting much better, as Chrome, Firefox, Safari, and Opera all respond very similarly to code, Internet Explorer 9 and 10 have become much more in line with standards than earlier versions, and almost no one uses Internet Explorer 7 or 6 anymore. So, for our code, we will be getting event handlers to work for both modern browsers and Internet Explorer 8.</p>
    <p>
    As a side note, this is a case where it really pays to use a robust JavaScript library, such as jQuery. jQuery does all the work for you in cross-browser testing, so you will only need to enter one command and the jQuery library will translate it for each browser behind the scenes. Additionally, many of the commands in jQuery are much more intuitive and simpler than the core JavaScript as well.</p>
    <p>
    But, since I am stubborn, and since this is a learning opportunity, we are going to continue on the hard way and do all of this solely with JavaScript and no dependencies!</p>
    <h2>Page Interaction</h2>
    <p>
    So, our first step will be to decide how exactly we want to interact with the page. When I move my mouse over the stage area, I want all of the robots to run towards the mouse. When they reach the mouse, or if the mouse is directly above them, I want them to stop running. If the mouse crosses over them, I want them to jump. And finally, when the mouse leaves the stage area, I want them to stop running. We will start with attaching these events inside the <code>RobotMaker</code> function:</p>
    <pre>stage.addEventListener('mousemove', stage_mousemove_listener, false);&#x000A;    robot.addEventListener('mouseover', robot_mouseover_listener, false);&#x000A;    stage.addEventListener('mouseout', stage_mouseout_listener, false);</pre>
    <p>
    So, in the above lines, we have said that whenever the user moves the mouse inside the stage element, we will trigger a function called <code>stage_mousemove_listener()</code> (notice we do not include the parentheses in the command). Similarly, when the user moves the mouse over the robot element, it triggers <code>robot_mouseover_listener()</code>, and when the user moves the mouse outside of the stage, it triggers <code>stage_mouseout_listener()</code>.</p>
    <p>
    Unfortunately, as we mentioned before, Internet Explorer 8 and below has a (similar but) different command to do the same thing, so we will need to test to know which command the user's browser will understand and do that method.</p>
    <pre>if (stage.addEventListener){ // We will test to see if this command is available&#x000A;      stage.addEventListener('mousemove', stage_mousemove_listener, false);&#x000A;      robot.addEventListener('mouseover', robot_mouseover_listener, false);&#x000A;      stage.addEventListener('mouseout', stage_mouseout_listener, false);&#x000A;    } else { // If not, we have to use IE commands&#x000A;      stage.attachEvent('onmousemove', stage_mousemove_listener);&#x000A;      robot.attachEvent('onmouseover', robot_mouseover_listener);&#x000A;      stage.attachEvent('onmouseout', stage_mouseout_listener);	&#x000A;    }</pre>
    <p>
    You may notice that the format of the commands is very similar, but has some major differences - one says <code>'addEventListener'</code> while the other says <code>'attachEvent'</code>. One says <code>'mousemove'</code> while the other says <code>'onmousemove'</code>. One requires a third parameter, while the other only uses two. Mixing any of these up will cause the command to not run. These are the kinds of things that will make you want to bang your head against the wall. Unfortunately, this isn't the end of the extra coding we will need to do for cross-browser capability.</p>
    <h2>Listening Functions</h2>
    <p>
    Next, we are going to write the listening functions. We will start with the function that is triggered when the user mouses over the stage. Since this is a <code>mousemove</code> listener, this function will trigger every time the mouse is moved inside the stage area (meaning it will trigger several times a second while the mouse is moving). This function will need to compare the location of the robot with the location of the mouse, and make the robot behave accordingly. Each time the function is triggered, it will check if the robot needs to continue running the same direction or change behaviors. So, it will need to be something like this:</p>
    <pre>// Inside of RobotMaker&#x000A;    &#x000A;    // We will need to introduce a few extra variables to track&#x000A;    var mouseX; // For tracking horizontal mouse position&#x000A;    var running_dir = ''; // For tracking if (and where) robot is currently running&#x000A;    var stageOffset; // For tracking the position of the stage&#x000A;    &#x000A;    function stage_mousemove_listener(e){&#x000A;      &#x000A;      // Find the horizontal position of the mouse inside of the stage ...  &#x000A;      // That position will be saved in 'mouseX'&#x000A;      &#x000A;      // Then we compare 'mouseX' to the robot, and decide if we need to run differently&#x000A;      if (((robot.offsetLeft + (15 * run_speed)) &lt; (mouseX - robot.offsetWidth)) &amp;&amp; running_dir !== 'r' &amp;&amp; (!jump_timer || jump_timer === undefined)){ &#x000A;        // If the mouse is in the stage and to the right of the robot, make run right, if not already&#x000A;        running_dir = 'r';&#x000A;        clearTimeout(run_timer);&#x000A;        run_r(1, robot.offsetLeft);&#x000A;      } else if ((mouseX &lt; robot.offsetLeft - (15 * run_speed)) &amp;&amp; running_dir !== 'l' &amp;&amp; (!jump_timer || jump_timer === undefined)) {&#x000A;        // If the mouse is in the stage and to the left of the robot, make run left, if not already&#x000A;        running_dir = 'l';&#x000A;        clearTimeout(run_timer);&#x000A;        run_l(1, robot.offsetLeft);&#x000A;      } else if ((robot.offsetLeft &lt; mouseX) &amp;&amp; ((robot.offsetLeft + robot.offsetWidth) &gt; mouseX) &amp;&amp; running_dir !== '' &amp;&amp; (!jump_timer || jump_timer === undefined)) {&#x000A;        // If the mouse is in the stage and over a robot, stop and clear running_dir&#x000A;        running_dir = '';&#x000A;        clearTimeout(run_timer);&#x000A;        if (face_right){&#x000A;          robot.style.backgroundPosition = "0px 0px";&#x000A;        } else {&#x000A;          robot.style.backgroundPosition = "0px -50px";&#x000A;        }&#x000A;      }&#x000A;      // If none of the above is true, then we let our current behavior continue&#x000A;    }</pre>
    <p>
    So, in the function above, once we are able to find <code>mouseX</code>, we compare it to where the robot is and trigger or stop the different running functions as needed. Unfortunately, finding <code>mouseX</code> is a bit tricky, since mouse position is another thing that different browsers do differently. In lieu of (more) complicated and long-winded explanations, here is the cross-browser method for finding <code>mouseX</code>, as inspired from the excellent <a href="http://www.quirksmode.org/js/events_properties.html" rel="nofollow external" class="bo">Quirksmode blog</a> (which is a great source for more advanced JavaScript studying).</p>
    <pre>function stage_mousemove_listener(e){&#x000A;      var posX = 0;&#x000A;      if (!e){&#x000A;        var e = window.event;&#x000A;      }&#x000A;     &#x000A;      if (e.pageX) {&#x000A;        posX = e.pageX;&#x000A;      } else if (e.clientX) {&#x000A;        posX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;&#x000A;      }&#x000A;      mouseX = posX - stageOffset.xpos; // And we find mouseX!	&#x000A;    }</pre>
    <p>
    We have an argument called <code>e</code> in the function, even though we don't pass it anything. Since this is an event listener, we can have an automatic variable called <code>e</code> that stores event information like mouse data. But because different browsers store it differently, we have to add a lot of extra steps.</p>
    <p>
    We finally find <code>mouseX</code> by finding <code>posX</code> (which is the x-position of the mouse on the page) and subtracting how far the stage is from the far left of the page (stored in <code>stageOffset.xpos</code>). This gives us how far from the left edge of the stage the mouse is, which we can directly compare with <code>robot.offsetLeft</code>. Since the stage could be located differently around the page depending on the layout, we will also need to find the exact pixel offset of the stage for the function to be accurate, and store that information in <code>stageOffset</code>. Fortunately there is a neat trick we can use to find an element's absolute offset with this function from <a href="http://vishalsays.wordpress.com/2007/12/21/finding-elements-top-and-left-using-javascript/" rel="nofollow external" class="bo"> Vishal Astik's blog</a>.</p>
    <pre>// Inside RobotMaker&#x000A;    var x = 0;&#x000A;    var y = 0;&#x000A;    function find_stage_offset (el){&#x000A;      x = el.offsetLeft;&#x000A;      y = el.offsetTop;&#x000A;      el = el.offsetParent;&#x000A;    	&#x000A;      while(el !== null) {&#x000A;        x = parseInt(x) + parseInt(el.offsetLeft);&#x000A;        y = parseInt(y) + parseInt(el.offsetTop);&#x000A;        el = el.offsetParent;&#x000A;      }&#x000A;    &#x000A;      return {xpos: x, ypos: y};&#x000A;    }&#x000A;    var stageOffset = find_stage_offset(stage);</pre>
    <p>
    So now that we have written the <code>mousemove</code> listener, the others will be <em>much</em> easier. For the robot <code>mouseover</code> listener, we only need to check if the robot is already jumping, and if not, stop the run timer and make it jump.</p>
    <pre>function robot_mouseover_listener(){&#x000A;      if (!jump_timer || jump_timer === undefined){&#x000A;        clearTimeout(run_timer);&#x000A;        jmp(true, robot.offsetTop);&#x000A;      }&#x000A;    }</pre>
    <p>
    The <code>mouseout</code> listener is also pretty simple. We just need to reset some of our variables we are using to track the robot, and if the robot isn't jumping, return the robot to the standing sprite.</p>
    <pre>function stage_mouseout_listener(){&#x000A;      mouseX = undefined;&#x000A;      running_dir = '';&#x000A;      if (!jump_timer || jump_timer === undefined){&#x000A;        clearTimeout(run_timer);&#x000A;        if (face_right){&#x000A;          robot.style.backgroundPosition = "0px 0px";&#x000A;        } else {&#x000A;          robot.style.backgroundPosition = "0px -50px";&#x000A;        }&#x000A;      }&#x000A;    }</pre>
    <h2>Animation Functions</h2>
    <p>
    The functions that animate the running and jumping motions haven't changed much this time. We have just added the tracking variable <code>running_dir</code>, taken out the statement that checks if the robot is about to hit the wall (since this is redundant with our <code>mouseout</code> function), and add a bit of code to the jump function that checks again if the robot should start running if the mouse is within the stage after it lands from a jump. Here's the final code (quite large):</p>
    <pre>function run_r(phase, left){&#x000A;      face_right = true;&#x000A;      running_dir = 'r';&#x000A;      if ((left + (15 * run_speed)) &lt; (mouseX - robot.offsetWidth)){ // if mouse is to the right, run&#x000A;    		&#x000A;        left = left + (15 * run_speed);&#x000A;        robot.style.left = left+"px";&#x000A;        switch (phase){&#x000A;          case 1:&#x000A;            robot.style.backgroundPosition = "-40px 0px";&#x000A;            run_timer = setTimeout(function(){run_r(2, left);}, 200);&#x000A;            break;&#x000A;          case 2:&#x000A;            robot.style.backgroundPosition = "-80px 0px";&#x000A;            run_timer = setTimeout(function(){run_r(3, left);}, 200);&#x000A;            break;&#x000A;          case 3:&#x000A;            robot.style.backgroundPosition = "-120px 0px";&#x000A;            run_timer = setTimeout(function(){run_r(4, left);}, 200);&#x000A;            break;&#x000A;          case 4:&#x000A;            robot.style.backgroundPosition = "-80px 0px";&#x000A;            run_timer = setTimeout(function(){run_r(1, left);}, 200);&#x000A;            break;&#x000A;        }&#x000A;    } else if ((left + (15 * run_speed)) &lt; mouseX) { // if mouse if above, stop&#x000A;        robot.style.backgroundPosition = "0px 0px";&#x000A;        running_dir = '';&#x000A;    } else { // if mouse is to the left, run left&#x000A;        running_dir = 'l';&#x000A;        run_l(1, robot.offsetLeft);&#x000A;      }&#x000A;    }&#x000A;    &#x000A;    function run_l(phase, left){&#x000A;      face_right = false;&#x000A;      running_dir = 'l';&#x000A;      if (mouseX &lt; robot.offsetLeft - (15 * run_speed)){ // if mouse is to the left, run&#x000A;    	&#x000A;        left = left - (15 * run_speed);&#x000A;        robot.style.left = left+"px";&#x000A;        switch (phase){&#x000A;          case 1:&#x000A;            robot.style.backgroundPosition = "-40px -50px";&#x000A;            run_timer = setTimeout(function(){run_l(2, left);}, 200);&#x000A;            break;&#x000A;          case 2:&#x000A;            robot.style.backgroundPosition = "-80px -50px";&#x000A;            run_timer = setTimeout(function(){run_l(3, left);}, 200);&#x000A;            break;&#x000A;          case 3:&#x000A;            robot.style.backgroundPosition = "-120px -50px";&#x000A;            run_timer = setTimeout(function(){run_l(4, left);}, 200);&#x000A;            break;&#x000A;          case 4:&#x000A;            robot.style.backgroundPosition = "-80px -50px";&#x000A;            run_timer = setTimeout(function(){run_l(1, left);}, 200);&#x000A;            break;&#x000A;        }&#x000A;    } else if (mouseX &lt; (robot.offsetLeft + robot.offsetWidth - (15 * run_speed))){ // if mouse overhead, stop&#x000A;        robot.style.backgroundPosition = "0px -50px";&#x000A;        running_dir = '';&#x000A;    } else { // if mouse is to the right, run right&#x000A;        running_dir = 'r';&#x000A;        run_r(1, robot.offsetLeft);&#x000A;      }&#x000A;    }&#x000A;    				&#x000A;    function jmp(up, top){&#x000A;      running_dir = '';&#x000A;      if (face_right){&#x000A;        robot.style.backgroundPosition = "-160px 0px";&#x000A;      } else {&#x000A;        robot.style.backgroundPosition = "-160px -50px";&#x000A;      }&#x000A;    &#x000A;      if (up &amp;&amp; (robot.offsetTop &gt; (20 * (1 / jump_height)))){&#x000A;        top = top - (top * 0.1);&#x000A;        robot.style.top = top+"px";&#x000A;        jump_timer = setTimeout(function(){jmp(up, top);}, 60);&#x000A;      } else if (up) {&#x000A;        up = false;&#x000A;        jump_timer = setTimeout(function(){jmp(up, top);}, 60);&#x000A;      } else if (!up &amp;&amp; (robot.offsetTop &lt; 115)){&#x000A;        top = top + (top * 0.1);&#x000A;        robot.style.top = top+"px";&#x000A;        jump_timer = setTimeout(function(){jmp(up, top);}, 60);&#x000A;      } else {&#x000A;        robot.style.top = "120px";&#x000A;        if (face_right){&#x000A;          robot.style.backgroundPosition = "0px 0px";&#x000A;        } else {&#x000A;          robot.style.backgroundPosition = "0px -50px";&#x000A;        }&#x000A;    	&#x000A;        jump_timer = false;&#x000A;        if (mouseX !== undefined){&#x000A;          if (((robot.offsetLeft + (15 * run_speed)) &lt; (mouseX - robot.offsetWidth)) &amp;&amp; running_dir !== 'r'){ &#x000A;            // make run right, if not already&#x000A;            running_dir = 'r';&#x000A;            clearTimeout(run_timer);&#x000A;            run_r(1, robot.offsetLeft);&#x000A;          } else if ((mouseX &lt; robot.offsetLeft - (15 * run_speed)) &amp;&amp; running_dir !== 'l') {&#x000A;            // make run left, if not already&#x000A;            running_dir = 'l';&#x000A;            clearTimeout(run_timer);&#x000A;            run_l(1, robot.offsetLeft);&#x000A;          }&#x000A;        }&#x000A;      }&#x000A;    }</pre>
    <p>
    So, now, we have our rewritten functions that work great across all browsers ... unless those browsers have touch input. We still have a bit more to go to make our robots run on everything. Since touch screens behave a bit differently, we will need to do some extra coding on our event listeners.</p>
    <h2>Supporting Touch Screens</h2>
    <p>
    We need to make some new rules for touch screens: If the screen is touched anywhere in the stage, the robot will run to that spot until the finger is lifted. If the user touches the robot, the robot will jump. First of all, we will add some extra touch event handlers to our earlier function, and we are going to write the code in such a way that it will run automatically whenever the <code>RobotMaster</code> function is called.</p>
    <pre>(function (){&#x000A;      if (stage.addEventListener){&#x000A;        stage.addEventListener('touchstart', stage_mousemove_listener, false);&#x000A;        stage.addEventListener('touchmove', stage_mousemove_listener, false);&#x000A;        stage.addEventListener('touchend', stage_mouseout_listener, false);&#x000A;    		&#x000A;        stage.addEventListener('mousemove', stage_mousemove_listener, false);&#x000A;        robot.addEventListener('mouseover', robot_mouseover_listener, false);&#x000A;        stage.addEventListener('mouseout', stage_mouseout_listener, false);&#x000A;      } else {&#x000A;        stage.attachEvent('onmousemove', stage_mousemove_listener);&#x000A;        robot.attachEvent('onmouseover', robot_mouseover_listener);&#x000A;        stage.attachEvent('onmouseout', stage_mouseout_listener);&#x000A;      }&#x000A;    })();</pre>
    <p>
    We won't have to worry about the touch listeners being in the Internet Explorer 8 format, and if any device doesn't have touch support it will ignore the listeners. Now we will need to update the <code>stage_mousemove_listener()</code> function to behave differently if the browser has touch capability.</p>
    <pre>function stage_mousemove_listener(e){	&#x000A;    /*&#x000A;     * First we check if this is a touch screen device (if it has e.touches)&#x000A;     */&#x000A;      if (e.touches){&#x000A;        e.preventDefault(); // we want to cancel what the browser would usually do if touched there&#x000A;        // If the touch was within the boundaries of the stage...&#x000A;        if ((e.touches[0].pageX &gt; stageOffset.xpos) &#x000A;        &amp;&amp; (e.touches[0].pageX &lt; (stageOffset.xpos + stage.offsetWidth))&#x000A;        &amp;&amp; (e.touches[0].pageY &gt; stageOffset.ypos)&#x000A;        &amp;&amp; (e.touches[0].pageY &lt; (stageOffset.ypos + stage.offsetHeight))){&#x000A;          // we set the mouseX to equal the px location inside the stage&#x000A;          mouseX = e.touches[0].pageX - stageOffset.xpos; &#x000A;        } else { // if the touch was outside the stage, we call the mouseout listener&#x000A;          stage_mouseout_listener();&#x000A;        }&#x000A;    	&#x000A;        /*&#x000A;         * If the touch is directly on the robot, then we stop the run timer and make the robot jump&#x000A;         */&#x000A;        if ((e.touches[0].pageX &gt; robot.offsetLeft) &amp;&amp; (e.touches[0].pageX &lt; (robot.offsetLeft + robot.offsetWidth))&#x000A;        &amp;&amp; (e.touches[0].pageY &gt; (stageOffset.ypos + stage.offsetHeight - robot.offsetHeight))&#x000A;        &amp;&amp; (e.touches[0].pageY &lt; (stageOffset.ypos + stage.offsetHeight))&#x000A;        &amp;&amp; (!jump_timer || jump_timer === undefined)){&#x000A;          clearTimeout(run_timer);&#x000A;          jmp(true, robot.offsetTop);&#x000A;        }&#x000A;    	&#x000A;      } else { // Finding the mouseX for non-touch devices...&#x000A;        // All of our non-touch device code here&#x000A;      }&#x000A;    }</pre>
    <p>
    You might notice that we no longer have any "doors" in our <code>RobotMaker</code> function, but since we are calling all of our code with event handlers that we are assigning inside <code>RobotMaker</code>, we no longer need them! For both our stage, and our characters, we will want to add a bit of CSS specially for touch devices so it will not try to cut and paste any images when a user holds down a finger on them.</p>
    <pre>#stage, .character {&#x000A;      -webkit-user-select: none;&#x000A;    }</pre>
    <p>
    And finally, we will declare all of our robots at the bottom of the page, using the same format as our event handler function to have the code run automatically when the page loads - this method also prevents these robot objects from being global variables, so the only global variable we have in this entire script is the <code>RobotMaker()</code> function.</p>
    <pre>(function(){&#x000A;      var j = RobotMaker(document.getElementById('j'), 1, 1);&#x000A;      var j2 = RobotMaker(document.getElementById('j2'), .8, 5);&#x000A;      var j3 = RobotMaker(document.getElementById('j3'), 1.1, .5);&#x000A;      var j4 = RobotMaker(document.getElementById('j4'), .5, .75);&#x000A;    })();</pre>
    <p>
    Please <a href="http://codepen.io/StevenRiche/pen/ByGtv" rel="nofollow external" class="bo">checkout the final result</a> in all of its glory!</p>
    <h2>Conclusion</h2>
    <p>
    I highly encourage you to study the entire (and fully commented!) <a href="http://cdn.tutsplus.com/net/uploads/2013/10/spriting4.html" rel="nofollow external" class="bo">code</a>, and you can download all <a href="http://cdn.tutsplus.com/net/uploads/2013/10/javascript-spriting-j-sprite.png" rel="nofollow external" class="bo">four</a> <a href="http://cdn.tutsplus.com/net/uploads/2013/10/javascript-spriting-j2-sprite.png" rel="nofollow external" class="bo">robot</a> <a href="http://cdn.tutsplus.com/net/uploads/2013/10/javascript-spriting-j3-sprite.png" rel="nofollow external" class="bo">sprites</a> <a href="http://cdn.tutsplus.com/net/uploads/2013/10/javascript-spriting-j4-sprite.png" rel="nofollow external" class="bo">here as well</a>.</p>
    <p>Happy animating!</p>
    </div>
]]>
</Body>
<Summary>In the first part of this series, we introduced the idea of using spriting as an easy, cross-browser way of having interactive animation for the web. In the second part, we got some animation...</Summary>
<Website>http://code.tutsplus.com/tutorials/javascript-animation-that-works-part-4-of-4--net-35263</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41490/guest@my.umbc.edu/22c7af28da14239dc43cbf60615fadc8/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 09:00:32 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41488" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41488">
<Title>A two-person startup taking a big step &#8212;</Title>
<Tagline>hiring its first staffer</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <h4>A two-person startup taking a big step — hiring its first staffer</h4>
    <dl>
    <dt>Ryan McDonald</dt>
    <dt>Digital Producer- <em>Baltimore Business Journal</em>
    </dt>
    </dl>
    <p>Professional ballroom dancers and Olympic figure skaters must work 
    well with their partner, to coordinate and perfect their routine. But 
    when it comes to running a business, it takes more than two to tango.</p>
    <p>Zuly Gonzalez, chief operating officer for cyber startup Light Point Security, has been with her business partner and CEO of Light Point Beau Adkins since the company was founded in 2010.</p>
    <p>“We work really well together. We have got complimentary skill sets 
    and personalities considering we have known each other for a while,” 
    Gonzalez said. Having a small team allows quick decisions without 
    needing to go ...</p>
    <p><a href="http://www.bizjournals.com/baltimore/print-edition/2014/02/14/a-two-person-startup-taking-a-big-step.html">http://www.bizjournals.com/baltimore/print-edition/2014/02/14/a-two-person-startup-taking-a-big-step.html</a><br></p>
    </div>
]]>
</Body>
<Summary>A two-person startup taking a big step — hiring its first staffer   Ryan McDonald  Digital Producer- Baltimore Business Journal   Professional ballroom dancers and Olympic figure skaters must work...</Summary>
<Website>http://www.bizjournals.com/baltimore/print-edition/2014/02/14/a-two-person-startup-taking-a-big-step.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41488/guest@my.umbc.edu/cfce41eb502491153d2872547113fe5e/api/pixel</TrackingUrl>
<Group token="bwtech">bwtech@UMBC Research and Technology Park</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/bwtech</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xsmall.png?1760034935</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/original.png?1760034935</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xxlarge.png?1760034935</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xlarge.png?1760034935</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/large.png?1760034935</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/medium.png?1760034935</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/small.png?1760034935</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xsmall.png?1760034935</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xxsmall.png?1760034935</AvatarUrl>
<Sponsor>bwtech@UMBC</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 08:33:31 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41487" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41487">
<Title>InvestMaryland Challenge advances 41 companies</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <h1>InvestMaryland Challenge advances 41 companies</h1>
    <p><br></p>
    <div>
    									<span><a href="http://mdbiznews.choosemaryland.org/author/ekimball/" title="Emily Kimball" rel="nofollow external" class="bo">Emily Kimball</a> — </span>
    													<span>February 11, 2014</span>
    											</div>
    		
    
    	 
    
    	
    					<p><a href="http://mdbiznews.choosemaryland.org/wp-content/uploads/2013/01/investmdchallenge.png" rel="nofollow external" class="bo"><img alt="InvestMaryland Challenge" src="http://mdbiznews.choosemaryland.org/wp-content/uploads/2013/01/investmdchallenge-236x300.png" height="300" width="236" style="max-width: 100%; height: auto;"></a>Out of 260 applicants, 41 start-ups have advanced in the second annual InvestMaryland Challenge, the Maryland Department of Business and Economic Development (DBED) announced today.</p>
    <p>The early-stage business competition—with awards provided by DBED’s Maryland Venture Fund, the BioMaryland Center and other sponsors—seeks to grow entrepreneurship and innovation in the State.</p>
    <p>Ultimately, four companies will each receive $100,000 grand prizes in
     four categories, including information technology, cybersecurity, life 
    sciences and general industry. All applicants have opportunities for 
    promotion, networking and feedback from industry experts. Total 
    available grants and prizes, including the four $100,000 awards, are 
    valued at more than $700,000.</p>
    <p>“The InvestMaryland Challenge brings together some of the most 
    exciting young companies  in Maryland to showcase the thriving 
    entrepreneurial community in our State and provide these rising stars of
     cybersecurity, biotechnology, IT and other fields with the resources 
    they need to thrive,” said DBED Secretary Dominick Murray. 
    “Congratulations to all the InvestMaryland Challenge semifinalists. To 
    stand out from such a large pool of applicants is an achievement in 
    itself and I wish them the best of luck as they move forward in the 
    competition.”</p>
    <p>The competition extends beyond Maryland’s borders, although 
    out-of-state ventures are expected to establish themselves in Maryland, 
    either through acquired space or a State incubator. Two Washington, D.C.
     companies and one New York company join 38 Maryland companies as 
    semi-finalists.</p>
    <p>Applicants will participate in face-to-face interviews with judges on
     March 6 at DBED headquarters at the Baltimore World Trade Center. The 
    final winners will be announced later this spring.</p>
    <p>For the complete list go to <a href="http://mdbiznews.choosemaryland.org/2014/02/11/investmaryland-challenge-advances-41-companies/">http://mdbiznews.choosemaryland.org/2014/02/11/investmaryland-challenge-advances-41-companies/</a><br></p>
    </div>
]]>
</Body>
<Summary>InvestMaryland Challenge advances 41 companies               Emily Kimball —               February 11, 2014                              Out of 260 applicants, 41 start-ups have advanced in the...</Summary>
<Website>http://mdbiznews.choosemaryland.org/2014/02/11/investmaryland-challenge-advances-41-companies/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41487/guest@my.umbc.edu/75ae3397f40a9cb67fa996d1977309a7/api/pixel</TrackingUrl>
<Group token="bwtech">bwtech@UMBC Research and Technology Park</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/bwtech</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xsmall.png?1760034935</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/original.png?1760034935</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xxlarge.png?1760034935</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xlarge.png?1760034935</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/large.png?1760034935</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/medium.png?1760034935</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/small.png?1760034935</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xsmall.png?1760034935</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/410/afff9420ec03574fa84c6bb85b54a3e3/xxsmall.png?1760034935</AvatarUrl>
<Sponsor>bwtech@UMBC</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 08:31:23 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="41486" important="false" status="posted" url="https://my3.my.umbc.edu/posts/41486">
<Title>$750 Scholarship for a UMBC Student</Title>
<Tagline>Application due THIS WEEK</Tagline>
<Body>
<![CDATA[
    <div class="html-content">See full posting from Career Servcies<br><a href="http://my.umbc.edu/news/41448">http://my.umbc.edu/news/41448</a><br>
    </div>
]]>
</Body>
<Summary>See full posting from Career Servcies http://my.umbc.edu/news/41448</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/41486/guest@my.umbc.edu/238e719158937badb20cfdb9f3449b2e/api/pixel</TrackingUrl>
<Group token="undergradresearch">Undergraduate Research</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/undergradresearch</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xsmall.png?1600355057</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/original.jpg?1600355057</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xxlarge.png?1600355057</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xlarge.png?1600355057</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/large.png?1600355057</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/medium.png?1600355057</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/small.png?1600355057</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xsmall.png?1600355057</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/006/875606ced2b629148af4caa1a4e8dd3c/xxsmall.png?1600355057</AvatarUrl>
<Sponsor>Undergraduate Research</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Tue, 18 Feb 2014 08:29:27 -0500</PostedAt>
<EditAt>Tue, 18 Feb 2014 08:29:47 -0500</EditAt>
</NewsItem>

</News>
