<?xml version="1.0"?>
<News hasArchived="true" page="8906" pageCount="10793" pageSize="10" timestamp="Sun, 06 Sep 2026 20:35:22 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8906&amp;range=2">
<NewsItem contentIssues="false" id="123359" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123359">
<Title>A New Context Featured on WAMU Art Beat</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><a href="/wp-content/uploads/2013/04/thumb_body-language-4.jpg" rel="nofollow external" class="bo"><img alt="Thumb_Body Language 4" src="/wp-content/uploads/2013/04/thumb_body-language-4.jpg?w=150" width="150" height="108" style="max-width: 100%; height: auto;"></a>This month, the WAMU segment <em>Art Beat </em>with Lauren Landau, a daily update of arts and culture events in the D.C. area, highlighted the exhibition currently running in the Library Gallery, <em>A New Context: Photographs from the Baltimore Sun Revisited</em>.</p>
    <p>Listen at <a href="http://wamu.org/news/art_beat/13/04/08/art_beat_with_lauren_landau_april_8_2013" rel="nofollow external" class="bo">WAMU’s website</a>.</p>
    <p><a href="http://artscalendar.umbc.edu/2012/04/14/a-new-context-photographs-from-the-baltimore-sun-revisited/" rel="nofollow external" class="bo"><em>A New Context</em></a> is on display through Friday, May 31.</p>
    </div>
]]>
</Body>
<Summary>This month, the WAMU segment Art Beat with Lauren Landau, a daily update of arts and culture events in the D.C. area, highlighted the exhibition currently running in the Library Gallery, A New...</Summary>
<Website>https://umbc.edu/stories/a-new-context-featured-on-wamu-art-beat/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123359/guest@my.umbc.edu/4e63759dc86c3c8b5cd4ce25496ecc1e/api/pixel</TrackingUrl>
<Tag>arts-and-culture</Tag>
<Tag>cahss</Tag>
<Tag>visualarts</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>Fri, 19 Apr 2013 18:14:54 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="123360" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123360">
<Title>Emmett &#8217;08 M.A., MAgS, in New Leadership Role at Erickson Living</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img width="150" height="150" src="https://umbc.edu/wp-content/uploads/2013/04/chrisemmett-150x150.jpg" alt="" style="max-width: 100%; height: auto;"><p><a href="/wp-content/uploads/2013/04/chrisemmett.jpg" rel="nofollow external" class="bo"><img alt="chrisemmett" src="/wp-content/uploads/2013/04/chrisemmett.jpg?w=300" width="300" height="200" style="max-width: 100%; height: auto;"></a>Erickson Living has named Erickson School alumnus <strong>Christopher J. Emmett ’08, M.A. management, aging studies</strong>, regional vice president of operations. In his new leadership position, he will oversee the company’s campus operations in New Jersey, Pennsylvania, Massachusetts, Michigan and Kansas.</p>
    <p>According to <a href="http://seniorhousingnews.com/2013/04/18/movers-shakers-people-and-positions-for-april/" rel="nofollow external" class="bo">Senior Housing News.com</a>:</p>
    <p>“Emmett began his career with Erickson Living in 1996. He has held several management positions with the company, which reflect his superior leadership skills and expertise in healthcare and strategic management.</p>
    <p>For the past eight years, he has served as the executive director at Highland Springs, in Dallas, Tex. Other career positions with Erickson Living include: senior administrator, administrator, and assistant administrator of the continuing care neighborhood at Oak Crest, in Parkville, Md; and, assistant administrator, assisted living administrator, special projects manager and health services business manager at Charlestown in Catonsville, Md.</p>
    <p>Emmett holds a graduate degree in aging studies from the University of Maryland, Baltimore County and an undergraduate degree in business from Towson University, Md. He is a licensed Maryland nursing home administrator and currently serves on the board of LeadingAge Texas.”</p>
    </div>
]]>
</Body>
<Summary>Erickson Living has named Erickson School alumnus Christopher J. Emmett ’08, M.A. management, aging studies, regional vice president of operations. In his new leadership position, he will oversee...</Summary>
<Website>https://umbc.edu/stories/emmett-08-m-a-mags-new-vp-at-erickson-living/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123360/guest@my.umbc.edu/6f7cced6e5c37c4dc508ceaf3e3cd918/api/pixel</TrackingUrl>
<Tag>alumni</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>Fri, 19 Apr 2013 17:54:16 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27989" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27989">
<Title>Writing a Shell Script From Scratch</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31426&amp;c=409910356" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31426&amp;c=409910356" alt="" style="max-width: 100%; height: auto;"></a><p>Writing shell scripts can be rather daunting, primarily because the shell isn't the most friendly of languages to use. However, I hope to show you in this tutorial that shell scripting is actually not as tough or as scary as you might expect.</p>
    <p></p>
    <p>For this tutorial, we'll write a script that makes the process of using the <a href="http://pivotal.github.com/jasmine/" rel="nofollow external" class="bo">Jasmine test framework</a> a little bit easier. Actually, I wouldn't use this script today; I would use <a href="http://gruntjs.com/" rel="nofollow external" class="bo">Grunt.js</a> or something similar. However, I wrote this script before Grunt was around, and I found that writing it proved to be an excellent way to get more comfortable with shell scripting, so that's why we're using it.</p>
    <blockquote><p>One note: this tutorial is loosely associated with my upcoming <a href="http://tutsplus.com" rel="nofollow external" class="bo">Tuts+ Premium</a> course,  "Advanced Command Line Techniques." To learn more about pretty much anything in this tutorial, stay tuned for that course’s release. Hereafter in this tutorial, it will be referred to as "the course."</p></blockquote>
    <p>So, our script, which I call <code>jazz</code>, will have four main features:</p>
    <ul>
    <li>It will download Jasmine from the web, unzip it, and delete the sample code.</li>
    <li>It will create JavaScript files and their associated spec files, and pre-fill them with a bit of template code.</li>
    <li>It will open the tests in the browser.</li>
    <li>It will display the help text, which outlines the above.</li>
    </ul>
    <p>Let's begin with the script file.</p>
    <hr>
    <h2>
    <span>Step 1 -</span> Creating the File</h2>
    <p>Writing a shell script is only useful if you can use it from the terminal; to be able to use your custom scripts on the terminal, you need to put them in a folder that is in your terminal's <code>PATH</code> variable (you can see your <code>PATH</code> variable by running <code>echo $PATH</code>). I've created a <code>~/bin</code> folder (where <code>~</code> is the home directory) on my computer, and that's where I like to keep custom scripts (if you do the same, you'll have to add it to your path). So, just create a file, called <code>jazz</code>, and put it in your folder.</p>
    <p>Of course, we'll also have to make that file executable; otherwise, we won't be able to run it. We can do this by running the following command:</p>
    <pre>    chmod +x jazz&#x000A;    </pre>
    <p>Now that we can actually execute the script, let's add a very important part. All shell scripts should begin with a <a href="https://en.wikipedia.org/wiki/Shebang_(Unix" rel="nofollow external" class="bo">shebang</a>). As Wikipedia says, this should be the first line of the script; it states what interpreter, or shell, this script should be run with. We're just going to use a basic, standard shell:</p>
    <pre>    #!/bin/sh&#x000A;    </pre>
    <p>All right, with all that set up, we're ready to start writing the actual code.</p>
    <hr>
    <h2>
    <span> Step 2 – </span> Outlining the Script Flow</h2>
    <p>Earlier, I pointed out what the different features of our shell script should be. But how will the script know which feature to run? We'll use a combination of a shell parameter and a case statement. When running the script from the command line, we'll use a sub-command, like this:</p>
    <pre>    jazz init&#x000A;        jazz create SomeFile&#x000A;        jazz run&#x000A;        jazz help&#x000A;    </pre>
    <p>This should look familiar, especially if you've used Git:</p>
    <pre>    git init&#x000A;        git status&#x000A;        git commit&#x000A;    </pre>
    <p>Based on that first parameter (<code>init</code>, <code>create</code>, <code>run</code>, <code>help</code>), our case statement will decide what to run. However, we do need a default case: what happens if no first parameter is given, or we get an unrecognized first parameter? In those cases, we'll show the help text. So, let's get started!</p>
    <hr>
    <h2>
    <span> Step 3 – </span> Writing the Help Text</h2>
    <p>We begin with the <code>if</code> statement that checks for our first parameter:</p>
    <pre>    if [ $1 ]&#x000A;        then&#x000A;            # do stuff &#x000A;        else&#x000A;            # show help&#x000A;        fi&#x000A;    </pre>
    <p>You might be a little confused at first, because a shell <code>if</code> statement is pretty different from a "regular" programming language's <code>if</code> statement. To get a better understanding of it, watch the screencast on conditional statements in the course. This code checks for the presence of a first parameter (<code>$1</code>); if it's there, we'll execute the <code>then</code> code; <code>else</code>, we'll show the help text.</p>
    <p>It's a good idea to wrap the printing of the help text in a function, because we need to call it more than once. We do need to define the function before it is called, so we'll put it at the top. I like this, because now, as soon as I open the file, I see the documentation for the script, which can be a helpful reminder when returning to code you haven't seen in a while. Without further ado, here's the <code>help</code> function:</p>
    <pre>    function help () {&#x000A;            echo "jazz - A simple script that makes using the Jasmine testing framework in a standalone project a little simpler."&#x000A;            echo "&#x000A;            echo "    jazz init                  - include jasmine in the project";&#x000A;            echo "    jazz create FunctionName   - creates ./src/FunctionName.js ./spec/FunctionNameSpec.js";&#x000A;            echo "    jazz run                   - runs tests in browser";&#x000A;        }&#x000A;    </pre>
    <p>Now, just replace that <code># show help</code> function with a call to the <code>help</code> function.</p>
    <pre>    else&#x000A;            help&#x000A;        fi&#x000A;    </pre>
    <hr>
    <h2>
    <span> Step 4 – </span> Writing the Case Statement</h2>
    <p>If there is a first parameter, we need to figure out which it is. For this, we use a <code>case</code> statement:</p>
    <pre>	case "$1" in&#x000A;    		init)&#x000A;    		&#x000A;    		;;&#x000A;    		create)&#x000A;    		&#x000A;    		;;&#x000A;    		run)&#x000A;    		&#x000A;    		;;&#x000A;    		*)&#x000A;    			help&#x000A;    		;;&#x000A;    	esac&#x000A;    </pre>
    <p>We pass the first parameter to the <code>case</code> statement; then, it should match one of four things: "init", "create", "run", or our wildcard, default case. Notice that we don't have an explicit "help" case: that's just our default case. This works, because anything other than "init", "create", and "run" aren't commands we recognize, so it should get the help text.</p>
    <p>Now we're ready to write the functional code, and we'll start with <code>jazz init</code>.</p>
    <hr>
    <h2>
    <span> Step 5 – </span> Preparing Jasmine with <code>jazz init</code>
    </h2>
    <p>All the code we write here will go within our <code>init)</code> case, from the case statement above. The first step is to actually download the standalone version of Jasmine, which comes in a zip file:</p>
    <pre>    echo "Downloading Jasmine ..."&#x000A;        curl -sO $JASMINE_LINK&#x000A;    </pre>
    <p>We first echo a little message, and then we use <code>curl</code> to download the zip. The <code>s</code> flag makes it silent (no output) and the <code>O</code> flag saves the contents of the zip to a file (otherwise, it would pipe it to standard out). But what's with that <code>$JASMINE_LINK</code> variable? Well, you could put the actual link to the zip file there, but I prefer to put it in a variable for two reasons: first, it keeps us from repeating part of the path, as you'll see in a minute. Second, with that variable near the top of the file, it makes it easy to change the version of Jasmine we're using: just change that one variable. Here's that variable declaration (I put it outside the <code>if</code> statement, near the top):</p>
    <pre>    JASMIME_LINK="<a href="http://cloud.github.com/downloads/pivotal/jasmine/jasmine-standalone-1.3.1.zip">http://cloud.github.com/downloads/pivotal/jasmine/jasmine-standalone-1.3.1.zip</a>"&#x000A;    </pre>
    <p>Remember, no spaces around the equals-sign in that line.</p>
    <p>Now that we have our zip file, we can unzip it and prepare the contents:</p>
    <pre>    unzip -q &lt;code&gt;basename $JASMINE_LINK&lt;/code&gt;&#x000A;        rm -rf &lt;code&gt;basename $JASMINE_LINK&lt;/code&gt; src/*.js spec/*.js&#x000A;    </pre>
    <p>In two of these lines, we're using <code>basename $JASMINE_LINK</code>; the <code>basename</code> command just reduces a path to the base name: so <code>path/to/file.zip</code> becomes just <code>file.zip</code>. This allows us to use that <code>$JASMINE_LINK</code> variable to reference our local zip file.</p>
    <p>After we unzip, we'll delete that zip file, as well as all the JavaScript files in the <code>src</code> and <code>spec</code> directories. These are the sample files that Jasmine comes with, and we don't need them.</p>
    <p>Next, we have a Mac-only issue to deal with. By default, when you download something from the internet on a Mac, when you try to run it for the first time, you'll be asked to confirm that you want to run it. This is because of the extended attribute <code>com.apple.quarantine</code> that Apple puts on the file. We need to remove this attribute.</p>
    <pre>    if which xattr &gt; /dev/null &amp;&amp; [ "&lt;code&gt;xattr SpecRunner.html&lt;/code&gt;" = "com.apple.quarantine" ]&#x000A;        then&#x000A;            xattr -d com.apple.quarantine SpecRunner.html&#x000A;        fi&#x000A;    </pre>
    <p>We begin by checking for the presence of the <code>xattr</code> command, because it doesn't exist on some Unix systems (I'm not sure, but it may be a Mac-only program). If you watched the course screencast on conditionals, you'll know that we can pass any command to <code>if</code>; if it has an exit status of anything but <code>0</code>, it's false. If <code>which</code> finds the <code>xattr</code> command, it will exit with <code>0</code>; otherwise, it will exit with <code>1</code>. In either case, <code>which</code> will display some output; we can keep that from showing by redirecting it to <code>/dev/null</code> (this is a <a href="https://en.wikipedia.org/wiki//dev/null" rel="nofollow external" class="bo">special file</a> that discards all data written to it).</p>
    <p>That double ampersand is an boolean AND; it's there for the second condition we want to check. That is, does the <code>SpecRunner.html</code> have that attribute? We can simply run the <code>xattr</code> command on the file, and compare it's output to the string we're expecting. (We can't just expect the file to have the attribute, because you can actually turn this feature off in Mac OS X, and we'll get an error when trying to remove it if the file doesn't have the attribute).</p>
    <p>So, if <code>xattr</code> is found and the file has the attribute, we'll remove it, with the <code>d</code> (for delete) flag. Pretty straightforward, right?</p>
    <p>The final step is to edit <code>SpecRunner.html</code>. Currently, it contains scripts tags for the sample JavaScript files that we deleted; we should also delete those scripts tags. I happen to know that those script tags span lines 12 to 18 in the files. So, we can use the stream editor <code>sed</code> to delete those lines:</p>
    <pre>    sed -i "" '12,18d' SpecRunner.html&#x000A;        echo "Jasmine initialized!"&#x000A;    </pre>
    <p>The <code>i</code> flag tells <code>sed</code> to edit the file in place, or to save the output from the command to the same file we passed in; the empty string after the flag means that we don't want <code>sed</code> to back up the file for us; if you wanted that, you could just put a file extension in that string (like <code>.bak</code>, to get <code>SpecRunner.html.bak</code>).</p>
    <p>Finally, we'll let the user know that Jasmine has been initialized. And that's it for our <code>jazz init</code> command.</p>
    <hr>
    <h2>
    <span> Step 6 – </span> Creating Files with <code>jazz create</code>
    </h2>
    <p>Next up, we're going to let our users create JavaScript files and their associated spec files. This portion of the code will go in the “create" section of the <code>case</code> statement we wrote earlier.</p>
    <pre>    if [ $2 ]&#x000A;        then&#x000A;            # create files&#x000A;        else&#x000A;            echo "please include a name for the file"&#x000A;        fi&#x000A;    </pre>
    <p>When using <code>jazz create</code>, we need to include a name for the file as the second parameter: <code>jazz create View</code>, for example. We'll use this to create <code>src/View.js</code> and <code>spec/ViewSpec.js</code>. So, if there isn't a second parameter, we'll remind the user to add one.</p>
    <p>If there is a file name, we'll start by creating those two files (inside the <code>then</code> part above):</p>
    <pre>    echo "function $2 () {\n\n}" &gt; src/$2.js&#x000A;        echo "describe('$2', function () {\n\n});" &gt; spec/$2Spec.js&#x000A;    </pre>
    <p>Of course, you can put whatever you want into your <code>src</code> file. I'm doing something basic here; so <code>jazz create View</code> will create <code>src/View.js</code> with this:</p>
    <pre>function View () {&#x000A;    &#x000A;    }&#x000A;    </pre>
    <p>You could replace that first <code>echo</code> line with this:</p>
    <pre>    echo "var $2 = (function () {\n\tvar $2Prototype = {\n\n\t};\n\n\treturn {\n\t\tcreate : function (attrs) {\n\t\t\tvar o = Object.create($2Prototype);\n\t\t\textend(o, attrs);\n\t\t\treturn o;\n\t\t}\n \t};\n}());" &gt; src/$2.js&#x000A;    </pre>
    <p>And then <code>jazz create View</code> will result in this:</p>
    <pre>    var View = (function () {&#x000A;            var ViewPrototype = {&#x000A;            &#x000A;            };&#x000A;        &#x000A;            return {&#x000A;                create : function (attrs) {&#x000A;                    var o = Object.create(ViewPrototype);&#x000A;                    extend(o, attrs);&#x000A;                    return o;&#x000A;                }&#x000A;            };&#x000A;        }());&#x000A;    </pre>
    <p>So, really, your imagination is the limit. Of course, you'll want the spec file to be the standard Jasmine spec code, which is what I have above; but you can tweak that however you like as well.</p>
    <p>The next step is to add the script tags for these files to <code>SpecRunner.html</code>. At first, this might seem tricky: how can we add lines to the middle of a file programmatically? Once again, it's <code>sed</code> that does the job.</p>
    <pre>    sed -i "" "11a\\&#x000A;        &lt;script src='src/$2.js'&gt;&lt;/script&gt;\\&#x000A;        &lt;script src='spec/$2Spec.js'&gt;&lt;/script&gt;&#x000A;        " SpecRunner.html&#x000A;    </pre>
    <p>We start just like we did before: in-place edit without a backup. Then our command: at line 11, we want to append the two following lines. It's important to escape the two new-lines, so that they'll appear in the text. As you can see, this just inserts those two scripts tags, exactly what we need for this step.</p>
    <p>We can end with some output:</p>
    <pre>    echo "Created:"&#x000A;        echo "\t- src/$2.js"&#x000A;        echo "\t- spec/$2Spec.js"&#x000A;        echo "Edited:"&#x000A;        echo "\t- SpecRunner.html"&#x000A;    </pre>
    <p>And that's <code>jazz create</code>!</p>
    <hr>
    <h2>
    <span> Step 7 – </span> Running the Specs with <code>jazz run</code>
    </h2>
    <p>The last step is to actually run the tests. This means opening the <code>SpecRunner.html</code> file in a browser. There's a bit of a caveat here. On Mac OS X, we can use the <code>open</code> command to open a file in it's default program; this won't work on any other OS, but that's the way I do it here. Unfortunately, there's no real cross-platform way to do this, that I know of. If you're using this script under Cygwin on Windows, you can use <code>cygstart</code> in place of <code>open</code>; otherwise, try googling "[your OS] shell script open browser" and see what you come up with. Unfortunately, some versions of Linux (at least Ubuntu, in my experience) have an <code>open</code> command that's for something completely different. All this to say, your mileage with the following may vary.</p>
    <pre>if [ "`which open`" = '/usr/bin/open' ] &#x000A;    then&#x000A;        open SpecRunner.html&#x000A;    else&#x000A;        echo "Please open SpecRunner.html in your browser"&#x000A;    fi&#x000A;    </pre>
    <p>By now, you know exactly what this does: if we have <code>open</code>, we'll open <code>SpecRunner.html</code>, otherwise, we'll just print a message telling the user to open the file in the browser.</p>
    <p>Originally, that <code>if</code> condition looked like this:</p>
    <pre>if which open &gt; /dev/null&#x000A;    </pre>
    <p>As we did with <code>xattr</code>, it just checked for existence of <code>open</code>; however, since I found out that there's a different <code>open</code> command on Linux (even on my Ubuntu server, which can't even open a browser!), I figured it might be better to compare the path of the <code>open</code> program, since the Linux one is at <code>/bin/open</code> (again, at least on Ubuntu server).</p>
    <p>All this extra wordiness about <code>open</code> might sound like an excuse for my lack of a good solution, it actually points out something important about the command line. Don't mistake understanding the terminal with understanding a computer's configuration. This tutorial, and the associated course, have taught you a little bit more about the Bash shell (and the Z shell), but that doesn't mean each computer you use will be configured the same; there are many ways to install new commands (or different versions of commands), as well as remove commands. <em>Caveat developer</em>.</p>
    <p>Well, that's the entire script! Here it is again, all together:</p>
    <pre>    #! /bin/sh&#x000A;    &#x000A;        function help () {&#x000A;            echo "jazz - A simple script that makes using the Jasmine testing framework in a standalone project a little simpler."&#x000A;            echo ""&#x000A;            echo "    jazz init                  - include jasmine in the project";&#x000A;            echo "    jazz create FunctionName   - creates ./src/FunctionName.js ./spec/FunctionNameSpec.js";&#x000A;            echo "    jazz run                   - runs tests in browser";&#x000A;        }&#x000A;    &#x000A;        JASMIME_LINK="<a href="http://cloud.github.com/downloads/pivotal/jasmine/jasmine-standalone-1.3.1.zip">http://cloud.github.com/downloads/pivotal/jasmine/jasmine-standalone-1.3.1.zip</a>"&#x000A;    &#x000A;        if [ $1 ] &#x000A;        then&#x000A;          case "$1" in&#x000A;          init)&#x000A;            echo "Downloading Jasmine . . ."&#x000A;            curl -sO $JASMIME_LINK &#x000A;            unzip -q `basename $JASMIME_LINK` &#x000A;            rm `basename $JASMIME_LINK` src/*.js spec/*.js&#x000A;            &#x000A;            if which xattr &gt; /dev/null &amp;&amp; [ "`xattr SpecRunner.html`" = "com.apple.quarantine" ]&#x000A;            then&#x000A;              xattr -d com.apple.quarantine SpecRunner.html&#x000A;            fi&#x000A;    &#x000A;            sed -i "" "12,18d" SpecRunner.html&#x000A;            echo "Jasmine initialized!"&#x000A;          ;;&#x000A;          create)&#x000A;            if [ $2 ]&#x000A;            then &#x000A;              echo "function $2 () {\n\n}" &gt; ./src/$2.js&#x000A;              echo "describe('$2', function () {\nit('runs');\n});" &gt; ./spec/$2Spec.js&#x000A;              sed -i "" "11a\\&#x000A;              &lt;script src='src/$2.js'&gt;&lt;/script&gt;\\&#x000A;              &lt;script src='spec/$2Spec.js'&gt;&lt;/script&gt;&#x000A;              " SpecRunner.html&#x000A;              echo "Created:"&#x000A;              echo "\t- src/$2.js"&#x000A;              echo "\t- spec/$2Spec.js"&#x000A;              echo "Edited:"&#x000A;              echo "\t- SpecRunner.html"&#x000A;            else&#x000A;              echo 'please add a name for the file'&#x000A;            fi&#x000A;          ;;&#x000A;          "run")&#x000A;            if [ "`which open`" = '/usr/bin/open' ] &#x000A;            then&#x000A;              open ./SpecRunner.html&#x000A;            else&#x000A;              echo "Please open SpecRunner.html in your browser"&#x000A;            fi&#x000A;          ;;&#x000A;          *)&#x000A;            help;&#x000A;          ;;&#x000A;          esac&#x000A;        else&#x000A;          help;&#x000A;        fi&#x000A;    </pre>
    <p>Well, go on, give it a try!</p>
    <pre>    mkdir project&#x000A;        cd project&#x000A;        jazz init&#x000A;        jazz create Dog&#x000A;        # edit src/Dog.js and spec/DogSpec.js&#x000A;        jazz run&#x000A;    </pre>
    <p>By the way, if you want to have some more fun with this project, you can <a href="https://github.com/andrew8088/jazz" rel="nofollow external" class="bo">find it on Github</a>.</p>
    <hr>
    <h2>Conclusion</h2>
    <p>So there you have it! We've just written an intermediate level shell script; that wasn't so bad, now, was it? Don’t forget to stay tuned for my upcoming <a href="http://tutsplus.com" rel="nofollow external" class="bo">Tuts+ Premium</a> course; you'll learn a lot more about many of the techniques used in this article, as well as countless others. Have fun on the terminal!</p>
    </div>
]]>
</Body>
<Summary>Writing shell scripts can be rather daunting, primarily because the shell isn't the most friendly of languages to use. However, I hope to show you in this tutorial that shell scripting is actually...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/kd9cz6hLDAU/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27989/guest@my.umbc.edu/5ffc9b6252df01daf342828ab79a60ae/api/pixel</TrackingUrl>
<Tag>console</Tag>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>terminal</Tag>
<Tag>tools-and-tips</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 19 Apr 2013 17:27:17 -0400</PostedAt>
<EditAt>Fri, 19 Apr 2013 17:27:17 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30054" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30054">
<Title>Ads on Google Glass Will Never Work</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>An ad delivered straight to the eyeball feels like a violation.</p>
    <p>Some curious information <a href="http://news.cnet.com/8301-10812_3-57579762/google-glassware-developers-prohibited-from-displaying-ads/" rel="nofollow external" class="bo">came to light</a> this week about Google Glass. For a company that owes its solvency to advertising–95% of its revenue comes from it–remarkably, Google is planning an ad-free experience for its on-eye computing experiment. At least, for now.</p>
    </div>
]]>
</Body>
<Summary>An ad delivered straight to the eyeball feels like a violation.  Some curious information came to light this week about Google Glass. For a company that owes its solvency to advertising–95% of its...</Summary>
<Website>http://www.technologyreview.com/view/513966/ads-on-google-glass-will-never-work/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30054/guest@my.umbc.edu/9f5066c1595c1c34d7e363db13a051f5/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</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>Fri, 19 Apr 2013 17:10:40 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="110197" important="false" status="posted" url="https://my3.my.umbc.edu/posts/110197">
<Title>Group Exhibition at Goucher College Features Visual Arts Faculty</Title>
<Body>
<![CDATA[
    <div class="html-content">A group exhibition at Goucher College’s Silber Gallery, Hydroflow, is displaying the work of ten artists including UMBC visual arts faculty, Eric Dyer, Lisa Moren and Calla Thompson. Hydroflow, centered upon works “that explore the multifaceted aspects of water,” opened April 9 and continues through May 19. A free artists’ reception will take place in the Silber, Friday, May 10 from 6 to 9 pm. Learn more about Dyer, Moren and Thompsons’ works in the exhibition, at Goucher College’s community news publication In The Loop.</div>
]]>
</Body>
<Summary>A group exhibition at Goucher College’s Silber Gallery, Hydroflow, is displaying the work of ten artists including UMBC visual arts faculty, Eric Dyer, Lisa Moren and Calla Thompson....</Summary>
<Website>https://news.umbc.edu/group-exhibition-at-goucher-college-features-visual-arts-faculty/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/110197/guest@my.umbc.edu/f2e542985f538de8aca8443658fe12e5/api/pixel</TrackingUrl>
<Tag>arts-and-culture</Tag>
<Tag>cahss</Tag>
<Tag>visualarts</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>Fri, 19 Apr 2013 16:17:44 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="123361" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123361">
<Title>Ann Christine Frankowski, Center for Aging Studies, in the Washington Blade</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em><a href="http://www.washingtonblade.com/2013/04/18/panel-tackles-aging-with-pride-maryland-lgbt-news/" rel="nofollow external" class="bo">The Washington Blade </a></em>today highlights a talk presented by Ann Christine Frankowski, associate research scientist and associate director of UMBC’s Center for Aging Studies, and Imani Woody, of Services and Advocacy for GLBT Elders (SAGE), on challenges facing older LGBT people.</p>
    <p>Frankowski’s work examines autonomy, independence and freedom for older adults, with a focus on minorities, especially sexual minorities. The article notes:</p>
    <blockquote><p>An estimated 1.4 to 3.8 million LGBT people in the U.S. are over the age of 65 with the number expected to double by 2030. In pursuing her research, Frankowski found that “there is no discussion of sexuality, no talk about sex. People are treated asexually, and the question of sexual orientation is totally ignored.” In addition, [assisted living] staff members, with whom there is a high turnover rate, do not respect individual choices, and supervision of these staff members is inadequate. As a result, many LGBT older adults are forced to return to the closet to remain safe.</p></blockquote>
    <p>To learn more about this issue, read the <a href="http://www.washingtonblade.com/2013/04/18/panel-tackles-aging-with-pride-maryland-lgbt-news/" rel="nofollow external" class="bo">full article in the <em>Washington Blade.</em></a></p>
    </div>
]]>
</Body>
<Summary>The Washington Blade today highlights a talk presented by Ann Christine Frankowski, associate research scientist and associate director of UMBC’s Center for Aging Studies, and Imani Woody, of...</Summary>
<Website>https://umbc.edu/stories/ann-christine-frankowski-center-for-aging-studies-in-the-washington-blade/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123361/guest@my.umbc.edu/e7e60fd3dbb6a6507e62272a74fac066/api/pixel</TrackingUrl>
<Tag>cahss</Tag>
<Tag>policy-and-society</Tag>
<Tag>saph</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>Fri, 19 Apr 2013 15:47:24 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27985" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27985">
<Title>Quad Mania this weekend!</Title>
<Body>
<![CDATA[
    <div class="html-content">See you this weekend!</div>
]]>
</Body>
<Summary>See you this weekend!</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27985/guest@my.umbc.edu/e35ad14c599ab3f89df859688615304c/api/pixel</TrackingUrl>
<Group token="osl">Campus Life</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/osl</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/xsmall.png?1520955747</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/original.png?1520955747</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/xxlarge.png?1520955747</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/xlarge.png?1520955747</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/large.png?1520955747</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/medium.png?1520955747</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/small.png?1520955747</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/xsmall.png?1520955747</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/031/29ef8c120a1b5783630e8bbe933d9db4/xxsmall.png?1520955747</AvatarUrl>
<Sponsor>Office of Student Life</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/xxlarge.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/xlarge.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/large.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/medium.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/small.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/xsmall.jpg?1366400592</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/027/985/5330f5fa350679fb680ac438824048bd/xxsmall.jpg?1366400592</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 19 Apr 2013 15:43:35 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27983" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27983">
<Title>Tip of the week: Best places to find cheap textbooks</Title>
<Tagline>You should not have to pay so much for textbooks!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">College tuition, room and board, etc. already add up to a huge amount of money. Knowing where to buy textbooks for cheap will save a lot for a college student! <br><br>Sourced from: <a href="http://www.makeuseof.com/tag/sites-college-textbooks-cheap-rent-buy/">http://www.makeuseof.com/tag/sites-college-textbooks-cheap-rent-buy/</a><br><br>I so wish the web was there when we were struggling to make ends meet
     in college and university. It was a constant battle of the conscience 
    between spending on the date, or ‘squandering’ money on things like 
    books and other learning objects. The library wasn’t much help as it 
    often resembled the California gold rush with ten heads competing for 
    one book.
    <p>The reason for my ire is that we didn’t have websites which told us 
    where to find (rent or buy) cheap college textbooks. But today’s 
    generation just has to type in a URL and hey presto, there are more than
     a dozen sites plying cheap textbooks for sale or rent.</p>
    <p>I am on a slow burn, but let’s take a look at ten websites where you can get college textbooks for cheap.</p>
    <p><strong>Note:</strong> Most of these sites are US only.</p>
    <h2><a href="http://www.bookrenter.com/" rel="nofollow external" class="bo">BookRenter</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks01.jpg" alt="cheap college textbooks" height="393" width="580" style="max-width: 100%; height: auto;"></p>
    <p>Start with the large search box that helps you trawl through 5 
    million textbooks. BookRenter offers you no-questions asked book return 
    program plus free shipping. The range of categories cover almost all 
    subjects that are taught in colleges (don’t forget to click the little 
    ‘More’ links). BookRenter gives you different rental rates depending on 
    the borrowing periods. You can also buy used books from the BookRenter 
    Basement. What’s more you can take notes (use highlighters for instance)
     on the books you borrow from BookRenter. You can return in-store at any
     of the affiliated locations or ship your return with a pre-paid 
    shipping label. (Read <a href="http://www.makeuseof.com/dir/bookrenter-renting-college-books-online/" rel="nofollow external" class="bo">Directory</a> mention)														                </p>
    																
    <h2><a href="http://www.chegg.com/" rel="nofollow external" class="bo">Chegg</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks02.jpg" alt="cheap used college textbooks" height="247" width="580" style="max-width: 100%; height: auto;"></p>
    <p>Chegg is very similar to the previous book rental website when it 
    comes to book return guarantees, shipping speed, and even social 
    service. Chegg is a selling point for your own books as well as textbook
     rentals at low prices. The differentiator is that Chegg offers course 
    reviews and grade distributions as well as homework help for a course 
    you select. Along with first hand reviews of a course, you also get a 
    detailed schedule of the books you need for it. Comparing the list price
     and the rental, Chegg offers significant savings…some go up to 90%. 
    (Read <a rel="nofollow external" class="bo">Directory</a> mention)</p>
    <h2><a href="http://www.textbooks.com/" rel="nofollow external" class="bo">Textbooks.com</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks08.jpg" alt="cheap used college textbooks" height="332" width="580" style="max-width: 100%; height: auto;"><br>
    This too is a similar site with a very similar service. Textbooks.com 
    shows that when it comes to cheap textbooks for purchase or rent, no 
    site is too many as it almost mirrors the service offerings of the above
     two sites. The book rental site has a referral program that lets you 
    earn $5 for each friend you refer to the site for a book rental or 
    purchase. The site offers free shipping on orders above $25.</p>
    <h2><a href="http://www.ecampus.com/" rel="nofollow external" class="bo">eCampus</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks03.jpg" alt="cheap used college textbooks" height="369" width="580" style="max-width: 100%; height: auto;"></p>
    <p>You can sell and ship your used textbooks for free via the buyback 
    program.  Most of it goes back into the textbook rental program on 
    eCampus. You can also choose to buy a book at a low-cost (with savings 
    upto 90%). Some books also have digital copies (eTextbooks) which again 
    come in two versions – online version and an offline viewing version. 
    When it comes to returning your rented textbooks, shipping is free for 
    all orders over $59 and rental return shipping is always free.</p>
    <h2><a href="http://www.campusbooks.com/" rel="nofollow external" class="bo">Campus Books</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks04.jpg" alt="rent college textbooks" height="395" width="580" style="max-width: 100%; height: auto;"></p>
    <p>This book rental site comes with its own smartphone apps. Campus 
    Books also offers in-store pickup of books along with a very handy local
     search feature. The iPhone and Android apps use GPS to locate one near 
    you, and you can the site search to get to libraries or retails shops 
    for the book you want. Campus Books also searches a catalog of 8 million
     books for the best deals available. If you want to rent textbooks, use 
    the rental comparison engine which compares results from ten book rental
     companies at once.</p>
    <h2><a href="http://www.bookbyte.com/" rel="nofollow external" class="bo">BookByte</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks05.jpg" alt="rent college textbooks" height="386" width="580" style="max-width: 100%; height: auto;"></p>
    <p>BookByte is a simpler textbook buying and selling service. The 
    Guaranteed Buyback service is appealing because at the end of the term 
    you are not obliged to return the book. You can sell your book back to 
    BookByte for a lower purchase price and a 10% rebate when you return the
     textbook. Also, if your Guaranteed Buyback order totals over $49.00 
    then your shipping is free.</p>
    <h2><a href="http://bigwords.com/" rel="nofollow external" class="bo">Big Words</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks06.jpg" alt="rent college textbooks" height="300" width="580" style="max-width: 100%; height: auto;"></p>
    <p>Bigwords.com is a comparative search engine that compares books 
    across bookstores and brings you the lowest one on new and used 
    textbooks. You can also use it to search for student loans, DVDs, music,
     and games.</p>
    <h2><a href="http://www.directtextbook.com/" rel="nofollow external" class="bo">Direct Textbook</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks07.jpg" alt="" height="323" width="580" style="max-width: 100%; height: auto;"></p>
    <p>Using Direct textbook to hunt for a new or used textbook is a three 
    step process. Simply search for a book, browse through the search 
    results, and then visit any of the 200 stores that the site taps to buy 
    or rent your textbook. The textbook search engine sources online book 
    retail sites like Amazon, Barnes&amp;Noble, and some of the others we 
    cover here. If you are planning to sell your used textbook, the site 
    lets you check the best buyback price at 25+ stores.</p>
    <h2><a href="http://www.studentbooktrades.com/" rel="nofollow external" class="bo"> Student Book Trades</a></h2>
    <p><img src="http://main.makeuseoflimited.netdna-cdn.com/wp-content/uploads/2011/09/textbooks09.jpg" alt="" height="367" width="580" style="max-width: 100%; height: auto;"></p>
    <p>The unique feature of the college textbook book site is definitely 
    the monthly free giveaway. Above that, the site is based on trade…you 
    can list your textbooks here (the ones you have and a wishlist of the 
    ones you want) and use it to trade and exchange textbooks with others. 
    Check out the long list of participating colleges on the site.</p>
    <br>
    </div>
]]>
</Body>
<Summary>College tuition, room and board, etc. already add up to a huge amount of money. Knowing where to buy textbooks for cheap will save a lot for a college student!   Sourced from:...</Summary>
<Website>http://www.makeuseof.com/tag/sites-college-textbooks-cheap-rent-buy/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27983/guest@my.umbc.edu/eb68546b7f4764eab3b7d2daa700b980/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>
<PawCount>1</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 19 Apr 2013 15:09:37 -0400</PostedAt>
<EditAt>Mon, 22 Apr 2013 08:15:46 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="123362" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123362">
<Title>Amy Bhatt, Gender and Women&#8217;s Studies, on KUOW Seattle&#8217;s &#8220;Weekday with Steve Scher&#8221;</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Amy Bhatt, assistant professor of gender and women’s studies, was recently a guest on <a title="Permalink to Roots &amp; Reflections on KUOW’s Weekday with Steve Scher" href="http://amybhatt.com/?p=81" rel="nofollow external" class="bo">KUOW Seattle’s “Weekday with Steve Scher</a>” program.</p>
    <p>Bhatt discussed her new book, <strong>Roots and Reflections: South Asians in the Pacific Northwest, in which she and co-author </strong>Nalini Iyer draw on oral histories from the South Asian Oral History Project at the University of Washington Libraries, archival material, and popular culture representations to explore the various routes that brought South Asians to the Pacific Northwest, their motivations for leaving their homelands, and their experiences upon arrival.</p>
    <p>“We’re interested in thinking about how we can use the stories of contemporary immigrants to shed light on older histories of migration, as well as thinking about contemporary debates about immigration more generally,” Bhatt said.</p>
    <p>The interview can be heard <a href="http://amybhatt.com/wp-content/uploads/2013/04/Roots-Reflections-on-Weekday-KUOW.wma" rel="nofollow external" class="bo">here</a>.</p>
    </div>
]]>
</Body>
<Summary>Amy Bhatt, assistant professor of gender and women’s studies, was recently a guest on KUOW Seattle’s “Weekday with Steve Scher” program.   Bhatt discussed her new book, Roots and Reflections:...</Summary>
<Website>https://umbc.edu/stories/amy-bhatt-gender-and-womens-studies-on-kuow-seattles-weekday-with-steve-scher/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123362/guest@my.umbc.edu/e0a31e266dba7e478b8711b3ddd95cf0/api/pixel</TrackingUrl>
<Tag>cahss</Tag>
<Tag>gwst</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>Fri, 19 Apr 2013 15:05:04 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="30055" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30055">
<Title>Building a Picture of the Bomb Suspects through Social Network Analysis</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Police can obtain huge quantities of social network data but must sort out the junk to glean useful information.</p>
    <p>Within hours after the Boston marathon bombing suspects were identified, police probably obtained warrants to search extensive digital records from mobile phone networks and social media and e-mail providers.</p>
    </div>
]]>
</Body>
<Summary>Police can obtain huge quantities of social network data but must sort out the junk to glean useful information.  Within hours after the Boston marathon bombing suspects were identified, police...</Summary>
<Website>http://www.technologyreview.com/news/513956/building-a-picture-of-the-bomb-suspects-through-social-network-analysis/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30055/guest@my.umbc.edu/ce36a64a71aed46dd552a22d3399342e/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</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>Fri, 19 Apr 2013 15:04:36 -0400</PostedAt>
</NewsItem>

</News>
