<?xml version="1.0"?>
<News hasArchived="true" page="8873" pageCount="10714" pageSize="10" timestamp="Fri, 03 Jul 2026 15:11:15 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8873">
<NewsItem contentIssues="true" id="27447" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27447">
<Title>Mitchell &#8217;09, Music, Launches CD and Film with Band Swampcandy</Title>
<Body>
<![CDATA[
    <div class="html-content">Annapolis-area blues duo Swampcandy — one half of which is comprised of bassist Joseph Mitchell ’09, music — launched a new CD and documentary film this month, according to a feature in the Capital newspaper. The article states: “Fresh in … <a href="https://umbcalumni.wordpress.com/2013/04/08/mitchell-09-music-launches-cd-and-film-with-band-swampcandy/" rel="nofollow external" class="bo">Continue reading <span>→</span></a>
    </div>
]]>
</Body>
<Summary>Annapolis-area blues duo Swampcandy — one half of which is comprised of bassist Joseph Mitchell ’09, music — launched a new CD and documentary film this month, according to a feature in the...</Summary>
<Website>https://umbcalumni.wordpress.com/2013/04/08/mitchell-09-music-launches-cd-and-film-with-band-swampcandy/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27447/guest@my.umbc.edu/26f6adeec1fbf6dd0d13621f9f9d60ef/api/pixel</TrackingUrl>
<Tag>00s-alums</Tag>
<Tag>arts-and-humanities</Tag>
<Tag>uncategorized</Tag>
<Group token="retired-20">UMBC Alumni</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-20</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xsmall.png?1280681147</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/original.png?1280681147</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xxlarge.png?1280681147</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xlarge.png?1280681147</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/large.png?1280681147</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/medium.png?1280681147</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/small.png?1280681147</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xsmall.png?1280681147</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/020/08fe2621d8e716b02ec0da35256a998d/xxsmall.png?1280681147</AvatarUrl>
<Sponsor>UMBC Alumni</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 10:57:54 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="107017" important="false" status="posted" url="https://my3.my.umbc.edu/posts/107017">
<Title>Mitchell &#8217;09, Music, Launches CD and Film with Band Swampcandy</Title>
<Body>
<![CDATA[
    <div class="html-content">Annapolis-area blues duo Swampcandy — one half of which is comprised of bassist Joseph Mitchell ’09, music — launched a …</div>
]]>
</Body>
<Summary>Annapolis-area blues duo Swampcandy — one half of which is comprised of bassist Joseph Mitchell ’09, music — launched a …</Summary>
<Website>https://magazine.umbc.edu/mitchell-09-music-launches-cd-and-film-with-band-swampcandy/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/107017/guest@my.umbc.edu/1a6b7543065ba92627a9a551f73ffe00/api/pixel</TrackingUrl>
<Tag>alumni</Tag>
<Group token="retired-1945">UMBC Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-1945</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/images/avatars/group/8/xsmall.png?1782921639</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/images/avatars/group/8/original.png?1782921639</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/images/avatars/group/8/xxlarge.png?1782921639</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/images/avatars/group/8/xlarge.png?1782921639</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/images/avatars/group/8/large.png?1782921639</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/images/avatars/group/8/medium.png?1782921639</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/images/avatars/group/8/small.png?1782921639</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/images/avatars/group/8/xsmall.png?1782921639</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/images/avatars/group/8/xxsmall.png?1782921639</AvatarUrl>
<Sponsor>UMBC Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 10:57:54 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27375" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27375">
<Title>jQuery Mobile 1.3</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img src="http://netdna.webdesignerdepot.com/uploads/2013/04/thumbnail4.jpg" alt="Thumbnail" width="200" height="160" style="max-width: 100%; height: auto;">jQuery Mobile 1.3 is now available as a stable release.</p>
    <p>This new version spearheads the jQuery team’s efforts to fully incorporate responsive web design principles into its robust library. Among the new features are several widgets optimized for touch interfaces, including smooth panel overlays, dual-handle range sliders, as well as two different options for responsive tables.</p>
    <h1>The new features</h1>
    <p>The new panel widgets allow hidden information to be displayed in a very smooth, eye-catching way. With three modes for transitioning—overlay, reveal and push—the panel slides in from the left or right with a swipe, click or press of the keyboard, keeping the design responsive regardless of the user’s chosen method of input.</p>
    <p>Also making its debut is a new feature of the tried and true list view: autocomplete! This feature works just as it sounds. Simply begin typing your desired criteria, and voila! Just like a Google search bar, matches are automatically displayed below the input.</p>
    <p>Tables in jQuery Mobile 1.3 now allow two additional modes: column toggle and reflow mode. Column toggle mode allows the user to select which columns of a table to hide and which to display. Reflow mode takes responsive web design to heart and solves the headache of formatting tables dynamically for small screens. It does this by breaking down a table and displaying each row as its own table, with the column labels as row headers and the row data transposed into a column format.</p>
    <p> </p>
    <h1>What this means for responsive web design</h1>
    <p>jQuery has long been a dependable framework, favored for its ability to simplify otherwise tedious and complex JavaScript tasks. jQuery Mobile has been tasked since its inception with bringing that same simplicity to the mobile arena, where touch interfaces rule the roost.</p>
    <p>Given the nature of having two separate implementations for two different platforms, the jQuery team has witnessed some confusion with the recent responsive web design movement. People have asked whether they should use responsive web design or jQuery Mobile for their sites, to which Todd Parker (member of the jQuery Mobile team) has responded with an emphatic “both”!</p>
    <p>Mr. Parker might be on to something here, too. By employing the rich features of the jQuery mobile framework, web designers can quickly blend their mobile sites into a broader responsive strategy without sacrificing innovation.</p>
    <p>Only a few of the new features are listed here; the entire change log can be viewed in the <a href="http://jquerymobile.com/blog/2013/02/04/jquery-mobile-1-3-0-rc1-released/" rel="nofollow external" class="bo">release announcement</a>. Also, take a gander at the jQuery Mobile 1.3 <a href="http://jquerymobile.com/demos/1.3.0-rc.1/" rel="nofollow external" class="bo">demo site</a> for some quality hands-on time.</p>
    <p> </p>
    <p><em><strong>Do you use jQuery, jQuery Mobile, or both? Which new features are your favorites? Let us know in the comments.</strong></em></p>
    <p><br><br>
    </p>
    <table width="100%">
    <tbody>
    <tr>
    <td>
          <a href="http://www.mightydeals.com/deal/trainsimple.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Get Certified Adobe Training for Web Design – 50% off!</strong></a>
        </td>
    <td>
          <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br>
            <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" style="max-width: 100%; height: auto;"><br>
          </a>
        </td>
    </tr>
    </tbody>
    </table>
    <p><br> </p>
    <a href="http://www.webdesignerdepot.com/2013/04/jquery-mobile-1-3/" rel="nofollow external" class="bo">Source</a>
    </div>
]]>
</Body>
<Summary>jQuery Mobile 1.3 is now available as a stable release.   This new version spearheads the jQuery team’s efforts to fully incorporate responsive web design principles into its robust library. Among...</Summary>
<Website>http://www.webdesignerdepot.com/2013/04/jquery-mobile-1-3/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27375/guest@my.umbc.edu/47da13227fb455ebc5835353b835e2c1/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>jquery</Tag>
<Tag>jquery-mobile</Tag>
<Tag>jquery-mobile-1-3</Tag>
<Tag>mobile</Tag>
<Tag>mysql</Tag>
<Tag>new-features-in-jquery</Tag>
<Tag>news</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>responsive-web-design</Tag>
<Tag>sql</Tag>
<Tag>stable-jquery-version</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, 08 Apr 2013 10:15:06 -0400</PostedAt>
<EditAt>Mon, 08 Apr 2013 10:15:06 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="27371" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27371">
<Title>Hacking anything connected to the Internet</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <h1>Hacking anything connected to the Internet</h1>
    <h6>The Shodan search engine allows anyone to 
    search for anything connected to the Internet and if security settings 
    are not turned on, take control of the device.</h6>
    <p><br></p>
    <p>Video here: <a href="http://money.cnn.com/video/technology/2013/04/05/t-ts-shodan-hacking-devices.cnnmoney/index.html?iid=HP_LN">http://money.cnn.com/video/technology/2013/04/05/t-ts-shodan-hacking-devices.cnnmoney/index.html?iid=HP_LN</a><br></p>
    </div>
]]>
</Body>
<Summary>Hacking anything connected to the Internet   The Shodan search engine allows anyone to  search for anything connected to the Internet and if security settings  are not turned on, take control of...</Summary>
<Website>http://money.cnn.com/video/technology/2013/04/05/t-ts-shodan-hacking-devices.cnnmoney/index.html?iid=HP_LN</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27371/guest@my.umbc.edu/06811327a6ee4fddf6c48b40ccc2b09a/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>Mon, 08 Apr 2013 10:14:25 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="27369" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27369">
<Title>Forming Honors Society for Students With Disabilitings!</Title>
<Tagline>Trying for form chapter of Delta Alpha Pi Honors Society.</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p><span>Students are trying
    to start a chapter of the Delta Alpha Pi honors society at UMBC.  It is an  honors society for students with documented disabilities.  </span></p>
    <p><span>Since
    this is an honors society students must meet specific criteria in order to
    become a member.<span>  </span>This is a pre-established
    international honors society so these requirements have been predetermined and unfortunately
    cannot be manipulated.<span>  </span></span></p>
    <p><span></span> </p>
    <p><span>For undergraduate
    students:</span></p>
    <p><span>1. Must have a
    documented disability.</span></p>
    <p><span>2. Must be
    interested in disability issues</span></p>
    <p><span>3. Have a UMBC GPA of at
    least 3.1</span></p>
    <p><span>4. Have completed at
    least 24 credits at any school.</span></p>
    <p><span></span> </p>
    <p><span>Graduate students are
    also welcome:</span></p>
    <p><span>1. Must have a
    documented disability.</span></p>
    <p><span>2. Must be interested in
    disability issues.</span></p>
    <p><span>3. Have a GPA of at
    least 3.3</span></p>
    <p><span>4. Have completed at
    least 18 credits. </span></p>
    <p><span> </span></p>
    <p><span>Delta Alpha Pi is a way
    to celebrate the academic accomplishments of those with documented
    disabilities. Disabilities include all types as long as they are documented
    (physical disabilities, learning disabilities, ADHD, Autism Spectrum Disorders,
    ect.) I want to do this because as a student with ADHD and learning
    disabilities I have to work harder than the average student to get an A and I
    know I am not alone.<span>  </span>I realize that a
    lot of people with disabilities are embarrassed about it or fear it may hurt
    them for graduate school or going into the work force.  Delta Alpha Pi can
    only help you because it shows that although you have disabilities you have
    shown that you can beat the odds. Delta Alpha Pi members also do
    activities to take away the stigma of disabilities and to educate the
    community.<span>  </span>  </span></p>
    <p><span>For more information you
    can contact me at </span><a href="mailto:Sjul1@umbc.edu" rel="nofollow external" class="bo"><span><u>Sjul1@umbc.edu</u></span></a><span> or leave comments below.  The
    official Delta Alpha Pi honors society website is also attached to this
    message.  </span></p>
    <p><span>This is a great
    opportunity and we just need 10 students to get started!  </span></p>
    </div>
]]>
</Body>
<Summary>Students are trying to start a chapter of the Delta Alpha Pi honors society at UMBC.  It is an  honors society for students with documented disabilities.    Since this is an honors society...</Summary>
<Website>http://deltaalphapihonorsociety.org/</Website>
<AttachmentKind>Flyer</AttachmentKind>
<AttachmentUrl>https://assets3-my.umbc.edu/system/shared/attachments/a7524f08f4f4c1af42a490f00f4cb96f/6a480953/news/000/027/369/74dbd1111727a31a2b825d615d80b2e7/DAP flyer.doc?1365429821</AttachmentUrl>
<Attachments>
<Attachment kind="Flyer" url="https://my3.my.umbc.edu/posts/27369/attachments/9648"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27369/guest@my.umbc.edu/bd24560b86736dbcc4cc3ffce76cf517/api/pixel</TrackingUrl>
<Tag>disabilities</Tag>
<Tag>honors</Tag>
<Group token="retired-594">Delta Alpha Pi </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-594</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/xsmall.png?1365429063</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/original.jpg?1365429063</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/xxlarge.png?1365429063</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/xlarge.png?1365429063</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/large.png?1365429063</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/medium.png?1365429063</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/small.png?1365429063</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/xsmall.png?1365429063</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/594/77bb909a2d2ea5c42602592012e43474/xxsmall.png?1365429063</AvatarUrl>
<Sponsor>Trying to Form Chapter of Delta Alpha Pi</Sponsor>
<PawCount>2</PawCount>
<CommentCount>1</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 10:03:41 -0400</PostedAt>
<EditAt>Mon, 08 Apr 2013 16:24:38 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="27368" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27368">
<Title>cPrime, Inc. is looking for a Project Manager</Title>
<Body>
<![CDATA[
    <div class="html-content">cPrime, Inc. is looking for a Project Manager<br><br><br><a href="http://www.facebook.com/l.php?u=http%3A%2F%2Fjobvite.com%2Fm%3F3A8IMfwW&amp;h=VAQGO2F4-&amp;s=1" rel="nofollow external" class="bo">cPrime, Inc. - Project Manager</a><br>hire.jobvite.com<br>Project Manager - •Be a quantitative leader in the organization, helping to inform new metrics which drive the business forward in ways that are consistent with key strategies. •Good understanding of technology (hardware/software) and how it all fits together. •Excellent Leader -- with the ability t...</div>
]]>
</Body>
<Summary>cPrime, Inc. is looking for a Project Manager   cPrime, Inc. - Project Manager hire.jobvite.com Project Manager - •Be a quantitative leader in the organization, helping to inform new metrics which...</Summary>
<Website>http://www.facebook.com/umbctraining/posts/480386362015132</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27368/guest@my.umbc.edu/9fba805be1b5f3c9fabb369f043464d0/api/pixel</TrackingUrl>
<Tag>ccna</Tag>
<Tag>ceh</Tag>
<Tag>centers</Tag>
<Tag>cisco</Tag>
<Tag>cyber</Tag>
<Tag>cybersecurity</Tag>
<Tag>information</Tag>
<Tag>it</Tag>
<Tag>leadership</Tag>
<Tag>management</Tag>
<Tag>microsoft</Tag>
<Tag>project</Tag>
<Tag>security</Tag>
<Tag>technology</Tag>
<Tag>training</Tag>
<Tag>umbc</Tag>
<Group token="retired-575">UMBC Training Centers</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-575</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/original.jpg?1361981335</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/large.png?1361981335</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/medium.png?1361981335</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/small.png?1361981335</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxsmall.png?1361981335</AvatarUrl>
<Sponsor>UMBC Training Centers</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 09:34:12 -0400</PostedAt>
<EditAt>Mon, 08 Apr 2013 09:34:12 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="27365" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27365">
<Title>Explaining Markdown</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Markdown is a simple text-based markup language and conversion tool that allows writers to create great content for the web without having to worry too much about HTML. The syntax of the language is designed to be easy to learn and intuitive. It’s ideal for people that write content for the web but that might be distracted by the HTML syntax.</p>
    <hr>
    <p><strong>Note:</strong> Markdown wasn’t really designed as a language for creating complete web pages. It’s more suitable for just content areas like the body of a blog post, an article or web page copy.</p>
    <p>Markdown files use the <code>.md</code> or <code>.text</code> extensions.</p>
    <hr>
    <p>A common problem that faces HTML is that having all those tags in your markup makes it hard to actually read the content without viewing the page in a web browser. Markdown aims to solve this problem by providing a simple, unobtrusive syntax for marking up content elements such as headings, links, lists, images and more!</p>
    <p>The Markdown syntax consists of a number of standard characters that represent HTML elements. When you are ready to publish your content, you pass your Markdown code through a converter that generates the HTML code for you.</p>
    <h2>Converting Markdown to HTML</h2>
    <p>There are a number of different ways that you can convert your Markdown to HTML.</p>
    <p>Use a plugin for your <strong>Content Management System</strong>.</p>
    <p>There are plugins available for many popular Content Management Systems that will allow you to write your content using Markdown. Your Markdown will then be converted to HTML when you save your changes. If you are a WordPress user check out <a href="http://wordpress.org/extend/plugins/wp-markdown/" rel="nofollow external" class="bo">WP-Markdown</a>.</p>
    <p>Use a plugin for your <strong>Text Editor</strong>.</p>
    <p>There also plugins available for popular text editors that provide tools for previewing and converting your markdown code. Federico Viticci put together a great <a href="http://www.macstories.net/roundups/sublime-text-2-and-markdown-tips-tricks-and-links/" rel="nofollow external" class="bo">list of plugins</a> for Sublime Text 2.</p>
    <p>Finally, you can also your the <strong>Command Line Tools</strong>.</p>
    <p>The command line tools that can be downloaded from the <a href="http://daringfireball.net/projects/markdown/" rel="nofollow external" class="bo">project website</a> also allow you to convert your markdown to HTML. If you’re a Mac user with homebrew you can simply do <code>brew install markdown</code> at the terminal to get these tools installed.Once installed, to use the command line interface you issue the following command.</p>
    <p><em><code>markdown /path/to/input_file.md &gt; output.html</code></em></p>
    <p>Before I take you through the Markdown syntax lets take a look a simple example.</p>
    <pre># Team Treehouse&#x000A;    Our mission is to bring affordable Technology education to people everywhere, in order to help them achieve their dreams and change the world.</pre>
    <p>Running this through the Markdown converter would produce the following HTML.</p>
    <pre>&lt;h1 id="team-treehouse"&gt;Team Treehouse&lt;/h1&gt;&#x000A;    &lt;p&gt;Our mission is to bring affordable Technology education to people everywhere, in order to help them achieve their dreams and change the world.&lt;/p&gt;</pre>
    <p>As you can see, the Markdown version is much easier to read. This is one of the biggest benefits of using Markdown and is also one of the reasons that a lot of experienced developers opt to use it over writing pure HTML.</p>
    <p>Now that you understand the problem that Markdown is out to solve lets take a detailed look at the syntax.</p>
    <h2>Headings</h2>
    <p>There are two different styles for marking up headings, <em>setext</em> and <em>atx</em>. In this article I’m going to focus on the <em>atx</em> style as it supports more heading levels (six levels against the two levels support by the <a href="http://daringfireball.net/projects/markdown/syntax#header" rel="nofollow external" class="bo">setext</a> style).</p>
    <p>To create headings in Markdown you simply prefix the heading text with a pound sign (#) followed by a space. The number of pound signs that you use indicates the importance of the heading.</p>
    <pre># Level 1 Heading  &#x000A;    ## Level 2 Heading  &#x000A;    ### Level 3 Heading  &#x000A;    #### Level 4 Heading  &#x000A;    ##### Level 5 Heading  &#x000A;    ###### Level 6 Heading</pre>
    <p>This Markdown would produce the HTML below.</p>
    <pre>&lt;h1&gt;Level 1 Heading&lt;/h1&gt;&#x000A;    &lt;h2&gt;Level 2 Heading&lt;/h2&gt;&#x000A;    &lt;h3&gt;Level 3 Heading&lt;/h3&gt;&#x000A;    &lt;h4&gt;Level 4 Heading&lt;/h4&gt;&#x000A;    &lt;h5&gt;Level 5 Heading&lt;/h5&gt;&#x000A;    &lt;h6&gt;Level 6 Heading&lt;/h6&gt;</pre>
    <p>In accordance with the HTML specification you can only use up to six pound signs (indicating a level 6 heading). If you use more than six pound signs the converter will not create a heading at all and the pound signs will be visible to the reader.</p>
    <h2>Paragraphs</h2>
    <p>Creating paragraphs of text is easy. Simply separate paragraphs using one or more blank lines, you don’t need to use any special characters.</p>
    <pre>This is a paragraph of text.&#x000A;    &#x000A;    This is another paragraph.</pre>
    <p>This Markdown would create two paragraphs.</p>
    <pre>&lt;p&gt;This is a paragraph of text.&lt;/p&gt;&#x000A;    &lt;p&gt;This is another paragraph.&lt;/p&gt;</pre>
    <h2>Line Breaks</h2>
    <p>If you want to add a line break simply add two spaces to the end of the line.</p>
    <pre>This is the first line.  &#x000A;    This is the second line.</pre>
    <p>The first line in this example has two spaces at the end so the HTML will include a line break. A single paragraph element encloses both of the lines of text.</p>
    <pre>&lt;p&gt;This is the first line. &lt;br /&gt;&#x000A;    This is the second line.&lt;/p&gt;</pre>
    <h2>Blockquotes</h2>
    <p>To create a blockquote you need need to prefix each line of the blockqoute with an angled bracket (&gt;) followed by a space. You can create multiple paragraphs within a blockquote using empty lines, as you did before.</p>
    <pre>&gt; A person who never made a mistake never tried anything new.&#x000A;    &#x000A;    &gt; The true sign of intelligence is not knowledge but imagination.</pre>
    <p>This Markdown would become the following HTML.</p>
    <pre>&lt;blockquote&gt;&#x000A;        &lt;p&gt;A person who never made a mistake never tried anything new.&lt;/p&gt;&#x000A;        &lt;p&gt;The true sign of intelligence is not knowledge but imagination.&lt;/p&gt;&#x000A;    &lt;/blockquote&gt;</pre>
    <p>(Quotes provided by the mind of the great Albert Einstein.)</p>
    <h2>Phrase Emphasis</h2>
    <p>Adding emphasis to phrases is pretty straightforward. To create a <code>&lt;strong&gt;</code> element, wrap the phrase within double asterisks (**) or double underscores (__). Creating an <code>&lt;em&gt;</code> element requires single asterisks or underscores.</p>
    <pre>**Double asterisks produces a strong element**    &#x000A;    __As does double underscores__&#x000A;    &#x000A;    *A single asterisk produces an em element*  &#x000A;    _As does a single underscore_</pre>
    <p>Here’s the HTML conversion (I added some line breaks).</p>
    <pre>&lt;p&gt;&lt;strong&gt;Double asterisks produces a strong element&lt;/strong&gt; &lt;br&gt;&#x000A;    &lt;strong&gt;As does double underscores&lt;/strong&gt;&lt;/p&gt;&#x000A;    &#x000A;    &lt;p&gt;&lt;em&gt;A single asterisk produces an em element&lt;/em&gt; &lt;br&gt;&#x000A;    &lt;em&gt;As does a single underscore&lt;/em&gt;&lt;/p&gt;</pre>
    <h2>Lists</h2>
    <p>Markdown supports both ordered and unordered lists as well as nesting.</p>
    <h3>Unordered Lists</h3>
    <p>Unlike in HTML you don’t need to worry about creating an enclosing element for Markdown lists, you only need to focus on the actual list items. To create an unordered list you need to prefix each list item with either an asterisk (*), minus (-) or plus (+) and the follow that up with a space. It is up to you which symbol you use, just be consistent once you have made your choice.</p>
    <pre>* Item One&#x000A;    * Item Two&#x000A;    * Item Three&#x000A;    &#x000A;    - Item One&#x000A;    - Item Two&#x000A;    - Item Three&#x000A;    &#x000A;    + Item One&#x000A;    + Item Two&#x000A;    + Item Three</pre>
    <p>The Markdown above shows three examples of unordered lists using varying syntax. All of these examples will produce the same HTML shown below.</p>
    <pre>&lt;ul&gt;&#x000A;    &lt;li&gt;Item One&lt;/li&gt;&#x000A;    &lt;li&gt;Item Two&lt;/li&gt;&#x000A;    &lt;li&gt;Item Three&lt;/li&gt;&#x000A;    &lt;/ul&gt;</pre>
    <h3>Ordered Lists</h3>
    <p>To create an ordered list you prefix each list item with a number, followed by a period, and finally a space. It’s worth noting that the actual number you use doesn’t matter. This is because the number that is displayed to the reader is handled by the browser and not in HTML (although you can manipulate the display behavior using CSS).</p>
    <pre>1. Item One&#x000A;    2. Item Two&#x000A;    3. Item Three&#x000A;    &#x000A;    1. Item One&#x000A;    1. Item Two&#x000A;    1. Item Three</pre>
    <p>Both the of the Markdown examples above will be converted into the following HTML.</p>
    <pre>&lt;ol&gt;&#x000A;    &lt;li&gt;Item One&lt;/li&gt;&#x000A;    &lt;li&gt;Item Two&lt;/li&gt;&#x000A;    &lt;li&gt;Item Three&lt;/li&gt;&#x000A;    &lt;/ol&gt;</pre>
    <h3>Nested Lists</h3>
    <p>To create nested lists you need to indent the nested list items using 4 spaces (or one tab). You can mix-and-match list types when nesting. So you could have an ordered list nested within an unordered one and vice-versa.</p>
    <pre>* Item 1&#x000A;        * Item 1.1&#x000A;        * Item 1.2&#x000A;    * Item 2&#x000A;    * Item 3</pre>
    <p>The example above demonstrates nesting an unordered list within another unordered list. This would produce the following HTML.</p>
    <pre>&lt;ul&gt;&#x000A;        &lt;li&gt;Item 1&#x000A;            &lt;ul&gt;&#x000A;            &lt;li&gt;Item 1.1&lt;/li&gt;&#x000A;            &lt;li&gt;Item 1.2&lt;/li&gt;&#x000A;            &lt;/ul&gt;&#x000A;        &lt;/li&gt;&#x000A;        &lt;li&gt;Item 2&lt;/li&gt;&#x000A;        &lt;li&gt;Item 3&lt;/li&gt;&#x000A;    &lt;/ul&gt;</pre>
    <h2>Links</h2>
    <p>The syntax for creating links has been simplified as much as possible. To create a link you first place the link text within square brackets. Immediately following the closing square bracket you then add a pair of regular brackets that contain the link.</p>
    <pre>[Team Treehouse](<a href="http://teamtreehouse.com">http://teamtreehouse.com</a>)</pre>
    <p>The Markdown above will create a simple link to the Treehouse home page.</p>
    <pre>&lt;a href="<a href="http://teamtreehouse.com%22&gt;Team">http://teamtreehouse.com"&gt;Team</a> Treehouse&lt;/a&gt;</pre>
    <p>You can also add a <code>title</code> attribute to your link by adding the title text after the URL but within the brackets (as shown below). Make sure that you add a space between the URL and the title text.</p>
    <pre>[Team Treehouse](<a href="http://teamtreehouse.com">http://teamtreehouse.com</a> "Learn Web Design, Web Development and More!")</pre>
    <p>This example would produce the following HTML link, complete with <code>title</code> attribute.</p>
    <pre>&lt;a href="<a href="http://teamtreehouse.com">http://teamtreehouse.com</a>" title="Learn Web Design, Web Development and More!"&gt;Team Treehouse&lt;/a&gt;</pre>
    <h2>Images</h2>
    <p>Images use a similar syntax to links. This time the text you place within the square brackets will form the <code>alt</code> text for the image and the URL in the regular brackets will be used as the path to the image file. The whole syntax is prefixed with a bang (!) which indicates that an image should be created not a link.</p>
    <pre>![The image alt text goes here](<a href="http://example.com/icon.png">http://example.com/icon.png</a>)</pre>
    <p>The example above will be converted to the following HTML.</p>
    <pre>&lt;img src="<a href="http://example.com/icon.png">http://example.com/icon.png</a>" alt="The image alt text goes here"&gt;</pre>
    <h2>Code</h2>
    <p>It’s quite common for us programmers to write blog posts that contain code that needs to be displayed in plain text. HTML provides the <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> elements to help us accomplish this.</p>
    <p>Markdown supports both inline code snippets and code blocks.</p>
    <h3>Inline Code Snippets</h3>
    <p>In HTML we would use the <code>&lt;code&gt;</code> element to markup occurrences of variable or file names when they appear inline. When using Markdown we just need to wrap the inline code snippet in backticks (`).</p>
    <pre>The `index.html` file contains the homepage for your website.</pre>
    <p>The example above uses backticks to indicate that <code>index.html</code> should be wrapped in a <code>&lt;code&gt;</code> element.</p>
    <pre>&lt;p&gt;The &lt;code&gt;index.html&lt;/code&gt; file contains the homepage for your website.&lt;/p&gt;</pre>
    <h3>Code Blocks</h3>
    <p>For occasions when you have a larger body of code to markup you need a slightly different approach. In HTML we would use <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> elements to markup a body of code and preserve the layout of the text.</p>
    <p>With Markdown you just need to indent the whole code block by 4 spaces (or one tab). Just like you do with nested lists.</p>
    <pre>    function solveForX(y) {&#x000A;            return solve(y);&#x000A;        }</pre>
    <p>The code in the example above has been indented by 4 spaces, indicating that it should be wrapped in <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> elements.</p>
    <pre>&lt;pre&gt;&lt;code&gt;function solveForX(y) {&#x000A;        return solve(y);&#x000A;    }&#x000A;    &lt;/code&gt;&lt;/pre&gt;</pre>
    <p>Notice that the indents within the original block of code are unaffected in the HTML output.</p>
    <h2>Horizontal Rules</h2>
    <p>To add horizontal rules in your markdown simply use three or more asterisks, minus signs, or underscores in a row. These must be on a single line with no other content for the converter to create a horizontal rule.</p>
    <pre>***&#x000A;    ---&#x000A;    ___</pre>
    <p>All three of the examples above will produce a <code>&lt;hr&gt;</code> element.</p>
    <h2>Inline HTML</h2>
    <p>Markdown is really useful for taking care of simple markup but it falls down when it comes to more complex structures like tables. Luckily you can mix HTML and Markdown together. The Markdown converter will preserve any HTML that it encounters within your Markdown files.</p>
    <pre>This is a standard paragraph of **text**.&#x000A;    &#x000A;    &lt;table&gt;&#x000A;        &lt;thead&gt;&#x000A;            &lt;tr&gt;&#x000A;                &lt;th&gt;First Name&lt;/th&gt;&#x000A;                &lt;th&gt;Last Name&lt;/th&gt;&#x000A;            &lt;/tr&gt;&#x000A;        &lt;/thead&gt;&#x000A;        &lt;tbody&gt;&#x000A;            &lt;tr&gt;&#x000A;                &lt;td&gt;Matt&lt;/td&gt;&#x000A;                &lt;td&gt;West&lt;/td&gt;&#x000A;            &lt;/tr&gt;&#x000A;        &lt;/tbody&gt;&#x000A;    &lt;/table&gt;&#x000A;    &#x000A;    Here is some more text that the _Markdown_ converter will put into a new paragraph.</pre>
    <p>In the example above the Markdown converter will leave the <code>&lt;table&gt;</code> untouched but will create HTML elements for the remaining content.</p>
    <pre>&lt;p&gt;This is a standard paragraph of &lt;strong&gt;text&lt;/strong&gt;.&lt;/p&gt;&#x000A;    &lt;table&gt;&#x000A;        &lt;thead&gt;&#x000A;            &lt;tr&gt;&#x000A;                &lt;th&gt;First Name&lt;/th&gt;&#x000A;                &lt;th&gt;Last Name&lt;/th&gt;&#x000A;            &lt;/tr&gt;&#x000A;        &lt;/thead&gt;&#x000A;        &lt;tbody&gt;&#x000A;            &lt;tr&gt;&#x000A;                &lt;td&gt;Matt&lt;/td&gt;&#x000A;                &lt;td&gt;West&lt;/td&gt;&#x000A;            &lt;/tr&gt;&#x000A;        &lt;/tbody&gt;&#x000A;    &lt;/table&gt;&#x000A;    &lt;p&gt;Here is some more text that the &lt;em&gt;Markdown&lt;/em&gt; converter will put into a new paragraph.&lt;/p&gt;</pre>
    <p>It is worth mentioning that the converter does not process Markdown syntax within block-level HTML elements (<code>&lt;div&gt;</code>, <code>&lt;p&gt;</code>, etc.) that have been manually coded. For example the converter would not create a <code>&lt;strong&gt;</code> element around the word ‘Hello’ in this example.</p>
    <pre>&lt;div&gt;**Hello** Treehouse!&lt;/div&gt;</pre>
    <h2>Escaping Markdown Syntax</h2>
    <p>You may run into instances when the converter is interpreting your use of the syntax characters as a signal to create HTML elements when you don’t really want it too. This can be frustrating at first, but don’t fear there is a solution!</p>
    <p>If you want the converter to ignore a character you simply prefix it with a backslash (\).</p>
    <p>For example, the asterisks in the example below are escaped with a backslash so the converter would not create an unordered list.</p>
    <pre>\* Item One  &#x000A;    \* Item Two  &#x000A;    \* Item Three</pre>
    <p>I’ve listed all of the characters used in Markdown syntax below for your reference.</p>
    <pre>\ ` * _ { } [ ] ( ) # + - . !</pre>
    <h2>Summary</h2>
    <p>Markdown is a fantastic language for quickly putting together a blog post or some content for a website. Personally I use it a lot. In fact, I used it to write this article.</p>
    <p>The main drawback of Markdown is that you are confined to a fairly limited subset of what is available in HTML. Most notably, you cannot define the majority of element attributes in Markdown alone. That said, Markdown wasn’t designed to be a replacement for HTML. It aims to make it simpler for web writers to create content. A goal that I think it achieves very well. The ability to mix-in HTML also allows you to circumvent the issue of being occasionally limited by the native Markdown syntax.</p>
    <p>If you haven’t tried using <a href="http://daringfireball.net/projects/markdown/" rel="nofollow external" class="bo">Markdown</a> before I encourage you to check it out. If you regularly write content for the web you could find that it makes your writing experience much more enjoyable.</p>
    <p>The post <a href="http://blog.teamtreehouse.com/explaining-markdown" rel="nofollow external" class="bo">Explaining Markdown</a> appeared first on <a href="http://blog.teamtreehouse.com" rel="nofollow external" class="bo">Treehouse Blog</a>.</p>
    </div>
]]>
</Body>
<Summary>Markdown is a simple text-based markup language and conversion tool that allows writers to create great content for the web without having to worry too much about HTML. The syntax of the language...</Summary>
<Website>http://feedproxy.google.com/~r/teamtreehouse/~3/DbevF0VPYs0/explaining-markdown</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27365/guest@my.umbc.edu/ee7898d522a53fad7a9c9a76ffde29a8/api/pixel</TrackingUrl>
<Tag>android</Tag>
<Tag>cms</Tag>
<Tag>code</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html-and-xhtml</Tag>
<Tag>html5</Tag>
<Tag>ios</Tag>
<Tag>javascript</Tag>
<Tag>markdown</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, 08 Apr 2013 09:30:20 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27361" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27361">
<Title>Researcher of the Week: Aneep Bindra</Title>
<Tagline>Undergraduate researchers explore their interests!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <strong>How did you find your mentor for year research, scholarship, or artistic project?</strong><br>
    Our group began looking for a research mentor by investigating the researcher profiles on the Computer Science research webpage. Because UMBC is a research school, we knew that it wouldn’t be long before we found someone like Professor Marc Olano with a background that would fit our needs. Coincidentally, our other soon-to-be mentor Professor Carol Hess, had contacted Dr. Olano at the same time asking him if they could put together a project with dancers and an Xbox Kinect. In no time we had a project with a strong technical mentor and a dance professor mentor and a unique real-world application.<br><br>
    <strong>How did you know this was the project you wanted to do?</strong><br>
    We knew that we wanted to integrate an Xbox Kinect with intelligent stage. This was the project for us because it combines development with art. After learning that we would have our own workspace we were ready to go.<br><br>
    <strong>Is this your first independent research/scholarship/artistic project? Do you get course credit for this work?</strong><br>
    Yes, this is the first time that any of us have conducted independent research. No, we do not get academic credit for this work.<br><br>
    <strong>How much time do you put into the research?</strong><br>
    In the summer we are working one or two nights a week for three or more hours as well as the occasional research independently throughout the week. Come the fall semester we will be working more nights each week.<br><br>
    <strong>How did you hear about the Undergraduate Research Award (URA) program?</strong><br>
    Before we began the project we had heard that there was a funding program for the projects, but it wasn’t until Professor Hess encouraged us to apply that we knew the details of becoming URA Scholars.<br><br>
    <strong>What academic background did you have before you applied for the URA?</strong><br>
    Cumulatively, our group has more than five years of programming experience with several languages including Java, Python, C, C++ and several others.<br><br>
    <strong>Was the URA application difficult to do? What was the most unexpected thing?</strong><br>
    The application was simple but the number of documents that needed to be completed and in what order was a little confusing. The most unexpected thing was how nice and formal the award ceremony was. I am sure that being able to present in URCAD will be even more amazing.<br><br>
    </div>
]]>
</Body>
<Summary>How did you find your mentor for year research, scholarship, or artistic project?  Our group began looking for a research mentor by investigating the researcher profiles on the Computer Science...</Summary>
<Website>http://www.umbc.edu/undergrad_ed/research/ResearcherProfiles/aneepBindraProfile.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27361/guest@my.umbc.edu/de06a1d37fb3a1931a60c4cd88d2e5c0/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>
<ThumbnailUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/xxlarge.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/xlarge.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/large.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/medium.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/small.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/xsmall.jpg?1365426871</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/361/6508deb7d1b89059767d5af370618046/xxsmall.jpg?1365426871</ThumbnailUrl>
<PawCount>12</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 09:15:15 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27374" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27374">
<Title>HTTP: The Protocol Every Web Developer Must Know &#8211; Part 1</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31177&amp;c=1822313598" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31177&amp;c=1822313598" alt="" style="max-width: 100%; height: auto;"></a><p>HTTP stands for Hypertext Transfer Protocol. It’s a stateless, application-layer protocol for communicating between distributed systems, and is the foundation of the modern web. As a web developer, we all must have a strong understanding of this protocol.</p>
    <p></p>
    <p>Let’s review this powerful protocol through the lens of a web developer. We’ll tackle the topic in two parts. In this first entry, we’ll cover the basics and outline the various request and response headers. In the follow-up article, we’ll review specific pieces of HTTP – namely caching, connection handling and authentication.</p>
    <p>Although I’ll mention some details related to headers, it’s best to instead consult the RFC (<a href="http://www.w3.org/Protocols/rfc2616/rfc2616" rel="nofollow external" class="bo">RFC 2616</a>) for in-depth coverage. I will be pointing to specific parts of the RFC throughout the article.</p>
    <hr>
    <h2>HTTP Basics</h2>
    <p>HTTP allows for communication between a variety of hosts and clients, and supports a mixture of network configurations.</p>
    <blockquote><p>To make this possible, it assumes very little about a particular system, and does not keep state between different message exchanges.</p></blockquote>
    <p>This makes HTTP a <strong>stateless</strong> protocol. The communication usually takes place over TCP/IP, but any reliable transport can be used. The default port for TCP/IP is <strong>80</strong>, but other ports can also be used.</p> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-request-response.png" alt="Request/Response Pair" style="max-width: 100%; height: auto;"><blockquote><p>Custom headers can also be created and sent by the client.</p></blockquote>
    <p>Communication between a host and a client occurs, via a <strong>request/response pair</strong>. The client initiates an HTTP request message, which is serviced through a HTTP response message in return. We will look at this fundamental message-pair in the next section.</p>
    <p>The current version of the protocol is <strong>HTTP/1.1</strong>, which adds a few extra features to the previous 1.0 version. The most important of these, in my opinion, includes <em>persistent connections</em>, <em>chunked transfer-coding</em> and <em>fine-grained caching headers</em>. We’ll briefly touch upon these features in this article; in-depth coverage will be provided in part two.</p>
    <h3>URLs</h3>
    <p>At the heart of web communications is the request message, which are sent via Uniform Resource Locators (URLs). I’m sure you are already familiar with URLs, but for completeness sake, I’ll include it here. URLs have a simple structure that consists of the following components:</p> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-url-structure.png" alt="URL Structure" style="max-width: 100%; height: auto;"><p>The protocol is typically <code>http</code>, but it can also be <code>https</code> for secure communications. The default port is <code>80</code>, but one can be set explicitly, as illustrated in the above image. The resource path is the <em>local path</em> to the resource on the server.</p>
    <h3>Verbs</h3>
    <blockquote><p>There are also web debugging proxies, like <strong><a href="http://www.fiddler2.com/fiddler2/" rel="nofollow external" class="bo">Fiddler</a></strong> on Windows and <strong><a href="http://www.charlesproxy.com/" rel="nofollow external" class="bo">Charles Proxy</a></strong> for OSX.</p></blockquote>
    <p>URLs reveal the identity of the particular host with which we want to communicate, but the action that should be performed on the host is specified via HTTP verbs. Of course, there are several actions that a client would like the host to perform. HTTP has formalized on a few that capture the essentials that are universally applicable for all kinds of applications.</p>
    <p>These request verbs are:</p>
    <ul>
    <li>
    <strong>GET</strong>: <em>fetch</em> an existing resource. The URL contains all the necessary information the server needs to locate and return the resource.</li>
    <li>
    <strong>POST</strong>: <em>create</em> a new resource. POST requests usually carry a payload that specifies the data for the new resource.</li>
    <li>
    <strong>PUT</strong>: <em>update</em> an existing resource. The payload may contain the updated data for the resource.</li>
    <li>
    <strong>DELETE</strong>: <em>delete</em> an existing resource.</li>
    </ul>
    <p>The above four verbs are the most popular, and most tools and frameworks explicitly expose these request verbs. <code>PUT</code> and <code>DELETE</code> are sometimes considered specialized versions of the <code>POST</code> verb, and they may be packaged as <code>POST</code> requests with the payload containing the exact action: <em>create</em>, <em>update</em> or <em>delete</em>.</p>
    <p>There are some lesser used verbs that HTTP also supports:</p>
    <ul>
    <li>
    <strong>HEAD</strong>: this is similar to GET, but without the message body. It’s used to retrieve the server headers for a particular resource, generally to check if the resource has changed, via timestamps.</li>
    <li>
    <strong>TRACE</strong>: used to retrieve the hops that a request takes to round trip from the server. Each intermediate proxy or gateway would inject its IP or DNS name into the <code>Via</code> header field. This can be used for diagnostic purposes.</li>
    <li>
    <strong>OPTIONS</strong>: used to retrieve the server capabilities. On the client-side, it can be used to modify the request based on what the server can support.</li>
    </ul>
    <h3>Status Codes</h3>
    <p>With URLs and verbs, the client can initiate requests to the server. In return, the server responds with status codes and message payloads. The status code is important and tells the client how to interpret the server response. The HTTP spec defines certain number ranges for specific types of responses:</p>
    <h4>1xx: Informational Messages</h4>
    <blockquote><p>All HTTP/1.1 clients are required to accept the <code>Transfer-Encoding</code> header.</p></blockquote>
    <p>This class of codes was introduced in HTTP/1.1 and is purely provisional. The server can send a <code>Expect: 100-continue</code> message, telling the client to continue sending the remainder of the request, or ignore if it has already sent it. HTTP/1.0 clients are supposed to ignore this header.</p>
    <h4>2xx: Successful</h4>
    <p>This tells the client that the request was successfully processed. The most common code is <strong>200 OK</strong>. For a <code>GET</code> request, the server sends the resource in the message body. There are other less frequently used codes:</p>
    <ul>
    <li>
    <strong>202</strong> Accepted: the request was accepted but may not include the resource in the response. This is useful for async processing on the server side. The server may choose to send information for monitoring.</li>
    <li>
    <strong>204</strong> No Content: there is no message body in the response.</li>
    <li>
    <strong>205</strong> Reset Content: indicates to the client to reset its document view.</li>
    <li>
    <strong>206</strong> Partial Content: indicates that the response only contains partial content. Additional headers indicate the exact range and content expiration information.</li>
    </ul>
    <h4>3xx: Redirection</h4>
    <blockquote><p>404 indicates that the resource is invalid and does not exist on the server.</p></blockquote>
    <p>This requires the client to take additional action. The most common use-case is to jump to a different URL in order to fetch the resource.</p>
    <ul>
    <li>
    <strong>301</strong> Moved Permanently: the resource is now located at a new URL.</li>
    <li>
    <strong>303</strong> See Other: the resource is temporarily located at a new URL. The <code>Location</code> response header contains the temporary URL.</li>
    <li>
    <strong>304</strong> Not Modified: the server has determined that the resource has not changed and the client should use its cached copy. This relies on the fact that the client is sending <code>ETag</code> (Enttity Tag) information that is a hash of the content. The server compares this with its own computed <code>ETag</code> to check for modifications.</li>
    </ul>
    <h4>4xx: Client Error</h4>
    <p>These codes are used when the server thinks that the client is at fault, either by requesting an invalid resource or making a bad request. The most popular code in this class is <strong>404 Not Found</strong>, which I think everyone will identify with. 404 indicates that the resource is invalid and does not exist on the server. The other codes in this class include:</p>
    <ul>
    <li>
    <strong>400</strong> Bad Request: the request was malformed.</li>
    <li>
    <strong>401</strong> Unauthorized: request requires authentication. The client can repeat the request with the <code>Authorization</code> header. If the client already included the <code>Authorization</code> header, then the credentials were wrong.</li>
    <li>
    <strong>403</strong> Forbidden: server has denied access to the resource.</li>
    <li>
    <strong>405</strong> Method Not Allowed: invalid HTTP verb used in the request line, or the server does not support that verb.</li>
    <li>
    <strong>409</strong> Conflict: the server could not complete the request because the client is trying to modify a resource that is newer than the client’s timestamp. Conflicts arise mostly for PUT requests during collaborative edits on a resource.</li>
    </ul>
    <h4>5xx: Server Error</h4>
    <p>This class of codes are used to indicate a server failure while processing the request. The most commonly used error code is <strong>500 Internal Server Error</strong>. The others in this class are:</p>
    <ul>
    <li>
    <strong>501 Not Implemented</strong>: the server does not yet support the requested functionality.</li>
    <li>
    <strong>503 Service Unavailable</strong>: this could happen if an internal system on the server has failed or the server is overloaded. Typically, the server won’t even respond and the request will timeout.</li>
    </ul>
    <h3>Request and Response Message Formats</h3>
    <p>So far, we’ve seen that <em>URLs, verbs and status codes</em> make up the fundamental pieces of an HTTP request/response pair.</p> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-req-res-details.png" alt="Request-Response details" style="max-width: 100%; height: auto;"><p>Let’s now look at the content of these messages. The HTTP specification states that a request or response message has the following generic structure:</p>
    <pre>message = &lt;start-line&gt;&#x000A;              *(&lt;message-header&gt;)&#x000A;              CRLF&#x000A;              [&lt;message-body&gt;]&#x000A;    &#x000A;    &lt;start-line&gt; = Request-Line | Status-Line &#x000A;    &lt;message-header&gt; = Field-Name ':' Field-Value</pre>
    <p>It’s mandatory to place a new line between the message headers and body. The message can contain one or more headers, of which are broadly classified into:</p>
    <ul>
    <li>
    <em><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5" rel="nofollow external" class="bo">general headers</a></em>: that are applicable for both request and response messages.</li>
    <li>
    <em><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3" rel="nofollow external" class="bo">request specific headers</a></em>.</li>
    <li>
    <em><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2" rel="nofollow external" class="bo">response specific headers</a></em>.</li>
    <li>
    <em><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1" rel="nofollow external" class="bo">entity headers</a></em>.</li>
    </ul>
    <p>The message body may contain the complete entity data, or it may be piecemeal if the chunked encoding (<code>Transfer-Encoding: chunked</code>) is used. All HTTP/1.1 clients are required to accept the <code>Transfer-Encoding</code> header.</p>
    <h4>General Headers</h4>
    <p>There are a few headers (general headers) that are shared by both request and response messages:</p>
    <pre>general-header = Cache-Control            &#x000A;                   | Connection        &#x000A;                   | Date              &#x000A;                   | Pragma            &#x000A;                   | Trailer           &#x000A;                   | Transfer-Encoding &#x000A;                   | Upgrade           &#x000A;                   | Via               &#x000A;                   | Warning&#x000A;    </pre>
    <p>We have already seen some of these headers, specifically <code>Via</code> and <code>Transfer-Encoding</code>. We will cover <code>Cache-Control</code> and <code>Connection</code> in part two.</p>
    <blockquote><p>The status code is important and tells the client how to interpret the server response.</p></blockquote>
    <ul>
    <li>
    <code>Via</code> header is used in a TRACE message and updated by all intermittent proxies and gateways</li>
    <li>
    <code>Pragma</code> is considered a custom header and may be used to include implementation-specific headers. The most commonly used pragma-directive is <code>Pragma: no-cache</code>, which really is <code>Cache-Control: no-cache</code> under HTTP/1.1. This will be covered in Part 2 of the article.</li>
    <li>The <code>Date</code> header field is used to timestamp the request/response message</li>
    <li>
    <code>Upgrade</code> is used to switch protocols and allow a smooth transition to a newer protocol.</li>
    <li>
    <code>Transfer-Encoding</code> is generally used to break the response into smaller parts with the <code>Transfer-Encoding: chunked</code> value. This is a new header in HTTP/1.1 and allows for streaming of response to the client instead of one big payload.</li>
    </ul>
    <h4>Entity headers</h4>
    <p>Request and Response messages may also include entity headers to provide meta-information about the the content (aka Message Body or Entity). These headers include:</p>
    <pre>entity-header  = Allow                    &#x000A;                   | Content-Encoding  &#x000A;                   | Content-Language  &#x000A;                   | Content-Length    &#x000A;                   | Content-Location  &#x000A;                   | Content-MD5       &#x000A;                   | Content-Range     &#x000A;                   | Content-Type      &#x000A;                   | Expires           &#x000A;                   | Last-Modified  &#x000A;    </pre>
    <p>All of the <code>Content-</code> prefixed headers provide information about the structure, encoding and size of the message body. Some of these headers need to be present if the entity is part of the message.</p>
    <p>The <code>Expires</code> header indicates a timestamp of whent he entity expires. Interestingly, a <em>“never expires”</em> entity is sent with a timestamp of one year into the future. The <code>Last-Modified</code> header indicates the last modification timestamp for the entity.</p>
    <blockquote><p>Custom headers can also be created and sent by the client; they will be treated as entity headers by the HTTP protocol.</p></blockquote>
    <p>This is really an extension mechanism, and some client-server implementations may choose to communicate specifically over these extension headers. Although HTTP supports custom headers, what it really looks for are the request and response headers, which we cover next.</p>
    <h3>Request Format</h3>
    <p>The request message has the same generic structure as above, except for the request line which looks like:</p>
    <pre>Request-Line = Method SP URI SP HTTP-Version CRLF&#x000A;    Method = "OPTIONS"&#x000A;           | "HEAD"  &#x000A;           | "GET"  &#x000A;           | "POST"  &#x000A;           | "PUT"  &#x000A;           | "DELETE"  &#x000A;           | "TRACE"</pre>
    <p><code>SP</code> is the space separator between the tokens. <code>HTTP-Version</code> is specified as <em>“HTTP/1.1″</em> and then followed by a new line. Thus, a typical request message might look like:</p>
    <pre>GET /articles/http-basics HTTP/1.1&#x000A;    Host: <a href="http://www.articles.com">www.articles.com</a>&#x000A;    Connection: keep-alive&#x000A;    Cache-Control: no-cache&#x000A;    Pragma: no-cache&#x000A;    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</pre>
    <p>Note the request line followed by many request headers. The <strong>Host</strong> header is mandatory for HTTP/1.1 clients. <strong>GET</strong> requests do not have a message body, but <strong>POST</strong> requests can contain the post data in the body.</p>
    <p>The request headers act as modifiers of the request message. The complete list of known request headers is not too long, and is provided below. Unknown headers are treated as entity-header fields.</p>
    <pre>request-header = Accept                   &#x000A;                   | Accept-Charset    &#x000A;                   | Accept-Encoding   &#x000A;                   | Accept-Language   &#x000A;                   | Authorization     &#x000A;                   | Expect            &#x000A;                   | From              &#x000A;                   | Host              &#x000A;                   | If-Match          &#x000A;                   | If-Modified-Since &#x000A;                   | If-None-Match     &#x000A;                   | If-Range          &#x000A;                   | If-Unmodified-Since&#x000A;                   | Max-Forwards       &#x000A;                   | Proxy-Authorization&#x000A;                   | Range              &#x000A;                   | Referer            &#x000A;                   | TE                 &#x000A;                   | User-Agent</pre>
    <p>The <code>Accept</code> prefixed headers indicate the acceptable media-types, languages and character sets on the client. <code>From</code>, <code>Host</code>, <code>Referer</code> and <code>User-Agent</code> identify details about the client that initiated the request. The <code>If-</code> prefixed headers are used to make a request more conditional, and the server returns the resource only if the condition matches. Otherwise, it returns a <code>304 Not Modified</code>. The condition can be based on a timestamp or an ETag (a hash of the entity).</p>
    <h3>Response Format</h3>
    <p>The response format is similar to the request message, except for the status line and headers. The status line has the following structure:</p>
    <pre>Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF</pre>
    <ul>
    <li>HTTP-Version is sent as <code>HTTP/1.1</code>
    </li>
    <li>The Status-Code is one of the many statuses discussed earlier.</li>
    <li>The Reason-Phrase is a human-readable version of the status code.</li>
    </ul>
    <p>A typical status line for a successful response might look like so:</p>
    <pre>HTTP/1.1 200 OK</pre>
    <p>The response headers are also fairly limited, and the full set is given below:</p>
    <pre> response-header = Accept-Ranges&#x000A;                     | Age&#x000A;                     | ETag              &#x000A;                     | Location          &#x000A;                     | Proxy-Authenticate&#x000A;                     | Retry-After       &#x000A;                     | Server            &#x000A;                     | Vary              &#x000A;                     | WWW-Authenticate</pre>
    <ul>
    <li>
    <code>Age</code> is the time in seconds since the message was generated on the server.</li>
    <li>
    <code>ETag</code> is the MD5 hash of the entity and used to check for modifications.</li>
    <li>
    <code>Location</code> is used when sending a redirection and contains the new URL.</li>
    <li>
    <code>Server</code> identifies the server generating the message.</li>
    </ul>
    <p>It’s been a lot of theory upto this point, so I won’t blame you for drowsy eyes. In the next sections, we will get more practical and take a survey of the tools, frameworks and libraries.</p>
    <hr>
    <h2>Tools to View HTTP Traffic</h2>
    <p>There are a number of tools available to monitor HTTP communication. Here, we list some of the more popular tools.</p>
    <p>Undoubtedly, the <strong><a href="https://developers.google.com/chrome-developer-tools/" rel="nofollow external" class="bo">Chrome/Webkit inspector</a></strong> is a favorite amongst web developers:</p> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-chrome-inspector.png" alt="Chrome Inspector" style="max-width: 100%; height: auto;"><p>There are also web debugging proxies, like <strong><a href="http://www.fiddler2.com/fiddler2/" rel="nofollow external" class="bo">Fiddler</a></strong> on Windows and <strong><a href="http://www.charlesproxy.com/" rel="nofollow external" class="bo">Charles Proxy</a></strong> for OSX. My colleague, Rey Bango wrote an <a href="http://net.tutsplus.com/tutorials/using-web-debugging-proxies/" rel="nofollow external" class="bo">excellent article</a> on this topic.</p> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-fiddler.jpg" alt="Fiddler" style="max-width: 100%; height: auto;"> <img src="http://cdn.tutsplus.com/net.tutsplus.com/authors/jeremymcpeak/http1-charles-proxy.png" alt="Charles Proxy" style="max-width: 100%; height: auto;"><p>For the command line, we have utilities like <a href="http://curl.haxx.se/" rel="nofollow external" class="bo">curl</a>, <a href="http://www.tcpdump.org/" rel="nofollow external" class="bo">tcpdump</a> and <a href="http://www.wireshark.org/docs/wsug_html_chunked/AppToolstshark.html" rel="nofollow external" class="bo">tshark</a> for monitoring HTTP traffic.</p>
    <hr>
    <h2>Using HTTP in Web Frameworks and Libraries</h2>
    <p>Now that we have looked at the request/response messages, it’s time that we learn how libraries and frameworks expose it in the form of an API. We’ll use <em>ExpressJS for Node</em>, <em>Ruby on Rails</em>, and <em>jQuery Ajax</em> as our examples.</p>
    <h3>ExpressJS</h3>
    <p>If you are building web servers in NodeJS, chances are high that you’ve considered <a href="http://expressjs.com/" rel="nofollow external" class="bo">ExpressJS</a>. ExpressJS was originally inspired by a Ruby Web framework, called Sinatra. As expected, the API is also equally influenced.</p>
    <p>Because we are dealing with a server-side framework, there are two primary tasks when dealing with HTTP messages:</p>
    <ul>
    <li>Read URL fragments and request headers.</li>
    <li>Write response headers and body</li>
    </ul>
    <blockquote><p>Understanding HTTP is crucial for having a clean, simple and RESTful interface between two endpoints.</p></blockquote>
    <p>ExpressJS provides a simple API for doing just that. We won’t cover the details of the API. Instead, we will provide links to the detailed documentation on ExpressJS guides. The methods in the API are self-explanatory in most cases. A sampling of the request-related API is below:</p>
    <ul>
    <li>
    <a href="http://expressjs.com/api.html#req.body" rel="nofollow external" class="bo">req.body</a>: get the request body.</li>
    <li>
    <a href="http://expressjs.com/api.html#req.query" rel="nofollow external" class="bo">req.query</a>: get the query fragment of the URL.</li>
    <li><a href="http://expressjs.com/api.html#req.originalUrl" rel="nofollow external" class="bo">req.originalUrl</a></li>
    <li>
    <a href="http://expressjs.com/api.html#req.host" rel="nofollow external" class="bo">req.host</a>: reads the <code>Host</code> header field.</li>
    <li>
    <a href="http://expressjs.com/api.html#req.accepts" rel="nofollow external" class="bo">req.accepts</a>: reads the acceptable MIME-types on the client side.</li>
    <li>
    <a href="http://expressjs.com/api.html#req.get" rel="nofollow external" class="bo">req.get OR req.header</a>: read any header field passed as argument.</li>
    </ul>
    <p>On the way out to the client, ExpressJS provides the following response API:</p>
    <ul>
    <li>
    <a href="http://expressjs.com/api.html#res.status" rel="nofollow external" class="bo">res.status</a>: set an explicit status code.</li>
    <li>
    <a href="http://expressjs.com/api.html#res.set" rel="nofollow external" class="bo">res.set</a>: set a specific response header.</li>
    <li>
    <a href="http://expressjs.com/api.html#res.send" rel="nofollow external" class="bo">res.send</a>: send HTML, JSON or an octet-stream.</li>
    <li>
    <a href="http://expressjs.com/api.html#res.sendFile" rel="nofollow external" class="bo">res.sendFile</a>: transfer a file to the client.</li>
    <li>
    <a href="http://expressjs.com/api.html#res.render" rel="nofollow external" class="bo">res.render</a>: render an express view template.</li>
    <li>
    <a href="http://expressjs.com/api.html#res.redirect" rel="nofollow external" class="bo">res.redirect</a>: redirect to a different route. Express automatically adds the default redirection code of 302.</li>
    </ul>
    <h3>Ruby on Rails</h3>
    <blockquote><p>The request and response messages are mostly the same, except for the first line and message headers.</p></blockquote>
    <p>In Rails, the <a href="http://api.rubyonrails.org" rel="nofollow external" class="bo">ActionController</a> and <a href="http://api.rubyonrails.org" rel="nofollow external" class="bo">ActionDispatch</a> modules provide the API for handling request and response messages.</p>
    <p><strong>ActionController</strong> provides a high level API to read the request URL, render output and redirect to a different end-point. An end-point (aka route) is handled as an action method. Most of the necessary context information inside an action-method is provided via the <code>request</code>, <code>response</code> and <code>params</code> objects.</p>
    <ul>
    <li>
    <a href="http://api.rubyonrails.org/classes/ActionController/Metal.html#method-i-params" rel="nofollow external" class="bo">params</a>: gives access to the URL parameters and POST data.</li>
    <li>
    <a href="http://api.rubyonrails.org/classes/ActionDispatch/Request.html" rel="nofollow external" class="bo">request</a>: contains information about the client, headers and URL.</li>
    <li>
    <a href="http://api.rubyonrails.org/classes/ActionDispatch/Response.html" rel="nofollow external" class="bo">response</a>: used to set headers and status codes.</li>
    <li>
    <a href="http://api.rubyonrails.org/classes/AbstractController/Rendering.html#method-i-render" rel="nofollow external" class="bo">render</a>: render views by expanding templates.</li>
    <li>
    <a href="http://api.rubyonrails.org/classes/ActionController/Redirecting.html#method-i-redirect_to" rel="nofollow external" class="bo">redirect_to</a>: redirect to a different action-method or URL.</li>
    </ul>
    <p><strong>ActionDispatch</strong> provides fine-grained access to the request/response messages, via the <a href="http://api.rubyonrails.org/classes/ActionDispatch/Request.html" rel="nofollow external" class="bo"><code>ActionDispatch::Request</code></a> and <a href="http://api.rubyonrails.org/classes/ActionDispatch/Response.html" rel="nofollow external" class="bo"><code>ActionDispatch::Response</code></a> classes. It exposes a set of query methods to check the type of request (<code>get?()</code>, <code>post?()</code>, <code>head?()</code>, <code>local?()</code>). Request headers can be directly accessed via the <code>request.headers()</code> method.</p>
    <p>On the response side, it provides methods to set <code>cookies()</code>, <code>location=()</code> and <code>status=()</code>. If you feel adventurous, you can also set the <code>body=()</code> and bypass the Rails rendering system.</p>
    <h3>jQuery Ajax</h3>
    <p>Because jQuery is primarily a client-side library, its Ajax API provides the opposite of a server-side framework. In other words, it allows you to <em>read</em> response messages and <em>modify</em> request messages. jQuery exposes a simple API via <a href="http://api.jquery.com/jQuery.ajax/" rel="nofollow external" class="bo">jQuery.ajax(settings)</a>:</p>
    <p>By passing a <code>settings</code> object with the <code>beforeSend</code> callback, we can modify the request headers. The callback receives the jqXHR (jQuery XMLHttpRequest) object that exposes a method, called <code>setRequestHeader()</code> to set headers.</p>
    <pre>$.ajax({&#x000A;        url: '<a href="http://www.articles.com/latest">http://www.articles.com/latest</a>',&#x000A;        type: 'GET',&#x000A;        beforeSend: function (jqXHR) {&#x000A;          jqXHR.setRequestHeader('Accepts-Language', 'en-US,en');&#x000A;        }&#x000A;      });&#x000A;    </pre>
    <ul>
    <li>The jqXHR object can also be used to read the response headers with the <code>jqXHR.getResponseHeader()</code>.</li>
    <li>If you want to take specific actions for various status codes, you can use the <code>statusCode</code> callback:</li>
    </ul>
    <pre>$.ajax({&#x000A;      statusCode: {&#x000A;        404: function() {&#x000A;          alert("page not found");&#x000A;        }&#x000A;      }&#x000A;    });&#x000A;    </pre>
    <hr>
    <h2>Summary</h2>
    <p>So that sums up our quick tour of the HTTP protocol.</p>
    <blockquote><p>We reviewed URL structure, verbs and status codes: the three pillars of HTTP communication.</p></blockquote>
    <p>The request and response messages are mostly the same, except for the first line and message headers. Finally, we reviewed how you can modify the request and response headers in web frameworks and libraries.</p>
    <p>Understanding HTTP is crucial for having a clean, simple, and RESTful interface between two endpoints. On a larger scale, it also helps when designing your network infrastructure and providing a great experience to your end users.</p>
    <p>In part two, we’ll review connection handling, authentication and caching! See you then.</p>
    <hr>
    <h2>References</h2>
    <ul>
    <li><a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" rel="nofollow external" class="bo">HTTP specification</a></li>
    <li><a href="http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092" rel="nofollow external" class="bo">HTTP Definitive Guide</a></li>
    </ul>
    </div>
]]>
</Body>
<Summary>HTTP stands for Hypertext Transfer Protocol. It’s a stateless, application-layer protocol for communicating between distributed systems, and is the foundation of the modern web. As a web...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/TbGtsxdB7i4/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27374/guest@my.umbc.edu/2cbc33e86639b9ad7a98ac30bc48702d/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>http</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tools-and-tips</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 09:00:00 -0400</PostedAt>
<EditAt>Mon, 08 Apr 2013 09:00:00 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="27359" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27359">
<Title>Got Your Tickets Yet?</Title>
<Tagline>Ticket Counter for Monday, April 8th, 2013</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <div><div><strong>South Asian Student Association Banquet </strong></div></div>
    <div>Wednesday, April 10, 2013</div>
    <div>7:00 pm</div>
    <div>University Center, Ballroom</div>
    <div><strong>SASA Banquet is SOLD OUT!</strong></div>
    <div><strong><br></strong></div>
    <div><strong>Freedom Alliance - Spring Drag Show</strong></div>
    <div>Saturday, April 13, 2013</div>
    <div>7:30 pm</div>
    <div>University Center, Ballroom</div>
    <div>UMBC ID = FREE</div>
    <div>General Admission = $5.00</div>
    <div><strong>We are on Ticket 51 of 400</strong></div>
    <div><strong><br></strong></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/16904" rel="nofollow external" class="bo">DC Zoo Bus Trip</a></strong></div>
    <div>Saturday, April 27, 2013</div>
    <div>Bus departs The Commons Circle @ 10:00 am</div>
    <div>All Guests = $5.00</div>
    <div><strong>We are on Ticket 37 of 49</strong></div>
    <div><strong><br></strong></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/16515" rel="nofollow external" class="bo">Iron Man 3 Midnight Premiere</a></strong></div>
    <div>Thursday, May 2, 2013</div>
    <div>Bus will begin shuttling from The Commons Circle @ 11:00 pm</div>
    <div>All Guests = $5.00</div>
    <div><strong>We are on Ticket 28 of 260</strong></div>
    <div><strong><br></strong></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/16519" rel="nofollow external" class="bo">Hiking Bus Trip</a></strong></div>
    <div>Sunday, May 5, 2013</div>
    <div>Bus departs The Commons Circle @ 9:00 am</div>
    <div>All Guests = $5.00</div>
    <div><strong>We are on Ticket 9 of 49</strong></div>
    <div><strong><br></strong></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/16482" rel="nofollow external" class="bo">Six Flags Bus Trip</a></strong></div>
    <div>Saturday, May 11, 2013</div>
    <div>Bus departs The Commons Circle @ 8:00 am</div>
    <div>All Guests = $35.00</div>
    <div><strong>We are on Ticket 13 of 53</strong></div>
    <div><strong><br></strong></div>
    <div><span><strong>The movie this week is </strong><span><a href="http://www.imdb.com/title/tt1321870/" rel="nofollow external" class="bo"><u>Gangster Squad</u></a></span><strong>, with showtimes on <a href="http://my.umbc.edu/groups/seb/events/16505" rel="nofollow external" class="bo">Thursday</a> at </strong><u><strong>10:00pm</strong></u><strong>, <a href="http://my.umbc.edu/groups/seb/events/16506" rel="nofollow external" class="bo">Friday</a> at 8:00pm and <a href="http://my.umbc.edu/groups/seb/events/16507" rel="nofollow external" class="bo">Saturday</a> at 8:00pm. Tickets are $2 and can be purchased at the CIC!<br><br></strong></span></div>
    </div>
]]>
</Body>
<Summary>South Asian Student Association Banquet    Wednesday, April 10, 2013  7:00 pm  University Center, Ballroom  SASA Banquet is SOLD OUT!     Freedom Alliance - Spring Drag Show  Saturday, April 13,...</Summary>
<Website>https://www.facebook.com/UMBC.CIC</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27359/guest@my.umbc.edu/a338925272d01d3584ebe56b0c24a528/api/pixel</TrackingUrl>
<Group token="cic">Campus Information Center (CIC)</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/cic</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/original.png?1318518699</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/large.png?1318518699</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/medium.png?1318518699</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/small.png?1318518699</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxsmall.png?1318518699</AvatarUrl>
<Sponsor>Campus Information Center (CIC)</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/xxlarge.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/xlarge.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/large.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/medium.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/small.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/xsmall.jpg?1365425198</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/027/359/a6a2b3e3c6569e69afe1e025d0ff8d1f/xxsmall.jpg?1365425198</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 08 Apr 2013 08:49:09 -0400</PostedAt>
</NewsItem>

</News>
