<?xml version="1.0"?>
<News hasArchived="true" page="8681" pageCount="10885" pageSize="10" timestamp="Sun, 18 Oct 2026 07:53:10 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8681&amp;range=30">
<NewsItem contentIssues="false" id="32851" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32851">
<Title>Jottn - Todo List</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>This is Gallery image</p>
    <p><img alt="feature" height="305" src="/imagesvr_ce/8096/071713.png" width="509" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>This is Gallery image</Summary>
<Website>http://www.htmlgoodies.com/HTML5/gallery/jottn-todo-list-130715153039.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32851/guest@my.umbc.edu/f9fd82aa9e609ae54fd63da3bec92b2e/api/pixel</TrackingUrl>
<Tag>html</Tag>
<Tag>htmlgoodies</Tag>
<Tag>learning</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, 15 Jul 2013 18:28:09 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="32647" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32647">
<Title>Building Apps With the Yeoman Workflow</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=33254&amp;c=839470030" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=33254&amp;c=839470030" alt="" style="max-width: 100%; height: auto;"></a><h2>What Is Yeoman?</h2>
    <p>Trick question. It’s not a thing. It’s this guy:</p>
    <p></p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/yo.png" alt="yo" width="595" height="681" style="max-width: 100%; height: auto;"><br> <p>Basically, he wears a top hat, lives in your computer, and waits for you to tell him what kind of application you wish to create. As an example, scaffolding a web application would look something like this:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/yo-webapp.png" alt="yo-webapp" width="595" height="445" style="max-width: 100%; height: auto;"><br> <p>The first thing that comes to mind is OMG so dreamy. Second, thanks, bro.</p>
    <p>All we did was tell him what we wanted and he replied with specific questions to give us even more control.</p>
    <p>Let’s go back a step, though. Not every new computer comes with a Yeoman pre-installed. He lives in the NPM package repository. You only have to ask for him once, then he packs up and moves into your hard drive. <em>Make sure you clean up, he likes new and shiny things.</em></p>
    <p>He’s a person with feelings and opinions, but he’s very easy to work with. If you think he’s too opinionated, he can be easily convinced.</p>
    <p>Let’s take a second to break apart what that <code>yo webapp</code> command, from the previous screenshot really did.</p>
    <h3><code>yo</code></h3>
    <p>This is an OS X, Linux, and Windows friendly system-wide command that scours your hard drive for any installed “generators,” then gives them control based on the next argument:</p>
    <h3><code>webapp</code></h3>
    <p>This is actually a separate plug-in, or “generator,” called <code>generator-webapp</code>. Yeoman recognizes other <code>generator-____</code> Node modules, which opens the door for using Backbone, AngularJS, and countless other you-name-it generators.</p>
    <p>Something important to take away from this is, it’s the <code>generator-webapp</code> module that prompts us with questions. The same goes for any other generators we install. They are maintained by the community, not necessarily the Yeoman team members themselves.</p>
    <p>By using Yeoman, you’re not saying “I want to do things your way, master. <em>bow</em> <em>bow</em>,” without having any control. It’s actually quite the opposite. What you’re really saying is, “I want to make an application that follows best practices that have been discovered by frequent users and contributors of the web development community.”</p>
    <p>Seriously, you have to say it just like that, or it won’t work.</p>
    <p>Should you prefer to do something differently than what he gives you, you simply change the code that was generated for you, or even go to the source of the “generator” itself, and send in your contribution.</p>
    <hr>
    <h2>Friendship</h2>
    <p>Our buddy, yo has some buddies of his own, and thinks you’ll all get along over endless tea and smiles. If you haven’t heard of <a href="http://gruntjs.com" rel="nofollow external" class="bo">Grunt</a> or <a href="http://bower.io" rel="nofollow external" class="bo">Bower</a>, here’s a quick summary of what these give us:</p>
    <h3>Grunt</h3>
    <p>Grunt is a JavaScript-based task runner, that does the dirty stuff. Like <code>yo</code>, it also provides a base set of functionality, then allows the community to share their own plug-ins, or “tasks” that help accomplish common things. When you scaffold your application with <code>yo webapp</code>, Grunt and some hand-picked tasks will come along, which accomplish things like running your website in a local development environment, concatenating and minifying your code, optimizing your images, and much more. Tasks are run through the command line, by typing <code>grunt server</code>, <code>grunt build</code>, <code>grunt test</code>, and many more.</p>
    <p>Tasks are defined and customized in a <code>Gruntfile.js</code> file, which lives in the root directory of your project. Check it out to see what Yeoman set up for you.</p>
    <h3>Bower</h3>
    <p>Nobody likes going to GitHub or random developers’ sites to download a .zip of a JavaScript tool. Like when fetching a Node package with <code>npm install ___</code>, Bower lets you say <code>bower install ___</code>. The component is then saved in a directory of your choosing, generally, <code>app/bower_components/</code> for Yeoman-generated apps. Assuming you wanted jQuery, you would run the <code>bower install query</code> command, then include the relevant file inside of your HTML file. In our case, <code>&lt;script src="bower_components/jquery/jquery.js"&gt;&lt;/script&gt;</code></p>
    <hr>
    <h2>A Typical Application</h2>
    <p>Let’s get wild. It’s time to create an app.</p>
    <p>Real quick though, find your nearest terminal and make sure you have <code>yo</code> installed globally:</p>
    <pre>$ npm install -g yo</pre>
    <p>To generate a web app, you’ll also need <code>generator-webapp</code>:</p>
    <pre>$ npm install -g generator-webapp</pre>
    <p>Create a folder we can play around in, then run:</p>
    <pre>$ yo webapp</pre>
    <p>Here’s what should have happened:</p>
    <ul><li>A whole buncha stuff.</li></ul>
    <p>Did it? Good!</p>
    <p>To prevent you from scrolling up through all of the text that was just spit out at you, here’s an overview:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/yo-webapp-long.png" alt="yo-webapp-long" width="595" height="764" style="max-width: 100%; height: auto;"><br> <p>The new web application was scaffolded and your Bower components and NPM packages were automatically installed.</p>
    <p>Open all this new stuff in your favorite editor, and we’ll look over what we have.</p>
    <pre>├─ app/&#x000A;    │  ├─ images/&#x000A;    │  │  ├─ glyphicons-halflings.png&#x000A;    │  │  └─ glyphicons-halflings-white.png&#x000A;    │  ├─ scripts/&#x000A;    │  │  ├─ vendor/&#x000A;    │  │  │  └─ bootstrap.js&#x000A;    │  │  ├─ app.js&#x000A;    │  │  ├─ hello.coffee&#x000A;    │  │  └─ main.js&#x000A;    │  ├─ styles/&#x000A;    │  │  └─ main.css&#x000A;    │  ├─ .htaccess&#x000A;    │  ├─ 404.html&#x000A;    │  ├─ favicon.ico&#x000A;    │  ├─ index.html&#x000A;    │  └─ robots.txt&#x000A;    │&#x000A;    ├─ node_modules/&#x000A;    │  ├─ so/&#x000A;    │  ├─ many/&#x000A;    │  └─ packages/&#x000A;    │&#x000A;    ├─ test/&#x000A;    │  ├─ spec/&#x000A;    │  │  └─ test.js&#x000A;    │  ├─ .bowerrc&#x000A;    │  ├─ bower.json&#x000A;    │  └─ index.html&#x000A;    │&#x000A;    ├─ .bowerrc&#x000A;    ├─ .editorconfig&#x000A;    ├─ .gitattributes&#x000A;    ├─ .gitignore&#x000A;    ├─ .jshintrc&#x000A;    ├─ bower.json&#x000A;    ├─ Gruntfile.js&#x000A;    └─ package.json&#x000A;    </pre>
    <p>If you take anything away from this article, let it be the beautiful file/folder text representation above. That just took a whole Mountain Dew of my time.</p>
    <p>Back on track. What you’re looking at is the most common application structure a Yeoman generator will produce.</p>
    <ul>
    <li>
    <code>app/</code> is where your pure, non-compiled, non-minified source code lives.</li>
    <li>
    <code>app/scripts/</code> is where your JavaScript goes. You’re free to create sub-directories and even use CoffeeScript if that’s your cup of tea. That didn’t make sense. Again. You’re free to use TeaScript if that’s your cup of coffee. Nope.</li>
    <li>
    <code>app/styles/</code> is where your CSS goes. Again, sub-directories, LESS, Sass, whatevs.</li>
    <li>
    <code>app/index.html</code> is the non-minified version of <code>index.html</code> that will eventually be squashed and delivered to the client. More on that later.</li>
    <li>
    <code>Gruntfile.js</code> has all of the build, server, and test tasks defined.</li>
    </ul>
    <p>At this point, <code>yo</code> has done his job. He’s given you everything you need to launch a production-ready web application. Let’s now shift our focus to what Grunt tasks he’s pre-configured for us.</p>
    <h3><code>grunt build</code></h3>
    <p>Running <code>grunt build</code> takes your <code>app/</code> source code files and turns them into a distributable application, which ends up in <code>dist/</code>.</p>
    <p>That <code>dist/</code> folder is what you feed to your server. <code>dist/</code> will have it’s own <code>index.html</code>, with references to minified and concatenated <code>dist/scripts</code> and <code>dist/styles</code>, and optimized <code>dist/images</code>. Your users will appreciate this. Your phone-card, dial-up users will <strong>really</strong> appreciate this.</p>
    <p>Behind the scenes, <code>grunt build</code> is a task that runs several sub-tasks. One of those is <a href="https://github.com/yeoman/grunt-usemin" rel="nofollow external" class="bo"><code>grunt-usemin</code></a>, which looks for blocks inside of your <code>app/index.html</code>, like this:</p>
    <p><code>app/index.html</code></p>
    <pre>&lt;!-- build:js scripts/main.js --&gt;&#x000A;    &lt;script src="bower_components/jquery/jquery.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/main.js"&gt;&lt;/script&gt;&#x000A;    &lt;!-- endbuild --&gt;&#x000A;    </pre>
    <p>After your <code>grunt build</code> task completes, you will end up with this:</p>
    <p><code>dist/index.html</code></p>
    <pre>&lt;script src="scripts/c155266f.main.js"&gt;&lt;/script&gt;&#x000A;    </pre>
    <p>It sucked those scripts up, concatenated, minified, and even prefixed them with unique hashes to prevent browsers from caching outdated versions. Quite powerful.</p>
    <p>That’s one of the shining features about using Yeoman. Instead of manually defining what you want your build process to do each time you create an application, you can just place some trust in Yo and your chosen generator. Together, they’ll wire you up with everything you need to launch a production-ready application.</p>
    <h3><code>grunt server</code></h3>
    <p>Now that you’ve seen what type of work <code>grunt build</code> will do when your application is complete, you should probably start working on your application! We’ll create one together in just a sec, but first let’s see what kind of workflow we’ll have. Like <code>grunt build</code>, <code>grunt server</code> uses several other Grunt tasks to make development as easy as it can be.</p>
    <p>Try it out:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/yo-webapp-grunt-server.png" alt="yo-webapp-grunt-server" width="595" height="528" style="max-width: 100%; height: auto;"><br> <p>The aforementioned “several other Grunt tasks” are:</p>
    <ul>
    <li>
    <code>clean:</code> Yeoman stores some stuff in a <code>.tmp</code> folder. That will be wiped out.</li>
    <li>
    <code>coffee:</code> Compiles your CoffeeScript files from <code>app/scripts</code>.</li>
    <li>
    <code>compass:</code> Compiles your Sass files from <code>app/styles</code>.</li>
    <li>
    <code>connect:</code> Creates a local server, watches for changes to your source files, then triggers a reload in your browser.</li>
    <li>
    <code>open:</code> Opens the server instance, typically <code>localhost:9000</code> in your browser.</li>
    </ul>
    <p>Make an edit or two in the source files to see the change reflected in the browser. Like I said above, this is about as easy as it can be. It just works.</p>
    <hr>
    <h2>Let’s App It Up!</h2>
    <p>I of course meant appetizers. Grab some cheese sticks, then meet me in a little bit.</p>
    <p><em>Wash your hands!</em></p>
    <hr>
    <h2>Let’s Create an Application</h2>
    <p>To get a feel for some other Yeoman generators, let’s try out Backbone. We’ll create a simple To Do app, use Bower for our dependencies, and introduce you to a real-life workflow with Yeoman.</p>
    <p><code>$ Sound good? (Y/n)</code></p>
    <p>I’ll assume you entered “Y”. We ride! But first:</p>
    <pre># install the Backbone generator:&#x000A;    $ npm install -g generator-backbone&#x000A;    &#x000A;    # make another play directory, then do these things:&#x000A;    $ yo backbone&#x000A;    &#x000A;         _-----_&#x000A;        |       |&#x000A;        |--(o)--|   .--------------------------.&#x000A;       `---------´  |    Welcome to Yeoman,    |&#x000A;        ( _´U`_ )   |   ladies and gentlemen!  |&#x000A;        /___A___\   '__________________________'&#x000A;         |  ~  |&#x000A;       __'.___.'__&#x000A;     ´   `  |° ´ Y `&#x000A;    &#x000A;    Out of the box I include HTML5 Boilerplate, jQuery, Backbone.js and Modernizr.&#x000A;    &#x000A;    Would you like to include Twitter Bootstrap for Sass? (y/N) Yes&#x000A;    Would you like to include RequireJS (for AMD support)? (y/N) No&#x000A;    </pre>
    <p>Open the new app in your editor. Things should feel quite familiar after our experience with the web app generator. You still have an <code>app</code> directory, with <code>scripts/</code>, <code>styles/</code> and an <code>index.html</code>.</p>
    <p>Before we start editing files, run:</p>
    <pre>$ grunt server</pre>
    <p>As we talked about earlier, this starts the server, sets up watches on our files, blah blah yipsie-doodle. Your browser should open, and you should be greeted with:</p>
    <h3>‘Allo, ‘Allo!</h3>
    <p>Well, shoot, we have to keep that. It’s just so nice. However, let’s clear out the other stuff.</p>
    <p><code>index.html</code></p>
    <pre>&lt;div class="container"&gt;&#x000A;        &lt;div class="hero-unit"&gt;&#x000A;            &lt;h1&gt;'Allo, 'Allo!&lt;/h1&gt;&#x000A;            &lt;section id="todo-app"&gt;&#x000A;                &lt;!-- Where our To Do app will go --&gt;&#x000A;            &lt;/section&gt;&#x000A;        &lt;/div&gt;&#x000A;    &lt;/div&gt;&#x000A;    </pre>
    <p>When you save, your browser will refresh, and there we have it! Just a simple, warm “‘Allo, ‘Allo”.</p>
    <p>Let’s get ourselves a game plan. We know we’re going to create a To Do app, but what might that look like? Will we need any other libraries to help us?</p>
    <p>Hmm.</p>
    <p>It’s been at least 4 seconds, and I haven’t heard any answers.</p>
    <p>Alright, I’m gonna grab another Dew after that file tree drank my last one. I’ll let you know if I think of anything.</p>
    <hr>
    <h2>To Do: Set Up Our File Structure</h2>
    <p>B3. A terrible slot in a vending machine for a carbonated drink. Fizz, foam, disaster.</p>
    <p>While I was in the bathroom washing my hands, I had a vision.</p>
    <pre>[ Add a New To Do ] ← input&#x000A;    &#x000A;    checkbox&#x000A;    - clicking will draw a line through the title of the to do item&#x000A;     ↓&#x000A;    [x] To Do Item #1&#x000A;    [ ] To Do Item #2&#x000A;        ↑ title&#x000A;          - double clicking will trigger an "edit" mode&#x000A;    </pre>
    <p>Or…</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/vision-big.png" alt="vision-big" width="600" height="473" style="max-width: 100%; height: auto;"><br> <p>Let’s set ourselves up with a structure that will bring this vision to life.</p>
    <p><code>generator-backbone</code> came with some secret weapons: sub-generators. <code>yo backbone</code> scaffolded our application, but flip back to your terminal and check out what these guys can do:</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/todo-generate-models.png" alt="todo-generate-models" width="600" height="352" style="max-width: 100%; height: auto;"><br> <p>Check out your index.html:</p>
    <pre>&lt;!-- build:js scripts/main.js --&gt;&#x000A;    &lt;script src="scripts/main.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/templates.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/collections/todos-collection.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/models/todo-model.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/views/todos-view.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="scripts/views/todo-view.js"&gt;&lt;/script&gt;&#x000A;    &lt;!-- endbuild --&gt;&#x000A;    </pre>
    <p>How ’bout that! It not only created and placed files in relevant directories, it even included them in your HTML for you.</p>
    <p>I’ve created a repository for our To Do application — <a href="https://github.com/addyosmani/yeoman-examples/tree/master/backbone-localStorage-todos" rel="nofollow external" class="bo">go check it out</a>. We’ll take a glance at the files together, but please refer to the repository to get the full code.</p>
    <h3><code>scripts/main.js</code></h3>
    <pre>/*global backboneApp, $*/&#x000A;    &#x000A;    window.backboneApp = {&#x000A;        Models: {},&#x000A;        Collections: {},&#x000A;        Views: {},&#x000A;        Routers: {},&#x000A;        init: function () {&#x000A;            new this.Views.TodosView({&#x000A;                collection: new this.Collections.TodosCollection()&#x000A;            });&#x000A;        }&#x000A;    };&#x000A;    &#x000A;    $(document).ready(function () {&#x000A;        backboneApp.init();&#x000A;    });&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>The Backbone generator is establishing some good practices you can use right out of the box. It took the name of your directory, in my case “backboneApp”, and exposed an object literal to hold the Models, Collections, and other Backbone objects we may create.</p>
    <p>The generator also incorporates <a href="http://www.jshint.com" rel="nofollow external" class="bo">JSHint</a> into your app’s build process, making sure your code is of the highest, most consistent quality. You are encouraged to customize your preferences inside the <code>.jshintrc</code> file in the root of your project’s directory.</p>
    <p>Finally, <code>$(document).ready</code> will call <code>backboneApp.init</code>, which creates a <code>TodosCollection</code>, then passes it into a <code>TodosView</code>. I’ll go over these in more detail soon.</p>
    <h3><code>scripts/collections/todos-collection.js</code></h3>
    <pre>/*global backboneApp, Backbone*/&#x000A;    &#x000A;    backboneApp.Collections.TodosCollection = Backbone.Collection.extend({&#x000A;    &#x000A;        localStorage: new Backbone.LocalStorage('backbone-generator-todos'),&#x000A;    &#x000A;        initialize: function () {&#x000A;            this.model = backboneApp.Models.TodoModel;&#x000A;        }&#x000A;    &#x000A;    });&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>If we want our To Do app to be somewhat usable, we have to store our To Do items somewhere. There’s a handy Backbone adapter you may be familiar with called Backbone.LocalStorage. It will intercept Backbone’s calls to the default remote backend and use your browser’s <code>window.localStorage</code> instead.</p>
    <p>We know we’ll need the Backbone.LocalStorage adapter, but where should we go to get it? Idea! Idea!</p>
    <p>We haven’t made much use of Bower directly. When our application was scaffolded, Bower was used behind the scenes to grab Modernizr, Twitter Bootstrap, jQuery, Underscore, and Backbone. But, what if we want to add in another JavaScript dependency?</p>
    <p>Go back to your favorite terminal and try this:</p>
    <pre>$ bower search backbone</pre> <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/bower-search-backbone.png" alt="bower-search-backbone" width="596" height="768" style="max-width: 100%; height: auto;"><br> <p>Ok, wow. That’s… a lot. Maybe we should narrow that down.</p>
    <pre>$ bower search backbone.localstorage&#x000A;    Search results:&#x000A;    &#x000A;        backbone.localStorage <a href="git://github.com/jeromegn/Backbone.localStorage.git">git://github.com/jeromegn/Backbone.localStorage.git</a>&#x000A;    </pre>
    <p>There we go. Now we just have to install it.</p>
    <pre>$ bower install backbone.localStorage --save&#x000A;    bower cloning <a href="git://github.com/jeromegn/Backbone.localStorage.git">git://github.com/jeromegn/Backbone.localStorage.git</a>&#x000A;    bower cached <a href="git://github.com/jeromegn/Backbone.localStorage.git">git://github.com/jeromegn/Backbone.localStorage.git</a>&#x000A;    bower fetching backbone.localStorage&#x000A;    bower checking out backbone.localStorage#v1.1.4&#x000A;    bower installing backbone.localStorage#v1.1.4&#x000A;    </pre>
    <p>When working with multiple developers, it can be troublesome assuring everyone has the correct dependencies and matching versions. By using <code>--save</code> above, we are telling Bower to remember this new dependency, then write about it in our <code>bower.json</code> file. When another developer clones your project, they just have to run <code>bower install</code> to download every dependency, keeping everyone in sync. That’s why <code>app/bower_components</code> is listed in your <code>.gitignore</code> file. Gone are the days of bloated repositories!</p>
    <p>Now that Bower has <em>awesomed</em> all over our application, go into <code>app/index.html</code> and update the <code>scripts/vendor.js</code> comment block:</p>
    <pre>&lt;!-- build:js scripts/vendor.js --&gt;&#x000A;    &lt;script src="bower_components/jquery/jquery.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="bower_components/underscore/underscore.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="bower_components/backbone/backbone.js"&gt;&lt;/script&gt;&#x000A;    &lt;script src="bower_components/backbone.localStorage/backbone.localStorage.js"&gt;&lt;/script&gt;&#x000A;    &lt;!-- endbuild --&gt;&#x000A;    </pre>
    <p>When you save the file, your browser will refresh and you’ll have the new library ready to use. More specifically, <code>TodosCollection</code> will have it ready to use.</p>
    <h3><code>scripts/collections/todo-model.js</code></h3>
    <pre>/*global backboneApp, Backbone*/&#x000A;    &#x000A;    backboneApp.Models.TodoModel = Backbone.Model.extend({&#x000A;    &#x000A;        defaults: {&#x000A;            title: '',&#x000A;            completed: false&#x000A;        },&#x000A;    &#x000A;        toggle: function () {&#x000A;            this.save({&#x000A;                completed: !this.get('completed')&#x000A;            });&#x000A;        }&#x000A;    &#x000A;    });&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>This is a pretty basic Backbone Model. We set some default properties for our To Do items and define a <code>toggle</code> function, simply used to switch between a “Complete” or “Incomplete” state.</p>
    <h3><code>scripts/views/todos-view.js</code></h3>
    <pre>/*global backboneApp, Backbone, JST*/&#x000A;    &#x000A;    backboneApp.Views.TodosView = Backbone.View.extend({&#x000A;    &#x000A;        el: '#todo-app',&#x000A;    &#x000A;        template: JST['app/scripts/templates/todos.ejs'],&#x000A;    &#x000A;        events: { /* ... */ },&#x000A;    &#x000A;        initialize: function () { /* ... */ },&#x000A;    &#x000A;        render: function () { /* ... */ },&#x000A;    &#x000A;        createTodo: function () { /* ... */ },&#x000A;    &#x000A;        addTodoItem: function () { /* ... */ },&#x000A;    &#x000A;        addAllTodoItems: function () { /* ... */ }&#x000A;    &#x000A;    });&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>This is our most robust Backbone View, so to see the definitions to these various properties and methods, please refer to the <a href="https://github.com/addyosmani/yeoman-examples/tree/master/backbone-localStorage-todos" rel="nofollow external" class="bo">repository</a>.</p>
    <p>However, here are a couple key things:</p>
    <pre>el: '#todo-app'</pre>
    <p>This selector matches that <code>&lt;section id="todo-app"&gt;&lt;/section&gt;</code> element we created in our <code>index.html</code> file. This will be our primary View.</p>
    <pre>template: JST['app/scripts/templates/todos.ejs']</pre>
    <p>This little JST thing snuck in when we said <code>yo backbone:view ____</code>. When our View’s JavaScript file was created, the Backbone sub-generator created a matching template file for us: <code>app/scripts/templates/todos.ejs</code>.</p>
    <p>These <code>.ejs</code> template files will define our Views’ HTML. When we run our app with <code>grunt server</code> or <code>grunt build</code>, our template files will be crushed together into a JavaScript object, <code>JST</code>. When our view file says <code>template: JST['path/to/view/template.ejs']</code>, this is referring to that object.</p>
    <h3><code>scripts/templates/todos.ejs</code></h3>
    <pre>&lt;form class="input-append"&gt;&#x000A;        &lt;input type="text" id="new-todo" placeholder="What do you need to do today?"&gt;&#x000A;        &lt;input type="submit" class="btn" value="Submit"&gt;&#x000A;    &lt;/form&gt;&#x000A;    &lt;ul&gt;&#x000A;        &lt;!-- Where our To Do items will go --&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>Because we answered “Yes” to including Twitter Bootstrap for Sass when we scaffolded our application, I’ve added a couple of class names to pretty up our app. Feel free to style to your heart’s content in the <code>styles/main.scss</code> file.</p>
    <h3><code>styles/main.scss</code></h3>
    <pre>@import 'sass-bootstrap/lib/bootstrap';&#x000A;    &#x000A;    .hero-unit {&#x000A;        margin: 50px auto 0 auto;&#x000A;        width: 300px;&#x000A;    }&#x000A;    &#x000A;    form {&#x000A;        margin-top: 10px;&#x000A;    }&#x000A;    &#x000A;    ul,&#x000A;    li form {&#x000A;        margin: 0;&#x000A;        padding: 0;&#x000A;    }&#x000A;    &#x000A;    ul {&#x000A;        list-style: none;&#x000A;    }&#x000A;    &#x000A;    li form {&#x000A;        display: none;&#x000A;    }&#x000A;    &#x000A;    .editing {&#x000A;        span {&#x000A;            display: none;&#x000A;        }&#x000A;    &#x000A;        form {&#x000A;            display: inline-block;&#x000A;        }&#x000A;    }&#x000A;    &#x000A;    input:checked ~ span {&#x000A;        text-decoration: line-through;&#x000A;    }&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>Sass is pretty cool.</p>
    <p>Also, it’s pretty cool that the browser still reloads when you make a change to your Sass files. If you’ve used Sass before, you know it can be a hassle to get a productive development environment set up quickly. Out of the Yeoman box, you’re editing, watching, and reloading with none of the aforementioned hassle. Smiley face.</p>
    <h3><code>scripts/views/todo-view.js</code></h3>
    <pre>/*global backboneApp, Backbone, JST*/&#x000A;    &#x000A;    backboneApp.Views.TodoView = Backbone.View.extend({&#x000A;    &#x000A;        tagName: 'li',&#x000A;    &#x000A;        template: JST['app/scripts/templates/todo.ejs'],&#x000A;    &#x000A;        events: {&#x000A;            'click input[type="checkbox"]': 'toggle',&#x000A;            'dblclick span': 'toggleEdit',&#x000A;            'submit form': 'toggleEdit'&#x000A;        },&#x000A;    &#x000A;        initialize: function () { /* ... */ },&#x000A;    &#x000A;        render: function () { /* ... */ },&#x000A;    &#x000A;        toggle: function () { /* ... */ },&#x000A;    &#x000A;        toggleEdit: function () { /* ... */ }&#x000A;    &#x000A;    });&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>This <code>TodoView</code> will represent an individual item. It will be an <code>&lt;li&gt;</code> with some custom functionality handling click, double click, and submit events, enabling a user to edit and save a To Do item.</p>
    <h3><code>scripts/templates/todo.ejs</code></h3>
    <pre>&lt;input type="checkbox" &lt;% if (completed) { %&gt;checked&lt;% } %&gt;&gt;&#x000A;    &lt;form&gt;&#x000A;        &lt;input type="text" value="&lt;%= title %&gt;"&gt;&#x000A;    &lt;/form&gt;&#x000A;    &lt;span&gt;&#x000A;        &lt;%= title %&gt;&#x000A;    &lt;/span&gt;&#x000A;    </pre>
    <h4>Thoughts</h4>
    <p>Simple enough. We’re using some basic Underscore templating to spit out values and toggle a <code>checked</code> state on our checkbox.</p>
    <hr>
    <h2>To Do: Do It Again</h2>
    <p>Our To Do application is actually done! It’s quite basic in functionality, but you should have a sense of how natural it is to develop an application using Yeoman and his Generator buddies. And even though the functionality is basic, none of the techniques we used to get here were “basic.” We’re using smart, efficient libraries (Sass, Backbone, Underscore) with a finely-tuned development process (Grunt, LiveReload, Compass), and it took us only a few terminal commands.</p>
    <p>If you’re like me, you probably want to stop with the To Do stuff and start making your own applications. If you want to go play around, go for it! When you’re done generating like a crazy person, come back and let’s ship our To Do app.</p>
    <hr>
    <h2>To Do: Ship It</h2>
    <p>Let’s put this thing in the water and see if she floats! Do NOT put your computer in the water. Wait, would a MacBook Air float? No, probably not. Hmm…</p>
    <p>That was a dangerous paragraph. Let’s just get our app ready for production, safe and dry.</p>
    <p><code>grunt server</code> has been amazing, but it’s time to meet his brother, <code>grunt build</code>. We talked about him a bit earlier, but let’s go over a few more details.</p>
    <p>Here is what the <code>grunt build</code> task is defined as in your <code>Gruntfile.js</code>:</p>
    <pre>grunt.registerTask('build', [&#x000A;        'clean:dist',    // Clears out your .tmp/ and dist/ folders&#x000A;        'coffee',        // Compiles your CoffeeScript files (if any)&#x000A;        'createDefaultTemplate', // Creates a JS file that sets up your JST object&#x000A;        'jst',           // Compiles your `scripts/templates/` files&#x000A;        'compass:dist',  // Compiles your Sassiness&#x000A;        'useminPrepare', // Looks for those &lt;!-- special blocks --&gt; in your HTML&#x000A;        'imagemin',      // Optimizes your images!&#x000A;        'htmlmin',       // Minifies your HTML files&#x000A;        'concat',        // Task used to concatenate your JS and CSS&#x000A;        'cssmin',        // Minifies your CSS files&#x000A;        'uglify',        // Task used to minify your JS&#x000A;        'copy',          // Copies files from .tmp/ and app/ into dist/&#x000A;        'rev',           // Creates unique hashes and re-names your new JS/CSS files&#x000A;        'usemin'         // Updates the references in your HTML with the new files&#x000A;    ]);&#x000A;    </pre>
    <p>So, that thing is pretty legit. All of these tasks are defined inside of <code>Gruntfile.js</code>, so feel free to poke and tweak around to customize your application’s build. It’s highly likely you won’t need to do any customization at all, but it’s there if you need to.</p>
    <p>Oh, one other thing. <code>grunt build</code> is actually wrapped inside of another task.</p>
    <h3><code>grunt</code></h3>
    <p>Simply running <code>grunt</code> will execute the <code>default</code> task:</p>
    <pre>grunt.registerTask('default', [&#x000A;        'jshint',&#x000A;        'test',&#x000A;        'build'&#x000A;    ]);</pre>
    <p>Those first two tasks, <code>jshint</code> and <code>test</code> are easy to overlook when rushing an app out the door, but are very important.</p>
    <h3>JSHint</h3>
    <p>The <code>jshint</code> task will consult with your <code>.jshintrc</code> file to learn your preferences, then scan through all of your JS files to make sure your rules are abided by. To get the full run down of your options with JSHint, check <a href="http://www.jshint.com/docs/#options" rel="nofollow external" class="bo">the JSHint documentation</a>.</p>
    <h3>Test</h3>
    <p>The <code>test</code> task looks like this:</p>
    <pre>grunt.registerTask('test', [&#x000A;        'clean:server',&#x000A;        'coffee',&#x000A;        'createDefaultTemplate',&#x000A;        'jst',&#x000A;        'compass',&#x000A;        'connect:test',&#x000A;        'mocha'&#x000A;    ]);</pre>
    <p>It basically does enough to create and serve your application for your test framework, Mocha, to execute your tests.</p>
    <p>Oh crap, tests.</p>
    <p>Next door to your <code>app/</code> and <code>dist/</code> directories, this little <code>test/</code> buckaroo has been waiting for our attention. Aww.</p>
    <p>If you open that up, you’ll see <code>test/</code> has its own <code>bower.json</code> and <code>index.html</code>, as well as a <code>spec/</code> directory. Your tests will have some dependencies of their own, the <a href="http://chaijs.com" rel="nofollow external" class="bo">Chai Assertion Library</a> and <a href="http://visionmedia.github.io/mocha" rel="nofollow external" class="bo">Mocha testing framework</a>.</p>
    <p>Expand that <code>spec/</code> directory and you’ll see a <code>test.js</code> file that looks something like this:</p>
    <pre>/*global describe, it */&#x000A;    'use strict';&#x000A;    &#x000A;    (function () {&#x000A;        describe('Give it some context', function () {&#x000A;            describe('maybe a bit more context here', function () {&#x000A;                it('should run here few assertions', function () {&#x000A;    &#x000A;                });&#x000A;            });&#x000A;        });&#x000A;    })();&#x000A;    </pre>
    <p>Ok, looks like we could use <a href="https://github.com/yeoman/generator-backbone/pulls" rel="nofollow external" class="bo">a pull request</a> to correct some grammar. Anybody?</p>
    <p>If you haven’t written your own tests before, you’ll see terms like <code>describe</code>, <code>it</code>, <code>before</code>, <code>beforeEach</code>, <code>after</code>, and <code>afterEach</code> pop up. <code>describe</code> is a wrapper for a group of related tests, <code>____Each</code> are optional functions that will execute <code>before</code> or <code>after</code> your test(s), and each <code>it</code> is a specific test.</p>
    <p>Try running a <code>grunt test</code> to see all the magic unfold.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/todo-grunt-test.png" alt="todo-grunt-test" width="595" height="603" style="max-width: 100%; height: auto;"><br> <p>You should play around and see if you can write some tests for our To Do application. A few ideas for test cases might be:</p>
    <ul>
    <li>Does creating a new To Do item get saved in localStorage?</li>
    <li>Does a new To Do item’s title get trimmed (removing extra whitespace)?</li>
    <li>When editing a To Do item, does deleting the title, then saving remove the To Do item from localStorage?</li>
    </ul>
    <p>There’s only one more thing to do.</p>
    <h3>Press Enter</h3>
    <pre>$ grunt</pre>
    <p>You should see our favorite words: <code>Done, without errors.</code></p>
    <hr>
    <h2>Finding Yeoman</h2>
    <p>Yeoman is still quite young; he just turned one! Things are pretty great now and they’re only going to get better. However, like all one year olds, Yeoman is still learning to walk without falling, and talk without drooling. You just might run into a bug or two. In times like these, think of him like your cute little nephew. He needs positive role models in his life, so help him learn!</p>
    <p>That got real children’s book-y, real fast. I’ll grow it up a little: there are bugs and we need your help to squash the doody out of them (I said “a little”). Even if it’s not a bug, but you’re like, “I know a MUCH faster Grunt plug-in this generator could use,” report it to the appropriate generator’s issue tracker.</p>
    <p>If you want to learn some more about Yeoman or just get to know the team, you’ll find us peppered all over the following sites.</p>
    <ul>
    <li><a href="http://yeoman.io" rel="nofollow external" class="bo">yeoman.io</a></li>
    <li><a href="http://yeoman.io/gettingstarted.html" rel="nofollow external" class="bo">Getting Started Guide</a></li>
    <li><a href="http://twitter.com/yeoman" rel="nofollow external" class="bo">@yeoman on Twitter</a></li>
    <li><a href="https://plus.google.com/101063139999404044459" rel="nofollow external" class="bo">+Yeoman on Google+</a></li>
    </ul>
    <p>If you’re just plain stuck, try one of the following resources for a helping hand.</p>
    <ul>
    <li><a href="http://stackoverflow.com/questions/tagged/yeoman" rel="nofollow external" class="bo">StackOverflow</a></li>
    <li><a href="http://webchat.freenode.net/?channels=yeoman" rel="nofollow external" class="bo">#yeoman on IRC</a></li>
    </ul>
    <p>Yeoman is just one piece of the entire stack— <a href="http://npmjs.org" rel="nofollow external" class="bo">NPM</a>, <a href="http://nodejs.org" rel="nofollow external" class="bo">Node</a>, <a href="http://gruntjs.com" rel="nofollow external" class="bo">Grunt</a>, and <a href="http://bower.io" rel="nofollow external" class="bo">Bower</a>. It can be intimidating if you’re unfamiliar with these, but it is crucial not to fear the curve! Learning will need to happen, and like always, it will probably need to happen the hard way before it really sticks.</p>
    <p>Psst, if you’re using <code>sudo</code> before every command, run, don’t walk, to <a href="https://gist.github.com/isaacs/579814" rel="nofollow external" class="bo">Node and NPM in 30 Seconds</a>. There, you’ll find several scripts you can run to give control back to your user account. It will also help you install Node and NPM if you’re starting from scratch.</p>
    <hr>
    <h2>Yo’ Next Application – Will You Yo?</h2>
    <p>Like all tools, I believe Yeoman is something every developer should try. If you give it a shot and find it’s not suitable for your task, I and the rest of the team would love to hear why. If you need a buddy to help you with your project, come find me. I’m always available around the links above, or just ping me on Twitter. I’m <a href="http://twitter.com/stephenplusplus" rel="nofollow external" class="bo">@stephenplusplus</a> or Stephen Sawchuk.</p>  <img src="http://cdn.tutsplus.com/net.tutsplus.com/uploads/2013/07/me.jpg" alt="me" width="600" height="600" style="max-width: 100%; height: auto;"><br> <p>Nice to meet you.</p>
    </div>
]]>
</Body>
<Summary>What Is Yeoman?  Trick question. It’s not a thing. It’s this guy:       Basically, he wears a top hat, lives in your computer, and waits for you to tell him what kind of application you wish to...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/Oh5sYujC6DQ/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32647/guest@my.umbc.edu/dac75e942e255f7a14291a8cbea0db8e/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>javascript-and-ajax</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tools-and-tips</Tag>
<Tag>tutorials</Tag>
<Tag>wed</Tag>
<Tag>yeoman</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, 15 Jul 2013 18:04:09 -0400</PostedAt>
<EditAt>Mon, 15 Jul 2013 18:04:09 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="110095" important="false" status="posted" url="https://my3.my.umbc.edu/posts/110095">
<Title>Hydrologist Claire Welty, CUERE, takes NBC Learn on a tour of Baltimore&#8217;s urban streams, The Baltimore Sun</Title>
<Body>
<![CDATA[
    <div class="html-content">“NBC Learn, an educational division of the television network, came to Baltimore recently to report on how the physical alteration of streams in urban areas makes it that much harder for them to handle polluted storm-water runoff. It highlights research on area streams that’s being led by Claire Welty, a hydrologist at University of Maryland Baltimore County,” writes Tim Wheeler of the Baltimore Sun. Welty, the Director, Center for Urban Environmental Research and Education (CUERE) and professor of chemical, biochemical, and environmental engineering takes NBC Learn on a tour of Baltimore’s streams. “With NBC correspondent Anne Thompson narrating, Welty shows …</div>
]]>
</Body>
<Summary>“NBC Learn, an educational division of the television network, came to Baltimore recently to report on how the physical alteration of streams in urban areas makes it that much harder for them to...</Summary>
<Website>https://news.umbc.edu/hydrologist-claire-welty-cuere-takes-nbc-learn-on-a-tour-of-baltimores-urban-streams-the-baltimore-sun/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/110095/guest@my.umbc.edu/07f41d7a14a08b832e42979ef6f15c1a/api/pixel</TrackingUrl>
<Tag>science-and-technology</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, 15 Jul 2013 14:46:24 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="123188" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123188">
<Title>Robert Deluty, Graduate School, Interviewed for Boloji.com</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="Robert Deluty, UMBC" src="http://www.umbc.edu/psyc/personal/deluty/robert.gif" width="174" height="252" style="max-width: 100%; height: auto;">In an interview with Boloji.com, one of India’s most popular e-magazines, UMBC’s Robert Deluty revealed the origins of his transformation into a poet and shared a few select pieces spanning more than 20 years.</p>
    <p>According to Dr. Deluty, associate dean of the graduate school, he did not discover his talent for writing poetry until he was in his late 30’s when he adapted a “long-winded, self-righteous, and boring” essay into his first published poem expressing his views on entitlement. It was published in <em>The Baltimore Evening Sun</em> newspaper.</p>
    <p>Surprisingly, however, it was his 30-plus years as a psychology professor and practicing clinician that drew him to pursue poetry. “When I provide therapy as a psychologist and when I write poetry, my goals are typically the same: to connect with my audience, to relieve burdens, and to promote greater awareness and insight,” said Deluty.</p>
    <p>Deluty’s poems and essays have been published in newspapers, journals, and anthologies such as <em>The Wall Street Journal</em>, <em>Modern Haiku</em>, <em>Psychiatric Times</em> and the <em>Journal of Poetry Therapy</em>. His 42<sup>nd</sup> book, <em>Saluting from the Shore</em>, will be published in August 2013.</p>
    <p><a title="An Interview with Dr. Robert H. Deluty" href="http://www.boloji.com/index.cfm?md=Content&amp;sd=Articles&amp;ArticleID=14660" rel="nofollow external" class="bo">Read the full interview »</a></p>
    </div>
]]>
</Body>
<Summary>In an interview with Boloji.com, one of India’s most popular e-magazines, UMBC’s Robert Deluty revealed the origins of his transformation into a poet and shared a few select pieces spanning more...</Summary>
<Website>https://umbc.edu/stories/robert-deluty-graduate-school-interviewed-for-boloji-com/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123188/guest@my.umbc.edu/18c2b4fc36577db5d5f7fd7b369108ac/api/pixel</TrackingUrl>
<Tag>admin</Tag>
<Tag>cahss</Tag>
<Tag>policy-and-society</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 15 Jul 2013 14:33:26 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="123189" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123189">
<Title>Career Q&amp;A: Executive Director Brigitte Pribnow Moore &#8217;05, theatre</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img width="150" height="150" src="https://umbc.edu/wp-content/uploads/2013/07/brigitte-moore-150x150.jpg" alt="" style="max-width: 100%; height: auto;"><p><em>Every so often, we’ll chat with an alum about what they do and how they got there. Today, we’re talking with executive director of Young Playwrights’ Theater, <strong>Brigitte Pribnow Moore ’05, theatre, </strong>about what it’s like to combine multiple interests and skills into one awesome career. </em></p>
    <p><strong><a href="/wp-content/uploads/2013/07/brigitte-moore.jpg" rel="nofollow external" class="bo"><img src="/wp-content/uploads/2013/07/brigitte-moore.jpg?w=300" alt="Brigitte Moore" width="300" height="200" style="max-width: 100%; height: auto;"></a>Name:</strong> Brigitte Pribnow Moore<br>
    <strong>Job Title:</strong> Executive Director<br>
    <strong>Employer:</strong> <a href="www.yptdc.org" rel="nofollow external" class="bo">Young Playwrights’ Theater</a><br>
    <strong>Scholarships Received at UMBC:</strong> UMBC University Fellow 2001-2005</p>
    <p><strong>Q:  </strong><em>Tell us a little about how you wound up at UMBC. What’s your background?</em></p>
    <p>I came to UMBC from a small town in Connecticut. I knew I wanted to study theatre, and I heard that UMBC’s BFA in Acting program was a “hidden gem.” I came out for an audition and I fell in love. The year I started at UMBC, the theatre department was a small program with a brilliant faculty providing rigorous artistic training, and producing innovative, high-quality performances with fairly limited resources. It has been such a joy watching UMBC’s theatre program grow in resources and recognition over the past decade, and the new Performing Arts and Humanities Building is a beautiful addition to the campus. I am so excited to see what future theatre students create and share in that space.</p>
    <p><strong>Q:  </strong><em>You’ve been able to combine multiple loves/skills into a career. How did you figure out that you wanted to do all those things, and do you have any advice for other folks who find themselves with multiple, diverse career interests?</em></p>
    <p>I left UMBC with an incredible artistic education, but I also had the opportunity to explore a wealth of liberal arts courses outside my department. I spent my time at UMBC completing my theatre degree, but I also took classes that ranged from political science, to film history, to statistics, to non-western civilizations. I participated in volunteer and part-time work outside UMBC that complemented my interests, serving on political campaigns and writing and editing a weekly newsletter for a statewide advocacy organization. When I graduated, I did not have a solid career plan, but I had a rich and varied academic foundation, a network of community contacts in Baltimore and DC, and a strong sense of the impact I wanted to have on the world. I didn’t leave UMBC with a career goal. I left with a mission. And that mission carried me through almost a decade of diverse jobs that included working on union organizing campaigns, serving as the legislative director for two Maryland state delegates, and, ultimately, running Young Playwrights’ Theater.</p>
    <p>My advice for other folks with a variety of interests: don’t put yourself in a box. Dive deep and excel in your major, but dare to take classes outside your discipline, and to engage boldly with the rich and diverse off-campus community that surrounds UMBC. Also, wait on grad school until you have worked for a few years and know exactly what, if anything, you need to learn to succeed in your career. If you’re like me, you may not be where you expected, and your evolving interests and needs may surprise you.</p>
    <p><strong>Q:  </strong><em>Tell us about your career. Were there any lessons you learned, in particular, at UMBC that you carried with you into your work?</em></p>
    <p>I currently serve as the Executive Director of Young Playwrights’ Theater, a DC-based nonprofit that uses the arts to inspire young people to realize the power of their own voices and stories. I feel incredibly lucky to have found myself in a career that allows me to make a living doing something I love, and my time at UMBC was instrumental in helping me to discover and pursue and my dreams. The study of theatre is, at its heart, the study of what it means to be human – to relate and connect with others and to ponder and pursue one’s place in the world. My classes taught me a great deal about the art of theatre, but they also taught me the art of empathy, critical and analytical thinking, and persuasive communication. I left UMBC with an intellectual and interpersonal toolkit that helped me in every professional task I took on – from writing an impactful speech for a political candidate, to inspiring a donor to support a cause, to effectively leveraging the talents of a professional team.</p>
    <p><strong>Q:  </strong><em>Is there a particular class or professor who really inspired you?</em></p>
    <p>All of them? Seriously, the UMBC theatre department employs such brilliant, talented, and caring instructors. I felt privileged to know and learn from each of them. I did have a particularly inspiring experience in a directing class I took with Christopher Owens. I learned so much about the power of good stories, and I discovered that I was happiest and most comfortable in artistic and professional roles that allowed me to direct people and resources toward a big picture vision. That class was transformational for me.</p>
    <p><strong>Q:  </strong><em>What advice would you give to students considering UMBC?</em></p>
    <p>Pull your application materials together and send them along. UMBC is special place with a wealth of opportunities to learn and explore with gifted, caring professors and a diverse, talented community of students. You won’t regret your decision.</p>
    </div>
]]>
</Body>
<Summary>Every so often, we’ll chat with an alum about what they do and how they got there. Today, we’re talking with executive director of Young Playwrights’ Theater, Brigitte Pribnow Moore ’05, theatre,...</Summary>
<Website>https://umbc.edu/stories/executive-director-brigitte-pribnow-moore/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123189/guest@my.umbc.edu/9e0c0d235f91b3d9a43dd430a4d19846/api/pixel</TrackingUrl>
<Tag>alumni</Tag>
<Tag>baltimore</Tag>
<Tag>career-q-and-a</Tag>
<Tag>christopher-owens</Tag>
<Tag>maryland</Tag>
<Tag>performing-arts</Tag>
<Tag>theatre</Tag>
<Tag>umbc</Tag>
<Tag>university-of-maryland-baltimore-county</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 15 Jul 2013 14:30:31 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="32643" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32643">
<Title>MashUp</Title>
<Body>
<![CDATA[
    <div class="html-content">See the device that may be the answer for absentminded people everywhere and other cool gadgets.</div>
]]>
</Body>
<Summary>See the device that may be the answer for absentminded people everywhere and other cool gadgets.</Summary>
<Website>http://www.oracle.com/technetwork/issue-archive/2013/13-jul/o43mashup-1958792.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32643/guest@my.umbc.edu/b18f45e618bfc2d04bdbc88cbc5b7349/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>pl-sql</Tag>
<Tag>sql</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, 15 Jul 2013 14:06:12 -0400</PostedAt>
<EditAt>Mon, 15 Jul 2013 14:06:12 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="32637" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32637">
<Title>New Executive Committee Members</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <span><span>Meet the new members of the Phi Kappa Phi Executive Committee<br> <br> President-Elect:  Simon P. Stacey<br>
              Simon Stacey came to UMBC in 2005 as a Visiting Assistant 
    Professor in the Department of Political Science.  He served as the 
    Associate Director of the Honors College from 2007 to 2011 and was 
    appointed Director in 2012.  Simon holds a doctoral degree from the 
    Department of Politics at Princet<span>on 
    University and a bachelor’s degree from the University of the 
    Witwatersrand in South Africa.  He is recognized as a dynamic classroom 
    teacher, who has advised hundreds of students and organized numerous 
    programs and co-curricular activities.<br> <br> Vice President—UMBC:  Jonathan C. Finkelstein<br>
     	Jonathan Finkelstein is Associate Dean, Emeritus, of the College of 
    Arts, Humanities and Social Sciences and a charter member of the UM-UMBC
     chapter.  He received his Ph.D. in Social Psychology from the 
    University of Chicago.  Jonathan began his career at UMBC as Assistant 
    Professor of Psychology in 1971 and was promoted to Associate Professor 
    in 1977.  He served as Associate Chair of the Department of Psychology 
    before becoming Associate Dean of the former College of Arts and 
    Sciences.  Jonathan has been recognized for outstanding teaching, and he
     received an award for mentoring from students in Psychology.  <br> <br> Student Vice President: Chinwendu Amazu<br>
     	Chinwendu Amazu is a Meyerhoff Scholar at UMBC majoring in 
    Biochemistry whose professional goal is to earn an MD and Ph.D. in the 
    biomedical sciences.  She has served as a Research Intern at the 
    University of Maryland School of Medicine, at the Washington University 
    School of Medicine in St. Louis, and at the Johns Hopkins Bloomberg 
    School of Public Health.  Chinwe has participated in several research 
    conferences in biochemistry, and she is co-author of a forthcoming 
    publication. <br> <br> These new members join the current members of the Executive Committee:<br> Marilyn Demorest, President<br> </span></span></span><span><span><span><span><span><span>Eileen Patton, Past President<br> </span></span></span>Deirdre Parsons, Vice-President UM<br> </span></span></span><span><span><span>Kelsey Krach, Student Vice-President</span></span></span><br><span><span><span><span><span><span>Connie Pierson, Secretary</span></span></span><br>Beth Wells, Public Relations Officer<br></span></span></span><span><span><span>Maureen Mccormick, </span></span></span><span><span><span>Scholarships and Awards Officer<br>Peter Andes, Executive Committee Assistant</span></span></span><br>
    </div>
]]>
</Body>
<Summary>Meet the new members of the Phi Kappa Phi Executive Committee    President-Elect:  Simon P. Stacey            Simon Stacey came to UMBC in 2005 as a Visiting Assistant  Professor in the Department...</Summary>
<AttachmentKind>Photo</AttachmentKind>
<AttachmentUrl>https://assets2-my.umbc.edu/system/shared/attachments/4401fb74d6aa4d7b155a86769ab2f70e/6ad4b326/news/000/032/637/fef98f01e3e52383bec61a7136d4ecb9/965637_479489065468412_303160605_o.jpg?1373905733</AttachmentUrl>
<Attachments>
<Attachment kind="Photo" url="https://my3.my.umbc.edu/posts/32637/attachments/10425"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32637/guest@my.umbc.edu/bd4cc2b9c5fa8e96cdda8dc0041d4033/api/pixel</TrackingUrl>
<Group token="phikappaphi">The Honor Society of  Phi Kappa Phi </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/phikappaphi</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/xsmall.png?1285100670</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/original.png?1285100670</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/xxlarge.png?1285100670</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/xlarge.png?1285100670</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/large.png?1285100670</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/medium.png?1285100670</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/small.png?1285100670</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/xsmall.png?1285100670</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/083/acb5d1120b8a0b8d3d97905ba9a72dc4/xxsmall.png?1285100670</AvatarUrl>
<Sponsor>The Honor Society of  Phi Kappa Phi</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 15 Jul 2013 12:27:38 -0400</PostedAt>
<EditAt>Wed, 17 Jul 2013 16:08:43 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="32635" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32635">
<Title>Poll Results: Light-on-Dark is Preferred</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="http://css-tricks.com/new-poll-light-on-dark-or-dark-on-light/" rel="nofollow external" class="bo">This poll asked</a> people if they like their code editor colors "dark code on light background" or "light code on dark background." Turns out about 2/3 of people prefer light code on dark background. </p>
    <p></p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2013/07/preferred.jpg" alt="" style="max-width: 100%; height: auto;">
    <p>For the first several days after the Poll ran, light-on-dark was winning by a landslide with 90 or more percent. But over the last month, it has settled into 63% of people preferring it and 37% preferring dark-on-light. </p>
    <p>Personally I'm surprised it went as low as 63%. In all the places I've worked and places I've visited and such, rarely do I see a coder working in dark-on-light in their actual code editor. In blog posts and the like, dark-on-light is more common for whatever reason. Probably to be more consistent with the writing in which dark-on-light is nearly ubiquitously preferred.</p>
    <p>Now that we have some numbers on preference, it's interesting to think about why it is that way. Especially in contrast to writing. Is it because there just happens to be more quality light-on-dark themes available? Is it easier on the eyes for longer periods? Is dark-on-light actually easier to read but harder on the eyes? Is there something about the brain and the type of thinking that coding requires that prefers more dark? Is it the environments around the computer screen that encourage more dark? <a href="http://css-tricks.com/new-poll-light-on-dark-or-dark-on-light/#comment-472986" rel="nofollow external" class="bo">Jeremy wonders</a> if corrected vision plays a role. Does age play a role? Are there more connections to be found between how people prefer it and other factors?</p>
    <p>Normally I let polls run a little longer but I have another idea ready so look for a new poll in the next day or so.</p>
    <hr>
    
    <p><small><a href="http://css-tricks.com/poll-results-light-on-dark-is-preferred/" rel="nofollow external" class="bo">Poll Results: Light-on-Dark is Preferred</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>This poll asked people if they like their code editor colors "dark code on light background" or "light code on dark background." Turns out about 2/3 of people prefer light code on dark background....</Summary>
