<?xml version="1.0"?>
<News hasArchived="true" page="8191" pageCount="10739" pageSize="10" timestamp="Fri, 31 Jul 2026 17:24:27 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8191">
<NewsItem contentIssues="false" id="123026" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123026">
<Title>Ellen Handler Spitz, Honors College Professor, in Artcritical</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>The Museum of Modern Art in New York City is hosting an exhibit on Belgian Surrealist painter Rene Magritte. The show, <em>Magritte: The Mystery of the Ordinary, 1926-1938</em>, is running through January 12, 2014.</p>
    <p><a href="/wp-content/uploads/2013/10/32_magritte_le_blanc_seing.jpg" rel="nofollow external" class="bo"><img alt="Magritte painting" src="/wp-content/uploads/2013/10/32_magritte_le_blanc_seing.jpg" width="99" height="99" style="max-width: 100%; height: auto;"></a></p>
    <p><em>Artcritical </em>has published an article about Magritte by Honors College Professor Ellen Handler Spitz in conjunction with the exhibition.</p>
    <p>The show is attracting thousands of visitors from around the world. After New York City, it travels to Houston and then Chicago.</p>
    <p>You can read the full article by Ellen Handler Spitz <a href="http://www.artcritical.com/2013/10/09/magritte/" rel="nofollow external" class="bo">here</a>.</p>
    </div>
]]>
</Body>
<Summary>The Museum of Modern Art in New York City is hosting an exhibit on Belgian Surrealist painter Rene Magritte. The show, Magritte: The Mystery of the Ordinary, 1926-1938, is running through January...</Summary>
<Website>https://umbc.edu/stories/ellen-handler-spitz-honors-college-professor-in-artcritical/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123026/guest@my.umbc.edu/12ae657a77da58c2eb15b42d5927e1b2/api/pixel</TrackingUrl>
<Tag>arts-and-culture</Tag>
<Tag>cahss</Tag>
<Tag>honorscollege</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, 14 Oct 2013 14:13:35 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36972" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36972">
<Title>Tips to Avoid Brittle UI Tests</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35188&amp;c=275830513" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=35188&amp;c=275830513" alt="" style="max-width: 100%; height: auto;"></a><p>In the <a href="http://net.tutsplus.com/tutorials/maintainable-automated-ui-tests/" rel="nofollow external" class="bo">last article</a> I talked about a few ideas and patterns, like the Page Object pattern, that help write maintainable UI tests. In this article we are going to discuss a few advanced topics that could help you write more robust tests, and troubleshoot them when they fail:</p>
    <p></p>
    <ul>
    <li>We discuss why adding fixed delays in UI tests is a bad idea and how you can get rid of them.</li>
    <li>Browser automation frameworks target UI elements using selectors and it’s very critical to use good selectors to avoid brittle tests. So I give you some advice on choosing the right selectors and targeting elements directly when possible.</li>
    <li>UI tests fail more frequently then other types of tests, so how can we debug a broken UI test and figure out what caused the failure? In this section I show you how you can capture a screenshot and the page’s HTML source when a UI test fails so you can investigate it easier.</li>
    </ul>
    <p>I am going to use <a href="http://docs.seleniumhq.org/" rel="nofollow external" class="bo">Selenium</a> for the browser automation topics discussed in this article.</p>
    <p>Much like the previous article the concepts and solutions discussed in this article are applicable regardless of the language and UI framework you use. Before going any further please read the <a href="http://net.tutsplus.com/tutorials/maintainable-automated-ui-tests/" rel="nofollow external" class="bo">previous article</a> as I am going to refer to it and its sample code a few times. Don’t worry; I’ll wait here.</p>
    <hr>
    <h2>Don’t Add Delays to Your Tests</h2>
    <p>Adding <code>Thread.Sleep</code> (or generally delays) feels like an inevitable hack when it comes to UI testing. You have a test that fails intermittently and after some investigation you trace that back to occasional delays in the response; For example, you navigate to a page and look or assert for something before the page is fully loaded and your browser automation framework throws an exception indicating the element doesn’t exist. A lot of things could contribute to this delay. For example:</p>
    <ul>
    <li>The web server, the database and/or the network are overloaded and busy with other requests.</li>
    <li>The page under test is slow because it loads a lot of data and/or queries a lot of tables.</li>
    <li>You’re waiting for some event to happen on the page which takes time.</li>
    </ul>
    <p>Or a mix of these and other issues.</p>
    <p>Let’s say that you have a page that normally takes less than a second to load but the tests hitting it fail every now and then because of occasional lag in response. You have a few options:</p>
    <ul>
    <li>You don’t add a delay: in this case the tests that hit that page are sometimes going to fail which reduces your trust in the tests.</li>
    <li>You add a one-second delay to the tests hitting that page: in this case <em>all</em> of those tests are <em>always</em> going to take one second longer, even when the page loads fast, but even then the tests are not guaranteed to pass as the page might sometimes take longer then a second to load.</li>
    <li>You might decide to add a few-second delay: this makes sure the page is definitely always loaded, but now your UI tests are taking longer and longer.</li>
    </ul>
    <p>You see, there is no winning with arbitrary delays: you either get a slow or a brittle test suite. Here I am going to show you how to avoid inserting fixed delays in your tests. We are going to discuss two types of delays which should cover pretty much all cases you have to deal with: adding a global delay and waiting for something to happen.</p>
    <h3>Adding a Global Delay</h3>
    <p>If all of your pages take around the same time to load, which is longer than expected, then most tests are going to fail due to untimely response. In cases like this you can use <a href="http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits" rel="nofollow external" class="bo">Implicit Waits</a>:</p>
    <blockquote><p>An implicit wait is to tell WebDriver to poll the DOM for a certain amount of time when trying to find an element or elements if they are not immediately available. The default setting is 0. Once set, the implicit wait is set for the life of the WebDriver object instance.</p></blockquote>
    <p>This is how you set an implicit wait:</p>
    <pre>WebDriver driver = new FirefoxDriver();&#x000A;    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));&#x000A;    </pre>
    <p>This way you’re telling Selenium to wait up to 5 seconds when it tries to find an element or interact with the page. So now you can write:</p>
    <pre>driver.Url = "<a href="http://somedomain/url_that_delays_loading">http://somedomain/url_that_delays_loading</a>";&#x000A;    IWebElement myDynamicElement = driver.FindElement(By.Id("someDynamicElement"));&#x000A;    </pre>
    <p>instead of:</p>
    <pre>driver.Url = "<a href="http://somedomain/url_that_delays_loading">http://somedomain/url_that_delays_loading</a>";&#x000A;    Thread.Sleep(5000);&#x000A;    IWebElement myDynamicElement = driver.FindElement(By.Id("someDynamicElement"));&#x000A;    </pre>
    <p>The benefit of this approach is that <code>FindElement</code> will return as soon as it finds the element and doesn’t wait for the whole 5 seconds when the element is available sooner.</p>
    <p>Once implicit wait is set on your <code>WebDriver</code> instance it applies to all actions on the driver; so you can get rid of many <code>Thread.Sleep</code>s in your code.</p>
    <p>5 seconds is a wait I made up for this article – you should find the optimal implicit wait for your application and you should make this wait as short as possible. From the API documentations:</p>
    <blockquote><p>Increasing the implicit wait timeout should be used judiciously as it will have an adverse effect on test run time, especially when used with slower location strategies like XPath.</p></blockquote>
    <p>Even if you don’t use XPath, using long implicit waits slows down your tests, particularly when some tests are genuinely failing, because the web driver is going to wait for a long time before it times out and throws an exception.</p>
    <h3>Waiting for Explicit Events/Changes</h3>
    <p>Using implicit wait is a great way to get rid of many hardcoded delays in your code; but you are still going to find yourself in a situation where you need to add some fixed delays in your code because you’re waiting for something to happen: a page is slower than all other pages and you have to wait longer, you’re waiting for an AJAX call to finish or for an element to appear on or disappear from the page etc. This is where you need explicit waits.</p>
    <h4>Explicit Wait</h4>
    <p>So you have set the implicit wait to 5 seconds and it works for a lot of your tests; but there are still a few pages that sometimes take more than 5 seconds to load and result into failing tests.</p>
    <p>As a side note, you should investigate why a page is taking so long first, before trying to fix the broken test by making it wait longer. There might be a performance issue on the page that’s leading to the red test in which case you should fix the page, not the test.</p>
    <p>In case of a slow page you can replace fixed delays with <a href="http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits" rel="nofollow external" class="bo">Explicit Waits</a>:</p>
    <blockquote><p>An explicit waits is code you define to wait for a certain condition to occur before proceeding further in the code.</p></blockquote>
    <p>You can apply explicit waits using <code>WebDriverWait</code> class. <code>WebDriverWait</code> lives in <code>WebDriver.Support</code> assembly and can be installed using <a href="https://www.nuget.org/packages/selenium.support" rel="nofollow external" class="bo">Selenium.Support</a> nuget:</p>
    <pre>/// &lt;summary&gt;&#x000A;    /// Provides the ability to wait for an arbitrary condition during test execution.&#x000A;    /// &lt;/summary&gt;&#x000A;    public class WebDriverWait : DefaultWait&lt;IWebDriver&gt;&#x000A;    {&#x000A;      /// &lt;summary&gt;&#x000A;      /// Initializes a new instance of the &lt;see cref="T:OpenQA.Selenium.Support.UI.WebDriverWait"/&gt; class.&#x000A;      /// &lt;/summary&gt;&#x000A;      /// &lt;param name="driver"&gt;The WebDriver instance used to wait.&lt;/param&gt;&lt;param name="timeout"&gt;The timeout value indicating how long to wait for the condition.&lt;/param&gt;&#x000A;      public WebDriverWait(IWebDriver driver, TimeSpan timeout);&#x000A;    &#x000A;      /// &lt;summary&gt;&#x000A;      /// Initializes a new instance of the &lt;see cref="T:OpenQA.Selenium.Support.UI.WebDriverWait"/&gt; class.&#x000A;      /// &lt;/summary&gt;&#x000A;      /// &lt;param name="clock"&gt;An object implementing the &lt;see cref="T:OpenQA.Selenium.Support.UI.IClock"/&gt; interface used to determine when time has passed.&lt;/param&gt;&lt;param name="driver"&gt;The WebDriver instance used to wait.&lt;/param&gt;&lt;param name="timeout"&gt;The timeout value indicating how long to wait for the condition.&lt;/param&gt;&lt;param name="sleepInterval"&gt;A &lt;see cref="T:System.TimeSpan"/&gt; value indicating how often to check for the condition to be true.&lt;/param&gt;&#x000A;      public WebDriverWait(IClock clock, IWebDriver driver, TimeSpan timeout, TimeSpan sleepInterval);&#x000A;    }&#x000A;    </pre>
    <p>Here is an example of how you can use <code>WebDriverWait</code> in your tests:</p>
    <pre>driver.Url = "<a href="http://somedomain/url_that_takes_a_long_time_to_load">http://somedomain/url_that_takes_a_long_time_to_load</a>";&#x000A;    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));&#x000A;    var myDynamicElement = wait.Until(d =&gt; d.FindElement(By.Id("someElement")));&#x000A;    </pre>
    <p>We are telling Selenium that we want it to wait for this particular page/element for up to 10 seconds.</p>
    <p>You are likely to have a few pages that take longer than your default implicit wait and it’s not a good coding practice to keep repeating this code everywhere. After all <em>Test Code Is Code</em>. You could instead extract this into a method and use it from your tests:</p>
    <pre>public IWebElement FindElementWithWait(By by, int secondsToWait = 10)&#x000A;    {&#x000A;        var wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(secondsToWait));&#x000A;        return wait.Until(d =&gt; d.FindElement(by));&#x000A;    }&#x000A;    </pre>
    <p>Then you can use this method as:</p>
    <pre>var slowPage = new SlowPage("<a href="http://somedomain/url_that_takes_a_long_time_to_load">http://somedomain/url_that_takes_a_long_time_to_load</a>");&#x000A;    var element = slowPage.FindElementWithWait(By.Id("someElement"));&#x000A;    </pre>
    <p>This is a contrived example to show what the method could potentially look like and how it could be used. Ideally you would move all page interactions to your page objects.</p>
    <h3>Alternative Explicit Wait Example</h3>
    <p>Let’s see another example of an explicit wait. Sometimes the page is fully loaded but the element isn’t there yet because it is later loaded as the result of an AJAX request. Maybe it’s not an element you’re waiting for but just want to wait for an AJAX interaction to finish before you can make an assertion, say in the database. Again this is where most developers use <code>Thread.Sleep</code> to make sure that, for example, that AJAX call is done and the record is now in the database before they proceed to the next line of the test. This can be easily rectified using JavaScript execution!</p>
    <p>Most browser automation frameworks allow you to run JavaScript on the active session, and <a href="http://docs.seleniumhq.org/docs/03_webdriver.jsp#using-javascript" rel="nofollow external" class="bo">Selenium is no exception</a>. In Selenium there is an interface called <code>IJavaScriptExecutor</code> with two methods:</p>
    <pre>/// &lt;summary&gt;&#x000A;    /// Defines the interface through which the user can execute JavaScript.&#x000A;    /// &lt;/summary&gt;&#x000A;    public interface IJavaScriptExecutor&#x000A;    {&#x000A;        /// &lt;summary&gt;&#x000A;        /// Executes JavaScript in the context of the currently selected frame or window.&#x000A;        /// &lt;/summary&gt;&#x000A;        /// &lt;param name="script"&gt;The JavaScript code to execute.&lt;/param&lt;&lt;param name="args"&lt;The arguments to the script.&lt;/param&gt;&#x000A;        /// &lt;returns&gt;&#x000A;        /// The value returned by the script.&#x000A;        /// &lt;/returns&gt;&#x000A;        object ExecuteScript(string script, params object[] args);&#x000A;    &#x000A;        /// &lt;summary&gt;&#x000A;        /// Executes JavaScript asynchronously in the context of the currently selected frame or window.&#x000A;        /// &lt;/summary&gt;&#x000A;        /// &lt;param name="script"&gt;The JavaScript code to execute.&lt;/param&lt;&lt;param name="args"&lt;The arguments to the script.&lt;/param&gt;&#x000A;        /// &lt;returns&gt;&#x000A;        /// The value returned by the script.&#x000A;        /// &lt;/returns&gt;&#x000A;        object ExecuteAsyncScript(string script, params object[] args);&#x000A;    }&#x000A;    </pre>
    <p>This interface is implemented by <code>RemoteWebDriver</code> which is the base class for all web driver implementations. So on your web driver instance you can call <code>ExecuteScript</code> to run a JavaScript script. Here is a method you can use to wait for all AJAX calls to finish (assuming you are using jQuery):</p>
    <pre>// This is assumed to live in a class that has access to the active `WebDriver` instance through `WebDriver` field/property. &#x000A;    public void WaitForAjax(int secondsToWait = 10)&#x000A;    {&#x000A;        var wait = new WebDriverWait(WebDriver, TimeSpan.FromSeconds(secondsToWait));&#x000A;        wait.Until(d =&gt; (bool)((IJavaScriptExecutor)d).ExecuteScript("return jQuery.active == 0"));&#x000A;    }&#x000A;    </pre>
    <p>Combine the <code>ExecuteScript</code> with <code>WebDriverWait</code> and you can get rid of <code>Thread.Sleep</code> added for AJAX calls.</p>
    <p><code>jQuery.active</code> returns the number of active AJAX calls <em>initiated by jQuery</em>; so when it is zero there are no AJAX calls in progress. This method obviously only works if all AJAX requests are initiated by jQuery. If you are using other JavaScript libraries for AJAX communications you should consult its API documentations for an equivalent method or keep track of AJAX calls yourself.</p>
    <h4>ExpectedCondition</h4>
    <p>With explicit wait you can set a condition and wait until it is met or for the timeout to expire. We saw how we could check for AJAX calls to finish – another example is checking for visibility of an element. Just like the AJAX check, you could write a condition that checks for the visibility of an element; but there is an easier solution for that called <code>ExpectedCondition</code>.</p>
    <p>From <a href="http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#expected-conditions" rel="nofollow external" class="bo">Selenium documentation</a>:</p>
    <blockquote><p>There are some common conditions that are frequently come across when automating web browsers.</p></blockquote>
    <p>If you are using Java you’re in luck because <code>ExpectedCondition</code> class in Java is quite extensive and has a lot of convenience methods. You can find the documentation <a href="http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html" rel="nofollow external" class="bo">here</a>.</p>
    <p>.Net developers are not quite as lucky. There is still an <code>ExpectedConditions</code> class in <code>WebDriver.Support</code> assembly (documented <a href="http://selenium.googlecode.com/git/docs/api/dotnet/html/AllMembers_T_OpenQA_Selenium_Support_UI_ExpectedConditions.htm" rel="nofollow external" class="bo">here</a>) but it’s very minimal:</p>
    <pre>public sealed class ExpectedConditions&#x000A;    {&#x000A;         /// &lt;summary&gt;&#x000A;         /// An expectation for checking the title of a page.&#x000A;         /// &lt;/summary&gt;&#x000A;         /// &lt;param name="title"&gt;The expected title, which must be an exact match.&lt;/param&gt;&#x000A;         /// &lt;returns&gt;&#x000A;         /// &lt;see langword="true"/&gt; when the title matches; otherwise, &lt;see langword="false"/&gt;.&#x000A;         /// &lt;/returns&gt;&#x000A;         public static Func&lt;IWebDriver, bool&gt; TitleIs(string title);&#x000A;    &#x000A;         /// &lt;summary&gt;&#x000A;         /// An expectation for checking that the title of a page contains a case-sensitive substring.&#x000A;         /// &lt;/summary&gt;&#x000A;         /// &lt;param name="title"&gt;The fragment of title expected.&lt;/param&gt;&#x000A;         /// &lt;returns&gt;&#x000A;         /// &lt;see langword="true"/&gt; when the title matches; otherwise, &lt;see langword="false"/&gt;.&#x000A;         /// &lt;/returns&gt;&#x000A;         public static Func&lt;IWebDriver, bool&gt; TitleContains(string title);&#x000A;    &#x000A;         /// &lt;summary&gt;&#x000A;         /// An expectation for checking that an element is present on the DOM of a&#x000A;         /// page. This does not necessarily mean that the element is visible.&#x000A;         /// &lt;/summary&gt;&#x000A;         /// &lt;param name="locator"&gt;The locator used to find the element.&lt;/param&gt;&#x000A;         /// &lt;returns&gt;&#x000A;         /// The &lt;see cref="T:OpenQA.Selenium.IWebElement"/&gt; once it is located.&#x000A;         /// &lt;/returns&gt;&#x000A;         public static Func&lt;IWebDriver, IWebElement&gt; ElementExists(By locator);&#x000A;    &#x000A;         /// &lt;summary&gt;&#x000A;         /// An expectation for checking that an element is present on the DOM of a page&#x000A;         /// and visible. Visibility means that the element is not only displayed but&#x000A;         /// also has a height and width that is greater than 0.&#x000A;         /// &lt;/summary&gt;&#x000A;         /// &lt;param name="locator"&gt;The locator used to find the element.&lt;/param&gt;&#x000A;         /// &lt;returns&gt;&#x000A;         /// The &lt;see cref="T:OpenQA.Selenium.IWebElement"/&gt; once it is located and visible.&#x000A;         /// &lt;/returns&gt;&#x000A;         public static Func&lt;IWebDriver, IWebElement&gt; ElementIsVisible(By locator);&#x000A;    }&#x000A;    </pre>
    <p>You can use this class in combination with <code>WebDriverWait</code>:</p>
    <pre>var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))&#x000A;    var element = wait.Until(ExpectedConditions.ElementExists(By.Id("foo")));&#x000A;    </pre>
    <p>As you can see from the class signature above you can check for the title or parts of it and for existence and visibility of elements using <code>ExpectedCondition</code>. The out of the box support in .Net might be very minimal; but this class is nothing but a wrapper around some simple conditions. You can just as easily implement other common conditions in a class and use it with <code>WebDriverWait</code> from your test scripts.</p>
    <h4>FluentWait</h4>
    <p>Another gem only for Java developers is <code>FluentWait</code>. From the <a href="http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html" rel="nofollow external" class="bo">documentation page</a>, <code>FluentWait</code> is</p>
    <blockquote><p>An implementation of the Wait interface that may have its timeout and polling interval configured on the fly. Each FluentWait instance defines the maximum amount of time to wait for a condition, as well as the frequency with which to check the condition. Furthermore, the user may configure the wait to ignore specific types of exceptions whilst waiting, such as NoSuchElementExceptions when searching for an element on the page.</p></blockquote>
    <p>In the following example we’re trying to find an element with id <code>foo</code> on the page polling every five seconds for up to 30 seconds:</p>
    <pre>// Waiting 30 seconds for an element to be present on the page, checking&#x000A;    // for its presence once every five seconds.&#x000A;    Wait&lt;WebDriver&gt; wait = new FluentWait&lt;WebDriver&gt;(driver)&#x000A;        .withTimeout(30, SECONDS)&#x000A;        .pollingEvery(5, SECONDS)&#x000A;        .ignoring(NoSuchElementException.class);&#x000A;    &#x000A;    WebElement foo = wait.until(new Function&lt;WebDriver, WebElement&gt;() {&#x000A;      public WebElement apply(WebDriver driver) {&#x000A;        return driver.findElement(By.id("foo"));&#x000A;      }&#x000A;    });&#x000A;    </pre>
    <p>There are two outstanding things about <code>FluentWait</code>: firstly it allows you to specify the polling interval which could improve your test performance and secondly it allows you to ignore the exceptions you are not interested in.</p>
    <p><code>FluentWait</code> is quite awesome and it would be cool if an equivalent existed in .Net too. That said it’s not that hard to implement it using <code>WebDriverWait</code>.</p>
    <hr>
    <h2>Choose the Right Selectors</h2>
    <p>You have your Page Objects in place, have a nice DRY maintainable test code, and are also avoiding fixed delays in your tests; but your tests still fail!</p>
    <p>The UI is usually the most frequently changed part of a typical application: sometimes you move elements around on a page to change the design of the page and sometimes page structure changes based on requirements. These changes on the page layout and design could lead to a lot of broken tests if you don’t choose your selectors wisely.</p>
    <p><em>Do not use fuzzy selectors and do not rely on the structure of your page.</em></p>
    <p>Many times I have been asked if it’s ok to add an ID to elements on the page only for testing, and the answer is a resounding yes. To make our code unit testable we make a lot of changes to it like adding interfaces and using Dependency Injection. Test Code Is Code. Do what it takes to support your tests.</p>
    <p>Let’s say we have a page with the following list:</p>
    <pre>&lt;ul id="album-list"&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a href="/Store/Details/6"&gt;&#x000A;                &lt;span&gt;The Best Of Men At Work&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a href="/Store/Details/12"&gt;&#x000A;                &lt;span&gt;For Those About To Rock We Salute You&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a href="/Store/Details/35"&gt;&#x000A;                &lt;span&gt;Let There Be Rock&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <p>In one of my tests I want to click on the “Let There Be Rock” album. I would be asking for trouble if I used the following selector:</p>
    <pre>By.XPath("//ul[@id='album-list']/li[3]/a")&#x000A;    </pre>
    <p>When possible you should add ID to elements and target them directly and without relying on their surrounding elements. So I am going to make a small change to the list:</p>
    <pre>&lt;ul id="album-list"&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a id="album-6" href="/Store/Details/6"&gt;&#x000A;                &lt;span&gt;The Best Of Men At Work&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a id="album-12" href="/Store/Details/12"&gt;&#x000A;                &lt;span&gt;For Those About To Rock We Salute You&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;        &lt;li&gt;&#x000A;            &lt;a id="album-35" href="/Store/Details/35"&gt;&#x000A;                &lt;span&gt;Let There Be Rock&lt;/span&gt; &#x000A;            &lt;/a&gt;&#x000A;        &lt;/li&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <p>I have added <code>id</code> attributes to anchors based on the unique albums’ id so we can target a link directly without having to go through <code>ul</code> and <code>li</code> elements. So now I can replace the brittle selector with <code>By.Id("album-35")</code> which is guaranteed to work as long as that album is on the page, which by the way is a good assertion too. To create that selector I would obviously have to have access to the album id from the test code.</p>
    <p>It is not always possible to add unique ids to elements though, like rows in a grid or elements in a list. In cases like this you can use CSS classes and HTML data attributes to attach traceable properties to your elements for easier selection. For example, if you had two lists of albums in your page, one as the result of user search and another one for suggested albums based on user’s previous purchases, you can differentiate them using a CSS class on the <code>ul</code> element, even if that class is not used for styling the list:</p>
    <pre>&lt;ul class="suggested-albums"&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <p>If you prefer not to have unused CSS classes you could instead use HTML data attributes and change the lists to:</p>
    <pre>&lt;ul data-albums="suggested"&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <p>and:</p>
    <pre>&lt;ul data-albums="search-result"&gt;&#x000A;    &lt;/ul&gt;&#x000A;    </pre>
    <hr>
    <h2>Debugging UI Tests</h2>
    <p>One of the main reasons UI tests fail is that an element or text is not found on the page. Sometimes this happens because you land on a wrong page because of navigation errors, or changes to page navigations in your website, or validation errors. Other times it could be because of a missing page or a server error.</p>
    <p>Regardless of what causes the error and whether you get this on your CI server log or in your desktop test console, a <code>NoSuchElementException</code> (or the like) is not quite useful for figuring out what went wrong, is it? So when your test fails the only way to troubleshoot the error is to run it again and watch it as it fails. There are a few tricks that could potentially save you from re-running your slow UI tests for troubleshooting. One solution to this is to capture a screenshot whenever a test fails so we can refer back to it later.</p>
    <p>There is an interface in Selenium called <code>ITakesScreenshot</code>:</p>
    <pre>/// &lt;summary&gt;&#x000A;    /// Defines the interface used to take screen shot images of the screen.&#x000A;    /// &lt;/summary&gt;&#x000A;    public interface ITakesScreenshot&#x000A;    {&#x000A;      /// &lt;summary&gt;&#x000A;      /// Gets a &lt;see cref="T:OpenQA.Selenium.Screenshot"/&gt; object representing the image of the page on the screen.&#x000A;      /// &lt;/summary&gt;&#x000A;      /// &#x000A;      /// &lt;returns&gt;&#x000A;      /// A &lt;see cref="T:OpenQA.Selenium.Screenshot"/&gt; object containing the image.&#x000A;      /// &lt;/returns&gt;&#x000A;      Screenshot GetScreenshot();&#x000A;    }&#x000A;    </pre>
    <p>This interface is implemented by web driver classes and can be used like this:</p>
    <pre>var screenshot = driver.GetScreenshot();&#x000A;    screenshot.SaveAsFile("&lt;destination file's full path&gt;", ImageFormat.Png);&#x000A;    </pre>
    <p>This way when a test fails because you’re on a wrong page you can quickly figure it out by checking the captured screenshot.</p>
    <p>Even capturing screenshots is not always enough though. For example, you might see the element you expect on the page but the test still fails saying it doesn’t find it, perhaps due to the wrong selector that leads to unsuccessful element lookup. So instead of (or to complement) the screenshot, you could also capture the page source as html. There is a <code>PageSource</code> property on <code>IWebDriver</code> interface (which is implemented by all web drivers):</p>
    <pre>/// &lt;summary&gt;&#x000A;    /// Gets the source of the page last loaded by the browser.&#x000A;    /// &lt;/summary&gt;&#x000A;    /// &lt;remarks&gt;&#x000A;    /// If the page has been modified after loading (for example, by JavaScript)&#x000A;    /// there is no guarantee that the returned text is that of the modified page.&#x000A;    /// Please consult the documentation of the particular driver being used to&#x000A;    /// determine whether the returned text reflects the current state of the page&#x000A;    /// or the text last sent by the web server. The page source returned is a&#x000A;    /// representation of the underlying DOM: do not expect it to be formatted&#x000A;    /// or escaped in the same way as the response sent from the web server.&#x000A;    /// &lt;/remarks&gt;&#x000A;    string PageSource { get; }&#x000A;    </pre>
    <p>Just like we did with <code>ITakesScreenshot</code> you could implement a method that grabs the page source and persists it to a file for later inspection:</p>
    <pre>File.WriteAllText("&lt;Destination file's full path&gt;", driver.PageSource);&#x000A;    </pre>
    <p>You don’t really want to capture screenshots and page sources of all pages you visit and for the passing tests; otherwise you will have to go through thousands of them when something actually goes wrong. Instead you should only capture them when a test fails or otherwise when you need more information for troubleshooting. To avoid polluting the code with too many try-catch blocks and to avoid code duplications you should put all your element lookups and assertions in one class and wrap them with try-catch and then capture the screenshot and/or page source in the catch block. Here is a bit of code you could use for executing actions against an element:</p>
    <pre>public void Execute(By by, Action&lt;IWebElement&gt; action)&#x000A;    {&#x000A;        try&#x000A;        {&#x000A;            var element = WebDriver.FindElement(by);&#x000A;            action(element);&#x000A;        }&#x000A;        catch&#x000A;        {&#x000A;            var capturer = new Capturer(WebDriver);&#x000A;            capturer.CaptureScreenshot();&#x000A;            capturer.CapturePageSource();&#x000A;            throw;&#x000A;        }&#x000A;    }&#x000A;    </pre>
    <p>The <code>Capturer</code> class can be implemented as:</p>
    <pre>public class Capturer&#x000A;    {&#x000A;        public static string OutputFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FailedTests");&#x000A;    &#x000A;        private readonly RemoteWebDriver _webDriver;&#x000A;    &#x000A;        public Capturer(RemoteWebDriver webDriver)&#x000A;        {&#x000A;            _webDriver = webDriver;&#x000A;        }&#x000A;    &#x000A;        public void CaptureScreenshot(string fileName = null)&#x000A;        {&#x000A;            var camera = (ITakesScreenshot) _webDriver;&#x000A;            var screenshot = camera.GetScreenshot();&#x000A;    &#x000A;            var screenShotPath = GetOutputFilePath(fileName, "png");&#x000A;            screenshot.SaveAsFile(screenShotPath, ImageFormat.Png);&#x000A;        }&#x000A;    &#x000A;        public void CapturePageSource(string fileName = null)&#x000A;        {&#x000A;            var filePath = GetOutputFilePath(fileName, "html");&#x000A;            File.WriteAllText(filePath, _webDriver.PageSource);&#x000A;        }&#x000A;    &#x000A;        private string GetOutputFilePath(string fileName, string fileExtension)&#x000A;        {&#x000A;            if (!Directory.Exists(OutputFolder))&#x000A;                Directory.CreateDirectory(OutputFolder);&#x000A;    &#x000A;            var windowTitle = _webDriver.Title;&#x000A;            fileName = fileName ??&#x000A;                       string.Format("{0}{1}.{2}", windowTitle, DateTime.Now.ToFileTime(), fileExtension).Replace(':', '.');&#x000A;            var outputPath = Path.Combine(OutputFolder, fileName);&#x000A;            var pathChars = Path.GetInvalidPathChars();&#x000A;            var stringBuilder = new StringBuilder(outputPath);&#x000A;    &#x000A;            foreach (var item in pathChars)&#x000A;                stringBuilder.Replace(item, '.');&#x000A;    &#x000A;            var screenShotPath = stringBuilder.ToString();&#x000A;            return screenShotPath;&#x000A;        }&#x000A;    }&#x000A;    </pre>
    <p>This implementation persists the screenshot and HTML source in a folder called FailedTests next to the tests, but you can modify it if you want different behavior.</p>
    <p>Although I only showed methods specific to Selenium, similar APIs exist in all automation frameworks I know and can be easily used.</p>
    <hr>
    <h2>Conclusion</h2>
    <p>In this article we talked about a few UI testing tips and tricks. We discussed how you can avoid a brittle and slow UI test suite by avoiding fixed delays in your tests. We then discussed how to avoid brittle selectors and tests by choosing selectors wisely and also how to debug your UI tests when they fail.</p>
    <p>Most of the code shown in this article can be found in the <a href="https://github.com/tutsplus/maintainable-automated-ui-tests/tree/master/src/MvcMusicStore" rel="nofollow external" class="bo">MvcMusicStore sample</a> repository that we saw in the last article. It’s also worth noting that a lot of code in the MvcMusicStore was borrowed from the <a href="https://github.com/TestStack/TestStack.Seleno" rel="nofollow external" class="bo">Seleno codebase</a>, so if you want to see a lot of cool tricks you might want to check Seleno out. Disclaimer: I am a co-founder of TestStack organization and a contributor on Seleno.</p>
    <p>I hope what we’ve discussed in this article helps you in your UI testing endeavors.</p>
    </div>
]]>
</Body>
<Summary>In the last article I talked about a few ideas and patterns, like the Page Object pattern, that help write maintainable UI tests. In this article we are going to discuss a few advanced topics that...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/aHpy4CNnSJ4/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36972/guest@my.umbc.edu/b177f2cad838230046503361e76832fe/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tips</Tag>
<Tag>tools-and-tips</Tag>
<Tag>tutorials</Tag>
<Tag>ui-tests</Tag>
<Tag>wed</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 13:10:34 -0400</PostedAt>
<EditAt>Mon, 14 Oct 2013 13:10:34 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="36970" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36970">
<Title>UMBC's CyberDawgs Place 2nd in Maryland Cyber Challenge</Title>
<Body>
<![CDATA[
    <div class="html-content">UMBC's CyberDawgs placed second at the 2013 Maryland Cyber Challenge (MDC3) finals held in Baltimore on Oct. 9 as part of the CyberMaryland 2013 Conference. <div>
    <div><br></div>
    <div>
    <div>During the finals, teams competed in a Control-the-Flag event where they attempted to gain (and maintain) control of other systems on the network – which were also being targeted by other teams seeking to gain and ‘own’ them as well.</div>
    <div><br></div>
    <div>All of UMBC’s three CyberDawg teams competed vigorously throughout the MDC3 season and maintained a very tight scoring situation for the college division. However, by taking second place in today’s finals, each member of CyberDawgs-1 will receive a $2,000 cash prize provided by the National Security Agency.</div>
    </div>
    <div><br></div>
    <div>Dr. Richard Forno and Dr. Charles Nicholas are faculty advisors to the team. UMBC is a co-founder of the Maryland Cyber Challenge.</div>
    </div>
    <div><br></div>
    <div>
    <a href="http://www.csee.umbc.edu/2013/10/cyberdawgs-take-2nd-at-mdc3-2013-finals/" rel="nofollow external" class="bo">Read the original story posted on the CSEE website.</a> </div>
    </div>
]]>
</Body>
<Summary>UMBC's CyberDawgs placed second at the 2013 Maryland Cyber Challenge (MDC3) finals held in Baltimore on Oct. 9 as part of the CyberMaryland 2013 Conference.       During the finals, teams competed...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36970/guest@my.umbc.edu/b59af613e497352f50cec589f14a58b7/api/pixel</TrackingUrl>
<Tag>cyber</Tag>
<Group token="dps">UMBC Professional Programs</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/dps</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/xsmall.png?1642086701</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/original.png?1642086701</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/xxlarge.png?1642086701</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/xlarge.png?1642086701</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/large.png?1642086701</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/medium.png?1642086701</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/small.png?1642086701</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/xsmall.png?1642086701</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/513/2e72ed76b7b3b9ce2f15fce64178dfaf/xxsmall.png?1642086701</AvatarUrl>
<Sponsor>Division of Professional Studies</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/xxlarge.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/xlarge.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/large.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/medium.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/small.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/xsmall.jpg?1381769300</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/036/970/1b4f2f6f94b053e3a32726e62b85db9c/xxsmall.jpg?1381769300</ThumbnailUrl>
<PawCount>5</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 12:50:29 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36971" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36971">
<Title>Interview Questions and Exercises About CSS</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>If you're in the position of needing to interview someone about their skill and knowledge about CSS, it can be a little hard to think of things to ask on-the-fly. I thought I'd think up and round up some ideas for reference.</p>
    <p></p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2013/10/interview.jpg" alt="" style="max-width: 100%; height: auto;">
    <h3>Exercises To Do</h3>
    <p>Seeing people's actual work is just as important as what they say. Seeing people work their through exercises live might be even more important. These are some exercises that aren't particularly difficult and anybody with CSS experience should be able to do. Watching/listening to them do it could be invaluable. <a href="http://blog.codepen.io/documentation/pro-features/collab-mode/" rel="nofollow external" class="bo">Collab Mode</a> on CodePen is kinda perfect for that (just saying). </p>
    <h4>Create This Button</h4>
    <p>I saw <a href="http://codepen.io/mobify/pen/GtqKj" rel="nofollow external" class="bo">this idea</a> on <a href="http://codepen.io/mobify" rel="nofollow external" class="bo">Mobify's CodePen account</a>. Give people an image of a button, and tell them:</p>
    <blockquote><p>Using CSS properties alone, recreate this button:</p></blockquote>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2013/10/css-button.png" alt="" style="max-width: 100%; height: auto;">
    <p>This would be a great test of the candidate's CSS3 skills. This button is loaded with that kind of stuff. Things I would look for:</p>
    <ul>
    <li>How did they handle <a href="http://css-tricks.com/snippets/css/multiple-borders/" rel="nofollow external" class="bo">multiple borders</a>? <code>box-shadow</code> is probably the best way here.</li>
    <li>Did they use <code>text-transform: uppercase;</code> for the text? That would be best.</li>
    <li>How did they handle the stars? Pseudo elements would be a good candidate there. Did they use unicode? Icon font?</li>
    <li>Did they catch the subtle <code>text-shadow</code>?</li>
    <li>How did they split the background in the main part of the button? a <code>linear-gradient</code> with no fade would be a good technique there. Or <code>box-shadow</code>.</li>
    <li>Were they <a href="http://css-tricks.com/public-service-announcement-careful-with-your-nested-border-radii/" rel="nofollow external" class="bo">careful</a> with the nested border-radius?</li>
    </ul>
    <p>I hope I didn't ruin Mobify's hiring process! But honestly, I think this stuff is hard to fake. You can either do it and talk about it, or you can't.</p>
    <h4>Fix The Sidebar</h4>
    <p>The right sidebar here has fallen down below the content. <a href="http://codepen.io/chriscoyier/pen/ClGcF" rel="nofollow external" class="bo">Show me</a> some different ways you could fix that.</p>
    <img src="http://cdn.css-tricks.com/wp-content/uploads/2013/10/fallen-sidebar.jpg" alt="" style="max-width: 100%; height: auto;">
    <p>Even though the two columns are 75% and 25% wide and floated opposite ways, the sidebar has fallen. The reason is because the columns don't actually add up to 100% - they add up to more than that due to the padding. There is a number of ways to fix it:</p>
    <ul>
    <li>Using <code>box-sizing: border-box;</code> on the appropriate elements is the most efficient fix.</li>
    <li>Using <code>calc()</code> on the widths to remove the 1rem padding is another way.</li>
    <li>Putting the padding on an added internal wrapper element instead of the columns is a fix that will work with very deep browser support.</li>
    <li>Adjusting the numbers to make the math work is another way. For instance making the widths of the columns 4% narrower and using 2% for the padding instead.</li>
    </ul>
    <p>There are other ways. The more solutions they can think of, the more creative and versatile a problem solver they are.</p>
    <h4>Make this fixed width design fluid.</h4>
    <p><a href="http://codepen.io/chriscoyier/pen/lDJmf" rel="nofollow external" class="bo">Here's a design.</a> It's a fixed 800px wide. Do your best at making it fit the screen more appropriately at any screen size. </p>
    <p>This is just one ingredient to responsive design (which they should probably at least be familiar with) but it's an important one. It can help prove they can think spatially and make reasoned choices about layout. I'd look for:</p>
    <ul>
    <li>Changing the pixel widths to percentages (how did they handle the math?)</li>
    <li>Did they do anything special for large screens or just small?</li>
    <li>Did they attempt to use a responsive images solution?</li>
    <li>Does the new design retain the hierarchy of importance inherit to the original?</li>
    <li>Did they come back at you with questions? (Lots of things to ask here, including what other resources might be available.)</li>
    <li>Did they test it? (To make sure it actually works, and find things like missing meta tags.)</li>
    </ul>
    <h4>Replace this logo markup with an image.</h4>
    <pre><code>&lt;a href="/" class="logo"&gt;Company&lt;/a&gt;</code></pre>
    <p>Accessible and semantic image replacement has been a CSS topic for a lot of years and the "best way" has <a href="http://css-tricks.com/examples/ImageReplacement/" rel="nofollow external" class="bo">morphed over the years</a>. Asking them to show you how it could be done a number of ways would be a way to get insight into how long they've really been working with CSS. Not only is it directly an important thing to know how to do, knowing how to do it multiple ways demonstrates the depth of their internal toolbox.</p>
    <h4>Google how you would find out what the default value for <code>backface-visibility</code> is.</h4>
    <p>Being able to Google something quickly and efficiently is a huge part of any developers job. Are they deft at it? Did they find the right answer? Did they go to a specific trusted source in the results page? </p>
    <p>Perhaps phrase the question without "Google" and see which search engine they use. No particular bias here, but if it's not Google, are they as efficient as you would expect them to be with whatever other search engine that is?</p>
    <h3>Questions to Ask</h3>
    <p>Darcy Clarke <a href="http://darcyclarke.me/development/front-end-job-interview-questions/" rel="nofollow external" class="bo">got the ball rolling</a> with this a few years ago. I'm going to update some of those, and add some of my own, and elaborate a bit.</p>
    <h4>What is the "Box Model" in CSS? Which CSS properties are a part of it?</h4>
    <p>The CSS <a href="http://css-tricks.com/the-css-box-model/" rel="nofollow external" class="bo">box model</a> is fundamental to understanding layout and sizing and such. It's made up of:</p>
    <ul>
    <li>Width and height (or in the absence of that, default values and the content inside)</li>
    <li>Padding</li>
    <li>Border</li>
    </ul>
    <img src="http://css-tricks.com/wp-content/csstricks-uploads/thebox.png" width="570" height="248" alt="" style="max-width: 100%; height: auto;">
    <p>Margin is related but not technically a part of it. I would give extra points for knowing/mentioning that, but not take away and points for including it.</p>
    <h4>What are Sass, LESS, and Stylus? Why do people use them? How does something like Compass relate to Sass?</h4>
    <p>They are CSS preprocessors. They are an abstraction layer on top of CSS. They are a special syntax/language that compile down into CSS. They make managing CSS easier, with things like variables and mixins to handle vendor prefixes (among other things). They make doing best practices easier, like concatenating and compressing CSS.</p>
    <p>Bonus points for knowing how they differ and/or having experience using them. More bonus points for knowing what things like Compass, Bourbon, LESSHat, Nib, etc are and how they relate.</p>
    <h4>Name some online resources that you reference when having CSS issues.</h4>
    <p>Being good at googling problems you are having is a valuable job skill. There isn't any shame in it. There is shame in spinning your wheels because "you should know this." If you don't have time to do the Googling exercise above, just asking about resources can be telling. </p>
    <p>Google is a pretty good answer (since it's true and we all know it). But being able to name some specific sites is a good indicator they have done it a bunch and are familiar with the places they land and know their favorites. Stuff like MDN (Mozilla Developer Network) is a good answer.</p>
    <h4>Describe what a “reset” CSS file does and how it’s useful. Are you familiar with normalize.css? Do you understand how they differ?</h4>
    <p>Resets are so wildly common in CSS that anyone who is a front end developer type has surely used them. Do they do so blindly or do they know why? The reason is essentially that different browsers have different default styling for elements, and if you don't deal with that at all, you risk designers looking unnecessarily different in different browsers and possibly more dramatic breaking problems. </p>
    <p><a href="http://necolas.github.io/normalize.css/" rel="nofollow external" class="bo">Normalize</a> you might call a CSS reset alternative. Instead of wiping out all styles, it delivers a set of reasonable defaults. It doesn't unset things that are already consistent across browsers and reasonable (e.g. bold headers). In that way it does some less than a reset. It also does some more than a reset in that it handles quirks you may never consider, like HTML5 audio element inconsistencies or line-height inconsistencies when you use sub and sup elements. </p>
    <h4>What are the various techniques for clearing floats?</h4>
    <p><a href="http://css-tricks.com/all-about-floats/" rel="nofollow external" class="bo">Floats</a> are still incredibly common. As this is published, still probably the most cross-browser consistent way to build layout and grids. Anyone who has worked with them is aware of float collapsing. That is, floated element do not add to the height of a parent element. So for example if a parent element contained only floated elements, it would collapse to zero height. You can deal with that like:</p>
    <ul>
    <li>Use a clearfix (bonus points for micro clearfix).</li>
    <li>Float the parent as well.</li>
    <li>Use an overflow property other than "visible" on the parent (bonus points for listing downsides like cutting off shadows).</li>
    </ul>
    <p>Bonus points for "create a <a href="http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/" rel="nofollow external" class="bo">new block formatting context</a>". Possibly negative points for something like <code>&lt;br style="clear: both;"&gt;</code></p>
    <img src="http://css-tricks.com/wp-content/csstricks-uploads/directionalclearing.png" width="540" height="226" alt="" style="max-width: 100%; height: auto;">
    Do they understand directional clearing?
    
    <p>As a bonus question, you could ask them to compare using inline-block and floats for building a grid. Good answer: there are problems either way. With inline block you need to deal with the whitespace issue. With floats you need to deal with clearing.</p>
    <h4>What are sprites and why would use them? How do you go about creating them? What are possible alternatives to sprites?</h4>
    <p><a href="http://css-tricks.com/css-sprites/" rel="nofollow external" class="bo">Sprites are</a> essentially multiple images combined into one. Performance is the reason that they are used. Generally speaking, the slowest thing a website can do is request a resource. The fewer requests a site needs to make, the faster it is. Fast = good. Combining what would be many requests into one = good.</p>
    <img src="http://css-tricks.com/wp-content/csstricks-uploads/1454282699-lhn-sprite.png" width="96" height="96" alt="" style="max-width: 100%; height: auto;">
    <p>Asking how they make sprites would just seal the deal that they are actually very familiar with them. Manually creating sprites is certainly a possibility but it isn't very efficent. There are helper tools like <a href="http://css-tricks.com/video-screencasts/105-using-spritecow/" rel="nofollow external" class="bo">SpriteCow</a> and <a href="http://spriteme.org/" rel="nofollow external" class="bo">SpriteMe</a>, <a href="http://compass-style.org/help/tutorials/spriting/" rel="nofollow external" class="bo">Spriting with Compass</a>, or <a href="https://github.com/filamentgroup/grunticon" rel="nofollow external" class="bo">Grunticon</a>. It's always interesting to hear a real workflow approach.</p>
    <p>Sprites are raster images. When asking about alternatives, good answers might be related to the fact that sprites are often for icons and icons often don't need to be raster. <a href="http://simurai.com/post/20251013889/svg-stacks" rel="nofollow external" class="bo">SVG Stacks</a>, <a href="http://css-tricks.com/flat-icons-icon-fonts/" rel="nofollow external" class="bo">Icon Fonts</a>, <a href="http://copypastecharacter.com/" rel="nofollow external" class="bo">Unicode</a>...</p>
    <h4>What are some accessibility concerns that come up in CSS?</h4>
    <p><a href="http://css-tricks.com/places-its-tempting-to-use-display-none-but-dont/" rel="nofollow external" class="bo">Hidden content</a> is a big one here. It's only acceptable to use <code>display: none;</code> if you're both trying to hide things visually and the content itself.</p>
    <p>CSS controls colors so color <a href="http://colorfilter.wickline.org/" rel="nofollow external" class="bo">accessibility</a> is relevant. <a href="http://a11yproject.com/posts/never-remove-css-outlines/" rel="nofollow external" class="bo">Focus styles</a> are also important and directly controlled by CSS.</p>
    <p>There is a lot more accessibility stuff that is related to HTML and JavaScript, so mentioning that stuff is great, but I think it's interesting to target the question solely on CSS to force focused thinking.</p>
    <h4>What is the difference between inline, inline-block, and block?</h4>
    <p>Bonus points for bringing up specific details like the fact that you can't transform inline elements.</p>
    <h4>What tools do you use for cross-browser testing?</h4>
    <p>They should have some kind of strategy. Perhaps a web based tool like <a href="http://www.browserstack.com/" rel="nofollow external" class="bo">BrowserStack</a>. Perhaps a VM based tool like <a href="https://www.virtualbox.org/" rel="nofollow external" class="bo">Virtual Box</a>. Perhaps different actual computers. </p>
    <p>Part of the job of front end design is making sure things work everywhere they can (based on decided-upon support). You don't have to love it, but you can't hate it. <a href="http://the-pastry-box-project.net/wilson-miner/2013-june-15/" rel="nofollow external" class="bo"><em>“This right here, this is the job. What kind of work were you expecting?”</em></a></p>
    <h4>What are some of your favorite web design workflow tools?</h4>
    <p>What code editor to they like? Where do they go for inspiration? What experience with version control do they have? What was QA like where they have worked? Support? What different deployment methods have they worked with?  Do they know Photoshop or another visual design software alternative? Are the comfortable with the terminal? </p>
    <p>Those are just some examples, it's interesting to hear about any software they use to get the jobs done. Getting a sense of the tools they use (and better, the tools they <em>like</em>) is interesting. Bonus points: a sense of excitement about some of the tools.</p>
    <h4>Say you found a rendering problem on one of your sites in Internet Explorer 8, which you have decided you are supporting. How would you approach fixing it?</h4>
    <p>This would be an alternative question to asking generally about cross browser testing. More specific. Perhaps a more difficult alternative question would be to replace IE 8 with something like "A Google Nexus running Android 2.3." Would they find a simulator? Would they seek out a design lab? Would they ask the company for an allowance for devices for testing, with some kind of smart plan? Would they find a friend with one?</p>
    <h4>What is responsive design all about?</h4>
    <p>It's about making websites work wherever the web is. Different devices with different sizes and different capabilities. Responsive design is about taking one code base and making it work for all of them. Part of that is media queries and different visuals. Part of that is different resources (e.g. different JavaScript to handle touch vs click or different images to accommodate the screen). </p>
    <h4>Have you ever worked with a grid layout? What are your thoughts on that?</h4>
    <p>Why did they need a grid? How did they build the grid? Was it home grown or did they use a grid tool? Did they like the grid tool? What kind of class names did they use? Did they go mobile-first or desktop-first? Was a help or a hinderance? Do they reach for the grid automatically on any project?</p>
    <h4>What are the benefits of SVG?</h4>
    <p><a href="http://css-tricks.com/using-svg/" rel="nofollow external" class="bo">SVG</a> is an image format that is vector based. It's an efficient format for that (small file sizes). You can scale them and they retain their sharpness at any size (bonus points for mentioning raster might have the upper hand at tiny sizes). You can affect parts of them with CSS and JavaScript as well as SVG specific filters that can do things like blurring.</p>
    <h4>Have you ever created a print stylesheet for a website?</h4>
    <p>Kind of indicative that they've "gone the extra mile" with websites before. What approach did they take? How did they test it?</p>
    <h4>Say you were tasked with coding a design that used non-standard web fonts, how would you go about it?</h4>
    <p>A non-leading way to get them to talk about @font-face and how it works. Talking about how it works as a core CSS technology is great, as well as talking about services that provide the fonts and can make it easier e.g. Google Fonts, Typekit, Font Deck, Cloud Typography, etc. </p>
    <p>Bonus points for obscure knowledge like the history of @font-face syntax or <a href="http://www.change.org/petitions/mozilla-firefox-fix-bug-604421" rel="nofollow external" class="bo">Firefox's issue</a> with cross-origin fonts.</p>
    <h4>Explain to me what's going on in this CSS selector:</h4>
    <pre><code>[role=navigation] &gt; ul a:not([href^=mailto]) {&#x000A;    &#x000A;    }</code></pre>
    <p>This selects anchor links that are not email links that are decedents of an unordered list that is the direct child of any element with a role attribute of 'navigation'.</p>
    <p>Being able to verbalize a selector is proof you understand them and evidence they can communicate complex tech subjects. </p>
    <h3>Your Ideas</h3>
    <p>What kind of questions have you been asked when interviewing for a CSS-related job? Or that you ask your candidates? Or that you think would be good questions in general?</p>
    <hr>
    
    <p><small><a href="http://css-tricks.com/interview-questions-css/" rel="nofollow external" class="bo">Interview Questions and Exercises About CSS</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>If you're in the position of needing to interview someone about their skill and knowledge about CSS, it can be a little hard to think of things to ask on-the-fly. I thought I'd think up and round...</Summary>
<Website>http://css-tricks.com/interview-questions-css/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36971/guest@my.umbc.edu/9bc6a5f089e7e1bf369c769dbe1d839a/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 12:46:23 -0400</PostedAt>
<EditAt>Mon, 14 Oct 2013 12:46:23 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="109976" important="false" status="posted" url="https://my3.my.umbc.edu/posts/109976">
<Title>Donald Norris, Public Policy, in The Washington Post, Baltimore Sun, WJZ CBS Baltimore</Title>
<Body>
<![CDATA[
    <div class="html-content">Maryland Attorney General and Democratic candidate for governor Douglas Gansler named Del. Jolene Ivey (D-Prince George’s) as his running mate for the gubernatorial campaign Monday. In The Washington Post, Public Policy Professor and Chair Donald Norris comments on how the selection of Ivey could potentially hurt Gansler in appealing to the Baltimore region. “It’s clearly an attempt by Gansler to nullify Anthony Brown’s advantage in Prince George’s,” Norris said. “But it makes it more difficult to appeal to the Baltimore region with an all-Washington ticket.” Norris was also mentioned in The Baltimore Sun in an article about Gansler’s running mate …</div>
]]>
</Body>
<Summary>Maryland Attorney General and Democratic candidate for governor Douglas Gansler named Del. Jolene Ivey (D-Prince George’s) as his running mate for the gubernatorial campaign Monday. In The...</Summary>
<Website>https://news.umbc.edu/donald-norris-public-policy-in-the-washington-post-baltimore-sun/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/109976/guest@my.umbc.edu/8944779b54e643b335ca134525f9216c/api/pixel</TrackingUrl>
<Tag>cahss</Tag>
<Tag>policy-and-society</Tag>
<Tag>publicpolicy</Tag>
<Tag>research</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, 14 Oct 2013 12:38:55 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="36967" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36967">
<Title>Reminder- Towson Info Session Wednesday</Title>
<Body>
<![CDATA[
    <div class="html-content">Don't forget Towson University will be here on Wednesday to talk about their BSN program.  This is a great chance to hear about their program and learn about the application process.  See you in SOND 111 from 12-1pm!</div>
]]>
</Body>
<Summary>Don't forget Towson University will be here on Wednesday to talk about their BSN program.  This is a great chance to hear about their program and learn about the application process.  See you in...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36967/guest@my.umbc.edu/ed95a9442b3921f2a59e6901aadbea8b/api/pixel</TrackingUrl>
<Group token="retired-109">Pre-Nursing Society</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-109</GroupUrl>
<AvatarUrl>https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/xsmall.png?1318440980</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/original.jpg?1318440980</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/xxlarge.png?1318440980</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/xlarge.png?1318440980</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/large.png?1318440980</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/medium.png?1318440980</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/small.png?1318440980</AvatarUrl>
<AvatarUrl size="xsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/xsmall.png?1318440980</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/109/90e715513174fd117c8f87c3c61d7d5d/xxsmall.png?1318440980</AvatarUrl>
<Sponsor>Pre-Nursing Society</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 12:30:46 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="36969" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36969">
<Title>Web Designers Don&#8217;t Need College Degrees</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>College is a considerable investment of both time and money. If you want to be a web designer, is college worth it?</p>
    <div>
    <img alt="A photograph of students wearing graduation caps." src="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/4626242697_ec0550efd8_b.jpg" width="1024" height="683" style="max-width: 100%; height: auto;"><p><a href="http://www.flickr.com/photos/jasonbache/4626242697/" rel="nofollow external" class="bo">Image courtesy Flickr user Jason Bache.</a></p>
    </div>
    <p>Let’s unravel this multifaceted and complex issue by examining a 4-year bachelors degree in the applied arts and sciences. I’m a perfect example: I have a Digital Media B.A. degree from the University of Central Florida. There are numerous other fields like politics and medicine where the rules of the game are different (which I’ll mention throughout), but this will help anchor the discussion.</p>
    <h2>The Theory</h2>
    <p>College is a well respected social institution. The reigning public opinion is that it’s the best path to an honorable and prosperous career. For many parents, their child’s degree is a tremendous source of pride, especially if there’s a family tradition of a common alma mater. College is also an opportunity to join clubs, play sports, and find lifelong friends. If you want to be a web designer, surely this is an excellent value proposition. Right?</p>
    <h2>The Reality</h2>
    <p>Wrong. There’s a lot of wrong-ness to dig into here, but let’s start with the most obvious offenders first: time and money.</p>
    <p>The cost of tuition is already absurd, but the costs continue with required textbooks and other fees. At a recent Treehouse meetup in Orlando, I met a woman that’s paying $600 for a one-semester college class to learn Photoshop. $600 is more than a year of Gold on <a href="http://teamtreehouse.com" rel="nofollow external" class="bo">Treehouse</a>, and Photoshop is just one of the huge range of topics! Online resources are much cheaper and oftentimes better, because you can learn at your own pace.</p>
    <div>
    <img alt='A photograph of a glass jar of money with the text "College Fund" written on the side.' src="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/6881499716_e8f46fa096_b.jpg" width="1024" height="896" style="max-width: 100%; height: auto;"><p><a href="http://www.flickr.com/photos/76657755@N04/6881499716/" rel="nofollow external" class="bo">Image courtesy Flickr user Tax Credits.</a></p>
    </div>
    <p>The time is probably what’s most shocking. A four-year degree takes exactly that: four years! Assuming you live until you’re 80 years old, you only have 20 of these four-year periods in your life. Those four years could be spent working a full-time job where you earn money <em>and</em> gain real experience, but this opportunity cost is rarely considered.</p>
    <p>There are plenty of things on a university campus to distract from this hollow void. The sports, fitness centers, swimming pools, activities, dorm life, clubs, Greek life… the list goes on. It’s like taking a vacation at an expensive resort hotel, when instead you could be building savings and a career.</p>
    <h2>Degrees Don’t Provide Job Ready Skills</h2>
    <p>College degrees rarely focus on critical thinking skills that apply directly to a job. If the purpose of your education is to start a career, this is a critical point to understand.</p>
    <p>For example, lots of students pursue a B.S. in computer science because they want to create software products, like websites or iPhone apps. While the science of computation is certainly foundational to ideas in software design, these two fields sit at different tiers of abstraction. There’s a need for both; higher level fields like web design would not be possible without low level compilers and logic switches. However, by the time most college students grasp the difference, they’re already too far into their four years to make a change. Software is the <em>application</em> of computer <em>science</em>. Both are awesome, and while they are related, they are not interchangeable.</p>
    <p>Many people will disagree with me here. Indeed, college is great at building a broad foundation for higher understanding, but at some point, the knowledge has to connect with the task at hand. I don’t have to understand binary math in order to write HTML in a text editor.</p>
    <p>What’s lacking is some sort of required “apprenticeship” program where students learn the craft from other professionals. Medical degrees are valuable because of the “residency” mechanic. Even if it’s a doctor’s first day on the job, they have some prior experience to lean on. While internship programs exist in other fields, students aren’t required to practice enough.</p>
    <h2>Many Employers Don’t Care About Degrees</h2>
    <p>Employers in the software and media industries don’t put much weight on degrees because many technological concepts are outdated by the time you graduate. Technology changes too rapidly for traditional institutions to keep up, which is a big reason why we created Treehouse. I’ve hired many of our teachers, and the biggest thing I care about is whether or not they’re capable of doing the job. For new teaching positions, I ask applicants to submit a short video of them teaching a technical topic, because that’s exactly what the position requires. We typically don’t even ask about their education because it doesn’t change anything. The best employees never stop learning. A willingness to learn, a focus on “job-ready” skills, and a positive attitude are all that’s really necessary to get started.</p>
    <h2>Degrees Don’t Give You Industry Connections</h2>
    <p>College is an awesome social experience, but those same connections made in college could just as easily be made in an internship. I had an internship while I was in college, and its value is not even comparable to my coursework. Not only was I being paid, I was also getting experience <em>and</em> meeting peers in my industry. People that are already connected can help lead you to new opportunities, rather than student peers that have no experience. If you need help in this area, check out this <a href="http://blog.teamtreehouse.com/climbing-the-ladder-in-the-web-industry" rel="nofollow external" class="bo">blog post about how to meet people</a> in the web industry.</p>
    <div>
    <img alt="A sign that reads BarCamp Orlando, April 2, 2011." src="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/TiWkX.jpg" width="704" height="470" style="max-width: 100%; height: auto;"><p>BarCamp style events are just one way to connect with industry professionals without attending college.</p>
    </div>
    <p>If you’re after a career in something like politics or the film industry, again, the rules are a bit different. Connections made in film school, student government, and special clubs can be pretty useful, because it’s otherwise difficult to get your foot in the door.</p>
    <h2>Stupid is as Stupid Does</h2>
    <p>Tradition by itself is rarely a good reason for anything. I’m not talking about fun traditions like celebrating holidays or family game night. I’m talking about doing something simply because everyone else before you did it. Following someone else’s dogma is easy because everything has already been thought out for you, but inventing the future requires you to learn how to learn.</p>
    <p>One could compile mountains of statistical evidence that link higher paying jobs to college degrees, but I truly believe we’re at a major inflection point in history where the game has changed. Don’t become a passive observer of life. Mix outside forces with your own inner voice and be your own decision maker. Poke reality.</p>
    <p>The post <a href="http://blog.teamtreehouse.com/web-designers-dont-need-college-degrees" rel="nofollow external" class="bo">Web Designers Don’t Need College Degrees</a> appeared first on <a href="http://blog.teamtreehouse.com" rel="nofollow external" class="bo">Treehouse Blog</a>.</p>
    </div>
]]>
</Body>
<Summary>College is a considerable investment of both time and money. If you want to be a web designer, is college worth it?    Image courtesy Flickr user Jason Bache.    Let’s unravel this multifaceted...</Summary>
<Website>http://feedproxy.google.com/~r/teamtreehouse/~3/DYjPVUqM5wI/web-designers-dont-need-college-degrees</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36969/guest@my.umbc.edu/adc84afe6fae3a4611d481d1d2d96cdf/api/pixel</TrackingUrl>
<Tag>android</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>ios</Tag>
<Tag>javascript</Tag>
<Tag>responsive</Tag>
<Tag>web</Tag>
<Tag>web-industry</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, 14 Oct 2013 12:00:43 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="109977" important="false" status="posted" url="https://my3.my.umbc.edu/posts/109977">
<Title>Laura Hussey, Political Science, in The London School of Economics American Politics Blog</Title>
<Body>
<![CDATA[
    <div class="html-content">In a recent article published in the London School of Economics American Politics and Policy Blog, Political Science Assistant Professor Laura Hussey argues public antipathy toward undocumented immigrants can play a significant role in shaping social welfare policy among Democrats. The article, “Antipathy toward undocumented immigrants risks fracturing support for social welfare among Democrats”, was jointly written by Hussey and University of Rhode Island Assistant Professor Shanna-Pearson-Merkowitz. It argues Republicans tend to broadly oppose social welfare programs, but Democrats’ support for the same programs can depend more on the specific groups of people they benefit. “A key lesson of this research …</div>
]]>
</Body>
<Summary>In a recent article published in the London School of Economics American Politics and Policy Blog, Political Science Assistant Professor Laura Hussey argues public antipathy toward undocumented...</Summary>
<Website>https://news.umbc.edu/laura-hussey-political-science-in-the-london-school-of-economics-american-politics-blog/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/109977/guest@my.umbc.edu/5ea1af2320b7bb3e18953fd973912f18/api/pixel</TrackingUrl>
<Tag>cahss</Tag>
<Tag>policy-and-society</Tag>
<Tag>politicalscience</Tag>
<Tag>research</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, 14 Oct 2013 11:31:53 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="36962" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36962">
<Title>INDS Instagram Photo Contest!</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><em>The INDS Photo Contest is a monthly competition that aims to create a collection of images illustrating the diverse activities of our program. This collection will be used to promote the INDS program at future events and published materials, including various web-based platforms.</em></p>
    <p><strong>Prize: </strong>Each month the winning photo will receive a prize of $25 placed on the campus card of the student who submitted that entry.</p>
    <p><strong>Judging: </strong>Judging will take place during the first week of every month as INDS staff gather to review each photo submitted during the previous calendar month. The judges will be looking for a photo that illustrates something within the broad range of activities covered by the INDS program. These activities include coursework, fieldwork, research, independent study, internships, INDS events, and anything else that relates to your degree/the program in general. In future months, we may announce a “theme of the month” (e.g. Foreign Travel) but for now (and until posted otherwise) we invite pictures from any and all aspects of INDS. Remember, our primary aim is to create a large body of up-to-date images that we can go on to use in our promotion and outreach materials: we are looking for images that engage their viewer in a deeper sense of the rich opportunities afforded by INDS.</p>
    <p><strong>Rules:</strong></p>
    <ul>
    <li>Submit images through Instagram* with at least 3 tags (e.g. research, field work…) <span>as well as #INDSumbc</span>
    </li>
    <li>Provide a caption of 25 words or less (what, where, how it relates to INDS)</li>
    <li>The competition is open to INDS majors <span>and non-majors</span> – it is only the subject matter that must relate directly to the INDS program</li>
    <li>Each month’s winner will be contacted at the beginning of the next month – i.e. our first winner, for October’s photos, will be announced in the first week of November.</li>
    <li>The purpose of the contest is to build a library of images to promote INDS. We therefore ask that each entry is made available for our later use for brochures, posters, reports etc. For this reason<strong>by submitting an image you are agreeing to UMBC’s</strong> <a title="Terms and Permissions" href="http://www.umbc.edu/news/terms.html" rel="nofollow external" class="bo">Terms and Permissions</a>.</li>
    </ul>
    <p>* <em>You will need an Instagram account. It is an easy and free app to download on your smartphone. Contact us if you need further help</em></p>
    <p><br></p>
    </div>
]]>
</Body>
<Summary>The INDS Photo Contest is a monthly competition that aims to create a collection of images illustrating the diverse activities of our program. This collection will be used to promote the INDS...</Summary>
<AttachmentKind>Image</AttachmentKind>
<AttachmentUrl>https://assets4-my.umbc.edu/system/shared/attachments/35e243a5143d52a7d7af7e42e37f80f0/6a6d128b/news/000/036/962/ab4ac2d850c6a8542ce122e0d82ceace/Instagram Contest flier final copy.jpg?1381764561</AttachmentUrl>
<Attachments>
<Attachment kind="Image" url="https://my3.my.umbc.edu/posts/36962/attachments/11460"></Attachment>
</Attachments>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36962/guest@my.umbc.edu/051b89f90c6837edc6f6ce6e363e18f9/api/pixel</TrackingUrl>
<Tag>contest</Tag>
<Tag>images</Tag>
<Tag>inds</Tag>
<Tag>instagram</Tag>
<Tag>photos</Tag>
<Tag>prize</Tag>
<Tag>umbc</Tag>
<Tag>win</Tag>
<Group token="inds">Individualized Study </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/inds</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/original.png?1775678457</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xlarge.png?1775678457</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/large.png?1775678457</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/medium.png?1775678457</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/small.png?1775678457</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xsmall.png?1775678457</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/208/d198d05a1c66aa65c037907edcd05c5d/xxsmall.png?1775678457</AvatarUrl>
<Sponsor>Interdisciplinary Studies</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 11:30:02 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="36963" important="false" status="posted" url="https://my3.my.umbc.edu/posts/36963">
<Title>The need for Cyber Warriors is high, but there aren't enough qualified candidate...</Title>
<Body>
<![CDATA[
    <div class="html-content">The need for Cyber Warriors is high, but there aren't enough qualified candidates to meet the demand. (via <a href="/profile.php?id=114050161948682" title="To tag someone, type @ and then the friend's name" rel="nofollow external" class="bo">Reuters</a>)<br><br><br><a href="http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.reuters.com%2Farticle%2F2013%2F10%2F14%2Fsecurity-internet-idUSL6N0I30AW20131014&amp;h=zAQEAvgqT&amp;s=1" rel="nofollow external" class="bo">RPT-Cyber warrior shortage hits anti-hacker fightback</a><br><a href="http://www.reuters.com">www.reuters.com</a><br>* Governments, companies struggle with recruitment* Cyber attacks could cost up to $400 billion globally* Salaries rise as cyber security demand outpaces supplyBy Peter Apps and Brenda GohLONDON, Oct</div>
]]>
</Body>
<Summary>The need for Cyber Warriors is high, but there aren't enough qualified candidates to meet the demand. (via Reuters)   RPT-Cyber warrior shortage hits anti-hacker fightback www.reuters.com *...</Summary>
<Website>http://www.facebook.com/umbctraining/posts/10151628981751076</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/36963/guest@my.umbc.edu/70a24c408538af5a1afd9ee8aa8c9be6/api/pixel</TrackingUrl>
<Tag>ccna</Tag>
<Tag>ceh</Tag>
<Tag>centers</Tag>
<Tag>cisco</Tag>
<Tag>cyber</Tag>
<Tag>cybersecurity</Tag>
<Tag>information</Tag>
<Tag>it</Tag>
<Tag>leadership</Tag>
<Tag>management</Tag>
<Tag>microsoft</Tag>
<Tag>project</Tag>
<Tag>security</Tag>
<Tag>technology</Tag>
<Tag>training</Tag>
<Tag>umbc</Tag>
<Group token="retired-575">UMBC Training Centers</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-575</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/original.jpg?1361981335</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xlarge.png?1361981335</AvatarUrl>
<AvatarUrl size="large">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/large.png?1361981335</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/medium.png?1361981335</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/small.png?1361981335</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xsmall.png?1361981335</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/575/83756b985266168d0d29c6c9a146db50/xxsmall.png?1361981335</AvatarUrl>
<Sponsor>UMBC Training Centers</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 14 Oct 2013 11:10:34 -0400</PostedAt>
<EditAt>Mon, 14 Oct 2013 11:10:34 -0400</EditAt>
</NewsItem>

</News>
