<?xml version="1.0"?>
<News hasArchived="true" page="8822" pageCount="10714" pageSize="10" timestamp="Sat, 04 Jul 2026 07:22:25 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8822">
<NewsItem contentIssues="true" id="28063" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28063">
<Title>GOOD Offers &#8216;Pop-Up&#8217; Fellowship to Social Entrepreneurs With Scalable Ideas</Title>
<Body>
<![CDATA[
    <div class="html-content">For social entrepreneurs looking to make an impact in the world beyond your own community, now's your chance.</div>
]]>
</Body>
<Summary>For social entrepreneurs looking to make an impact in the world beyond your own community, now's your chance.</Summary>
<Website>http://feedproxy.google.com/~r/YoungentrepreneurcomBlog/~3/BKraYq9UtBI/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28063/guest@my.umbc.edu/b3fba012e52c2dae27eb7d50be8df8a3/api/pixel</TrackingUrl>
<Tag>conferences</Tag>
<Tag>incubators</Tag>
<Tag>social-entrepreneurs</Tag>
<Tag>social-entrepreneurship</Tag>
<Tag>startup-business-ideas</Tag>
<Tag>startup-news</Tag>
<Tag>uncategorized</Tag>
<Tag>young-entrepreneurs</Tag>
<Group token="entrepreneurship">Alex. Brown Center for Entrepreneurship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/entrepreneurship</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/original.jpg?1771000363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/large.png?1771000363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/medium.png?1771000363</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/small.png?1771000363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxsmall.png?1771000363</AvatarUrl>
<Sponsor>The Alex. Brown Center for Entrepreneurship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 11:00:18 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28212" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28212">
<Title>GOOD Offers &#8216;Pop-Up&#8217; Fellowship to Social Entrepreneurs With Scalable Ideas</Title>
<Body>
<![CDATA[
    <div class="html-content">For social entrepreneurs looking to make an impact in the world beyond your own community, now's your chance.</div>
]]>
</Body>
<Summary>For social entrepreneurs looking to make an impact in the world beyond your own community, now's your chance.</Summary>
<Website>http://feedproxy.google.com/~r/YoungentrepreneurcomBlog/~3/1gFkyZwPPns/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28212/guest@my.umbc.edu/8e9b36a284bea116a226eb5a92836380/api/pixel</TrackingUrl>
<Tag>conferences</Tag>
<Tag>incubators</Tag>
<Tag>social-entrepreneurs</Tag>
<Tag>social-entrepreneurship</Tag>
<Tag>startup-business-ideas</Tag>
<Tag>startup-news</Tag>
<Tag>young-entrepreneurs</Tag>
<Group token="entrepreneurship">Alex. Brown Center for Entrepreneurship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/entrepreneurship</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/original.jpg?1771000363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/large.png?1771000363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/medium.png?1771000363</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/small.png?1771000363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxsmall.png?1771000363</AvatarUrl>
<Sponsor>The Alex. Brown Center for Entrepreneurship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 11:00:18 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28052" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28052">
<Title>An Art History Curatorial Project by Carlyn Thomas</Title>
<Tagline>Opening Reception on Thursday, May 2nd</Tagline>
<Body>
<![CDATA[
    <div class="html-content">Carlyn Thomas, a Visual Arts major in the Art History &amp; Museum 
    Studies concentration, is curating an art exhibition as part of her 
    senior thesis project. Carlyn has chosen to go the extra mile by 
    installing her exhibition at a gallery in downtown Baltimore. She is the
     first Art History &amp; Museum Studies student to do so. <br><br>Out of Mind, 
    the title of Carlyn’s curatorial project, features artwork by eight 
    contemporary artists who explore various states of mental distress from 
    depression and self-harm to phobias and bi-polar disorder. Out of Mind 
    will be on view at Gallery 788, located in downtown Baltimore, MD, from 
    May 2nd-11th. <br>
    According to Carlyn, “the artists featured in Out of Mind share a 
    deep-seated desire to bring public awareness to the subject of human 
    neuroses. Examining ways of coping with these ever-present difficulties 
    these artists aim to strike chords of recognition in viewers about what 
    it is to be human. The artists are rebelling against the fact that for 
    too long these neuroses have been repressed and feared because of the 
    archaic stigmas assigned to them. The works in the show make the point 
    that these neuroses and personal instabilities are everyday realities 
    that are within us all.”<br>
      <br>
    <strong>The Opening Reception is Thursday, May 2nd at 7-11PM<br>
    Gallery788, 218 West Saratoga St. Baltimore, MD 21201</strong><br>
      <br>
    At the opening reception Carlyn will give a curatorial talk about her 
    thesis and research and will conduct a walkthrough of the show. The talk
     and walkthrough will begin at 7 PM.<br>
      <br>
    Artists Featured in Out of Mind - Corinne May Botz, Lauren Castellana, 
    Ellie Dent, Chelsea Harman, Megan Lloyd, Michelle Pugliese, J. Marshall 
    Smith, Audrey Van De Castle.<br>
      <br>
    Gallery788 Hours: <br>
    Thursday + Friday 3-7PM<br>
    Saturday 12-6PM</div>
]]>
</Body>
<Summary>Carlyn Thomas, a Visual Arts major in the Art History &amp; Museum  Studies concentration, is curating an art exhibition as part of her  senior thesis project. Carlyn has chosen to go the extra...</Summary>
<AttachmentKind>Flyer</AttachmentKind>
<AttachmentUrl>https://assets3-my.umbc.edu/system/shared/attachments/46a2512f281e1a400b572a38deb6e8f8/6a48ecf1/news/000/028/052/5d293363c4be77f134214bec786e2feb/OutofMindFLYER.pdf?1366642468</AttachmentUrl>
<Attachments>
<Attachment kind="Flyer" url="https://my3.my.umbc.edu/posts/28052/attachments/9935"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28052/guest@my.umbc.edu/b9bd441aa786ea459ca8096f8655446e/api/pixel</TrackingUrl>
<Group token="shriver">The Shriver Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/shriver</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/original.jpg?1441293069</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/large.png?1441293069</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/medium.png?1441293069</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/small.png?1441293069</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxsmall.png?1441293069</AvatarUrl>
<Sponsor>Shriver Center:Intern, Co-op, Research &amp; Service-Learning</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/xxlarge.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/xlarge.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/large.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/medium.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/small.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/xsmall.jpg?1366642378</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/052/31bd2c1425f9766a5081c75efff468bd/xxsmall.jpg?1366642378</ThumbnailUrl>
<PawCount>6</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:54:28 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28060" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28060">
<Title>Meet the Connect Framework</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31220&amp;c=2075641542" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31220&amp;c=2075641542" alt="" style="max-width: 100%; height: auto;"></a><p>Newcomers to NodeJS typically find its API difficult to grasp. Luckily, many developers have created frameworks that make it easier to work with Node. <a href="http://www.senchalabs.org/connect/" rel="nofollow external" class="bo">Connect</a> is one such framework. It sits on top of Node’s API and draws the line between comfort and control.</p>
    <p></p>
    <p>Think of Connect as a stack of middleware. With every request, Connect filters through the layers of middleware, each having the opportunity to process the HTTP request. When T.J. Holowaychuk <a href="http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs" rel="nofollow external" class="bo">announced Connect</a>, he said there were two types of middleware. The first is a <em>filter</em>.</p>
    <blockquote><p>Filters process the request, but they do not respond to it (think of server logging).</p></blockquote>
    <p>The other type is a <em>provider</em>, which responds to the request. You can incorporate as many layers of middleware as you want; the request passes through each layer until one of the middleware responds to the request.</p>
    <hr>
    <h2>Basic Syntax</h2>
    <p>First, you need to install the Connect package through npm:</p>
    <pre>npm install connect&#x000A;    </pre>
    <p>Now create a <code>server.js</code> file, and add the following code:</p>
    <pre>var connect = require("connect");&#x000A;    </pre>
    <p>The <code>connect</code> variable is a function that returns a new Connect application. So, our next step is to create that app:</p>
    <pre>var app = connect();&#x000A;    </pre>
    <p>You don’t need to create an <code>app</code> variable for most of your applications. The functions involved in creating an application (<code>connect()</code> and <code>use()</code>) are chainable:</p>
    <pre>connect()&#x000A;        .use(/* middleware */)&#x000A;        .use(/* middleware */)&#x000A;        .listen(3000);&#x000A;    </pre>
    <p>The <code>use()</code> function adds a layer of middleware to the application, and the <code>listen()</code> function tells our application to begin accepting connections on the specified port (3000 in this example).</p>
    <p>Let’s start with something simple: logging. The code for a Connect application that uses only the logging middleware is rather simple:</p>
    <pre>connect()&#x000A;        .use(connect.logger())&#x000A;        .listen(3000);&#x000A;    </pre>
    <blockquote><p>By default, Node parses very little of the incoming request.</p></blockquote>
    <p>Add that code to your file, and start the server by running <code>node server.js</code>. Navigate to any path in your browser, and ignore the “Cannot GET …” results. We’re not interested in what the server sent back to the browser; we’re interested in the server’s log. Look at the terminal, and you’ll see the log of your requests. Be sure to check out the <a href="http://www.senchalabs.org/connect/logger.html" rel="nofollow external" class="bo">logger documentation</a> for information on its other features and customization.</p>
    <p>That was a filter; now let’s look at a provider. The simplest provider is the static provider; it serves static files from a specified folder. Here’s its syntax:</p>
    <pre>.use(connect.static(__dirname + "/public")&#x000A;    </pre>
    <p>You can probably guess the purpose of Node’s <code>__dirname</code> variable: it’s the path to the current directory. This middleware statically serves anything from a <code>public</code> folder in the current directory. So, create <code>public/page.html</code> and add an <code>&lt;h1&gt;</code> element. Restart the server (<code>node server.js</code>), and navigate to <code>localhost:3000/page.html</code> in your browser. You should <code>page.html</code> rendered in the browser.</p>
    <p>Let’s now take a quick look at some of Connect’s other middleware options.</p>
    <hr>
    <h2>Parsing Request Bodies</h2>
    <p>By default, Node parses very little of the incoming request, but you can incorporate several different filters to parse the request if you need to handle more complexity. There are four filters:</p>
    <ul>
    <li>
    <code>connect.json()</code> parses JSON request bodies (where the <code>content-type</code> is <code>application/json</code>).</li>
    <li>
    <code>connect.urlencoded()</code> parses <code>x-ww-form-urlencoded</code> request bodies.</li>
    <li>
    <code>connect.multipart()</code> parses <code>multipart/form-data</code> request bodies.</li>
    <li>
    <code>connect.bodyParser()</code> is a shortcut for enabling all of the three above.</li>
    </ul>
    <p>Using any of these filters gives you the ability to access your parsed body via <code>request.body</code> (we’ll talk about how to get that <code>request</code> object soon).</p>
    <p>I think these filters are a good example of how to fine-grain your control with Connect. You can use very little processing in order to streamline your application.</p>
    <hr>
    <h2>Parsing Cookies and Sessions</h2>
    <p>Cookies and sessions are an important part of any web application, and there are several pieces of middleware that help manage them. The <code>connect.cookieParser()</code> parses cookies for you, and you can retrieve the cookies and their values, via the <code>request.cookies</code> object. This is more useful if you add the <code>connect.session()</code> filter to your app. This filter requires the cookie parser to already be in place. Here’s a small example:</p>
    <pre>connect()&#x000A;        .use(connect.cookieParser())&#x000A;        .use(connect.session({ secret: 'some secret text', cookie: { maxAge: 30000 }}))&#x000A;        .use(function(req, res) {&#x000A;            var sess = req.session,&#x000A;                url = req.url.split("/");&#x000A;    &#x000A;        if (url[1] == "name" &amp;&amp; url[2]) {&#x000A;            sess.name = url[2];&#x000A;            res.end("name saved: " + url[2]);&#x000A;        } else if (sess.name) {&#x000A;            res.write("session-stored name: " + sess.name);    &#x000A;            res.end("stored for another: " + (sess.cookie.maxAge / 1000) + " seconds");&#x000A;        } else {&#x000A;            res.end("no stored name; go to /name/{name} to save a name");&#x000A;        }&#x000A;    }).listen(3000);&#x000A;    </pre>
    <blockquote><p>Every middleware function you write needs to either pass the request to the <code>next</code> layer or respond to the request.</p></blockquote>
    <p>After the <code>cookieParser</code>, we include the <code>session</code> filter and pass it a two options:</p>
    <ul>
    <li>The <code>secret</code> creates a signed cookie which keeps track of the session.</li>
    <li>The <code>cookie.maxAge</code> defines its life-span in milliseconds; the 30000 in this code is 30 seconds.</li>
    </ul>
    <p>In the final <code>use()</code> call, we pass a function that responds to the request. We use two properties from the <code>request</code> object: <code>req.session</code> for session data, and <code>req.url</code> for the request URL.</p>
    <p>If  the application receives a request for <code>/name/some_name</code>, then it stores the value <code>some_name</code> in <code>req.session.name</code>. Anything stored within a session can be retrieved in subsequent requests for the length of our session. Any requests made for <code>/name/other</code> replaces the session variable, and any requests to other URLs output the session variable’s value and the time left for the session.</p>
    <p>So, you can navigate to <code>localhost:3000/name/your_name</code>, and then go to <code>localhost:3000</code> to see <code>your_name</code>. Refresh the page a few times and watch the seconds count down. When the session expires, you’ll see the default “no stored name” message.</p>
    <p>I mentioned that the <code>cookieParser</code> filter must come before <code>session</code>.</p>
    <blockquote><p>The order of inclusion is important with middleware because the request is passed, in order, from layer to layer.</p></blockquote>
    <p>Because <code>session</code> needs the parsed cookie data, the request must go through <code>cookieParser</code> before <code>session</code>.</p>
    <p>I could explain every other built-in piece of middleware, but I’ll just mention a few more before we write our own code to interface with Connect.</p>
    <ul>
    <li>
    <a href="http://www.senchalabs.org/connect/compress.html" rel="nofollow external" class="bo">compress</a>: Gzip compression middleware</li>
    <li>
    <a href="http://www.senchalabs.org/connect/basicAuth.html" rel="nofollow external" class="bo">basicAuth</a>: basic http authentication</li>
    <li>
    <a href="http://www.senchalabs.org/connect/directory.html" rel="nofollow external" class="bo">directory</a>: directory listing middleware</li>
    <li>
    <a href="http://www.senchalabs.org/connect/errorHandler.html" rel="nofollow external" class="bo">errorHandler</a>: flexible error handler</li>
    </ul>
    <hr>
    <h2>Writing Your Own Middleware</h2>
    <p>You just learned how to write your own code with Connect. Here’s the basic syntax once again:</p>
    <pre>.use(function (req, res, next) {&#x000A;    &#x000A;    })&#x000A;    </pre>
    <p>The function’s three parameters are important; they provide access to the outside world. The <code>req</code> parameter is, of course, the request object, and <code>res</code> is the response. The third parameter, <code>next</code>, is the key to making functions that work well in the middleware stack. It’s a function that passes the request to the next middleware in the stack. See this example:</p>
    <pre>connect()&#x000A;        .use(function (req, res, next) {&#x000A;            if (req.method === 'POST') {&#x000A;                res.end("This is a POST request");&#x000A;            } else {&#x000A;                next();&#x000A;            }&#x000A;        })&#x000A;        .use(function (req, res) {&#x000A;            res.end("This is not a POST request (probably a GET request)");&#x000A;        }).listen(3000);&#x000A;    </pre>
    <p>This code uses two middleware functions. The first function checks the request method to see if it’s a POST request. If it is, it responds by saying so. Otherwise, we call <code>next()</code> and pass the request to the next function, which responds no matter what. Use <code>curl</code> to test both layers in the terminal:</p>
    <pre>$ curl <a href="http://localhost:3000">http://localhost:3000</a>&#x000A;    This is not a POST request (probably a GET request)&#x000A;    &#x000A;    $ curl -X POST <a href="http://localhost:3000">http://localhost:3000</a>&#x000A;    This is a POST request&#x000A;    </pre>
    <p>If you don’t like the terminal, try <a href="https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo" rel="nofollow external" class="bo">this useful Chrome plugin</a>.</p>
    <p>It’s important to remember that every middleware function you write needs to either pass the request to the <code>next</code> layer or respond to the request. If your function branches (via if statements or other conditionals), you must ensure that every branch passes the request or responds to it. If your app hangs in the browser, it’s probably because you forgot to call <code>next()</code> at some point.</p>
    <p>Now, what about those <code>request</code> and <code>response</code> parameters? These are the very same request and response objects you receive when using a “raw” Node server:</p>
    <pre>require("http").createServer(function (req, res) {&#x000A;        // ...&#x000A;    }).listen(3000);&#x000A;    </pre>
    <p>If you haven’t used Node’s server API before, let me show you what you can do with it.</p>
    <hr>
    <h2>The Request Object</h2>
    <p>The <code>request</code> object is actually an <code>http.IncomingMessage</code> object, and its important properties are listed below::</p>
    <ul>
    <li>
    <code>req.method</code> tells you which HTTP method was used.</li>
    <li>
    <code>req.url</code> tells you which URL was requested.</li>
    <li>
    <code>req.headers</code> is an object with the header names and values.</li>
    <li>
    <code>req.query</code> is an object with any data in a query string (to parse that, you’ll need the <code>connect.query()</code> middleware in place).</li>
    <li>
    <code>req.body</code> is an object of the form data (you’ll need some body parsing middleware in place).</li>
    <li>
    <code>req.cookies</code> is an object of the cookie data (requires cookie parsing).</li>
    <li>
    <code>req.session</code> is an object of the session data (again, you’ll need cookie parsing and session middleware in place)</li>
    </ul>
    <p>You can see all of this at work with the following code:</p>
    <pre>connect()&#x000A;        .use(connect.query()) // gives us req.query&#x000A;        .use(connect.bodyParser())  // gives us req.body&#x000A;        .use(connect.cookieParser()) // for session&#x000A;        .use(connect.session({ secret: "asdf" }))     // gives us req.session&#x000A;        .use(function (req, res) {&#x000A;            res.write("req.url: " + req.url + "\n\n");&#x000A;            res.write("req.method: " + req.method + "\n\n");&#x000A;            res.write("req.headers: " + JSON.stringify(req.headers) + "\n\n");&#x000A;            res.write("req.query: " + JSON.stringify(req.query) + "\n\n");&#x000A;            res.write("req.body: " + JSON.stringify(req.body) + "\n\n");&#x000A;            res.write("req.cookies: " + JSON.stringify(req.cookies) + "\n\n");&#x000A;            res.write("req.session: " + JSON.stringify(req.session));&#x000A;            res.end();&#x000A;        }).listen(3000);&#x000A;    </pre>
    <p>To see something for each one of these values, you need to post some data to a URL with a query string. The following should be enough:</p>
    <pre>curl -X POST -d "name=YourName" "<a href="http://localhost:3000/some/url?some=data">http://localhost:3000/some/url?some=data</a>"&#x000A;    </pre>
    <p>With those seven properties, you can manage just about any request you’ll receive. I don’t think trailers are used often (I’ve never seen them in my experience), but you can use <code>req.trailers</code> if you expect them in your requests (trailers are just like headers, but after the body).</p>
    <p>So, what about your response?</p>
    <hr>
    <h2>The Response Object</h2>
    <p>The raw response object doesn’t provide the luxuries that libraries (like Express) gives you. For example, you can’t respond with a simple render call to a premade template—at least, not by default. Very little is assumed in the response, so you need to fill in all the little details.</p>
    <p>We’ll start with the status code and the response headers. You can set these all at once using the <code>writeHead()</code> method. Here’s an example from the Node docs:</p>
    <pre>var body = 'hello world';&#x000A;    response.writeHead(200, {&#x000A;        'Content-Length': body.length,&#x000A;        'Content-Type': 'text/plain' &#x000A;    });&#x000A;    </pre>
    <p>If you need to individually set headers, you can use the <code>setHeader()</code> method:</p>
    <pre>connect()&#x000A;        .use(function (req, res) {&#x000A;            var accept = req.headers.accept.split(","),&#x000A;                body, type;&#x000A;                console.log(accept);&#x000A;            if (accept.indexOf("application/json") &amp;gt; -1) {&#x000A;                type = "application/json";&#x000A;                body = JSON.stringify({ message: "hello" });&#x000A;            } else if (accept.indexOf("text/html") &amp;gt; -1) {&#x000A;                type = "text/html";&#x000A;                body = "&lt;h1&gt; Hello! &lt;/h1&gt;";&#x000A;            } else {&#x000A;                type = "text/plain";&#x000A;                body = "hello!";&#x000A;            }&#x000A;            res.statusCode = 200;&#x000A;            res.setHeader("Content-Type", type);&#x000A;            res.end(body);&#x000A;        }).listen(3000);&#x000A;    </pre>
    <p>Add this code to a file, start up the server and request it from the browser. You got HTML! Now run:</p>
    <pre>curl <a href="http://localhost:3000">http://localhost:3000</a>&#x000A;    </pre>
    <p>And you’ll receive plain text. For JSON, try this:</p>
    <pre>curl -H "accept:application/json" <a href="http://localhost:3000">http://localhost:3000</a>&#x000A;    </pre>
    <p>All from the same URL!</p>
    <p>Use <code>res.getHeader(name)</code> if you need to know what headers have already been set. Tou can also use <code>res.removeHeader(name)</code> to remove a header.</p>
    <p>Of course, a response is useless without a body. As you’ve seen throughout this tutorial, you can write chunks of data to the body with the <code>res.write()</code> method. This accepts a string or <a href="http://nodejs.org/api/buffer.html" rel="nofollow external" class="bo">buffer</a> object as an argument. If it’s a string, the second parameter is the encoding type (it defaults to <code>utf8</code>).</p>
    <p>The <code>res.end()</code> method closes the body, but you can pass data to it to write to the response stream. This is useful in situations where you only need to output a single line.</p>
    <hr>
    <h2>Third-Party Middleware</h2>
    <p>It’s somewhat difficult to respond with larger HTML bodies in plain old Node and Connect. This is a good place to throw third-party middleware into the mix. You can find a list of third-party middleware <a href="https://github.com/senchalabs/connect/wiki" rel="nofollow external" class="bo">on the Connect Github wiki</a>. As an example, we’re going to use the <a href="https://github.com/Yitsushi/connect-jade" rel="nofollow external" class="bo">connect-jade package</a>, which allows us to render jade views.</p>
    <p>First, install <code>connect-jade</code>:</p>
    <pre>npm install connect-jade&#x000A;    </pre>
    <p>Next, require and add it as middleware. You’ll want to set a few default values:</p>
    <pre>var connect = require("connect"),&#x000A;        connectJade = require("connect-jade");&#x000A;    &#x000A;    connect()&#x000A;        .use(connectJade({&#x000A;            root: __dirname + "/views",&#x000A;            defaults: {&#x000A;                title: "MyApp"&#x000A;            }&#x000A;        }))&#x000A;        .use(function (req, res) {&#x000A;            res.render("index", { heading: "Welcome to My App" });&#x000A;        }).listen(3000);&#x000A;    </pre>
    <p>Set the root as the directory that contains the view files. You can also set <code>defaults</code>; these are variables that are available inside every view, unless we override them later when calling <code>render()</code>.</p>
    <p>The final function in this code makes a call to <code>res.render()</code>. This method is provided by the <code>connect-jade</code> package.</p>
    <blockquote><p>The first argument it accepts is the name of the view to render.</p></blockquote>
    <p>It’s the path to the view, <em>sans</em> the path that we defined when adding the middleware, <em>sans</em> the jade file extension. For this code, we need a <code>views/index.jade</code> template to render. We’ll keep it simple:</p>
    <pre>html&#x000A;      head&#x000A;        title= title&#x000A;      body&#x000A;        h1= heading&#x000A;    </pre>
    <p>If you’re not familiar with <a href="http://jade-lang.com/" rel="nofollow external" class="bo">jade</a>, we indent tag names to create an HTML structure. The equal sign retrieves the value of a JavaScript variable. Those variables come from the <code>defaults</code> we set up, plus the (optional) second parameter object passed to <code>res.render()</code>.</p>
    <p>There are many other <a href="https://github.com/senchalabs/connect/wiki" rel="nofollow external" class="bo">third-party middlewares</a>, but they work similar to each other. You install them via npm, require them and put them into action.</p>
    <hr>
    <h2>Modules as Middleware</h2>
    <p>If you dig into how Connect works, you’ll find that each layer is actually a Node module—a very intelligent design. If you use Connect for sizeable applications, it would be ideal to write your code in Node module format. You might have an <code>app.js</code> file like this:</p>
    <pre>// app.js&#x000A;    module.exports = function (req, res, next) {&#x000A;        res.end("this comes from a module");&#x000A;    };&#x000A;    </pre>
    <p>And in your <code>server.js</code>:</p>
    <pre>var connect = require("connect"),&#x000A;        app = require("./app");&#x000A;    &#x000A;    connect()&#x000A;        .use(app)&#x000A;        .listen(3000);&#x000A;    </pre>
    <hr>
    <h2>Conclusion</h2>
    <p>If you want a beginner-friendly library that makes it easy to build large web apps, then Connect isn’t your solution. Connect is meant to be a thin layer on top of the raw Node API that gives you complete control over your server application. If you want a bit more, I recommend <a href="http://expressjs.com/" rel="nofollow external" class="bo">Express</a> (by the same folks, incidentally). Otherwise, Connect is a fantastic, extensible library for Node web applications.</p>
    </div>
]]>
</Body>
<Summary>Newcomers to NodeJS typically find its API difficult to grasp. Luckily, many developers have created frameworks that make it easier to work with Node. Connect is one such framework. It sits on top...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/oKU4_qbFK0Q/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28060/guest@my.umbc.edu/104c97c66d52e914a729d0d9163facfc/api/pixel</TrackingUrl>
<Tag>connect</Tag>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>javascript-and-ajax</Tag>
<Tag>mysql</Tag>
<Tag>node</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:53:41 -0400</PostedAt>
<EditAt>Mon, 22 Apr 2013 10:53:41 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="110196" important="false" status="posted" url="https://my3.my.umbc.edu/posts/110196">
<Title>UMBC Graduate Student to Compete In U.S. Chess Championship</Title>
<Body>
<![CDATA[
    <div class="html-content">The 2013 U.S. Chess Championship has been scheduled for May 2 to 13 at the Chess Club &amp; Scholastic Center of St. Louis (CCSCSL), and UMBC graduate student, Sabina Foisor, has been invited to compete. Sabina, an international student from Romania and a Women’s Grandmaster, will be competing in her fifth consecutive U.S. Women’s Championship. She recently competed with the U.S. Women’s Team in the World Team Championships held in Astana, Kazakhstan and helped the UMBC Chess Team finish 3rd in the nation at the Final Four of Collegiate Chess the first weekend in April. Good luck, Sabina!</div>
]]>
</Body>
<Summary>The 2013 U.S. Chess Championship has been scheduled for May 2 to 13 at the Chess Club &amp; Scholastic Center of St. Louis (CCSCSL), and UMBC graduate student, Sabina Foisor, has been invited to...</Summary>
<Website>https://news.umbc.edu/umbc-graduate-student-to-compete-in-u-s-chess-championship/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/110196/guest@my.umbc.edu/fdd773036613084b7080ac4d0dd1decd/api/pixel</TrackingUrl>
<Tag>admin</Tag>
<Tag>community</Tag>
<Group token="umbc-news">UMBC News</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xsmall.png?1632921809</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/original.png?1632921809</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xxlarge.png?1632921809</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xlarge.png?1632921809</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/large.png?1632921809</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/medium.png?1632921809</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/small.png?1632921809</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xsmall.png?1632921809</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/001/944/2c79aeea85b1abb37f8cf9fbcdc382b0/xxsmall.png?1632921809</AvatarUrl>
<Sponsor>UMBC News</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:38:36 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28048" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28048">
<Title>Time to Vote!</Title>
<Tagline>Ballot Live until Wednesday at 11:59PM</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The SGA Election is finally here! This is YOUR time to make
    decisions about who among your peers will guide the student body and determine
    how to use your student fee money! </p>
    
    <p>You can vote through this group anytime between 12:01 a.m. on Monday to
    11:59 p.m. on Wednesday.  You can also stop by Main Street between 9 a.m.
    and 5 p.m. on Monday, Tuesday, and Wednesday to vote (and get a snack and a
    free tshirt!).</p>
    
    <p>Be sure to hit “VOTE” at the end of EACH PAGE to cast your ballot BEFORE
    you select “Go To Next Question.”</p>
    
    <p>If you have trouble voting please see the news item “Trouble Voting” for
    instructions.</p>
    
    <p><span>Learn more about the candidates at </span><a href="http://www.umbc.edu/studentvote" rel="nofollow external" class="bo"><span>www.umbc.edu/studentvote</span></a></p>
    
    </div>
]]>
</Body>
<Summary>The SGA Election is finally here! This is YOUR time to make decisions about who among your peers will guide the student body and determine how to use your student fee money!     You can vote...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28048/guest@my.umbc.edu/4d1251dc552be5bc11fd665b1fc51e23/api/pixel</TrackingUrl>
<Group token="retired-598">SGA Election 2013</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-598</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/xsmall.png?1366221609</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/original.jpg?1366221609</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/xxlarge.png?1366221609</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/xlarge.png?1366221609</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/large.png?1366221609</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/medium.png?1366221609</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/small.png?1366221609</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/xsmall.png?1366221609</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/598/6d3b4379cb470122a94f95b809910011/xxsmall.png?1366221609</AvatarUrl>
<Sponsor>SGA Election 2013</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/xxlarge.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/xlarge.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/large.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/medium.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/small.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/xsmall.jpg?1366640895</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/028/048/517fc8ecad583e1ddb8f5764ddf8834f/xxsmall.jpg?1366640895</ThumbnailUrl>
<PawCount>64</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:29:22 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28047" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28047">
<Title>New Health IT Internship</Title>
<Tagline>Apply Today at Northrop Grumman!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p> </p>
    <p><br></p>
    <p>At Northrop Grumman, our work with cutting-edge technology is driven by something human: the</p>
    <p>lives our technology protects.  We’re united by our work to help people. And that mission makes our</p>
    <p>team even stronger. </p>
    <p>Join us and you’ll be supported by training, employee resource groups, and our shared vision of global</p>
    <p>security. We see the value of our performance every day. We are Northrop Grumman. And excellence <span>is</span><strong> at the heart of what we do.</strong></p>
    <p><strong> </strong></p>
    <p><strong>Attention Health IT students seeking an internship opportunity: </strong>Our<strong> Woodlawn, MD </strong>office is seeking</p>
    <p>Health IT Technical College Interns who will be responsible for various entry-level technical responsibilities.</p>
    <p> </p>
    <p>To be eligible for this internship opportunity, you must be currently enrolled in a relevant accredited</p>
    <p>college/university degree program pursuing a Bachelor’s, Master’s, or PhD. <strong>Requirements include:</strong></p>
    <p><span>·</span><span>        </span>Must have a GPA of 3.0 or higher and are currently attending an accredited college/ university and</p>
    <p>obtaining a degree in a technical discipline</p>
    <p><span>·</span><span>        </span>Strong written and verbal communication skills</p>
    <ul>
    <li>Solid organizational abilities</li>
    </ul>
    <p><span>·</span><span>        </span>MS Office proficiency</p>
    <ul>
    <li>Must be able to obtain a Position of Trust designation  </li>
    </ul>
    <p>If you are a <span><strong>flexible self-starter</strong></span> looking for a <span><strong>challenging</strong></span> opportunity to work with a team of talented experts,<span>here is your opportunity. </span><span>It’s easy - </span><span><strong>apply</strong></span><span> to requisition #</span><strong>13001050</strong><span> via the </span><a href="https://ngc.taleo.net/careersection/ngc_coll/jobsearch.ftl?lang=en" rel="nofollow external" class="bo">Students and New Grad portal</a><span> located </span><span>on our </span><a href="http://careers.northropgrumman.com/" rel="nofollow external" class="bo">Careers</a><span> page.</span></p>
    <p><span><br></span></p>
    <p>Check out other full time and internships on the  <a href="https://ngc.taleo.net/careersection/ngc_coll/jobsearch.ftl?lang=en" rel="nofollow external" class="bo">Students and New Grad portal</a> today</p>
    <p>**Please note you must be a US citizen to be considered </p>
    </div>
]]>
</Body>
<Summary>        At Northrop Grumman, our work with cutting-edge technology is driven by something human: the   lives our technology protects.  We’re united by our work to help people. And that mission...</Summary>
<Website>http://www.northropgrumman.com/Careers/Pages/default.aspx</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28047/guest@my.umbc.edu/d25e82785c0c4e390d98574651fc5ac5/api/pixel</TrackingUrl>
<Group token="shriver">The Shriver Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/shriver</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/original.jpg?1441293069</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xlarge.png?1441293069</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/large.png?1441293069</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/medium.png?1441293069</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/small.png?1441293069</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xsmall.png?1441293069</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/008/0bfad113286cf6b1bc6dedbdbfc7e5ef/xxsmall.png?1441293069</AvatarUrl>
<Sponsor>Shriver Center:Intern, Co-op, Research &amp; Service-Learning</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/xxlarge.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/xlarge.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/large.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/medium.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/small.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/xsmall.jpg?1366640422</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/047/1821ea1543b5ea73c52fc5c746840b16/xxsmall.jpg?1366640422</ThumbnailUrl>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:21:30 -0400</PostedAt>
<EditAt>Mon, 22 Apr 2013 10:22:14 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="28071" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28071">
<Title>Use shame.css to house CSS hacks, says dev</Title>
<Body>
<![CDATA[
    <div class="html-content">Harry Roberts outlines process to balance quick fixes and clean CSS<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fuse-shamecss-house-css-hacks-says-dev-132699&amp;t=Use+shame.css+to+house+CSS+hacks%2C+says+dev" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fuse-shamecss-house-css-hacks-says-dev-132699&amp;t=Use+shame.css+to+house+CSS+hacks%2C+says+dev" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fuse-shamecss-house-css-hacks-says-dev-132699&amp;t=Use+shame.css+to+house+CSS+hacks%2C+says+dev" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fuse-shamecss-house-css-hacks-says-dev-132699&amp;t=Use+shame.css+to+house+CSS+hacks%2C+says+dev" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fuse-shamecss-house-css-hacks-says-dev-132699&amp;t=Use+shame.css+to+house+CSS+hacks%2C+says+dev" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/164016249576/u/49/f/502346/c/32632/s/2b070d97/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/164016249576/u/49/f/502346/c/32632/s/2b070d97/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Harry Roberts outlines process to balance quick fixes and clean CSS     </Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/g7NAuwxDE-8/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28071/guest@my.umbc.edu/69b10a0ae23f7865930599b62dde778d/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:09:33 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28045" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28045">
<Title>URCAD Research Profile: Service-Learning &amp; Civic-Mindedness</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <h5>by Kathleen Algire-Fedarcyk</h5>
    <div><br></div>
    <div><span>As a social work major, I like the idea of service-learning. But does engaging in service-learning make a student more community-oriented or civic-minded? With support from Social Work professor Jessica Guzman-Rea, I developed and carried out a research project to explore ... <a href="http://umbcbreakingground.wordpress.com/2013/04/22/urcad-research-profile-does-service-learning-result-in-civic-mindedness/" rel="nofollow external" class="bo">(continue reading)</a></span></div>
    </div>
]]>
</Body>
<Summary>by Kathleen Algire-Fedarcyk     As a social work major, I like the idea of service-learning. But does engaging in service-learning make a student more community-oriented or civic-minded? With...</Summary>
<Website>http://umbcbreakingground.wordpress.com/2013/04/22/urcad-research-profile-does-service-learning-result-in-civic-mindedness/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28045/guest@my.umbc.edu/3461e1400ab6bd17fc93ad26b5bcec2f/api/pixel</TrackingUrl>
<Group token="bg">UMBC BreakingGround</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/bg</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xsmall.png?1360169927</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/original.png?1360169927</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xxlarge.png?1360169927</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xlarge.png?1360169927</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/large.png?1360169927</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/medium.png?1360169927</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/small.png?1360169927</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xsmall.png?1360169927</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xxsmall.png?1360169927</AvatarUrl>
<Sponsor>UMBC BreakingGround</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/xxlarge.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/xlarge.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/large.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/medium.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/small.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/xsmall.jpg?1366639387</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/028/045/da84b5e0e99f3999917feb3a31afec8d/xxsmall.jpg?1366639387</ThumbnailUrl>
<PawCount>7</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:04:23 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="28051" important="false" status="posted" url="https://my3.my.umbc.edu/posts/28051">
<Title>Why Future Entrepreneurs Should Invest in College</Title>
<Body>
<![CDATA[
    <div class="html-content">It's a perennial question, but a tough one all the same. As early May marks the deadline for when many future young treps will need to decide if going to college is right for them, here are a few key considerations.</div>
]]>
</Body>
<Summary>It's a perennial question, but a tough one all the same. As early May marks the deadline for when many future young treps will need to decide if going to college is right for them, here are a few...</Summary>
<Website>http://feedproxy.google.com/~r/YoungentrepreneurcomBlog/~3/A-hK98l4HvI/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/28051/guest@my.umbc.edu/869f397ff17fcfcd40577c63e89ed006/api/pixel</TrackingUrl>
<Tag>business-planning</Tag>
<Tag>business-skills</Tag>
<Tag>college-entrepreneurs</Tag>
<Tag>colleges</Tag>
<Tag>entrepreneurship-courses</Tag>
<Tag>marketing-ideas</Tag>
<Tag>on-campus</Tag>
<Group token="entrepreneurship">Alex. Brown Center for Entrepreneurship</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/entrepreneurship</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/original.jpg?1771000363</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xlarge.png?1771000363</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/large.png?1771000363</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/medium.png?1771000363</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/small.png?1771000363</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xsmall.png?1771000363</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/092/53c03b106bdc6e19e4bf0a41b5a37add/xxsmall.png?1771000363</AvatarUrl>
<Sponsor>The Alex. Brown Center for Entrepreneurship</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 22 Apr 2013 10:00:04 -0400</PostedAt>
<EditAt>Mon, 22 Apr 2013 10:00:04 -0400</EditAt>
</NewsItem>

</News>