<Website>http://css-tricks.com/poll-results-light-on-dark-is-preferred/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32635/guest@my.umbc.edu/89e8a6971d39a246cc68180048b2557a/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>poll</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 15 Jul 2013 11:07:21 -0400</PostedAt>
<EditAt>Mon, 15 Jul 2013 11:07:21 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="32638" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32638">
<Title>Bits Blog: Uber, Maker of Summon-A-Car App, Adds Fare Splitting</Title>
<Body>
<![CDATA[
    <div class="html-content">Uber, the San Francisco start-up that gained something of a cult following by helping people summon a luxury sedan with a smartphone app, is trying something new for people who ride with friends. It said on Monday that it would add the ability to split fares between multiple passengers with a few button taps.<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F15%2Fuber-maker-of-summon-a-car-app-adds-fare-splitting%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Uber%2C+Maker+of+Summon-A-Car+App%2C+Adds+Fare+Splitting" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F15%2Fuber-maker-of-summon-a-car-app-adds-fare-splitting%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Uber%2C+Maker+of+Summon-A-Car+App%2C+Adds+Fare+Splitting" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F15%2Fuber-maker-of-summon-a-car-app-adds-fare-splitting%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Uber%2C+Maker+of+Summon-A-Car+App%2C+Adds+Fare+Splitting" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F15%2Fuber-maker-of-summon-a-car-app-adds-fare-splitting%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Uber%2C+Maker+of+Summon-A-Car+App%2C+Adds+Fare+Splitting" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F07%2F15%2Fuber-maker-of-summon-a-car-app-adds-fare-splitting%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Uber%2C+Maker+of+Summon-A-Car+App%2C+Adds+Fare+Splitting" 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/165667171106/u/0/f/640387/c/34625/s/2eb090e2/kg/342-363/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165667171106/u/0/f/640387/c/34625/s/2eb090e2/kg/342-363/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Uber, the San Francisco start-up that gained something of a cult following by helping people summon a luxury sedan with a smartphone app, is trying something new for people who ride with friends....</Summary>
<Website>http://bits.blogs.nytimes.com/2013/07/15/uber-maker-of-summon-a-car-app-adds-fare-splitting/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32638/guest@my.umbc.edu/91166f5ca91b0d00e5364d6200e1ec15/api/pixel</TrackingUrl>
<Tag>kalanick-travis</Tag>
<Tag>mobile</Tag>
<Tag>mobile-applications</Tag>
<Tag>new</Tag>
<Tag>taxicabs-and-taxicab-drivers</Tag>
<Tag>technology</Tag>
<Tag>uber-technologies-inc</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 15 Jul 2013 11:04:34 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="32641" important="false" status="posted" url="https://my3.my.umbc.edu/posts/32641">
<Title>NeoCities launches to widen website creation</Title>
<Body>
<![CDATA[
    <div class="html-content">Opens web design to anyone, not just professionals<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Fnews%2Fneocities-launches-widen-website-creation-132882&amp;t=NeoCities+launches+to+widen+website+creation" 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%2Fneocities-launches-widen-website-creation-132882&amp;t=NeoCities+launches+to+widen+website+creation" 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%2Fneocities-launches-widen-website-creation-132882&amp;t=NeoCities+launches+to+widen+website+creation" 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%2Fneocities-launches-widen-website-creation-132882&amp;t=NeoCities+launches+to+widen+website+creation" 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%2Fneocities-launches-widen-website-creation-132882&amp;t=NeoCities+launches+to+widen+website+creation" 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/165666059494/u/49/f/502346/c/32632/s/2eb0bd2e/kg/342/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165666059494/u/49/f/502346/c/32632/s/2eb0bd2e/kg/342/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Opens web design to anyone, not just professionals     </Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/yUmzN_oYrio/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/32641/guest@my.umbc.edu/c1e0bff3db446805b57a50de503998cc/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, 15 Jul 2013 11:01:14 -0400</PostedAt>
</NewsItem>

</News>
